Transcrições
1. Introdução ao meu curso de modulação no Minecraft: Olá, sou empresa Nico
ou estudante
de mestrado 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'm making Minecraft
modeling tutorials. Mas agora vamos
ficar ainda maiores. Esta é a
modelagem de microondas 118, uma classe com tecido. Aqui você aprenderá tudo o que
precisa saber para fazer um incrível e
incrível MOD do Minecraft, até mesmo
iniciantes absolutos podem começar
passando pela introdução
Java do provedor, que realmente vai ajuda você a aprender alguns
dos fundamentos. Em seguida, aprenderemos alguns
dos conceitos simples,
como adicionar um item, bloco, receitas e
até ferramentas ao meu ofício. Depois disso, continuaremos
analisando modelos de blocos
personalizados, culturas personalizadas e tantos outros recursos interessantes e
interessantes. No final, vamos até abordar
alguns 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, talvez seu modelo
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, é um
tipo específico de tipo de dados, 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, pois 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
entre essas posições de bloco porque, claro, um bloco não
é como um único ponto no espaço 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 eu não vi
aqueles usados com tanta frequência. Para um byte há oito bits
e ele 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 armazená-lo de
menos nove quadrilhões para como quadrilhões positivos
nove quadrilhões, que é Bree, 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 e
seja 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 personagem e caracteres especiais
regulam o comércio. 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. Agora, 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 esse é
o tipo de ideia geral que eu queria passar
aqui são os tipos de dados. Caso contrário, espero que isso tenha sido útil para você e você aprenda algo novo e eu
te vejo na 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, em seguida,
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 Hello World e eles vão
ser como esperar um segundo, eu posso fazer com que as coisas
exibam essa E1. 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ê. Vamos executar 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 este sistema mais uma vez e
eu posso começar a escrever isso. E você pode ver que
isso é uma espécie de como
se uma taxa selecionada seja 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? Portanto, a linha de impressão do sistema, você pode ver o quão rápido
isso às vezes funciona. Não se preocupe, eu
vou tentar fazer 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. Uma vez que possamos simplesmente
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, certo? 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, o scanner em
pequeno é igual a um novo. E então, mais uma vez,
digitalize com um grande S com um capitalista dentro
dos parênteses. Então, vamos fazer o sistema de
parênteses.IN. E vou acabar
com 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 que 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
sistema, linha de impressão, digitar 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. Isso. Em seguida. Lá vai você. Ok, então a seguir, como você pode ver, tem que ser
escrito assim. Então, temos que 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, estamos
testando 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 seu nome de usuário. 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 coisas
avaliadas e depois fazer 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 (Java) e como lidar com eles com eles: 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 é
realmente 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 que ele funciona na primeira vez que
o executa. Então, por favor, antes de tudo, sempre permaneceu calmo
quando você recebe um erro. Não há 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 2008. Então, isso é
realmente muito legal. Então podemos descobrir imediatamente onde esta flecha está
e podemos 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 nulo, o que eu já lhe falei é 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 tenho uma seta e você
pós-processo terminou com códigos 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. Significa que,
na verdade, 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? Uma exceção e um 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. Isso é apenas algo que
eu queria te dar, o que pode ser muito importante. Borracha que já é isso. Portanto, isso é uma espécie de, apenas uma visão geral
desses erros. E, claro, não hesite em
perguntar se há flechas. Se você pegar flechas 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, no entanto. Sim.
7. (Java) integros, métodos de Arithmetic e math (de math math (o de (de (de %(o a (de de (de a de de: Ou voltarei à introdução
do Java aqui para os núcleos modernos 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
bastante 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, também podemos
usar uma subtração, certo? E o que vou fazer
é, na verdade, vou 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 vou
selecionar esse 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? Ou 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. Mas devemos ver
no final aqui em 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. Há 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, certo? 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 modelagem 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. Por exemplo, vamos
fazer um novo booleano aqui. Por exemplo, gosta das palestras, palestras principais que
são escritas 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 que
você fez uma
pergunta nas perguntas e respostas. Então eu poderia, por
exemplo, dizer 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, 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. Há também um 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, 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. Tudo considerado é que 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 perna, 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. E 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, isso é 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, a classe tem é 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. Ele retorna verdadeiro então 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 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 é 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? Ou a pontuação é
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 tenha aprendido
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 Java
para modelagem do Minecraft. 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 podemos imaginar que vamos dizer que temos que
escrever um programa que avalie esses
valores desses dois exames. E basicamente diz: Ei, você falhou ou passou no 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 você passou 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 colocamos escondido aqui é depois dos
parênteses de fechamento, colocamos um suporte 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 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 das instruções 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 um else aqui no final e também colocando
um colchete 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,
desde o outro 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 do U. E é claro que
estamos recebendo isso, como neste caso, 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. Então, 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 apenas dizer que
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 é onde
você vai 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 o último sempre será
outro ou 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. E 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. Havia 68, infelizmente, só um pouco, não o
suficiente para 69. E então você pode ver que falhou no
exame 1 e no exame passado também. 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 em um
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 como esta, 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 semelhante. 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 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 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 em nada. E a primeira coisa
vai ser gritar, bem, 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 realmente 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 uma
questão de argumento, vamos também mostrar a
frase mais uma vez. Oh, 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 o que
devemos apenas obter 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 o raio-x, EEG mais é igual a um. 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 que o índice de
pontos de frase do pode ver que há alguns
tipos diferentes de índice aqui, mas queremos a string 1. Na verdade, não
importa, a propósito, qual você escolhe, você pode ver que assim que o cursor estiver dentro
dos parênteses, ele realmente irá 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 é? Haha, 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. Está tudo bem.
Não se preocupe com isso. A coisa sobre isso é que você se acostuma com isso
muito rapidamente. E há alguns outros lugares
onde temos que usar isso. Mas se começarmos a contar em 0, você pode ver o 0123456789, 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 é muito interessante. De fato, quando realmente
pensamos sobre esse fim, bem, e se,
na verdade, não estamos, isso não está correto. Onde adicionamos é, na verdade,
queremos substituir algo. 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, certo? 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 Controle D. E o que podemos
dizer que começa com, você pode ver, e eu
poderia apenas dizer, hey, eu escreva 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. Agora, o que é se
tivermos uma corda, certo? E vamos chamar
isso de S por enquanto, e vai ser
uma corda 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 sair do sistema, a linha de
impressão que está vazia,
poderíamos, claro, também colocar o
ponto S está vazio dentro
da sua bunda. Por que se preocupar? Está tudo bem. E eles vão, isso é
realmente onde é verdade? É verdade, é claro
que é verdade. Desculpe. Lá vai você, certo? Claro, é 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 o ano r2 também. Linda. 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 é 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 agora
vai acontecer
é que vai levar
tudo a
partir do tipo 17 e só vai retornar
tudo depois. Então, agora, a substring 17 anos deve dizer
introdução Java, ponto de exclamação. E é claro que 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, mas trabalhe por ela e
veja se você não pode consertá-la. Mas isso
seria praticamente para as cordas. E essas palestras
método de cordas. 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.
16. (Java) Casting (Java): Ou eu sou bem-vindo de volta
à introdução do Java aqui
para modelagem de microondas. 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 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
ao 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, em seguida, um número inteiro chamado presente. Mas isto é, digamos que
nosso Pai queira
nos dar um presente de X. 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 a linha de impressão do sistema. Se sim, 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 em talvez tomar 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) Arrays explicados (de (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 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 lutei com isso
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
as três cordas, 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 com que
isso tenha 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 depois mudar várias
coisas ao mesmo tempo, mas então todas elas mudam
para o mesmo número e é todo tipo
de estragar 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%
uma 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 sua área de respostas em
anel. 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, em seguida, 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á? Três, 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 então eu posso
continuar com isso, certo? 23. E então vamos apenas, bem, como posso
produzir isso certo? Como, como isso é possível? Bem, a linha de impressão do sistema de TI, e então podemos
apenas dizer perguntas, sem perguntas, lá vai você. E então, por exemplo,
saber de três anos , 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. Então, é isso
que tudo 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 de fato. E então o que podemos
fazer é, por exemplo, podemos produzir a resposta 0. 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. Está tudo bem. Tudo o que podemos fazer é
agora, bem, ok, então podemos simplesmente
reatribuir isso? Para que possamos pegar isso, eu
só vou pegar isso. Na verdade, vou escrevê-lo
para fora. Então, as perguntas, mais uma vez, colchete 0 é igual, por exemplo, quantos anos tem Ian? Mick Jagger, em 2021. Isso é só, vamos namorar a
nós mesmos. Por que não? Está tudo bem. 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, 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. Mas esta é a exceção do índice
de matriz fora dos limites aqui. É praticamente o que já
vimos, mas vou mostrar
isso mais uma vez. Então, se colocarmos um número
no suporte,
então, na verdade, ele não existe. Vamos obter
uma exceção de índice de array 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, ok, justo o suficiente. Mas isso está fora
dos limites porque isso só tem 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 o que, 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
, assim como se
eu 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 . 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. Nunca se sinta
mal com isso. E sim, então essa é uma espécie
de ideia geral de matrizes 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, algo assim, certo? Mas, de outra forma, 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.
19. (Java) para a loops enquanto enquanto as loops: Tudo bem, bem-vindo de volta
à introdução do Java aqui
para modelagem de microondas. E nesta palestra
vamos falar sobre loops. O que vamos precisar
para esta palestra são ambos os arrays de string
que fizemos anteriormente para as
perguntas e as respostas. 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. 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
analisar é o loop for. Para isso, vamos digitar
quatro e, em seguida, 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. Então, 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, enquanto que ser 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 para blindado. 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. Então agora vou te
dizer, bem, produzir todas as perguntas e respostas e você só
vai ocupar o sistema. Linha de impressão 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 qualquer índice que você quiser e qualquer índice que
esse inteiro assume. Outra
coisa muito 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,
poderíamos 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 é phi. 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 isso. Posso dizer perguntas ocidentais
e antigas. E a maneira de ler isso é, ou 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. E o que vamos fazer é dizer algo
como
a seguinte linha de impressão
do sistema. Você quer continuar? Então, vamos apenas dizer: Ei, a pessoa quer
continuar a usar? Vamos continuar e então vamos dizer, ei,
se o ponto do scanner seguir, 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 que basicamente ignora tudo o
que vem depois dela dentro do loop e
salta de volta para o topo do o loop enquanto 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. Neste caso, é claro,
um loop sem fim, certo? Então, enquanto eu digitar, sim, isso continuará. Assim que eu digitar
qualquer outra coisa, ela vai sair dela. Então essa é uma espécie de ideia
desse loop while aqui. Vamos dar uma
olhada nisso para que eu possa digitar. Sim. E eu posso digitar, sim.
E eu posso digitar. Sim. E então eu vou cometer um erro
aqui e um OH não, de
repente ele
chamou isso de paradas. 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 mais ou while loop. E você tem 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 nisso
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 string 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. Então vamos ter
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. Geralmente 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 uma 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 as 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 nada. 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 nada. 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 de objeto de Java explicada explicada: Tudo bem, 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 está
acontecendo e entenda 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ê vai veja que
vou basicamente sempre usar 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. Mas 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, em seguida, as classes
podem herdar a funcionalidade, que seriam métodos,
variáveis de outras classes. Vamos ver dois basicamente exemplos
teóricos disso. E então, em palestras posteriores, vamos dar uma olhada em alguns exemplos práticos também. Mas antes de tudo, 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 basicamente definidos 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 é a ideia geral. Águias ou atributos, pois
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 e 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. Então 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 nós vamos ser
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 é
basicamente criamos uma taxa de objetos. 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. Mas, como você pode ver, 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? Mas isso 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, seria isso para
esta palestra aqui. Espero que você tenha achado útil
e os neurônios são os novos, e eu 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, algo
como um vazio público. E então vamos, por exemplo, que possamos criar ambos os 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 quero dizer, eu 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? Portanto, 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 ou ponto atrevido deve
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
olhar para 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 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 Thiel 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. E a
palavra-chave protegida também funciona ou classes que se estendem a partir disso. Então, basicamente, os ativos
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 Na idade, na idade, se a idade. E agora aqui está a coisa
interessante. Claro que isso não
funciona porque 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 na classe e não requer 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 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, você, Dr. multiplicador de ano humano
não muda de Dr. Dog. Agora vamos ignorar o
fato de que talvez isso mude se houver diferentes
raças 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 mudar, certo? Porque agora temos o mesmo
problema mais uma vez, certo? Então cães, seu multiplicador e, de
repente, é 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 porque uma é uma variável final do que o valor nunca
pode mudar 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
mudar teoricamente, 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 na
seguinte taxa. 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 de ano humano ali mesmo. Agora podemos simplesmente chamar isso geralmente você pode, claro,
também dizer cão pontilhar isso. Não precisamos 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. Mas 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 modding 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 vai ficar mais claro. E mais uma vez,
posso apenas aconselhá-lo a experimentar
um monte de coisas. Apenas acenda inteligente, faça um monte de aulas, e apenas 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 uma taxa de palavras muito
grande. 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 penso
sobre o mesmo. Eu ouvi. 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, alguém diz: Sabe de uma coisa? 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ê. Eu sou Mimi Chao e você
chega a um ponto em que você está
copiando um monte de código e geralmente usar
um monte de 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 Control X, 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 que quando é
uma variável protegida, 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
através desta 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 já sugere,
digamos, vamos apenas pegar todos
os parâmetros aqui e
colocá-los em ano. E agora esse super agora está chamando o
construtor Animal aqui. Isso é realmente
perfeito neste caso. Então, outra coisa,
talvez por exemplo, a, tanto a idade quanto o nascimento. Eles também podem estar na classe de
animais, por exemplo. Isso também
funcionaria totalmente bem. E o resto aqui está
realmente totalmente bem. Vou apenas 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 os
bigodes de gato são novos gatos, certo? Então, nova conta aqui. E isso é, por exemplo, então bigodes pontilham PNG. E então o nome vai
ser bigodes, certo? E então talvez, talvez eles
tenham 12 anos ou
algo assim. E então podemos simplesmente
ligar, por exemplo, bigodes dot ns pode ver que
posso chamar tudo para obter 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-se 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
apenas tenha feito um som. Então, não podemos fazer isso. E outra coisa realmente
interessante é que isso é definido
na classe animal. No entanto, ainda posso dizer
algo como bigodes, ponto-ponto-ponto faz som 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 do microfone 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 a mesma coisa. Copie isso para o cachorro aqui. E eu vou dizer esse nome, apenas mexer a pasta, ter algo diferente aqui. E o que você
verá se eu realmente chamar, por exemplo, Benji,
não fizer 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 aqui, isso só o
torna tão antes de tudo, tudo é um pouco
mais agradável separado
e, em seguida, 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 é um cachorro e um animal. Justo o suficiente. 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 apenas dizer jeoneun dot PNG. Jenny. Talvez a Guiné seja como 15. Tudo escuro, mas está 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, taxa
chamada animais. 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 eu 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, os animais recebem um, por
exemplo, fazem som. Então fica lá fora, sim. Oh, 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 o, o que, o que dizemos 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 um animal aqui, o som do microfone vai
fazer com que Gracie, apenas, isso seja bem 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 de idade 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 de Trivia de atualização: 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: de atualização de Trivia: 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 então o mesmo com o jogo de
curiosidades, certo? 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 isso é feito aqui, onde acabamos de ter
um novo ArrayList e depois adicionamos um monte
desses triviais ali mesmo
à 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, onde apenas passamos por
cada uma das perguntas, validando as
respostas obtendo a entrada do usuário e
depois 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 com a
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
que seja 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 depois conseguimos 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, está tudo bem. Se agora eu queria 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
fazer um suporte 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 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
, 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) Excessões e a de catch (Java, de Exceptions: 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: 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 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
nem 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 útil e tenha aprendido
algo novo. Vejo você na
próxima palestra. Então, sim.
37. (Java) Java Genics: 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 outro. 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
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) Instalação, configuração e GitHub: Tudo bem, bem-vindo
ao curso de tecido Minecraft aqui para 118. E nesta primeira palestra, vamos passar por
alguns pré-requisitos que você precisará
para começar a modelar o Minecraft. Agora vamos
passar por tudo,
baixando tudo o
que você precisa, os programas, configurando
o projeto de malha
e, em seguida, até mesmo configurando um repositório do
GitHub para que você possa compartilhar seu codifique com alguém que
possa ajudá-lo. Então, por exemplo,
se você tiver um problema, poderá carregar todo o seu código e
enviá-lo para outra pessoa. Por exemplo, eu nas perguntas e respostas. E então eu posso facilmente
tentar encontrar o erro, que economizará
muito tempo entre basicamente a
pergunta e a resposta. Mas antes de tudo, se
você é um iniciante absoluto, recomendo vivamente se
você não assistiu, assistindo à introdução do Java, eu simplesmente não posso
recomendar isso o suficiente. Isso vai
ajudá-lo imensamente. Porque se você não tiver isso, especialmente
passando pela parte de
modelagem do Minecraft deste curso, você se sentirá
muito perdido muito rápido. Porque neste momento, presumo que você tenha
visto tudo na introdução
do Java
e esteja razoavelmente familiarizado com os conceitos
que discutimos lá. Mas seja qual for o caso, vamos começar com
o download do JDK. Então, precisamos de um Java
Development Kit, e esse será
o 17 do Java. Na verdade, esse link está
vinculado nos recursos. Apesar de ter usado o Java 16
para a introdução do Java, agora
temos que baixar o Java 17. Isso não é problema,
a propósito, seja qual for. Então isso está vinculado
e isso deve, em teoria, detectar o que é seu sistema
operacional. Se isso estiver errado, você pode
ir para outras plataformas. Você está se
certificando de selecionar tamarin 17, e então você pode basicamente selecionar seu sistema operacional, a arquitetura aqui também
e, em seguida, basta baixar,
baixar o ano MSI. E quando você baixa isso, este é apenas um
isolamento normal para que você possa instalar isso no seu
PC como qualquer outro programa. E depois de fazer
isso, você pode continuar para a próxima
parte,
precisaremos de um IDE que seja um ambiente de
desenvolvimento integrado. E para nós vamos
escolher a ideia inteligente. Se você é
mais uma vez um iniciante, eu recomendo apenas
ficar com isso porque caso contrário, haverá algumas coisas que podem
parecer diferentes para você. Então, por exemplo, se
você quisesse usar o Eclipse ou o VS Code,
também é totalmente bom. No entanto, tenha em mente que, se você tiver
algum problema lá, talvez
eu não consiga
ajudar tão bem quanto eu
possa com uma ideia inteligente porque conheço todas as pernas, digamos atalhos e todos os
botões que você precisa pressionar quando algo
der errado na ideia, não
estou 100% familiarizado
com o código Eclipse ou VS, então apenas tenha isso em
mente e baixe a versão da comunidade.
Muito importante. Isso é gratuito, então você não
precisa pagar nada. A versão da comunidade
no lado direito aqui. Então, basta baixar isso mais uma vez e depois instalá-lo
no seu PC, assim como qualquer outro
programa também. Agora chegamos à
próxima coisa e esse será o exemplo de
tecido mais. Agora você pode ver que este
é um modelo público, então há algumas coisas
que você pode fazer isso. Você pode usar
esse modelo e apenas criar um novo repositório do GitHub. Isso não é o que vamos fazer. Vamos fazer é
ir para o código aqui e
clicar em baixar um zip. Isso vai baixar
um arquivo zip com todos
os arquivos necessários que basicamente
precisamos. E eu já
preparei um titular aqui onde eu quero que
isso aconteça. Só vou clicar com o botão direito
aqui, extrair aqui. É só por isso
que estou usando vento rawr. Você também pode usar sete zip ou outro programa ZIP para
basicamente abrir isso. Bem, agora tudo está aqui. Na verdade, vou
controlar X isso para tirar isso e o Control
V para colá-lo aqui. Então, eu só
quero que tudo esteja nesta pasta. E agora duas coisas que
podemos fazer imediatamente. Podemos excluir a
licença e o
arquivo README para que não obtenhamos a mesma licença
aqui porque esta é basicamente a licença de
domínio público. E isso não é algo que eu
pessoalmente quero. Claro que você pode ficar com
ele como quiser. E então eu também
recomendo apenas excluir a pasta GitHub aqui,
a
pasta GitHub de pontos, porque isso basicamente
contém alguns fluxos de trabalho. Aqui você pode basicamente
ver contas automáticas do projeto e executar qualquer teste de
configuração para ele. Você realmente não
precisa necessariamente fazer isso. Você pode mantê-lo. Mas isso é algo que às vezes pode ser um
pouco confuso,
especialmente mais uma vez para iniciantes. Então eu recomendo
apenas excluir isso e não me preocupar com
isso por enquanto. Agora temos o
exemplo de tecido mod aqui, e isso é realmente
tudo o que precisamos. Podemos iniciar a inteligência
pela primeira vez. Agora provavelmente
não vai se parecer exatamente com isso para você. No entanto, ele terá três
componentes que precisamos. E este é o novo
projeto, o aberto. E eles recebem do VCS
para esses três botões, basicamente Arthur, coisas
que você vai precisar. E queremos clicar no botão
Abrir e,
basicamente, navegar
até este diretório. Então, vamos colocar
este diretório aqui e você pode ver o cavalo de
tecido 118, e ele realmente tem esse símbolo aqui e
vamos bater Ok, e então cruzamos o projeto
e depois um novo janela aqui abrirá e você pode ver algumas coisas
já estavam começando aqui. Está tudo bem. Apenas continue com isso. Se você ficar como vermelho aqui, flechas, não se preocupe. Vamos consertar todos
esses em apenas um minuto. A primeira coisa que
você provavelmente
criará se você, por exemplo, tiver uma
versão diferente do Java aqui, você pode ver que está usando uma versão desatualizada do Java. Isso é correto para
mim porque tenho várias versões
do Java instaladas. Agora, como você conserta isso? Muito fácil. Você vai para
File project structure, e você pode ver aqui
no SDK do projeto, você precisa selecionar Java 17. E então aqui no idioma do nível do
projeto 17 pressione Aplicar e OK, e há uma segunda coisa
que você precisa fazer, e vamos para Configurações de arquivo para a implantação de execução ferramentas
criadas Gradle, e certifique-se de que este
ano esteja definido para o SDK do projeto. Isso também é muito importante. Aplica-se se
não for esse o caso, certo? Então você pode acertar este
pequeno elefante aqui novamente e nos deixar
correr novamente. E agora você não deve obter
nenhuma seta nesse caso, mas deve simplesmente
correr corretamente. Mas você pode ver que eu tenho uma
construção bem sucedida aqui, então isso é realmente muito bom. E então o que você também
verá é que você terá três dessas
pastas laranja geradas. E então, se nós, por exemplo, abrirmos a pasta de origem, então SRC significa fonte. Se abrirmos isso,
você pode ver que também
temos algumas cores aqui. Agora, a próxima coisa é que quando abri essa pasta java, você pode ver que
tudo aqui se expande. Se você estiver usando o inteligente
pela primeira vez, isso pode não ser
o caso para você. Vá para esse equipamento aqui
e certifique-se de que os pacotes achatados e os pacotes intermediários
compactos estejam desligados. Então este pode ser o caso,
como ele parece para você. Apenas certifique-se de que tanto o fly quanto os pacotes, bem como pacotes
intermediários
compactos , estejam desativados e, em
seguida, tudo parece exatamente o mesmo para você como
para mim agora, precisamos modificar algumas coisas dentro do arquivo de propriedades do
ponto Gradle. Assim, você pode ver que existem
algumas propriedades definidas, então há algumas propriedades de
malha, há mais algumas propriedades
e, em seguida, também há
algumas dependências ou um pequeno interlúdio
aqui. Então, o que
é muito importante é que existem duas maneiras pelas quais você
pode fazer isso. Número. Primeiro, você pode pegar o simples exemplo de mod e
então você estará em 1800. Por favor, note que
algumas coisas não funcionam exatamente como em 101. Então, esse nome, você
será as tags,
o item avançado, que usa impostos basicamente e geração
mundial. Você terá
problemas lá
no final disso,
no final do curso. Então, haverá um
vídeo de atualização em que
vamos atualizar as coisas do século XIX para um 1800. No entanto, se você quiser seguir o curso na íntegra, principalmente palavras ou iteração, recomendo
pensar possivelmente escolher um 1800. Aqui. Provavelmente adicionarei uma seção no final
do curso por 1800. E não apenas as mudanças, mas provavelmente também palestras
diferentes que substituirão
o, não substituído. Mas haverá corolários
para as palestras de 1800. Então, você pode alterar o arquivo de propriedades do Gradle
para esses valores aqui, ou se não for seu, se
você não quiser fazer isso, se você quiser usar 1800, é claro,
bem-vindo a fazê-lo. Mas, por favor, tenha em mente que
haverá algumas diferenças versus o que você vai ver
nas palestras. Então, apenas tenha isso em mente e acho que volta à palestra. Então, em geral, as propriedades da
malha, você pode ver que
realmente temos um link aqui e vamos olhar
para essa página em apenas um momento. E basicamente especificamos o que é a versão do Minecraft, qual é a versão dos
mapeamentos que estamos usando? Isso é basicamente para traduzir
o código para que possamos realmente ler os
nomes dos métodos e coisas assim. E então a versão do carregador é apenas a versão do carregador de
malha basicamente. Então temos
mais algumas propriedades, aquelas que podemos definir a nós mesmos e vamos fazer
isso em apenas um momento. E então também temos
qual versão de tecido estamos usando na parte
inferior aqui. Se abrirmos as versões do link fabric
MC net slash
, você verá que
realmente temos algumas atualizações aqui. Então, o que podemos fazer é
simplesmente assumir esse controle C ou clicar com o botão direito do mouse e
depois voltar aqui e, basicamente, apenas colá-lo. Então,
vamos colá-lo. Vamos pegar
algumas flechas porque há várias aqui. Mas o que podemos fazer é
simplesmente substituir isso aqui em baixo. Então eu pressiono Control X para
cortá-lo e depois Control V
para colá-lo novamente. Agora, atualizaremos para 0,44. Esta pode ser uma versão
diferente para você, o que é totalmente bom. Normalmente, embora existam algumas
diferenças nas versões, não deve
haver diferenças
malucas. E se houver,
tentarei
acompanhar o melhor que puder
e provavelmente adicionar outra palestra depois disso ou em algum lugar entre
as mudanças. E então, basicamente,
será apanhado com
isso também, certo? E aqui vamos
excluir todos eles e, em seguida, apenas certificar-nos de que
eles estão escritos corretamente. Então, basicamente, apertar a tecla
tab para movê-los. E agora você viu que basicamente
atualizamos lucro de seis a
12.8 e de 431, acho que para 440,
isso é totalmente bom. Mais uma vez, podemos clicar
no pequeno elefante
aqui no canto. E se expandirmos
essa janela de compilação, você pode ver que está baixando coisas como loucas,
mas não se preocupe. Novamente, isso pode levar
alguns segundos. Mais uma vez, talvez
um minuto ou mais. Vi que demorasse muito
mais para algumas pessoas, mas isso depende da sua conexão com a internet
e de quão bom seus PCS. Então, às vezes, pode
demorar 20 minutos, já
vi isso antes, mas isso é muito raro. Muito raro. Então lá vai você. 21 segundos, na verdade
já terminado. E agora podemos começar a, bem, ir em frente e ver o que
podemos mudar para o nosso próprio MOD. Basicamente, todas as nossas
alterações acontecerão no arquivo de propriedades do
ponto Gradle. Isso é basicamente muito
fácil para nós fazermos isso. E a ideia geral é que
temos que alterar nossas
propriedades de modelo aqui e, em seguida, também alterar algumas coisas aqui em nossa estrutura de pastas
ou estrutura empacotada. A essência geral
é que agora estamos usando este
MOD de exemplo onde existe, é claro que não é
exatamente o que temos. Temos uma
matemática específica que queremos. Então, se eu clicar duas vezes
neste exemplo de classe simulada, você pode ver que diz exemplo mod. Ele até tem alguns
comentários aqui. Isso é muito bom. Mas, no geral, precisamos mudar
algumas coisas aqui. A primeira coisa é que eu quero que isso esteja no
meu próprio pacote. O que eu faço é subir aqui e vou mudar isso
para conta
líquida e rho nada Mc
curso, esse é o pacote. Eu quero que isso seja
altamente recomendável não chamar este trabalho de algodão porque você está em
um joule coulomb. E em segundo lugar, basta
usar net seu nome. E então o curso MC, por exemplo, eu recomendo
fazer
isso porque é muito estranho usar o nome de
outra pessoa se você estiver fazendo seu
próprio código porque ele vai ficar confuso para pessoas que são como
você não escreveram isso, isso foi por linha de algodão
e é como, bem, o que eu posso fazer aqui é isso, claro que agora vai
ter um sublinhado vermelho. Eu só vou passar o mouse sobre
isso e você pode ver mudar para pacote net Cotton
joe MC curso. Vou clicar nisso
e você pode ver um novo pacote foi criado. E isso agora foi
bem feito basicamente. O que farei então
é pegar
esse pacote misto e simplesmente movê-lo diretamente para o refatoramento do pacote de
cursos EMI EMC. E lá vai você.
Agora eu posso realmente excluir o MC de malha aqui, basta pressionar a
tecla delete e depois confirmar. E então o que posso fazer é agora
poder clicar com o botão direito do mouse nisso. Isso é muito importante. Não
mude esse nome aqui. Clique com o botão direito do mouse em Refator E então esta
será a aula de mod do curso MC. Agora, isso é o que
vou me referir
nas próximas palestras
e nas respostas para algumas perguntas
como classe principal. Então, esta é a classe principal. As classes principais,
aquela que implementa a
interface mais inicializadora, muito importantes. Isso é o que eu vou me referir, pois sua classe mod principal também
excluirá todos os comentários aqui porque eles não são necessários. E então vou apresentar
um novo campo aqui. E essa é uma string final
estática pública chamada mod underscore ID. E haverá
igual a uma nova string, que é chamada de curso MC, porque esse será
o nosso ID do modelo. Agora, quanto mais ID é
muito importante. Então, mais uma vez, ouça
atentamente aqui, quanto mais ID só pode conter caracteres
minúsculos, sublinhado traço e números, nada mais, sem espaços e
sem caracteres maiúsculos. Então isso é muito importante. Sem caracteres maiúsculos. Já vi isso várias
vezes para o ID do modelo, você não pode conter caracteres
maiúsculos. E então, em vez de
chamar o ID do modelo aqui, vamos dizer mais ID. Então agora tudo aqui
está bem e elegante. Então, isso é realmente
tudo o que precisamos fazer na aula de matemática do curso RMC. Agora vamos entrar no exemplo mixagem porque
vamos receber um erro aqui, porque isso ainda está
tentando usar o modo de exemplo. Não se preocupe,
vamos dizer curso MC. Você pode ver
assim que eu digitá-lo, ele realmente é
sugerido para nós. Então eu posso preencher
isso automaticamente com a guia
e, em seguida, vamos abrir a
importação aqui e você pode ver que eles realmente recebem
um erro aqui também. Podemos simplesmente excluir
essa importação e , em seguida, todas as setas
aqui devem desaparecer. Bem, então vamos navegar para
a maior propriedade novamente. E aqui temos
a versão mod. Eu recomendo vivamente o que você
deve fazer é colocar a versão micro
na frente ou na parte de trás. Então você pode, por exemplo,
dizer que algo assim é a versão de 0.01 dash 118. Então o usuário
é, sabe, ok, esta é a versão
0.01 para o seu MOD. E então, para a micro versão 118, eles podem até mesmo grupo, é
claro, será apenas net.com row dot IMC force e, em
seguida, o nome da base do arquivo. Na verdade, não sei o quão
importante isso é, mas isso
será apenas para nós, verso de
tecido 2018, certo? E agora isso foi modificado. Tudo bem. E agora precisamos
modificar outra coisa, e isso está na
pasta de recursos aqui. Então abra isso e
você pode ver que ele realmente é um ícone de ID do modelo. Na verdade, podemos excluir isso. Não precisamos disso
no momento. E há um
tecido mais arquivo JS e uma ilustração
mista de ID de modelo. Primeiro de tudo,
vamos entrar na moderação
do tecido. E aqui temos que
especificar muitas coisas. A primeira coisa que
precisamos fazer é mudar a ideia de
modo aqui, é
claro, para o curso MC. Este é o modelo que
escolhemos aqui, certo? Então, isso tem que ser exatamente
o mesmo em todos os lugares. E então o nome de Ahmad,
vou escolher mod de tecido de curso
MC. Tudo bem. Também podemos adicionar uma
descrição aqui. Assim, podemos, por exemplo,
dizer mod, ensinar aos outros. Tecido manhã,
tecido, microfônico. Claro, autores pagãos
é um curso de sala de aula. Mais uma vez, coloque
em seu próprio nome. Agora eu, eu não sou o
autor do seu modelo, e então você tem algum contato, por exemplo, eu posso mudar isso para chegar à rede
e depois fontes. Provavelmente vou mudar isso um pouco porque é
claro que
agora não temos um repositório do
GitHub ainda,
mas, claro, faremos isso
nesta palestra também. A licença que vou escolher, a licença
do MIT que
eu pessoalmente acho que é o melhor formato
geralmente é apenas, você sabe, ainda é de código aberto do que o ponto de entrada aqui. Temos que mudar isso
tão bem quanto você pode ver, isso é contagem líquida
e rho nada Mc curso e, em seguida, não exemplo
mais sobre o mod do curso MC. Muito importante mais uma vez,
que você mudou isso. Exatamente como você
tem isso aqui. Você pode ver o curso MC net out
e linha, modelo de curso
MC.
Isso é muito importante. mesmo com os mixins. Alteramos o
ID do modelo aqui para o curso MC. E agora tudo aqui foi feito no Icahn não
funciona no momento. É claro que também podemos
adicionar um novo ícone aqui. Não vamos fazer isso
por enquanto. Então vamos abrir quanto mais
eu os mixins, Jason. E o que você pode
ver é o número um, o que queremos é clicar com o botão direito do mouse em
Refatorar Renomear e, em seguida, alterar o
ID do modelo aqui para o curso MC. E então o pacote
aqui que você pode ver também tem que ser alterado. O contador líquido Joe no
curso MC, misturando, tudo bem. Então o exemplo de mistura
aqui também está bom. Este é apenas um exemplo
dos mixins reais. Vamos dar uma
olhada nisso da forma mais tarde palestra porque mix-ins
podem ser bastante complicados. Então, por enquanto, vamos
basicamente ignorar a coisa toda aqui.
O mesmo com este. Vamos
ignorá-lo e dizer que está tudo bem. Mas agora, na verdade, todas as modificações que
precisamos fazer foram feitas. Especificamos o ID do MOD do curso
RMC, trocamos o nome aqui, mudamos as coisas
no mod de tecido Jason, muito importante, você não
muda o nome deste Jason. Você só muda o nome
deste Jason também tem uma coisa
muito importante. E agora ainda
temos os elefantes. Então, vamos clicar nisso mais
uma vez e vamos ver tudo feito
em 940 milissegundos. Isso é muito rápido. E como podemos começar
no Minecraft
será ir para o topo direito
aqui para o Gradle,
expandir a malha de tarefas
e, em seguida, executar o cliente, a menos que
você veja clique duas vezes nisso. E então, no futuro, você terá isso aqui em cima. E então você
também terá uma espécie de,
apenas um botão de reprodução que
você pode basicamente clicar. E
isso também vai funcionar. Mas, por enquanto, vamos
esperar algumas coisas. Esta seta aqui é
absolutamente normal porque estamos em um ambiente de
desenvolvimento, não
fizemos
login no Minecraft, portanto,
vamos receber esse erro. Isso é totalmente bom. E o Minecraft já
terá começado com sorte, e você pode realmente ouvi-lo. Na verdade, vou
recusar a música porque isso às vezes pode
ser um pouco distrativo. E lá vai você. Então o
tecido está realmente dentro, podemos ver o modelo de tecido
também funciona totalmente bem. Quando isso acontece,
você realmente acabou, configuramos o ambiente de
desenvolvimento. Vamos realmente sair do jogo. E vamos fazer mais duas coisas. Número um, o que eu quero que
você faça é que você também clique nestas
fontes Jen aqui. Então, basta clicar duas vezes nisso. Isso gerará os arquivos de origem
para
o Minecraft e o tecido, apenas para que possamos dar uma
olhada neles com mais detalhes. Basicamente, vou mostrar
o que isso significa em basicamente as
futuras palestras será muito importante
que tenhamos acesso aos arquivos fonte
do
Minecraft e para o tecido. Porque há muitos
ótimos exemplos sobre como fazer
as coisas lá também. Agora isso vai
demorar um pouco mais, mas não se preocupe, apenas seja paciente, espere por isso e depois veremos depois que tudo
foi feito, lá vai você. Então, quase um minuto e
depois as fontes da Jen estão acabadas. Você também pode clicar em
baixar ativos Apenas no caso Às vezes
você precisar fazer isso. Às vezes você não. Às vezes, os ativos, geralmente eles
já devem ser baixados, mas pode haver
alguns problemas lá. E depois de fazer isso,
você pode fechá-lo e, em seguida, certifique-se de selecionar
o cliente Executar aqui. Você também pode selecionar o cliente
Minecraft aqui. Você pode selecionar qualquer um deles ou geralmente escolhe este. E então você pode basicamente
iniciar microfones novamente com este
botão Executar aqui. Agora, tudo
foi configurado. Então, agora vamos passar
para como adicionar o repositório do GitHub. Sugiro não
pular esta etapa criando um repositório do GitHub porque se no futuro você
tiver um problema, estou apenas me fornecendo seu repositório do
GitHub, por
exemplo, um log de
erros e digamos Ei, isso não funcionou, vai tornar minha
vida e sua vida muito mais fáceis porque
eu vou ser capaz de
responder o caminho mais rápido a um problema ou a uma pergunta
que você possa ter. Então, como fazemos isso? Bem, antes de tudo, você
precisa ter uma conta do GitHub. Eu recomendo
fazer um no GitHub. É totalmente gratuito.
É muito bom. É um site usado por
quase qualquer pessoa que codifica. Existem alguns
outros, mas eu
recomendo apenas criar
uma conta do GitHub. Uma vez feito isso,
você pode voltar
para a
inteligência aqui e ir para o VCS e depois dizer projeto de
compartilhamento no GitHub que
precisamos escolher um nome. Estou bem com o
curso de tecido traço mês 18, tudo bem. Vou optar por
tornar isso privado. Você não precisa necessariamente. origem remota também está boa. Não vou adicionar
uma descrição
agora . Vou dizer Share. Agora você pode ver a Conta não
pode estar vazia, Justa o suficiente. Então, vou adicionar
uma contagem e você pode ver o login via GitHub. Eu só vou
pressionar isso e ele
abrirá esta conta da
JetBrains. Vou dizer autorizado
no GitHub e então você pode ver que foi autorizado com sucesso porque já estou
trancado aqui. Agora vou
aqui e você pode ver github.com cortar a
linha de algodão e depois dizer compartilhar. Agora, na parte inferior aqui, você pode ver que está começando a fazer coisas. E então aqui,
basicamente, sugere ódio. O que você quer empurrar? Tipo? A ideia é que temos
duas coisas diferentes. Você tem um commit e um empurrão, e muitas coisas
ficarão vermelhas. Então, os arquivos ficarão vermelhos
e diremos confirmação inicial. Vamos dizer Add. E então ele continuará fazendo coisas aqui
no canto inferior direito. E você pode ver o projeto de
compartilhamento com sucesso no GitHub. Acredito que posso clicar
nisso e lá vai você. Então agora, na verdade, o curso de
cavalos obter um repositório foi criado sob colunas curso de
malha de barra de linha 118. E isso também
estará disponível para você. Então, em cada uma das palestras, você basicamente encontrará um link para o ramo para essa palestra em
particular, para que você possa sempre dar
uma olhada na
comparação de código e garantir que tudo você
fez está correto, assim como temos aqui. Também recomendo muito, especialmente quando
entramos nos tópicos mais complexos, vou começar a copiar muito mais
do código porque não
é divertido ver alguém
escrever 300 linhas de código. E então, basicamente, apenas olhando ,
assistindo alguém, certo, que não é realmente
muito interessante. É muito melhor para mim copiar algumas coisas e depois
explicar o que está escrito. Na verdade, é
assim que a configuração
para o
repositório do GitHub aqui é fácil . Uma vez feito isso, você pode ver na parte inferior aqui que agora tenho o branch master e se eu
fosse mudar alguma coisa, então eu vou
, por exemplo, adicionar um Hammond, os
comentários, certo? Você pode ver que o
arquivo fica azul. Isso significa que ocorreu uma
mudança. Como posso marcar isso agora? Bem, eu posso ir a
este tablet de commit aqui e apenas dizer, sim, todas as mudanças antigas, certo? Eu queria,
queria marcá-los. E então vou
dizer que adicionou um comentário. Então o que eu quero fazer
é eu vou me comprometer. Agora, essa mudança
foi confirmada. Se eu voltar para a janela do
projeto, você pode ver que ela não está mais azul, mas ainda não está on-line. Porque o que eu preciso
fazer é que eu preciso
ir aqui para este botão, para a seta que aponta
para o toque superior direito. E então diz
Master origin master. Isso basicamente significa que
você vai empurrar as alterações que você
fez em sua máquina local. Que a origem e a
origem são basicamente on-line e lá para o branch
master, empurre. E você pode ver
espero que o que pode acontecer é empurrado um commit
para o origin master. E se eu agora voltar
aqui e recarregar isso, você pode ver que um comentário adicionado
acabou de ser confirmado. Se eu não quiser
entrar em muitos detalhes sobre como o Git funciona
e tudo isso. No entanto, é muito importante que basicamente
você configure isso. Eu recomendo isso. Não posso recomendar isso mais. Obter ajuda de mim
ou de qualquer uma ou mesmo de outras pessoas
facilitará muito se você tiver um repositório do GitHub
que possa compartilhar. Então, por favor, faça isso e também
é muito importante que todos
esses arquivos estejam lá. Você tem que ter
o arquivo Gradle w, você tem que ter o arquivo Gradle do
construtor, as propriedades do Grail, todas essas coisas precisam estar lá. Muito, muito importante, certo? Mas seja qual for o caso, isso já é
para esta palestra. Eu entendo que isso é
bastante extenso. Fizemos muitas coisas, mas se o Minecraft funcionar agora, parabéns, você
começou a estar atento ao luto. Vai ser uma jornada louca e
legal ao longo do caminho. E tenho certeza de que você
aprenderá muito. Se em algum momento você encontrar
algum problema, é claro, sinta-se à vontade para usar as
perguntas e respostas para fazer uma pergunta. Caso contrário, eu também
recomendo verificar
tudo novamente para erros
ortográficos e
garantir que você tenha feito
tudo como eu fiz. E então espero
que tudo funcione. Mas é isso para esta
palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Vejo você
na próxima palestra.
39. (Noções de básico) Crie um item personalizado: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos adicionar
nosso próprio item personalizado. Então, isso é muito emocionante. Estamos começando com a
adição de itens porque eles são um pouco
mais fáceis do que adicionar blocos. Mas vamos começar.
O que temos que fazer? Bem, dentro do nosso pacote de cursos
MC, vamos clicar com o botão direito do mouse em
novo pacote na verdade. Que item para que a estrutura do
pacote em geral seja altamente subjetiva
e possa mudar. É basicamente uma organização
individual. Como você quer organizar isso, você pode selecionar isso
basicamente como quiser. Eu recomendo ficar
com algo que você gosta. Basicamente, você e
se você tem uma equipe, sua equipe, desde
que você possa encontrar tudo, tudo bem. Vou ficar
com basicamente como
faço isso para inserir
o pacote de itens. Vamos clicar com o botão direito do mouse em
nova classe Java chamada mais itens. Portanto, esta é uma nova classe
aqui e essa janela aparecerá se você tiver o
repositório do GitHub inicializado. Então, basicamente, isso
está no arquivo do GitHub e geralmente o que você
quer é dizer Sim, Adicionar, e então ele
ficará verde. Então, este é basicamente um
novo arquivo foi adicionado. Se você não configurou
um repositório do GitHub, isso não aparecerá e está
tudo bem também. Então, para adicionar um novo item, precisamos registrá-lo. Agora, há duas coisas
que precisamos fazer. Precisamos ter um boyd estático
público ou registrar mais itens método. E isso só vai
dizer linha de impressão do sistema. E isso vai dizer
algo como registrar,
registrar itens para itens modificados, itens mod ou mais mod de
curso MC essa melodia. Portanto, isso será
chamado de lado INSEAD do nosso método não inicializado para inicializar os itens estáticos
que temos nesta classe. Isso é realmente
estritamente necessário porque caso contrário, os itens
não serão registrados corretamente basicamente. E então teremos um item estático
privado
ou um item de registro, registraremos o item com um
nome de string e um item, Item. Agora você verá
que este item está vermelho aqui, não se preocupe. O que você pode fazer é clicar nisso, pressionar Alt e Enter para
importar o
item líquido do Minecraft, classe de item. Como você pode ver, ainda estamos recebendo um erro aqui porque
é claro que temos que devolver um item que não é nada
preocupante. O que vamos fazer
é devolver o registro,
não registrar com o item de ponto do
registro tudo em AMA maiúscula, novo identificador da
rede Minecraft util, curso
MC MOD que
nome do ID do modelo. E depois do primeiro item de vírgula
entre parênteses. Mais uma vez, os kras
de registro ainda não estão sendo importados, então clique em tudo isso em dois importantes no registro do Minecraft
UTI, registro. E essa chamada basicamente
registrará o item
em nosso namespace que está sob nosso ID de modelo com o nome dado aqui como
o primeiro parâmetro. E será esse item. Portanto, esse é basicamente
um método
auxiliar para nos ajudar a registrar nossos itens. E que tipo de itens
vamos fazer? Bem, vamos
fazer ou recalcá-los. Bem, isso já é
cálcio em bens e pepitas e cru
ou recalc eles. E depois, a Oracle pode
bloquear e todo esse jazz. Então, como fazemos um item? Então, vamos dizer final estática
pública. Então, isso é mais uma vez
apenas coisas básicas, certo? Então essa estática, para que não
tenhamos que criar uma nova classe
mais itens. E, em seguida, final para que não
possamos mudá-lo depois. E este vai
ser o
sublinhado da renda recalc em inglês. E isso será
igual ao item de registro. Você pode ver que eu
já estou recebendo isso e, em seguida, o primeiro é
uma string. Esse nome aqui
gerará automaticamente. Você não
precisa digitar isso. Amplie um pouco. Você
pode ver que isso parece um pouco diferente do
que eu tenho escrito. Portanto, isso gera automaticamente, você não
precisa digitar isso. E este é um oráculo vem sublinhado lingote e depois vírgula, e depois um novo item. Então você já
receberá algumas sugestões c, Queremos um item normal aqui, novo item com os novos itens de
malha, configurações, esse grupo, item, grupo
que Misc, escreva este. E então, no final
aqui, um ponto e vírgula. Essa é a coisa toda
para criar um novo item aqui. Nesse caso, estamos
basicamente fazendo um novo item, o nome ou o cálcio inglês. O oráculo entra, chegue aqui. Este é o nome da
variável, é claro, e isso sempre deve ser
escrito em caps lock e também sublinha pontuações de
limite separadas basicamente. E tudo isso tem
que ser minúsculas, assim como o ID do modelo. Então, o nome aqui, a string
aqui, sempre em minúsculas. E geralmente
recomendo ficar com uma
maneira de escrever isso. Basicamente, ter o sublinhado
aqui é bom, certo? Em Novo Item requer configurações de
item e você
pode ver que acabamos chamá-lo de método de grupo e o
entregamos ao ponto do
grupo de itens diversos, que este item seja realmente adicionado ao
grupo variado. E eu posso realmente colocar um ponto
aqui também depois. E isso colocou mais
coisas para isso. Você tem um pouco
mais de conhecimento Java. Este é um
padrão de construtor e você pode ver que eu posso realmente fazer
algumas coisas aqui, uma mudança, algumas
coisas por enquanto. Nós só vamos continuar
com a seleção basicamente do grupo para ser
diversificado em grupo. E isso é praticamente isso. Vamos ficar com
isso por enquanto. Mas, no final
da palestra, vamos fazer outro item apenas para que
você veja como isso funciona. o qual algumas pessoas ficaram
um pouco confusas. Como adiciono um segundo
item para ter que criar uma nova
classe de itens de modo, Não, Não se preocupe. Nós vamos basicamente passar por
isso em nossa classe de mod de curso MC
no método inicializado, onde agora vamos
chamar mais itens
que registram itens do modo. E podemos excluir
as informações do registrador. Isso vai ficar bem. E agora precisamos nos aventurar
na pasta de ativos e
basicamente criar os arquivos JSON. Bem, os arquivos JSON são
algo que é, quero dizer, eu não diria
necessariamente irritante, mas pode ficar muito
chato porque para cada bloco e para
cada item que você adicionar, você terá que adicionar
esses Arquivos JSON. Vamos examinar os arquivos JSON
do item aqui. E, em seguida, a próxima palestra quando
falamos sobre blocos, também vamos
passar por eles também, então não se preocupe. Então, na pasta ativos, clique com o botão direito do mouse em novo diretório
chamado curso MC. Portanto, esse tem que ser seu ID de MOD. Certifique-se de que isso
esteja escrito corretamente. Tudo aqui que estou fazendo agora precisa ser
escrito corretamente. Caso contrário, não funcionará. Diga isso mais uma vez. Certifique-se de
que a
estrutura de pastas esteja escrita corretamente. Verifique isso oito vezes, realmente,
quero dizer, curso MC, clique com o botão direito do mouse em novo
diretório chamado lang. Portanto, este é o primeiro diretório
que vamos precisar. E depois há
outro chamado modelos. E depois há mais um
que vamos precisar, que são as texturas. Mas muito importante, modelos Lang com um S no final e
texturas com um ácido no final. A pasta de modelos também
terá dois diretórios,
um chamado quebrou. Isso é singular. E então o que posso fazer é pegar essa pasta e quando pressiono Control e
arrastá-la para a mesma pasta, posso fazer uma cópia dela
e apenas significar esse item. Agora vamos pegar os dois
e realmente fazer
uma cópia deles para a pasta de texturas, porque vamos
precisar de um bloco, uma pasta de itens lá também. Mas é neste momento
como isso deve se parecer. Certifique-se de que tudo esteja
no lugar correto para que nada parecido com a pasta de modelos esteja dentro da pasta de ativos. Tudo tem que ser assim. Recursos, ativos, modelos de cursos
MC, texturas
M, C corps, MCQs, Lang. Agora, dentro da pasta leg, vamos clicar com o botão direito do mouse em
Novo arquivo e nos sublinhar Grayson
dot dot dot it
Enter e, mais uma vez, é
claro,
adicioná-lo ao
repositório do GitHub , se você tiver um. E agora este é o arquivo de
tradução. Então, isso vai traduzir o nome dos itens em
diferentes idiomas. Agora, para nossos propósitos, só
vamos usar
e nos sublinhar, Jason, porque só queremos traduzir isso para
a versão em inglês. No entanto, você pode descobrir
facilmente os outros tipos de
idiomas que são suportados e, em seguida,
traduzir para eles também. Precisamos fazer é que
precisamos colocar colchetes
encaracolados aqui
e depois uma corda. Então este será o
item que o curso MC, esse lingote de sublinhado recalc e, em seguida, um cólon ou
um escore de cálcio, um
espaço sem sublinhado nulo nele. Lá vai você. Então este ano é o nome
não traduzido. Basicamente, esta é
a chave de tradução. Você pode pensar
nisso como este item
porque este é um item
porque o curso MC, porque esse é o nosso ID do modelo. E então o lingote de silício
aqui é o nome dado na
classe de itens mod aqui. Mas essa é a ideia geral. E essa coisa
vai seguir basicamente para quase qualquer
outra coisa também, os blocos, coisas diferentes. Então, sim, esse é então
o nome traduzido. Portanto, esse é o nome que você verá quando
passar o mouse sobre o item real
no inventário,
logo abaixo do item de modelos, clique com o botão direito
do mouse, novo arquivo ou pré-cálculo, sublinha lingote que
Jason é importante assim e também certifica de que isso
está escrito corretamente. Agora, o Malcom pode
ser uma palavra difícil, então verifique
se está escrito corretamente. Ele entra e eu
vou mostrar isso uma vez, basicamente escrevendo isso. Normalmente não escrevo isso porque não há necessidade de fazer isso. A maioria dos
arquivos JSON será a mesma em geral. Basicamente, o que você
vai ter para ter colchetes
encaracolados e, em
seguida, um cólon pai, texturas de
vírgula geradas por barra de
item, dois pontos, colchetes iniciais,
camada 0, Olin, núcleos MC. Então seu lema De todos um item, flash ou Malcolm ou recalc
m sublinha inglês. O que está acontecendo? Bem, o pai simplesmente
garante que isso seja exibido como um item normal
dentro do seu inventário. Em seguida, as
texturas simplesmente fornecem texturas para este item
específico mais tarde, 0 significa simplesmente, ei,
vamos usar apenas uma camada. Não precisamos nos
preocupar muito com isso, mas é assim que isso basicamente
terá que ser escrito. E, em seguida, isso especifica a localização dentro da
pasta de texturas. Vamos ver
um mergulho profundo nos arquivos
JSON após a palestra em
bloco também. Às vezes, sinto
que é bom estabelecer uma
espécie de
base geral primeiro. Então, basicamente, fazendo
os itens
terminarem os blocos e depois falar sobre cada um dos arquivos JSON
individuais em uma palestra posterior também. Isso também vai acontecer
, certo? Então, como este é lodo de item, lingote de
silício, isso tem que ir, a textura não foi para
as texturas do curso MC na pasta
do item e tem
que ser nomeado Henri lingote de cálcio ponto PNG. Então, claro, já tenho
isso preparado. Só vou copiar
isso ou um PNG, certo? E, claro, adicionado
ao repositório do GitHub. E, claro, tudo isso está
disponível para você no pulso. O repositório do GitHub
e os extras
também estão disponíveis
para você baixar como um arquivo zip. Se houver vários e se forem apenas solteiros, provavelmente
também serão texturas únicas. Agora, isso é realmente
tudo o que precisamos para adicionar o item
corretamente ao nosso MOD. Então, agora podemos realmente começar o jogo e
ver se ele funciona. Certifique-se de que você
selecionou executar o cliente onde o cliente Minecraft
aqui, qualquer um está bem. E então pressionando o botão
Executar, Executar lá. E então é apenas uma questão
de esperar até que ele comece. Tudo bem, então
nos encontramos no Minecraft aqui. Apenas certifique-se de que seu
próprio criativo, é claro, que possamos basicamente
ver facilmente
se ele está funcionando ou não. E vamos ver quando
estivermos no jogo para isso. Então, aqui estamos no jogo
e vamos ver. Então, vamos para a aba
diversos e vamos na parte
inferior aqui. Aí está ele. O cálcio já está em bom, absolutamente incrível. E eu adoro a
textura também. Portanto, para toda a transparência, a
propósito, as texturas, você pode realmente
usá-las, no entanto, elas estão sob uma licença
específica. Vou mostrar
em apenas um segundo, mas isso é
realmente muito legal que você vá, o item foi
adicionado com sucesso, mas aqui estamos
o aviso de créditos, então isso é muito importante. Todas as texturas foram feitas por nano ataque e
são distribuídas sob a licença internacional
zero zero de quatro pontos CC BY SA. Certifique-se de seguir isso. Se você quiser usá-los
em seu próprio repositório, basta adicionar esse arquivo a ele. Tenho certeza de que
isso vai ficar bem, mas certifique-se de que isso seja feito. Caso contrário, você está realmente
infringindo direitos autorais. Então eu só queria
ter certeza de que este é o caso. Caso contrário, as texturas
aqui são realmente ótimas e você pode usá-las. Não se preocupe nada. Apenas para
mostrar imediatamente como você pode adicionar um segundo item aqui, basicamente
vamos copiar isso, então vou selecionar
tudo isso e pressionar Control D para duplicá-lo. E então o que
vamos fazer é você ver que só precisa mudar
isso um pouco. Temos que mudar o
nome aqui, é claro, para pepita de cálcio oral. E então embaixo aqui
também pepita. E agora o segundo item
já está no jogo do seu curso também precisa
ter um novo modelo de item. Então, o que vamos fazer
é copiar
este, apenas arrastando-o
para a mesma pasta enquanto
seguramos este, apenas arrastando-o o Control, certo? Então, algo
assim. E então podemos renomear isso
imediatamente
para Oracle com nugget. Certo? E então dentro daqui também, para
uma pepita de cálcio, então vamos pegar
a pepita de cálcio, extra robusta aqui também. Tudo bem. E então,
na EN, nos sublinham o arquivo Jason,
vamos copiar isso. Então, basicamente, o que eu
fiz é que eu apenas, você sabe, pressione Control C, Control C,
Control V, Control V para
colá-lo várias vezes que tudo aqui
funcione e a pepita, e então aqui,
é claro, também pepita. E agora isso é realmente tudo o
que precisamos fazer para adicionar um segundo item e cada novo
item é basicamente o mesmo. É apenas outro item final estático
público aqui com um novo nome. Então isso é muito
importante que isso sempre tenha um nome único. Se houver nomes
que são basicamente usados várias vezes,
isso não funcionará. Então, apenas por causa de conclusão,
vamos ver se funciona. Tudo bem, amigos têm
preto no Minecraft. Então, vamos para a
aba diversos e vamos ver,
lá está, o
oráculo vem e bate. Ele também foi
adicionado ao jogo. Então, tudo funcionou perfeitamente. Isso não é ótimo, certo? E é isso para esta
palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Todo o código para
você está, naturalmente disponível no repositório do
GitHub ou em indivíduos
também, linkedin e recursos. Então, verei você
na próxima palestra. Então, sim.
40. (Noções básicas de se tornar uma barra personalizada: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos
procurar adicionar blocos
personalizados ao Minecraft. Ou blocos personalizados são semelhantes
à adição de itens personalizados, no entanto, eles exigem mais
alguns arquivos JSON. Mas antes de tudo, é claro, precisamos codificá-los. Então, dentro do nosso pacote de cursos
MC, clique com o botão direito do mouse em novo
pacote chamado bloco E então, dentro de lá,
vamos criar uma nova classe Java
chamada MOD blocks. Agora, isso exigirá mais uma vez o vazio estático público chamado
método de blocos de modo que irá apenas produzir
basicamente algo como registrar monólogos
ou mod de curso MC, mod ID que somos
vai ter que ligar para a aula simulada do
curso MC. Mas isso também exigirá, vou criar dois métodos auxiliares
diferentes aqui. O primeiro será o item estático privado
chamado item de bloco de registro. Agora, a razão pela qual
vou fazer isso é porque quando criamos um bloco no item não é criado para ele e, na verdade, temos que
criar um item para ele. Portanto, o primeiro parâmetro
é o nome da string, então bloco, bloco e,
em seguida, grupo de itens, grupo. E então também vamos tudo
aqui vermelho, totalmente bem. Clique nele e
insira para importá-lo, alterado e insira o importante, muito importante que importamos
a classe de bloco correta. Você pode ver o
bloco Minecraft líquido, muito importante. E então o
grupo de itens, a mesma coisa, apenas Alt e Enter. E então isso vai
ser importante. E então aqui
vamos retornar registro de pontos do registro, item de ponto do registro com
um novo identificador, MOD do curso
MC que o nome do ID do mod. E, mais uma vez, após
os primeiros parênteses vírgula novo item de bloco, este item de bloqueio de tempo. direita pode pressionar a tecla Tab para basicamente preencher isso automaticamente, passando o
parâmetro de bloco aqui. E, mais uma vez, novas configurações
de itens de malha. Mais uma vez, basta
preencher automaticamente com a aba. Há grupo e, em seguida,
passar o parâmetro group. E então os três
parênteses e , em seguida, um ponto-e-vírgula para terminar a linha e eles você vai o
método do item de bloco de registro está completamente concluído. E então teremos
um método que basicamente chama isso. Então, para o bloco,
temos que registrar um item de bloco e,
claro, também o bloco. Portanto, temos um bloco
estático privado ou o método de bloco de registro, que será
um bloco de nome de string,
bloco e, claro, grupo de
itens, grupo. E a primeira coisa
que ele vai fazer
é chamar
o método de registro de
item de bloco com o
bloco de nome e o grupo. E então a segunda linha
aqui será
retornada mais uma vez, registrando esse
registro. Desta vez, o registro que bloqueia. O bloco aqui
com um novo identificador. Identificador MC,
mod do curso, nome do ID do mod. E depois que os primeiros
parênteses novamente bloqueiam. Então, assim, o
código aqui é claro, também disponível para você. Você pode dar uma olhada
no repositório do GitHub ou no também. Na ideia aqui
é que, para cada bloco, basicamente
vamos
chamar o método do
bloco de registro para que possamos ter
imediatamente um item registrado
para isso também. E então o que
vamos fazer é fazer um novo bloco aqui, passar por tudo, dar uma olhada se funciona
ou não. E depois que o primeiro
bloco foi adicionado, onde eles também
adicionarão um segundo bloco. Portanto, bloco final público, bloco final ou bloco de sublinhado de Malcolm de 40k, que é igual ao
bloco de registro com o nome mais uma vez, claro, recalc vem bloco
sublinhado ou
escrito em minúsculas. E esse nome aqui mais uma vez
gera automaticamente. E vamos
fazer um novo bloco. Você é apenas um bloco normal. Com esse tempo as configurações de tecido
rock, você pode ver isso. Então, isso basicamente
copia um material aqui. Isso vai ser material,
na verdade, material conhecido. E então vamos dizer
que, na verdade, o bloco, agora o bloco
realmente terá metal para meu não tanto material metal. E, mais uma vez,
pontue e você pode ver todas
as configurações diferentes que podemos definir. Há muitos deles, como você pode ver claramente, alguns
deles têm que atacar. Então, por exemplo, você
sabe, quebrar a ferramenta de BI. Você pode ver que se eu
realmente adicionasse a tag de ferramenta aqui, e você pode ver que
isso realmente é um golpe vermelho também. Portanto, não podemos usar esse. Portanto, aqueles que
têm
avanços não devem usar os
outros que podemos usar. Não se preocupe. Então, por exemplo, algo como essa
força pode ser usado, que é basicamente a
dureza e a resistência. Basicamente, quanto tempo
leva para quebrar esse bloco. Sempre queremos chamar o
método de ferramenta requerido para cada bloco. Basicamente, é muito importante. Depois de termos o bloco, também
temos que passar
no grupo de itens. Então, grupo de itens diversos
aqui, neste caso. Mas, basicamente,
na próxima palestra, também
veremos como adicionar nosso próprio grupo de itens personalizados. É por isso que isso é muito
importante que tenhamos isso como um possível perímetro aqui só vai tornar nossa
vida um pouco mais fácil. Neste momento, este é realmente
o bloco definido. Vamos para a nossa
aula de curso MC e vamos aqui. Então, esses serão
os blocos do modo de registro de
pontos de blocos. Certifique-se de que isso seja
chamado após os itens. Esta é apenas a ordem em
que eu gosto de fazer isso. Eu não acho especificamente que isso seja sempre necessário, mas só faz sentido. Às vezes, o pedido aqui é muito importante por enquanto. Nós só vamos
ficar com isso. E vamos, na verdade,
primeiro abrir D em sublinhar-nos arquivo JSON. E vamos ver. Então, qual
seria o bloco? Bem, isso é, na verdade,
bastante simples. Curso AMC de ponto de bloco que
recalc bloco de sublinhado. E então, é claro,
mais uma vez, o nome traduzido ou o bloco Malcolm aqui. Então isso, é claro, agora começa com um bloco e
que o Oracle pode bloquear aqui é mais uma vez apenas o nome dado nos
blocos de lama. Agora, os arquivos JSON
são um pouco diferentes porque
realmente precisamos de uma nova pasta. Então, dentro dos ativos
e de uma armada D,
no nosso caso, curso MC, clique com o botão direito do mouse em novo diretório
chamado Estados do bloco. Também é muito importante que
isso esteja escrito corretamente. E então lá vamos
precisar de um novo arquivo chamado bloco de sublinhado recalc, o adjacente o ego. E vou mais uma vez fazer isso uma vez manualmente
e depois vou explicar. Então, precisamos de colchetes encaracolados
e, em seguida, vamos precisar de uma variação. Certifique-se de que isso
esteja escrito corretamente, tudo em colchetes crespos novamente. E então
aspas vazias, colchetes encaracolados, modelo, Olin, curso MC, bloco caído ou uma vaca vêm
bloco sublinhado, certo? Então, exatamente assim. Agora esta é uma situação de
bloco muito interessante. Como eu disse, vamos
ver isso em uma palestra futura. Vou analisar o que cada um
desses JSON realmente significa. A ideia geral é que, bem, existem variantes diferentes
que podemos definir. Atualmente,
não temos nada a encontrar porque nosso bloco não tem nenhuma propriedade de estado de
bloco. Portanto, existem propriedades
diferentes que podemos definir posteriormente, o que é algo
que veremos
na seção intermediária do curso. E então podemos apontar
para modelos diferentes. Então, para o nosso caso,
precisamos de um modelo sob o bloco chamado mais antigo
ou um bloco de cálcio. Então, dentro da pasta de
modelos Block, clique com o botão direito do mouse em novo arquivo para um sublinhado de cálcio
blog.js, JSON. E o modelo de bloco
tem a seguinte aparência. Isso será
semelhante ao modelo do item. Então colchetes encaracolados e
, em seguida, cubo de
barra de bloco pai sublinham
tudo
isso simplesmente, esse pai basicamente
diz, ei, as texturas
serão as mesmas ao redor. Então vamos
mais uma vez ter as texturas aqui. Registro de dois pontos. E então todo o bloco de cólon do curso
MC caído
ou um bloco de sublinhado de cálcio. Então você pode ver mais uma vez, temos uma textura e
essa será
a textura para todos os
seis lados do cubo, mas é por isso que é tudo cubo. E então isso está sob bloco ou desbloqueio do
curso MC. Este é mais uma vez o nome
do arquivo que temos que ter. Então isso é praticamente
tudo o que há para ele. E, na verdade, vamos
copiar isso também. Já tenho isso preparado. Você pode, é claro, também
obter isso como um download, mas por favor,
certifique-se de seguir a licença nos
créditos aqui. Portanto, todas as texturas são realmente licenciadas sob uma licença
específica. Portanto, certifique-se de
seguir isso também se você usar isso em um
ambiente público, certo? E, na verdade, também
precisamos de um modelo de item. Essa é a coisa
com os blocos. Na verdade, ele requer três arquivos JSON
diferentes, basicamente todos nomeados da mesma forma. Jason de um bloco 6, um modelo de bloco Jason e
um modelo de item Jason. Na verdade, não vou
copiar isso. Na verdade, vou
fazer um novo. Então, na pasta de modelos de itens, clique com o botão direito do mouse ou recalc vem
sublinhado loc Jason. E isso realmente
parece diferente
dos outros modelos de itens porque um modelo de item de bloco é
realmente diferente. Então, isso vai
ter colchetes encaracolados. E então ele terá cólon pai, bloqueio de curso
MC ou barra de desbloqueio,
ou um bloco de sublinhado de cálcio. Agora, isso aqui
se refere
ao modelo de bloco e
faz com que o item em vez do inventário
seja exibido dessa maneira 3D que blocos geralmente são
exibidos no inventário. Mas, mais uma vez, vamos
ver isso um pouco mais
detalhadamente em uma palestra posterior quando passarmos por
todos os arquivos JSON. Mas agora temos os
três arquivos JSON. Temos a textura e
a tradução feitas e quais blocos registram método
UX móvel também é chamado. Então, vamos ver se funciona. Tudo bem, estamos em Minecraft, então vamos aqui. O mais antigo que o
Oracle pode bloquear, e se eu configurá-lo
lá, também é. Então, tudo funciona
totalmente bem. Então eu queria mencionar
uma coisinha rápida. Existem basicamente duas seções em que você pode ter um problema. Ou a textura dentro
do mundo não funciona. Assim que eu definir o bloco para baixo, ele pode ter um ano de textura rosa de
extremidade preta, ou a textura dentro
do inventário não funciona. Há duas coisas diferentes
que podem estar acontecendo. Se a textura no
mundo não funcionar, é provável
que o
bloco permaneça em arquivo JSON. Isso é muito coxo. Se a textura no
inventário não funcionar, é o modelo do item
Jason, que é o culpado. E se ambos não funcionarem
bem, então podem,
pode ser qualquer um
desses motivos. Tão muito importante. Essa é basicamente a ideia
geral, certo? E só para que
seja mostrado como você pode adicionar um novo bloco basicamente
selecionarei isso e pressiono Control C e depois
Control V para colá-lo. E então vamos mudar
isso para Oracle ou aqui, e mais uma vez aqui
também, certo? O nome também é muito importante. O resto, se você quiser
mudar essas coisas que você
pode, é claro, mudá-las. Vamos, por exemplo,
dizer o volume ou na
verdade, não é forte. E também na verdade não é
metal ou realmente é metal. É mais como pedra. Isso também é totalmente bom. E isso, estou
muito feliz com isso. Agora, o bloco está no jogo, mas
ainda não tem textura e todo esse jazz. Mas precisamos basicamente também
adicionar um bloco C Jason para ele, um modelo de bloco JSON
e item milk Jason. Agora, o que
eu costumo fazer é pegar um dos Jason já existentes e simplesmente
copiá-lo assim, certo? Arraste-o enquanto
segura Control
e, em seguida, você pode
alterar o nome aqui. Então Oracle ou, e depois
o mesmo aqui também. Recalc OR e, em seguida, o mesmo para o modelo de bloco
também, certo? Em vez de o Oracle poder bloquear, teremos
pré-calc ou um ano. E então isso
apontará para o recall ou a textura em vez
da textura do bloco. E então a última
coisa será
o modelo do item também será renomeado ou aqui. E então aqui também. Geralmente é assim que eu
adiciono novos blocos, certo? Apenas copiando sobre um. O exemplo básico disso, então o mesmo aqui
no idioma, basta duplicar isso adicionar a vírgula aqui
e, em seguida, certificar-se de
que isso está ou, e ou tudo funcionando bem. Então também vou adicionar
a textura,
que, naturalmente, está disponível
para você ou para download também. O ego e agora o cálcio ou bloco
também são adicionados ao jogo. Então, apenas por causa de conclusão, vamos ver se funciona. Certo, estamos de volta ao Minecraft, então vamos apenas ir para
a
aba diversos e vamos ver lá que
já é cálcio ou
agora também no jogo, vamos apenas configurá-lo,
tudo funcionando totalmente bem. Esse também é um dos benefícios. Se você já tiver um bloco
funcional e copiar sobre
os arquivos JSON, geralmente quando ele
funciona para um bloco, espero que também
funcione para o outro
bloco. Então isso é mais uma vez,
muito legal, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Todo o código está disponível
para você nos recursos, e eu te vejo na
próxima palestra. Então, sim.
41. (Noções de itens personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos adicionar nosso próprio
grupo de itens personalizados ao Minecraft. Agora, este é realmente
um exercício muito fácil e não requer muita,
bem, basicamente
mudança de código. Dentro do nosso pacote de itens, vamos clicar com o botão direito do mouse em
nova classe Java chamada grupos de itens de modo. E então, dentro daqui,
vamos criar um novo grupo de itens
final estático público. Todo o curso. Portanto, esse é apenas o nome
da variável aqui, e isso é igual
ao item de tecido. construtor de grupo construiu
um novo identificador, mod de curso
MC que modelo ID AMA horse como o nome
de like como uma string. E depois dos
primeiros parênteses, faremos um fornecedor abrir e fechar
parênteses seguidos por essa seta aqui
com uma nova pilha de itens. E então vamos
passar mais itens ou um lingote de cálcio e depois
terminaremos com um ponto e vírgula. Portanto, esse agora é um grupo de itens. Se quiséssemos
adicionar um segundo, poderíamos simplesmente copiar isso. Apenas, eu sou um curso 2, acho que algo assim. Então, é claro, também mude
o nome aqui também, certo? Isso é muito importante, mas é
assim que você adicionaria um segundo e então você pode
apenas se referir a isso também. Mas, para nossos propósitos,
vamos adicionar um. E então, claro,
como chamamos isso? Bem, em vez da classe
mais blocos, podemos substituir o
item diversos aqui mais
grupos de itens nesse curso. E então a mesma
coisa vai bem aqui. Então eu vou apenas
copiar esse Controle C, Controle V. E então a
mesma coisa vale para mais itens
aqui serão chamados
de diversos. Nós só vamos passar no grupo
do curso aqui. E isso vai ficar bem. Além disso, basta remover isso também. Lá vai você. Então agora
tudo está bom e arrumado. E, claro, a pilha de
itens aqui, isso se refere à coisa
real que está sendo exibida na guia
real, certo? Então, agora será um item de boas-vindas ou um algodão Inglaterra
que está sendo exibido. Você poderia, por exemplo,
também dizer que se você quisesse que um bloco
de algodão fosse exibido, você também poderia colocar isso e isso também funcionaria também. Mas vamos
ficar com o lingote, isso vai ficar bem. E então este curso aqui
é realmente muito importante porque também queremos adicionar
a tradução para ele. Então, no ouvido e nos
sublinha o arquivo JSON, vamos apenas ir
para o fundo. Este
item será
muito interessante e, em seguida, agrupe o portão g. O g realmente
escrito em maiúsculas. Muito interessante com o seu curso
MOD ID MC no nosso caso. E então o curso é o nome
que demos lá. E esta será apenas
a guia Curso. Isso vai ficar bem. Este agora é o
nome que está sendo exibido quando passamos o
mouse sobre a guia. E mais uma vez,
este curso aqui, exatamente isso aqui. Então, agora depois de
adicionarmos isso e adicionarmos nos blocos
mais itens, classes, vamos ver se funciona ou se responde de volta no
Minecraft e vamos ver. Portanto, esta é uma indicação muito
boa se
tivermos uma segunda página
aqui, e lá vai você. A guia do
curso, a guia Curso e todos os nossos itens ou nossa
caixa estão lá. Mas isso é realmente ótimo
e podemos
tirá-los e usá-los como
quisermos. Então, isso é realmente muito legal. Mas no futuro, é claro, vamos usar
a guia Curso. Então, eu recomendo fazer
sua própria guia também. Então isso é basicamente um abusado
em todas as palestras futuras. Mas, por enquanto, é
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.
42. ASSINGMENT 5: blocos e itens personalizados: Bem-vindo à primeira tarefa aqui no
curso de tecido para 118. E sua tarefa
será
adicionar uma linha ou um
item de cálcio aos itens de modo. E, claro, todos os arquivos JSON necessários,
bem como as texturas também. As texturas
serão fornecidas a você. Por favor, note que eles
são licenciados sob voos
internacionais
CC BY SA 4. Então, se você quiser
usá-los em seu projeto, em um projeto aberto,
certifique-se de dar o
crédito adequado lá. E também, você
deve fazer dois blocos, uma fenda profunda ou um cálcio ou, e o roubo de
cálcio ou bloco. Então, mais uma vez, as
texturas são fornecidas sob a mesma licença. As texturas também são fornecidas e tudo também está
escrito nesta página, você deve ver a
tarefa escrita em algum lugar como uma tarefa
real. Eu tive que adivinhar que isso não
deveria demorar mais do que uma rodada,
cerca de 20 minutos. Talvez você tenha que
voltar e assistir às palestras anteriores mais uma vez. Basicamente
vamos solidificar isso. Mas, caso contrário, isso não
deve demorar muito. E eu diria, boa sorte e
te vejo na solução.
43. SOLUÇÃO 5: blocos personalizados e itens: Tudo bem, então vamos
dar uma olhada na solução para
adicionar as duas fechaduras, a gota ou cálcio ou
no registro de rocha pode bloquear. Então, é claro, é basicamente apenas um exercício de
copiar aqueles, alterar os nomes aqui e
garantir que estamos escolhendo a
força do grupo de itens aqui, é claro. E então, nos itens do modelo, adicionando o cálcio Rory, mais
uma vez, basta copiá-lo e mudar o nome aqui. E, claro, apenas os arquivos JSON são
bastante simples. Eles são basicamente iguais
aos outros, apenas apontando para um
modelo diferente neste caso. Todos eles estão, naturalmente, mais
uma vez disponíveis para você em alguma capacidade no repositório do
GitHub e também de forma apenas para que você possa dar uma olhada em cada um
deles individualmente. E acredito que também
os terei para download. Então, no geral, isso não
deve ser muito louco. Isso realmente deve ser um exercício bastante fácil
para você seguir. E espero que você
tenha gerenciado isso. Se alguma dúvida surgir ao longo do caminho ou
surgir ao longo do caminho, não
hesite em
fazer perguntas usando o sistema de perguntas
e respostas de discussão. Espero que você aprenda algo
com essa tarefa e eu te vejo
na próxima palestra. Então, sim.
44. (Noções de (Basics) adicione receitas personalizadas: Ou eu dou as boas-vindas de volta ao curso de
tecido para 118. Nesta palestra,
vamos
olhar para uma receita personalizada. Para receitas personalizadas em geral, você pode dizer: Bem,
elas provavelmente
serão muito complicadas. No entanto, esse
não é o caso. Algumas pessoas de vocês podem já
ter
brincado com
atos de dados no passado. E é praticamente
a mesma coisa. Então, vamos até nossa pasta de
recursos. E em vez de colocar
isso na pasta de ativos, na verdade, temos que
criar uma nova em vez da
pasta de recursos chamada data. E então, dentro de lá, vamos criar uma
nova pasta com nosso modelo. No nosso caso,
é claro, o curso MC. E então, dentro de lá, queremos criar
a pasta de receitas. Agora, mais uma vez, é muito
importante que tudo aqui esteja escrito
exatamente como está,
então isso tem que corresponder exatamente ao ID do
seu modelo e as receitas também precisam ser escritas
assim ou em minúsculas. Só queria mencionar
isso mais uma vez. E dentro daqui agora, todas as nossas receitas vão embora. Agora, como eles se parecem? Bem, vou
escrever uma receita. Você é apenas por uma questão
de argumento, no entanto, vou clicar com o botão direito do mouse Novo Arquivo e
vamos chamar isso Bloco de
sublinhado de renda oracle, sublinhado de index.js. E o que às vezes pode
acontecer é que na parte inferior aqui você pode ver receita
Jason Minecraft Jason, que basicamente o esquema
é detectado automaticamente, mas você também pode
entrar aqui, certo? Então, para alguns arquivos JSON, vou abrir este. Por exemplo, você não
vê nenhum esquema JSON. Você sempre pode entrar lá
com vermelho e clicar nisso e, basicamente, procurar
por uma receita e configurações. Você tem receita de dados de microondas. Então, há algumas coisas aqui. Você não precisa necessariamente disso. A única vantagem que você
vai obter é se você começar a digitar coisas em C que você
recebe algumas sugestões aqui. Mas em um momento
vou te mostrar como você pode realmente copiar
sobre receitas de baunilha, o que vai tornar toda nossa vida muito mais fácil. Portanto, não se preocupe lá. Então, começamos com os
suportes encaracolados e depois um tipo. Agora, o tipo é basicamente que
tipo de artesanato é isso. E você pode ver que
há um monte de coisas para esta cânfora
moldada, sem forma e
duradoura
cozinhar, fundir,
ferrar , fumar
e cortar pedra. No geral, o que
vamos dar uma olhada é basicamente a
forma, sem forma, a fundição e
a explosão sobre o resto são
praticamente iguais. Não há muita
diferença em todos eles. Primeiro de tudo,
vamos dar uma olhada em receitas de formas. Então, esta é uma receita de forma. Na verdade, precisamos
definir um padrão aqui, mas esse é o padrão
que é basicamente uma lista, e
geralmente contém três strings. E geralmente essas três cordas
têm o comprimento de três. Então, esses anéis representam
a mesa de artesanato. Então, se eu fizer isso, certo,
então eu preencho todos os,
todos eles com extras de todos eles com cinzas por uma
questão de discussão aqui, então o que você deve
notar é que, bem, isso é um três por três. Isso é literalmente
o banco de artesanato. E isso é exatamente
certo. Então, o padrão aqui representa o banco
de artesanato. Então, se eu fosse fazer
isso, por exemplo, então terei que preencher
o exterior e deixar o slot do meio basicamente vazio. E então, você sabe, você poderia fazer a mesma coisa
com algo assim. Então esse é um tipo geral de ideia sobre como você pode
fazer esse padrão. Agora você não
precisa necessariamente ter três cordas, e elas também não precisam
necessariamente ter o comprimento três. Então, algo assim, que seria a
porta, por exemplo. Porque você pode grafar
a porta no lado esquerdo
da mesa de artesanato, no lado direito
da mesa de artesanato. E isso basicamente
cuidaria disso. uma vez,
um pouco de experimentação é,
claro, muito inteligente. E também no
final da palestra, vamos dar uma
olhada nas receitas de baunilha para que
você também possa copiar delas. Então precisamos definir uma chave. Agora, a chave aqui é muito
interessante porque, claro, isso tem de alguma forma
relacionar algo, certo? O que faz o alarme Hashtag? Eu não sei exatamente. Então, temos que definir isso. Vamos fazer dois pontos de hashtag e, mais uma vez, colchetes
encaracolados. E dentro daqui,
vamos definir um item. É claro que isso será núcleos
MC ou um
sublinhado de cálcio nele. E isso agora significa que a hashtag aqui deve
ser esse item em particular. Mas também não seja muito louco, então podemos fazer um
resultado aqui no final. E esse será
o curso MC. Ou um bloco de sublinhado de cálcio. Por nada muito louco
deveria estar aqui. Isso tudo deve ser razoavelmente
sensato como vamos colocar
a boas-vindas do iRic
Ingrid aqui como uma chave. E então isso está basicamente
sendo reconhecido. Ei, temos que colocar nove ou cálcio Ingles para obter um ou um
bloqueador de cálcio como resultado. Agora, a pergunta entrará. E o contrário? Então, se eu colocar um Oracle pode bloquear no banco de artesanato, como faço para tirar nove ou um lingotes de
cálcio dele? Bem, eu só vou
copiar esse aqui. Todos os arquivos
recentes é claro, estarão
disponíveis para você. Então vamos dar
uma olhada nisso em C. Este agora é um tipo sem forma. Em vez de um padrão, agora
temos ingredientes. E você pode ver que temos, só temos um ingrediente aqui. O Oráculo pode bloquear
e se
transformaria em nove para cálcio Inglaterra. Assim, você também pode especificar uma
contagem aqui que, a propósito, também funciona para a receita
moldada também. Isso não é nenhum problema
lá. Então isso também funciona. Então, esses são dois
exemplos desses moldados na receita sem forma. Agora vamos realmente dar uma
olhada na fundição
e no jateamento. Vou copiá-los
também. Bem aqui estamos nós. Então você pode ver que o
tipo aqui é apenas explodir e então aqui
está apenas fundição. E mais uma vez, você
precisa definir um ingrediente. Nesse caso, você só pode
definir um ingrediente. Você, é claro,
só tem um slot de entrada no alto-forno
ou no forno normal. Então você pode dizer, ei,
qual é o resultado aqui? Você pode até definir
quanta experiência você obtém de cada cheiro
individual aqui
e, em seguida, também o tempo de cozimento. Então, quanto tempo em carrapatos
isso basicamente vai demorar. Você pode ver que,
claro, o jateamento
é mais rápido do que a fundição
real. Um. Mais uma coisa que eu também
queria mostrar é, por exemplo, aqui eu tenho essa pilha
de diamantes de outra receita personalizada estrela. E você pode ver que estou usando meus próprios itens,
bem como itens do Minecraft. E você pode ver que
não há nenhum problema com isso. Você só precisa especificar o namespace do
Minecraft aqui e
, em seguida, o nome do item. Então, isso
é praticamente tudo o que há para criar itens
que não são seus. Você pode criar itens do Minecraft
que funcionam totalmente bem, embora esse seja um
exemplo disso também. E agora, antes de darmos uma
olhada nisso, vamos realmente descer para que possamos dar uma olhada em todos os arquivos de dados e ativos do Minecraft descendo
na janela do projeto, o externo bibliotecas, abrindo isso e
depois descendo. E você pode ver que basicamente este aqui, bem aqui. Então, temos o projeto net Minecraft, minecraft mapeado
e assim por diante e assim por diante. Esta antes
da grande lista negra da qual todos parecem iguais, certo, acima que
temos esta. Vamos abrir
isso e você
pode ver que há
uma pasta de ativos, há uma pasta de dados e
até uma pasta de rede. Na pasta net, todo
o código está escrito no que podemos basicamente dar uma olhada em todo
o código também. Mas não vamos fazer
isso por enquanto. Estamos interessados
na pasta de dados,
Minecraft, depois receitas. E você pode ver,
agora eu poderia dar uma olhada em cada uma dessas receitas legadas nem
importaria aqui, certo? Então eu poderia dar uma
olhada em qualquer coisa. Mas, por exemplo, Oh, como é que a fundição de carvão ou oh, é assim
que funciona. Certo. Justo o suficiente. Podemos ir ao compostor. Como você cria isso? Oh, sim, é claro, foi
assim que você criou isso. Você pode ver que
você tem acesso a tudo aqui
que você pode querer. Então, genuinamente, você deve
ser capaz de quase fazer qualquer coisa em termos
das receitas que você
gostaria com este equipado, você basicamente tem
acesso a qualquer coisa. Eu recomendo
se você
quiser basicamente pegar um desses. Então, digamos, por exemplo, o salmão cozinheiro aqui
você é como, ok, eu quero levar isso. O que você faz é você apenas
eleger pressionar Control C. Então você pode voltar para sua própria pasta de receitas
Control V para colá-lo. E então você o tem lá dentro. E então você pode
basicamente
alterá-lo como quiser. Mas essa é a
ideia geral de como fazer isso. Vou
excluí-lo novamente porque não vamos
precisar disso. Isso vai ficar bem de qualquer maneira, depois de ter adicionado todos esses, vamos ver se funciona ou
se nós mesmos no Minecraft. Então, vamos antes de tudo ver
se podemos ou não criar o bloco com o oráculo em minutos
e lá vai você. Podemos fazer com muita facilidade. E o que você também
encontrará é que assim que você tiver as receitas
feitas uma vez, você pode ver que elas também
estão disponíveis aqui nos
livros de receitas reais. Então, isso é muito legal. Vamos ver se consigo
sentir o cheiro do roubo, contá-los também aqui. E é claro que posso, e deve funcionar no
forno normal ou no alto-forno também. Agora, sim, este realmente é definitivamente mais rápido, então
eles vão facilmente o suficiente. E você já viu que eu também posso
depois do contrário. Então, assim também funciona. Isso é muito legal se
eu mesmo disser isso. Agora, é claro, todos
os blocos que temos, pode
haver mais
receitas faltando. Na verdade,
vamos ter aqueles na próxima tarefa, que será depois
da próxima palestra, na verdade, onde você basicamente precisa adicionar o resto das
receitas aqui. E esses, é claro
, também estarão disponíveis. Portanto, não se preocupe lá. E é claro que você sempre tem acesso às
receitas aqui. Então, em teoria, esse deve ser um exercício
muito, bastante simples. Mas, por enquanto, é
isso para esta
palestra aqui. Espero que você tenha achado útil e aprendido algo novo se ele o fez. E te vejo
na próxima palestra. Então, sim.
45. (Noções básicas para blocos personalizados com as tabulações de loots: Ou eu dou as boas-vindas de volta ao curso de
tecido para 118. E nesta palestra,
vamos olhar para tabelas de
perda personalizadas , embora
nossas tabelas de rotas personalizadas,
bem, essas basicamente definem as coisas que caem de
um bloco quando você o mina. Então, temos em nossos blocos, o Oracle pode bloquear e
o OK orbital. E se você espero ter feito
a primeira tarefa, então você também
terá a ardósia profunda ou mais e a linha
ou uma coluna ou bloco. Agora vamos implementar gotas para o bloco
e o, ou, é claro, é especial aqui porque haverá algumas diferenças se você tem ou não uma ferramenta que realmente
tem toque
celular nele. E se for esse o caso,
é claro que o real ou o bloco cai. Caso contrário, o cru ou
um cálcio cairá. Embora haja algumas
coisas que precisamos. 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, muito
importante que isso seja escrito exatamente assim. Em seguida, dentro de lá em um novo
diretório chamado blocos. Mas vou fazer
um novo arquivo aqui chamado Oracle vem sublinhado
bloco ponto-ponto ponto JSON. Agora, o que
é muito importante é que esse nome
aqui tenha que corresponder ao
nome dado aqui. Mas isso é diferente
das receitas porque as receitas não são realmente dependentes de uma coisa em particular. Conseguimos definir o
resultado no lado dele, enquanto que desta vez nas
tabelas luge, o nome do arquivo mais uma vez tem que corresponder ao
nome dado aqui. Muito importante, certo? Nós só vamos
passar, então vamos ter um tipo. E isso vai ser o bloco de dois pontos do
Minecraft porque é claro que esta
é uma tabela de saque de blocos. Então vamos
ter um testamento. E esta é uma lista. E então basicamente um colchetes
encaracolados aqui novamente, papéis, papéis um. E então temos
algumas entradas aqui, que é outra lista. E lá dentro,
teremos um tipo que é itens do Minecraft. Então, queremos soltar um item aqui. O nome desse item é dois pontos do curso
MC ou um bloco de
sublinhado de Malcolm, certo? Então isso pode parecer muito louco para você e isso é
absolutamente bom. Porque, no geral,
a essência geral das tabelas de luge é que
elas podem ser bastante complicadas. Este é definitivamente um
exemplo de um muito, digamos fácil ou símbolo 1. No entanto, eles
definitivamente podem ficar muito
mais complicados. Por exemplo, o antigo,
eu realmente vou copiar isso aqui. Então, recapitulá-los ou, e
você pode ver que isso é um pouco mais complicado
como você pode ver claramente, que você pode ver que, embora
tenhamos apenas uma entrada, isso agora é de alternativas de
tipo, o que significa que basicamente, bem, há duas alternativas. Ou temos um item que, se uma determinada
condição for atendida, vamos escolher essa. E, caso contrário, temos apenas um item com um valor
específico aqui. Essas tabelas lascivas podem
ficar muito complicadas, muito rápidas, como você
pode ver claramente. E a ideia geral é que, bem, há um bom recurso. Na verdade, havia dois
bons recursos que eu posso recomendar. Um dos recursos é
a entrada do Wiki aqui. Portanto, esta é a entrada da tabela de saque do Minecraft
Wiki. Eu recomendo
dar uma olhada nisso porque você pode basicamente olhar para todas as coisas diferentes
que estão lá. Então, é basicamente
assim que isso é descrito. Agora, no geral, isso é um pouco complicado
de ler pela primeira vez, mas eu recomendo
se você realmente quer tabelas de rotas absolutamente
personalizadas, você terá que dar uma
olhada nisso e só precisa dê uma olhada e
passe por isso basicamente, então há outra
coisa e esse é o gerador de tabelas de saque
por um míssil GitHub IO. Isso é incrivelmente útil e você pode basicamente escolher
tudo o que quiser, certo? Então você pode dizer, eu
queria pedra para cair somente se houver
alguma coisa específica. Por exemplo, você pode ter
uma chance aleatória aqui. Mais uma vez,
verificação de localização, até mesmo ferramenta de correspondência. Há muitas coisas
que você pode fazer aqui, e eu recomendo
muito quando você olha para
este link também,
gerando algumas coisas, certifique-se de que você tem 11, 18 acima aqui porque há diferenças entre
a versão às vezes. Agora, se você não precisar de
nada que seja, digamos, fora do
reino da baunilha, então você também pode, é
claro, ir para as
bibliotecas externas aqui embaixo, para este
aqui mesmo, net Minecraft, projeto minecraft em,
e assim por diante e assim por diante na pasta de dados, tabelas de saque
Minecraft. E então, basicamente, dê uma
olhada em todas as tabelas de luge que os blocos
normais também têm. Por exemplo, quero dizer,
o que poderia ser? O baú não é realmente
interessante porque a queda
do peito foi manipulada de
forma diferente nesse caso. Mas onde mais temos? Quero dizer, o que pode
ser interessante? Você pode, a grama pode ser
interessante, certo? O bloco de grama
, na verdade, aqui. Mais uma vez, temos
alternativas, certo? Se você tiver um toque de seda, você obtém o bloco de grama,
caso contrário você obtém sujeira. Então eu recomendo mais
uma vez, se houver alguma coisa que
já existe na baunilha, apenas dar uma olhada
nas bibliotecas
externas vai tornar sua
vida mais fácil. Mas apenas adicioná-los
para perder tabelas
na verdade não é tudo o
que precisamos fazer agora isso é
muito importante. Não pule esta etapa
em nenhuma circunstância. Caso contrário,
não funcionará, certo? Então, na verdade, precisamos
adicionar algumas tags também. Ainda não falamos sobre tags,
mas vamos muito em breve. No entanto, por enquanto, podemos pensar neles
como uma espécie de lista de itens, blocos ou o que
podemos pensar que tem um propósito comum ou é
agrupado de alguma forma. Então, dentro da nossa pasta de dados, vamos
clicar com o botão direito do mouse em novo diretório chamado Minecraft. Agora você já deve ter
ouvido falar disso antes. Agora, dentro de lá, vamos criar um novo
diretório chamado tags. E então, dentro de lá,
vamos criar um novo diretório chamado blocos. E então o último, mas não
menos importante em termos deles, também
precisaremos de um novo
diretório chamado mineable. Mineable, na verdade,
eles atrás e agora eu
realmente vou copiar sobre as tags ou mineráveis aqui. E vou explicar
em apenas um momento, também
precisamos de três
tags ou blocos. Isso é claro, tudo
disponível para você no repositório
do GitHub ou em um
indivíduo também. E isso também pode ser encontrado aqui novamente
nas bibliotecas externas, diretamente na pasta de dados, vamos para blocos de tags, você pode ver mineráveis. Há exatamente esses
quatro arquivos JSON também. E então, na pasta box aqui, os outros quatro são, os outros três na verdade também
estão disponíveis. Então, o que isso significa? Bem, temos que ser capazes de
definir a incapacidade ou nossos blocos. Isso significa que, se você puder
dar uma olhada nessa taxa, eu já adicionei o bloco de comorbidade
oracle, o recalc e o bloco bruto
e a ardósia profunda ou uma telecom ou à
picareta adjacente. Isso significa que isso é, esses blocos são mináveis
com atos de porco. Isso deve fazer sentido, isso deve ser bastante
sensato aqui. Nada muito louco. Agora, o mesmo
vale para as necessidades
Diamond precisa de
minério de ferro, precisa de ferramenta de pedra. Basicamente, podemos
definir o nível de ferramenta que ela precisa
para minerar isso. Então, a ferramenta de ferro aqui, eu realmente
defini basicamente como
precisando de ferramentas de ferro. Pelo menos cada um desses
blocos não
seria minável apenas com uma ferramenta de
pedra. Então, isso é realmente
muito interessante. Então, ele precisa de minério de ferro, e isso é basicamente
o que você precisa para adicionar
coisas adicionais aqui. Você pode literalmente adicionar
um novo aqui, certo? Então, não conheço o teste do curso MC. E então, basicamente
, certifique-se de que
temos uma vírgula aqui também.
E isso é praticamente isso. Então isso é tudo o que
você precisa fazer. Certifique-se de que todos os
blocos definidos dentro desses arquivos de tag
sejam realmente válidos. Então você não pode exatamente como
eu fiz o teste. Se isso não existir, você pode encontrar
um erro. Então isso é muito importante, mas você precisará dessas tags e precisará
definir tudo dentro do seu para que eles
soltem seu saque basicamente, isso é uma coisa muito importante. Eu recomendo que você faça isso. E mais uma vez, é claro que tudo
isso está disponível para você. Caso contrário, fazer
esses arquivos realmente não é tão complicado
como você pode ver claramente, eles não são tão loucos. Mas, por enquanto, vamos ver se funciona ou
mais rápido no Minecraft. Então, vamos tentar
minerar isso com a picareta de pedra
e você pode ver que já leva muito tempo. E isso, é, isso
não deve produzir um resultado. E, claro, isso não acontece. Quando você usa a picareta de ferro, ela funciona e também
cai aqui. Mas vamos tentar a
mesma coisa aqui. E você pode ver que nosso
bruto ou uma telecom cai. E também podemos tentar isso com o nether write X, por exemplo. Quero dizer, isso está
demorando tanto. Esta é uma indicação muito boa, geralmente é claro, de que
isso não funciona, certo? E então o diamante, é claro, também funciona porque funciona, bem, basicamente ferro ou acima, essa é a ideia geral aqui. Então isso é muito legal. E então, apenas para
completar,
uma picareta de diamante
com toque de seda. E você pode ver que
agora ele realmente derruba o Oracle CRM ou
aqui também, certo? Mais uma última coisa que eu
queria mencionar é que se você não chamou
a ferramenta The require aqui, isso também pode
não funcionar tão bem. Portanto, esse é outro pré-requisito
que é muito importante. Eu só queria
mencionar isso porque não
tenho 100% de
certeza se mencionei ou não isso no tutorial de
bloco também, mas isso é definitivamente necessário também para cada um dos seus blocos. Então isso é muito importante. Mas, de outra forma, isso 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.
46. ASfixameDE6: receitas personalizadas e tabelas de loots: Tudo bem, bem-vindo à
segunda tarefa aqui para a
parte Minecraft deste curso. E nesta tarefa, você deve fazer
as seguintes coisas. Agora, é claro
que você tem as tarefas reais espero na sua frente
também. Mas a ideia é
que você deve adicionar tabelas de
saque tanto para o bloco, a ardósia profunda ou um falcão ou, e para a linha ou uma
coluna ou bloco. Esses devem ser bastante
simples, pois
vimos dois exemplos que são
quase exatamente os mesmos. Bem, isso deve ser, eu acho,
bastante simples. E então, quando
se trata das receitas, eu realmente quero que você
faça algumas coisas. Quero que você adicione
o jateamento e a receita de fundição para
os blocos ou. Isso é o número um. E número dois, eu quero que
você seja capaz, eu quero que você seja
capaz de obter pepitas de um lingote e, em seguida, também criar pepitas de
volta em um lingote também. E então, por último, mas não
menos importante para as receitas, quero que você faça qualquer receita
usando alguns itens de baunilha. Pode ser qualquer coisa
que sua mente possa basicamente sonhar
, você sabe, obter 64 diamantes por uns 2 terceiros blocos ou algo assim
poderia ser qualquer coisa,
desde que pelo menos leve itens do
Minecraft na
receita, estou bem com isso. Isso seria basicamente isso. Se alguma coisa não estiver clara,
você deve, é claro, ter as tarefas disponíveis para você basicamente verificar novamente, mas boa sorte e
se divertir na tarefa.
47. SOLUÇÃO 6: Receitas e tabelas de loot: Tudo bem, vamos dar uma olhada
na solução para a
tarefa aqui. Claro, o bloco de cálcio do
roubo foi bastante simples. Espero que seja praticamente o mesmo que o normal ou recalc. Desbloqueie. Isso aqui. Soltar o
disco de rock pode bloquear isso espero, quando
muito facilmente aqui. E então a
ardósia div ou um cálcio ou é quase
o mesmo que o normal também. Estamos aqui embaixo, ele derruba o cálcio
Rory aqui em cima. Na verdade, ele derruba a
ardósia profunda ou uma chita ou essa é apenas uma pequena mudança que
você precisaria fazer no oráculo ou na
tabela de saque, Jason. Então, espero que esses não
fossem muito loucos. Mas vamos dar uma olhada
nas duas receitas de jateamento. Claro, você é
apenas o ingrediente realmente precisa mudar. Então, o resultado é claro que
ainda vai ser lingotes. E então, para a fundição a
amina é
praticamente a mesma. A única coisa que aqui, as mudanças para o jateamento para a fundição é
o tempo de cozimento. E então aqui mais uma vez, os itens Isso é
praticamente tudo o que há para isso, as pepitas podem
ser um pouco mais interessantes porque é
claro que uma delas é uma receita de forma
e a outra é uma receita sem forma que
retorna uma contagem nove também. Então isso pode ter sido
muito interessante aqui. E, claro, não
há solução para o seu personalizado. Contanto que funcione, está tudo bem. Você pode, claro,
sempre dar uma olhada
na pilha de diamantes de
nether star aqui, o que é uma ideia ou um exemplo de uma coisa possível que
você poderia fazer também, mas isso será isso para
esta solução aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra. Então, sim.
48. (Noções de bastid) Criação um item avançado: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos
olhar para um item avançado. Então, o que é um item avançado? Onde eu chamaria itens
avançados são itens que têm sua
própria classe de itens. Então, se entrarmos na nossa classe
mais Adams, podemos ver que nem o lingote do norte
nem a linha ou um cálcio têm suas próprias classes porque são todos itens
novos aqui. Agora isso vai mudar. Em vez de nosso pacote de itens, vamos clicar com o botão direito do mouse em
novo pacote chamado personalizado. E então, dentro de
lá, vamos
clicar com o botão direito do mouse em nova classe Java, e este será
o item da haste de desvio. Agora algumas coisas
para mencionar aqui. Normalmente, você quer terminar isso
com o item de nome aqui, seja qual for o nome
do seu item, e depois terminou com o item, apenas para que você possa
ver facilmente que este é
realmente um item. Isso agora vai
estender a classe do item. Então, vamos escolher
este aqui. E então vamos passar o mouse sobre esse construtor
credo
combinando super. E agora estamos realmente muito felizes com a forma como o SR e fora. Agora já
podemos usar essa classe. Claro, no entanto,
queremos adicionar algumas funcionalidades personalizadas a ele. Ou seja, quando
clico com o botão direito do mouse com este item, basicamente
quero verificar
cada bloco abaixo de um bloco basicamente
quero verificar
cada bloco abaixo de um bloco
que acabei de clicar e ver se há
objetos de valor lá. Então, como vamos fazer isso? Bem, vamos primeiro,
clique no botão do meio do mouse na classe do item, e aqui você encontrará um monte de coisas que
você pode substituir. Portanto, este é o número um em recurso. Mais uma vez, se você
não estiver familiarizado com o Java, para dar outra olhada na introdução
do Java, eu recomendo muito porque agora como estamos entrando em um território cada vez mais avançado, basicamente
assumirei
cada vez mais que você simplesmente sabe o que é
herança, pelo
menos em um conceito básico e uma substituição de um método. Você simplesmente não está sentado
lá e você está tipo, eu não sei o que isso significa, mas você pelo menos tem
uma ideia geral disso. Mas podemos substituir
métodos e basicamente criar nossa própria
funcionalidade para eles. Então, como você pode ver,
existem muitos métodos que poderíamos
substituir em teoria. E essa também é uma
das coisas legais. Então, o que posso fazer é
começar a digitar substituir. E você também
receberá basicamente todas
as sugestões que são
possíveis para nós substituir. Agora há um monte deles. Portanto, os EUA, por exemplo, são o método do botão direito do mouse
sem clicar com o botão direito do mouse no bloco. Há algo como
a dica de ferramenta de anexação, que como uma dica de ferramenta que também
veremos em uma palestra futura também, o tick de inventário, que
é executado a cada tick, Este item está em seu
inventário carrapato de uso. Na verdade, não tenho
100% de certeza, mas acho que isso é
executado toda vez que você tem
isso em sua mão principal
e você isso em sua mão principal clica com o botão direito do mouse em
algo assim. Embora também se nós apenas
importássemos isso e eu
clique no botão do
meio do mouse sobre
o Super aqui. Às vezes, eles têm
alguma indicação acima deles, então alguns comentários. Isso nem sempre é o
caso, mas, oh, bem, mas o que vamos
usar é que vamos usar os EUA em um método de bloco. Como você pode ver, vamos
apenas digitar isso
e clicar duas vezes e, em seguida,
ele gerará isso. A substituição de adição aqui é uma anotação e isso
não é estritamente necessário. No entanto, isso lhe dá em glândulas normais através
desta classe a ideia de que, oh, ok, então este é
um método substituído. É por isso que isso está aqui. Então, isso é realmente
muito importante. E agora vem o código personalizado que vamos escrever basicamente. E isso, mais uma vez, tem muito a ver com o
conhecimento Java basicamente. E vamos
começar, antes de tudo, verificando se estamos ou não
no cliente ou no servidor. Porque neste caso real, o que realmente queremos
fazer é que queríamos fazer apenas algo
aqui no cliente. Esse nem sempre é o caso. Normalmente, queremos começar
a acontecer no servidor, mas isso às vezes é o problema. Vamos entrar em
um pouco mais de detalhes, no entanto, não muito. Por enquanto, o que temos é
que temos esse contexto aqui, tem um monte de coisas. Então, por exemplo, o mundo, que é exatamente o que precisamos, o preenchimento automático que com tab. E então vamos
dizer que é cliente. E eu costumo assumir
o método. Isso realmente não
importa se
você toma ou não o método ou o
campo está totalmente bom. E agora o que sabemos é que, se estivermos dentro
dessa declaração if, estamos definitivamente no
cliente, então isso é muito bom. Agora o que queremos é que
queremos a posição
do bloco que foi
clicado e
obtemos isso como uma pausa de bloco. E este é apenas
o elevador de posição. E isso é igual ao caminho bloqueado do
ponto de contexto como você pode ver. E então queremos que o jogador, essa camada de entidade do jogador, que é igual ao
ponto de contexto, obtenha o jogador aqui. E então também podemos
ter apenas um booleano, que
será o bloco encontrado. Este só verifica se encontramos
ou não o bloco. Vamos fazer isso
em apenas um momento. Mas a ideia é mais uma vez, quando eu clico com o botão direito do mouse em um bloco
, eu queria verificar todos os blocos que estão abaixo desse bloco, indo até a base. E basicamente verificando, ei, isso
encontrou um item valioso? Esses itens valiosos que naturalmente, vamos definir
em apenas um momento. Mas, por enquanto, vamos apenas fazer um loop for. Então, para int I igual a 0, eu sou menor ou igual
que a posição clicada. Isso fica, por que realmente pegar você? E então eu mais, mais. E então o que queremos fazer é que
queremos fazer algo
muito interessante. Queremos obter o bloco abaixo. Então, bloqueie, o
bloco, bloqueie abaixo. E esse será o mundo de ponto ponto-ponto de
contexto. Mas para obter o
estado de bloqueio na posição, cliquei nisso e
depois passando no olho. E então aqui
vamos pegar o bloco. Então, e então, é claro,
também importar essa classe. Então agora isso pode
ser muito louco. Bem, vamos
pensar sobre isso. Primeiro de tudo, estamos apenas recebendo o mundo que
deveria ser muito louco. E então estamos recebendo um
determinado estado de bloco. Agora ainda não falamos
sobre blocos e contra estados de bloco. No entanto, a
essência geral é que os estados de
bloco são
a representação de blocos dentro do mundo. Embora um bloco seja como
uma ideia perfeita de um bloco, o estado do bloco
é a coisa que realmente existe
dentro do mundo que tem coordenadas e tem
propriedades diferentes, por exemplo. Então, isso obtém o estado do bloco
nessa posição específica. E então, é claro, quando tivermos a posição em que
clicamos, estamos apenas descendo por eu, o
que na primeira
vez não é nada. E então, à medida que aumentamos i, à
medida que o loop for continua, descemos cada vez mais. Então, esse é basicamente
sempre o bloco abaixo. E então o que podemos
fazer é verificar,
ei, este é um livro valioso? E para isso,
na verdade, vamos criar um novo método para isso. Porque isso realmente faz, porque isso realmente
torna um pouco mais fácil. Então, vamos dizer que
booleano privado é um bloqueio valioso. E então
vamos
passar no quarteirão aqui. E então podemos basicamente
retornar um booleano. E o que vamos fazer
é dizer bloco é igual a blocos dot
col, ou por exemplo, carvão ou LOC é igual a
bloqueios de ponto cobre, ou vamos apenas adicionar mais alguns. Então bloco é igual a diamante Langston ou um Último, mas não menos importante, vamos também adicionar o minério de
ferro também. Então bloqueia o ferro ou o ego. E agora esse método aqui, se estiver frio e um
bloco for passado, se for um
desses quatro blocos, ele retornará verdadeiro. E o que vamos fazer
é dizer se é um bloco valioso aqui, e depois passar no
bloco abaixo, certo? Então o que queremos fazer é dizer que o que
queremos fazer é que queremos
produzir as
coordenadas reais desse bloco. Também queremos transformar o bloco
encontrado em verdadeiro. E então, na verdade, o que
queremos fazer é sair
desse for-loop porque encontramos o primeiro bloco valioso e
isso é basicamente feito. Então essa é a ideia geral. Agora, a primeira coisa
que queremos fazer aqui, como eu disse, é a saída
das coordenadas. Agora, para isso, vamos
fazer um novo método também. Então, a ideia é que
vamos antes de tudo escrever isso e depois pegar a coisa escrita e
fazer um método com isso. Então podemos dizer que o
jogador SendMessage. Esta é, na verdade, uma maneira muito
interessante de fazer isso. Então vamos
dizer Novo texto literal. No entanto, um texto literal aqui. Isso é basicamente uma string. Podemos descobrir onde
podemos colocar as coisas. Podemos dizer algo como encontrado. E então podemos dizer
bloco, bloquear abaixo disso como item que recebe o
nome, que obtém string. Então este é muito louco, mas isso basicamente recebe o nome
real do bloco. E então podemos dizer em, e depois na posição particular. Para a
posição particular vai ser algo lago. Abra parênteses e depois passe para a posição
clicada no ponto GetX. Mais vírgula. Posição clicada. Por quê? Em seguida, mais uma vez vírgula, depois mais posição
clicou ponto get z ou z. e depois fechando o
parêntese na string aqui. E depois do componente de string
literal, queremos um false aqui
está a ActionBar. Agora você pode ver que isso é
muito pesado Rayleigh. Então, isso é como, antes de
tudo, não parece bom. É muito pesado. Então, o que podemos fazer é selecionar tudo
esse método de extração de refatoração com o botão direito do mouse. E vamos fazer isso. E você pode ver que agora nós realmente extraímos tudo isso. E tem, bem basicamente, apenas fez todo
o trabalho para nós. Agora só temos que definir um nome. Vamos definir
esse nome para produzir ordenadas
valiosas aqui. E então, dentro
do método real, o que eu quero fazer é talvez mudar
os nomes aqui
para que eu possa
clicar em Control and Shift fx,
algo como, por exemplo, os caminhos de blocos aqui. E então o resto,
acho que está definido. Então isso, é claro,
poderíamos mudar isso
ainda mais, certo? Mas, por enquanto, acho que isso
vai ficar bem. Isso simplesmente produzirá as coordenadas de
tudo o que lhe dermos. Isso parece muito bom. Agora, o que
vamos chegar aqui é que vamos ter um pouco
uma discussão porque ei, jogador pode ser nulo. Então você pode ver o
jogador de argumentos pode ser nulo para afirmar. Também podemos mudar em torno de um monte de coisas.
No momento. Eu não me
preocuparia com isso na verdade. E há mais uma coisa com isso que queremos
fazer, é claro, e isso é, se o bloco não
foi encontrado, certo, então queremos
produzir algo também. Mas, por exemplo, algo como o jogador ponto-ponto-ponto
SendMessage. E então vamos fazer é
, na verdade, vamos fazer deste o componente de texto
traduzível por radar. E então vamos definir a palavra de
ação falsa também. Então, geralmente eu
recomendo usar os componentes de
textos legíveis de características aqui sempre que possível. Então, você também pode usar um
componente de texto traduzível aqui. No entanto, isso não torna isso um pouco mais difícil
de fazer corretamente, mas você pode fazê-lo. Eu recomendo usar
isso sempre que possível, onde basicamente
definimos uma chave que podemos colocar no E e nos
sublinhar o arquivo adjacente. Então, para nós, vou fazer isso
como este item, curso MC. Então, vou ficar com isso. E então vamos
pegar o nome da haste
de dowsing do item, sem saber objetos de valor sublinhados. Permite que o nome que vamos
definir em apenas um momento no final nos sublinha arquivo
adjacente, mas
será isso. E então, fora
dessa declaração if, nós realmente vamos dizer
contextos que obtêm pilha. Portanto, este é o, a pilha de itens
real, o item que temos em
nosso inventário, dano de ponto. Queremos danificar
isso pelo valor um. Vamos dizer
contextos, ponto obter jogador. E então o último parâmetro
será um consumidor. Acredito que isso
vai ser um jogador exatamente consumidor
de entidades de jogadores. Então, vamos
chamar esse jogador. E então vamos
dizer sind de pontos do jogador, ferramenta
sind e
status de tijolos de ferramentas com o
ponto do jogador obter cabeça ativa. Mas isso também pode ser muito louco para você, mas não se preocupe. Bem, isso tudo faz
é simplesmente dizer, ei, o item real com o qual acabamos de
clicar com o botão direito, vamos danificar
pelo valor um. Então, isso diminuirá
a durabilidade disso. E então nós apenas passamos pelo
jogador, tudo bem. Então a última coisa
aqui é exatamente o tipo de animação de quebra de ferramenta
que
ela deve enviar quando o dano dessa pilha de itens realmente resultará
na quebra do item. Agora. E isso é basicamente
toda a turma aqui. No entanto, é muito louco. E mais uma vez, sem algum plano de fundo Java provavelmente
será muito complexo. Eu recomendo
que você tenha isso, é claro, tudo disponível para você
no repositório do GitHub ou em um indivíduo tão
bem para dar uma olhada nele, experimentá-lo, você sabe, para colocá-lo em sua própria matemática e apenas experimente um pouco. Apenas mude um monte de coisas, veja o que pode acontecer. E não vamos esquecer
de adicionar isso ao nosso arquivo E e tradução aqui. Eu só vou adicionar
isso na parte inferior. Isso realmente vai
dizer o seguinte. Isso simplesmente dirá,
sem objetos de valor. Então isso é tudo o que
este diz aqui. E agora o melhor é que
se tivéssemos, por exemplo, outro arquivo de idioma, poderíamos traduzi-lo para um idioma
diferente. É por isso que geralmente
o texto traduzível é o que
você quer usar. Portanto, tenha isso em mente. Agora, apenas ter
adicionado essa aula, claro, não é suficiente. Também temos que
registrá-lo em nossa classe de itens mod, e vamos fazer isso também. Então, vamos apenas copiar
sobre o resultado do rock. Como eu disse, geralmente fico
feliz com itens
antigos porque eles
são quase sempre os mesmos. Esta é a vara de dowsing. E então aqui também, é
claro, vara de dowsing. E em vez de novo item,
isso é muito importante. Este é um novo item de haste de dowsing. Então, essa é a principal coisa
que precisamos fazer aqui. Tão importante
que você faça isso. Também queremos definir o dano
máximo aqui. Então, o dano máximo será, digamos 32. Assim, podemos usar isso 32 vezes antes que a
haste de dowsing real se quebre, porque claro que estamos
danificando-a
aqui dentro do método de
uso no bloco. Portanto, isso deve estar totalmente
bem agora também, vamos adicionar isso ao
sublinhado não usar o arquivo JSON. Então, dowsing sublinhado haste e, em seguida, aqui
também, é claro, dowsing, vara de dowsing
sem o sublinhado. E, por último, mas
não menos importante, precisamos do modelo do item, bem
como da textura do item. Então, vamos apenas copiar sobre
o papel ou o cálcio para esta haste de dowsing e
, em seguida, sua vara de dowsing. Mas, mais uma vez, essa é a maneira
normal que eu faço o usuário, geralmente adicionar itens
quando já tenho alguns modelos existentes aqui é muito
mais fácil do que qualquer outra coisa. Escrever isso é
absolutamente louco. E se houver erros de digitação no
seu, você pode, é claro, sempre dar uma olhada
no repositório do GitHub ou nos juristas também. E vamos copiar sobre
a haste de dowsing também. Lá vai você. Claro, também disponível. Por favor, note o aviso de
créditos, que você segue
a licença lá. Então, no geral, isso é
realmente totalmente bom. E eu diria que agora estamos prontos. Dê uma olhada se
funcionou ou não ou nos encontra de volta no Minecraft que os fãs podem
ver que a haste de dowsing foi
adicionada com sucesso ao jogo. E o que você
também encontrará é que eu realmente não consigo empilhar. Isso é exatamente certo porque,
claro , adicionamos
o dano máximo. E se você adicionar dano máximo, então, basicamente, o empilhamento não
funcionará mais. Agora vamos apenas ir aqui e vamos apenas clicar com o
botão direito do mouse e você pode ver a parte superior ou achada
lá uma hora para seus, uh, não, nenhum valor
encontrado aqui. E você pode ver que
a durabilidade real diminui à medida que
continuo a clicar aqui. Vamos ver, talvez possamos encontrar um pouco de diamante antes que ele quebre. Isso não seria muito louco? Infelizmente, não o fizemos. Mas lá vai você. Agora em quebrou e agora temos
as outras rotas, é
claro que também estão disponíveis. Então, podemos
passar por isso e ver se podemos encontrar
algo abaixo aqui. Mas essa é praticamente a ideia geral da vara de
dowsing, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Se houver alguma dúvida
para o item avançado, não
hesite em perguntar. Caso contrário, verei você
na próxima palestra. Então, sim.
49. (Noções de (Basics) Criação um bloqueio avançado: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra vamos fazer um bloco avançado. Assim como
vimos a última palestra com o item avançado, agora vamos
fazer um bloco avançado
para em nosso pacote de blocos ,
clique com o botão direito do mouse em novo
pacote chamado Personalizado. E então, dentro de lá,
vamos criar uma nova classe Java
chamada bloco SPD. Agora isso estenderá
a classe de blocos, certificando-se de que escolhemos o bloco correto, o bloco de
Minecraft net, bloco e passe o mouse sobre esse construtor creed
combinando super. E assim como antes de
podermos o botão do meio do mouse, clique na classe de
bloco e basicamente dê
uma olhada em todos os métodos possíveis que podemos substituir em nossa classe de blocos
personalizados. E como você pode ver, há toneladas de coisas que
poderíamos substituir aqui. E também posso colocar
a palavra substituir. Qualquer um verá que há
um monte de coisas aqui. Agora, uma coisa que eu
queria mencionar é que as coisas que têm
esse tachado que estão
basicamente obsoletas, certo? Então, se eu der uma olhada nisso, você pode ver que este
aqui está obsoleto. Geralmente. O que isso realmente significa
é que
você pode simplesmente substituir esses métodos, no entanto, você não
deve chamá-los. Então essa é a ideia geral no bloco e na classe do item, coisas que estão obsoletas. Não quero dizer que eles estão
obsoletos e não
estão disponíveis
em versões futuras. Nesse caso, na verdade, é
sobre eles não serem pegos. E isso inclui o
super, por exemplo. Mas vamos ver
isso em apenas um momento. O que o bloco SPD vai fazer? Bem, o bloco SPD terá duas
funcionalidades diferentes. Número um, se você pisar nele, você obtém o efeito de velocidade
adicionado ao seu personagem. E então, apenas para
que você tenha visto, a funcionalidade do botão direito do mouse, quando você clica com o botão direito do mouse no bloco, vamos apenas enviar
uma mensagem para o bate-papo. Isso vai ser isso. Então, vamos antes de tudo fazer o método de trampolim que
é chamado, pisou. E você pode ver lá você vai. E o que faremos aqui
é realmente muito simples. Primeiro,
vamos verificar se o mundo é cliente e são
muito, muito importantes. Vamos adicionar
um ponto de exclamação na frente dele para dizer, não
queremos
estar no cliente, queremos estar no servidor. Como quando você adiciona, por exemplo, um efeito de status, você
só pode fazer isso no servidor. Em seguida, vamos verificar
se a entidade que
pisou nessa
é uma instância de entidade
viva, porque
somente entidades vivas podem ter efeitos de status
aplicados a elas. E então podemos, sem problemas, obter a entidade viva
aqui e apenas lançar
a entidade para ela. Então, a entidade dot cast. E então, geralmente, ele se enche de entidade viva já
está aqui. E podemos pegar a entidade
viva e
podemos chamar o método de efeito Adicionar
status. E o que podemos fazer é criar uma nova
instância de efeito de status, como você pode ver. E isso assume
o efeito de status, ou seja, efeitos que velocidade
e duração para 100. A duração aqui é,
claro, em carrapatos,
portanto, isso
seria de dez segundos. É claro que isso também
mudaria. Isso é claro
que depende de você. Mas esse é, na verdade, todo
o método que
precisamos para o efeito passo na
velocidade aqui. É literalmente isso. Isso é tudo o que precisamos fazer. Mas agora vamos realmente
dar uma olhada funcionalidade
do botão direito do mouse também. E esse é o método de uso
do proprietário. E você pode ver que é um daqueles que tem o
tachado que está obsoleto. Então, vamos nos certificar de que não
chamamos o super-herói. E vamos
dizer resultados da ação. Esse sucesso,
vai ficar bem. Bem aqui. Lá vai você. E então aqui, o que vamos fazer é dizer se o mundo, isso é cliente, o ego. E então dentro daqui
vamos dizer que a mão é igual e aquela mão principal. E então faremos outra coisa aqui. Então, o que, o que está acontecendo? Por que estou fazendo isso?
Bem, vamos copiar um pequeno comentário para o qual
eu já preparei. A ideia é que o
método não utilizado seja chamado por tempos. Quando você clica com o botão direito do mouse no bloco, Ele é chamado duas vezes no servidor, um para cada mão e, seguida, duas vezes no
cliente para cada extremidade. Essa é a coisa muito
interessante. Então o que vamos fazer é que
vamos produzir, é por
isso que não o ego, isso vai ficar bem. Mas isso é apenas
mais uma vez jogadores e mensagens com um pequeno texto. Isso é algo que
já vimos, é claro. E isso é
praticamente apenas uma ideia. Eu só queria ter
isso aqui também, caso
você queira
ter uma
funcionalidade de clique vermelho do seu bloco, você usará o método não utilizado. E isso é muito
importante ter em
mente aqui é, por exemplo, se você mudar
algo no código, saber que isso realmente
acontece duas vezes para cada mão é realmente
muito importante. Então, por favor, tenha isso em mente. E isso é praticamente com
a classe de bloco SPD feita. Não precisamos fazer mais
nada aqui. A próxima coisa que precisamos
fazer é entrar em nossa classe de blocos de modelo
e, claro, fazer o bloco real
e registrá-lo. Então, vamos apenas copiar
do bloco cru ou de cálcio. E vamos
fazer esse
bloco de sublinhado
rápido e fácil aqui,
e, claro, aqui
também, rápido bloco de sublinhado. E então aqui, este
é agora o bloco SPD, o novo rock rápido aqui. Muito importante mais uma vez, que nos certificamos de que isso está correto e não apenas
um bloco normal. Muito, muito importante. E, caso contrário, só
precisamos adicionar os arquivos JSON. E eles estão, naturalmente,
disponíveis para você
no repositório do GitHub ou em
indivíduos também. Eu só vou copiar isso porque eles
são muito normais todos os dias. Arquivos Jason, certo? Não há nada de interessante
realmente acontecendo aqui. O modelo de bloco parece exatamente a mesma ordem As regras
Brockman que vimos que o modelo do item é
praticamente o
mesmo que qualquer outro modelo de
item de bloco aqui. E então também
copiaremos sobre a textura,
que, naturalmente,
também está disponível para você, não
o arquivo de créditos para a licença específica
para essas texturas,
mas, de outra forma, é
isso. Vamos também adicionar a tradução. Claro,
não vamos esquecer isso. Vamos apenas copiar este
aqui e vamos
dizer que é o bloco. E então aqui a mesma coisa. Bloqueio rápido, o ego. E agora tudo
foi configurado. Então, vamos ver se funciona. Ou fundos de volta e
microfinanças podem ver que o bloco SPD
foi adicionado
ao jogo e eu posso
configurá-lo para que a textura seja normal. Então, como eu disse, certo? Mesmo que esse tipo de pareça um pouco ao lado de onde
mudaria a textura. Na verdade, não acontece. Isso
é algo que vamos ver em uma
palestra futura, na verdade. E vamos apenas, vamos apenas,
por uma questão de discussão, colocá-lo para baixo para que
a flecha olhe
na direção em que
vamos nos mover
apenas para que seja
um pouco melhor. E assim que eu entrar
no topo do bloco, você pode ver que eu tenho o efeito de
velocidade aplicado a mim, e isso agora é por dez segundos. Agora, se eu continuar de pé sobre isso, veja que ele continua aplicando os fatos para mim e
redefinindo-os para 10 segundos. E então eu posso basicamente
correr com um efeito de velocidade. E isso é
praticamente isso, certo? Na verdade, temos que retornar aqui é um resultado real. E, em seguida, a chamada real por duas vezes para o servidor e o cliente
realmente funcionará. Então isso é apenas uma
pequena diferença lá. Então, vamos ver
se isso funciona também. Tudo bem, então agora,
se clicarmos com o botão direito do mouse, você pode ver que recebo uma
mensagem no bate-papo tanto
para a
mão principal quanto para a ofensa. E também ainda podemos
colocar blocos ao lado dele. Isso também é uma coisa muito
interessante. Eu recomendo
brincar com os resultados reais
que você retorna. Porque,
dependendo do que você retornar, eles terão um tipo diferente de interação ao
clicar com o botão direito do mouse. Então você pode ver quando eu
coloco um bloco para baixo, clicando nesse bloco, você pode ver que
ele realmente só é chamado para a mão principal. Enquanto quando eu clico sem
nada na minha mão principal
, ele é chamado para ambos. Dê uma olhada no que
você pode mudar mudando o que você retorna
nesse método, certo? Mas isso já é para
esta palestra aqui. Espero que você tenha achado isso útil e ele aprenda que o novo, se ele o fez, eu
apreciaria muito uma crítica sua. Caso contrário, te vejo
na próxima palestra. Então, sim.
50. (Noções de (Basics) Criação um item de alimentos personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos adicionar um item alimentar personalizado ao Minecraft. Agora esse é, na verdade, um processo muito
simples e nem precisaremos de uma classe de item
personalizada para isso. Por cima, vamos
criar uma nova classe personalizada, e isso está em nosso pacote de itens, mouse em nova classe Java. E esta é a classe de componentes
alimentares MOD. E isso vai conter todos os nossos componentes alimentares porque basicamente
temos que
adicionar isso em nosso item. Então, por enquanto, vamos entrar aqui
e vamos adicionar isso, por assim dizer
componente alimentar estático público chamado nabo. Porque o que vamos
adicionar um nabo aqui. E isso é igual a um
novo construtor de componentes. Você pode ver bem ali, vou pressionar Tab
para preencher isso automaticamente. E então você pode ver que este é um padrão de construtor mais uma vez, para que ele possa adicionar várias coisas
diferentes. A primeira coisa que quero fazer
é adicionar a fome, embora isso vai restaurar um pedaço de carne
em nosso bar de fome. E então o modificador de saturação é basicamente
quanta saturação, saturação você tem em
segundo plano, por assim dizer. Então temos que terminar
isso com uma conta. E então o
componente alimentar aqui é construído. Agora, o que você também pode
fazer é adicionar um efeito de status
aqui, como você pode ver. Então, eu poderia adicionar um
efeito de status que essa é exatamente a mesma ideia antes que vimos
com o bloco SPD. Então, só temos que passar
uma instância de efeito de status. Por exemplo, de efeitos, o status não afeta como uma geração ou algo
como 200 leva. E então aqui nós realmente
temos que passar muito foi, que é a chance que você tem de obter esse
efeito aqui. Então, este é apenas um exemplo aqui. Não vamos
mantê-lo assim, mas você já viu. Na verdade, é
muito, muito simples. Ou exemplos de baunilha
o que você pode fazer é pressionar Shift duas vezes em sucessão
rápida e, em seguida, você
obtém essa janela de pesquisa para cima. Você pode procurar a classe de componentes de
alimentos, verificar isso,
incluir itens que não são do projeto
e, em seguida, aqui item. Clique aqui e
você pode ver todos
os componentes alimentares que o
Minecraft já possui. E você também pode ver todas as
coisas diferentes que estão aqui. Então, na verdade, há como
tudo já frente e
você pode dar uma olhada em como tudo isso funciona, agora temos dois, nós
adicionamos o componente alimentar. Agora precisamos adicionar o item alimentar em nossa classe de itens modelo. O que vou fazer é
copiar
sobre a linha ou um cálcio. E este vai
ser o nabo. E aqui também apareça. E este é um novo
item normal, ano completamente normal. E então
vamos adicionar depois do grupo,
vamos adicionar comida. E este será o modo componentes
alimentares que nabo. E isso é
praticamente tudo o que precisamos para fazer o produto alimentar. Agora devemos ser
capazes de comer isso basicamente quando
estamos com fome no jogo. Agora, é claro,
ainda precisamos adicionar
a tradução aqui no ano
sublinhar-nos arquivo JSON, bem
como, claro, adicioná-lo a textura e o arquivo JSON
do modelo de item. O arquivo JSON do modelo de item
é, claro, mais uma vez ,
apenas um modelo de item normal Jason que aponta para
uma textura aqui. E a textura está bem aqui, então não se preocupe. E agora tudo
foi adicionado. Então, vamos ver se funciona. Ou fazendas que de volta ao
microfinanciamento podem ver que o termo
foi adicionado ao jogo, então vamos começar a
comê-lo e lá vai você. Ele enche exatamente
uma barra de fome. Então, a fome é basicamente
um símbolo de encontro ali mesmo. Então, é praticamente isso. E sim, isso é realmente o
quão fácil é
adicionar um item de comida personalizado
ao Minecraft, certo? E já existe isso para
esta palestra aqui. Espero que você tenha achado isso
útil e ele
aprenda sobre o novo, todos os cantos, é
claro, disponível
no repositório do GitHub ou de um indivíduo também. E eu te vejo na
próxima palestra, no entanto. Sim.
51. (Noções de (Basics) Criação um item de combustível personalizado: Tudo bem, vamos continuar com
o curso de tecido para 118. E nesta palestra, vamos adicionar um
item de combustível acostumado ao Minecraft. Agora, esse também é um processo bastante fácil e
direto. Mas vamos entrar na nossa classe
mais itens e
vamos apenas copiar sobre
o nabo aqui. E então esta será a lasca
de sublinhado de carvão. E aqui, claro, também, o carvão sublinhado lasca. Então, é apenas uma lasca de carvão. E vamos remover
a comida, é claro, porque neste caso, o verso causal não
deve ser comestível. E o que o item
mais uma vez foi adicionado. Mas agora, é claro,
precisamos de alguma forma adicionar a funcionalidade
de ser um combustível. E para isso,
vamos entrar em nosso pacote de cursos MC, clique com o botão direito do mouse em novo
pacote chamado util. Agora isso não é estritamente
necessário para criar essa classe. Você também pode simplesmente
chamar o método imediatamente em nossa massa mod de curso
MC, mas eu gosto de ter
tudo separado. Portanto, esta é a classe registries. E lá dentro, vamos criar
dois métodos estáticos. O primeiro é um vazio estático
público, chamado stuffs de modo de
registro. E isso
chamará o outro método
que será um vazio estático privado
ou registrará combustíveis. E toda vez que adicionamos
um combustível ao nosso modelo, podemos basicamente
chamá-lo aqui. E nós vamos
registrar combustíveis no método de material
do modo de registro. E então vamos
escrever em algo como a linha de impressão do sistema, mas registre-se durante você, ou curso MSE mais curso
MC, RID. E então vamos
dizer menos registro, exatamente este,
que é o registro é igual a você registrará
essa instância. E então podemos
dizer adicionar pontos do registro. E, em seguida, mais itens
pontilham uma tira inteira, depois um valor de 400 estojos. Agora, o cálculo
vai da seguinte forma, certo, para 400 é 400 mais uma vez
e leva, claro, para um 100 dividido por 20, que é de 20 segundos, este é exatamente 1 quarto
de um carvão normal. Então isso é basicamente isso. E então, é claro,
precisamos chamar isso no
método inicializado também. Então, mais registros que
registram coisas do modo. E então, se
algo mais acontecer para garantir um registro, então podemos basicamente
adicionar isso
nos registros modernos também. Então isso é muito
legal. E isso é basicamente tudo o que precisamos fazer para tornar a
tira de carvão um novo item. Agora, é claro, ainda
precisamos adicionar a tradução aqui. Então, vamos copiar isso e
chamá-lo, chamar sublinhado sliver. E então, claro,
aqui, tira legal. E então, para o item,
vou copiar sobre o nabo aqui. Este é o carvão
ressalta o fígado. Então aqui o carvão e,
claro, o fígado também. Apenas um arquivo de modelo de item normal. E nós
vamos apenas copiar
a textura aqui também. E agora, na verdade,
tudo foi adicionado. Então, vamos ver se funciona ou está e nos
encontramos de volta em microeventos podemos ver
que a tira de carvão
foi adicionada com sucesso ao jogo. E vamos ver. Lá vai você. Podemos até mudar
clicando aqui. E assim como especificado, levará 20 segundos
para queimar e depois consumir uma nova causa
fígado a partir daqui. Isso é muito bom. E é assim
que é fácil adicionar um item de combustível personalizado ao Minecraft onde quer que já esteja para
esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo, se ele fez ou
apreciou muito uma revisão sua. Caso contrário, verei
você na próxima palestra. Então, sim.
52. (Noções de ferramentas personalizadas: Ou seja bem-vindo de volta ao curso
de tecido para 118. E nesta palestra,
vamos adicionar uma dica de ferramenta personalizada que
está dowsing rod item. Então isso basicamente pode
ser feito para qualquer item. Então, o que vamos fazer é que
vamos substituir um outro método aqui. Portanto, esse será o método
acrescentar dica de ferramenta. E isso realmente vai
ser feito com muita facilidade. Então, a única coisa que realmente
precisamos fazer é que, quando
você passar o mouse sobre o item, você obtenha algo
como o efeito de pressionar Shift para ver
mais informações. E então, quando você pressiona Shift, você obtém mais algumas
informações sobre esse item. O que vamos fazer é
fazer uma declaração if e
vamos chamar
uma tela, o
disparo mudou para baixo
e, disparo mudou para baixo em seguida, fazer uma
declaração de else para isso também. E então, como adicionamos um novo, algo novo à dica de ferramenta,
faremos a Ferramenta para adicionar e, em seguida, criar um novo
componente de texto traduzível ou texto aqui. E então passaremos
em um e. Neste caso, este será o item MC curso vara de
sublinhado, essa dica de ferramenta, essa mudança. Agora, é claro, você pode
fazer suas chaves o tempo ou o menor que quiser. Vou ficar com isso. Na verdade, acho
que está tudo bem. Vamos colocar a
dica de ferramenta aqui também. E o que vamos fazer é
mudar isso. Você não incluiria
o turno aqui. Vamos copiar isso
mais uma vez e
vamos ao ouvido e
nos sublinhar o arquivo adjacente. E vamos colocar isso
na parte inferior aqui. Como eu sinto que esse é
um bom lugar para isso. E então, quando realmente
estamos pressionando Shift, então o que podemos
fazer é dizer com o botão direito do mouse para encontrar objetos de valor. valor eles vão. E então o outro, vamos ter que
remover o turno aqui. E então isso só
vai descansar. E agora vamos tentar
algo muito interessante. Então, isso,
seremos um símbolo de parágrafo E, roubo, símbolo de parágrafo
R ou mais informações. E há duas maneiras pelas quais
isso pode ir. Então isso é algo
que eu quero explicar. O símbolo de parágrafo
começa a fazer um, fazendo o, começa transformar
o texto em uma cor diferente. Agora, geralmente o
símbolo de parágrafo e deve funcionar, mas às vezes há alguns
bugs associados a ele. E eu só queria
mostrar as duas versões dele. Então, às vezes, isso funciona. Então, o E basicamente
começa a fazer isso amarelo e, em seguida, os
parágrafos são, faz com que
tudo seja redefinido novamente. Mas isso é, na verdade, tudo o que
precisamos para a dica de ferramenta. Então, vamos ver se
funciona ou tem um deck e Minecraft. E se eu passar o mouse sobre
isso, você pode ver pressione shift para obter
mais informações. E quando eu pressiono shift
ou um turno inteiro para baixo, clique com o botão direito do mouse para
encontrar objetos de valor. Então, tudo funcionando
perfeitamente para isso é
exatamente o que queremos. E mesmo na coloração
aqui funciona perfeitamente bem. Então isso é incrível, certo? Também vincularei um artigo Wiki sobre os
códigos de formatação do Minecraft. Eu
recomendo dar uma olhada nisso, mas 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.
53. (Noções básicas (básica) Tudo sobre etiquetas: Para o curso de tecido para 118. E nesta palestra, vamos dar uma
olhada nas tags. Agora, o que nossas tags farão, eu não estou falando
de tags que você coloca em animais
como a tag de nome. Estou falando de
etiquetas como vimos anteriormente para as bolas menores. E basicamente iremos quais ferramentas
você precisa ou seus blocos. E o que vamos fazer é
adicionar uma nova classe que basicamente
nos permite usar tags também. Nisso basicamente tornará nosso MOD mais compatível
com outras matemáticas. Então, em nosso pacote util, vamos clicar com o botão direito do mouse em
nova classe Java, e esta é a gravação da classe de
tags de modo. Vamos ter que aulas
estáticas aqui. A primeira é uma classe
estática pública, quatro blocos. E então a segunda é
uma classe estática pública chamada itens. E na classe de blocos, é claro que as etiquetas
de bloco vão e, em seguida, a
classe de itens, o item Texaco. Mas, para isso,
vamos precisar de métodos estáticos privados aqui. Portanto,
identificador de ponto de tag estático privado do tipo bloco, neste caso,
certificar-se de que escolhemos o bloco de microondas
líquido aqui
criaria uma etiqueta. E isso terá um
parâmetro de nome de string aqui. E isso
retornará a fábrica de etiquetas que quebrou essa criação. E, em seguida, um novo identificador
com mod de curso EMC, mod ID e o nome
do parâmetro. Então podemos simplesmente copiar
este sobre n. Esta é agora uma tag de criação do
Harmon como esta. E
em vez de passar nosso ID de modelo antigo, vamos passar
apenas um c minúsculo, porque este é um
namespace sob
o qual as tags comuns basicamente
serão definidas. E então o que podemos fazer é
simplesmente levar essa cópia ambos os métodos para
a classe de itens também. E basicamente, basta
substituir isso pelo item do
item líquido aqui. E então, é claro, um conjunto
de blocos, este é um item. E então, em vez de bloquear,
este é o item também. Este item também. E então o resto na verdade
está totalmente bom. Então, como você pode ver, isso é
tudo o que precisamos fazer aqui. E agora podemos definir esses impostos. Então, há basicamente duas
coisas que você pode fazer. Você pode, número um, definir suas tags nesta classe, e tudo bem. E você também pode defini-los em seu testamento, em seus dados para. E o que é muito importante é que, apesar de
basicamente criarmos uma
tag personalizada específica para nós. E então
também teremos quatro tags comuns que
vamos usar. Na verdade, sempre
precisamos das tags aqui. Então, os arquivos JSON de dados , sempre
precisamos deles, mas não precisamos necessariamente
ter essa classe aqui. Isso é apenas para
que possamos acessar nossas tags personalizadas
dentro do código. Então, o primeiro exemplo disso será
um identificador
de ponto de
tag final estático público do tipo de bloco, que vamos chamar barra
de sublinhado de dowsing detectável
blocos de sublinhado. Isso basicamente substituirá o método booleano dentro
da haste de dowsing, onde atualmente
codificamos o que é um item
valioso aqui. E vamos tornar isso
expansível com a tag,
que permite, por exemplo, outros modos ou mais fabricantes de
pacotes
adicionarem coisas diferentes a essa tag também. E essa é a beleza disso. Então, vamos dizer que
crie uma tag com exatamente o mesmo
nome em minúsculas. Então, dowsing, sublinhado de haste, a bolha tecnológica, blocos de
sublinhado protetíveis. E vamos formatar isso de forma
um pouco diferente. Então, dia atrás. E então o que vamos fazer é na verdade, também
adicionaremos mais
duas tags de bloco aqui. Um deles será os blocos de
sublinhado do resultado ORiC. E o outro será o sublinhado
da Oracle ors. E o que você
teria adivinhado é que essas são, na verdade, tags Aman. Bem, vamos
fazer assim. E este será
o Oracle vêm blocos sublinhados. E então vamos apenas copiar
isso para pior. Agora, a razão pela qual
vamos tê-los é se algum outro MOD, anúncios ou um cálcio também, então eles poderiam compartilhar o, que eles podem compartilhar isso. E, na verdade,
vamos ver isso em apenas um momento com
os itens porque os itens são realmente
frequentes, úteis e legais. Então, o que vamos
ter é um identificador de tag final
estático público . Mais uma vez do item de tipo
aqui neste caso, e isso é lingotes de
sublinhado recalc iguais a uma nova
tag ou resultado comum. Sublinhado da Inglaterra. Vamos duplicar
isso com o Controle D, e essas são as pepitas. E então o mesmo
aqui também. Lembre-se vêm pepitas. E vamos
usar se vamos usar esses lingotes aqui também. Agora, mais uma vez. Ter isso nesta classe
simplesmente torna todas essas tags acessíveis dentro do código não
é estritamente necessário. Onde é necessário
é apenas em um momento porque agora no item da vara de
dowsing, o que vamos fazer
é, na verdade, em vez de ter esse
código rígido aqui, vamos retornar
o seguinte. Vamos dizer
mod tags que bloqueiam. E, em seguida, importe isso com blocos
detectáveis de haste de dowsing
antigos que contêm bloco, contém bloco. Lá vai você. E isso retornará
verdadeiro se o bloco que é passado aqui estiver
dentro dessa tag. Agora, nossa própria etiqueta. Temos que adicionar no curso MC, clicar com o botão direito do mouse em novo
diretório chamado tags e clicar com o botão direito do mouse em novo
diretório chamado blocos. Então, dentro de lá. Ou vou fazer é,
na verdade, ir aqui e copiar
o nome aqui. Então Controle C ou
clique com o botão direito do mouse em novo arquivo, Control V para
colá-lo no ponto JSON. E então nós temos isso, eu realmente vou
copiar o conteúdo porque na verdade há um
pouco lá dentro. É claro que isso
está disponível para você no repositório do GitHub
ou em um apenas também. Então isso é basicamente
tudo o que eu coloquei lá, incluindo meu próprio Oracle
com ou, claro. E então o que podemos
fazer depois ou em seguida é que agora podemos adicionar as tags
Harmon também. E vamos fazer
isso indo para dados, clique com o botão direito do mouse em novo
diretório chamado C, basta ver
c minúsculo, nada mais. E, na verdade,
vou copiar
a pasta inteira aqui. Então, isso é mais uma vez
apenas tags, blocos, itens. Então, tudo normal
e os nomes aqui, na verdade, também só
precisam corresponder aos nomes aqui. E o que vamos
fazer é
realmente usar uma dessas tags. Então, especificamente, os lingotes
oráculo marcam dentro. E isso vai ser loucura. Nossa receita, isso é exatamente algo
que é muito legal. Porque o que pode acontecer é
que, se nós, por exemplo, tivermos algo como o
Oracle pode bloquear lingote em vez de
ter um Item aqui, podemos realmente tornar isso uma tag. E então isso, é
claro, será c porque este é um namespace diferente e em vez da Inglaterra, são lingotes. Assim, podemos especificar uma tag e , em seguida, normalmente a
tag onde ela está,
no mar e é um item. Portanto, isso é muito
importante, a propósito, que isso só leva tags de
item aqui. Então, basicamente, ele procura uma etiqueta de item ou lingotes recalc. E então tudo o que
está dentro daqui seria viável como uma possível receita de
rafting. Então, o legal que existe
é que, se houver três massas diferentes que
e o Oracle se
reúne, então, em teoria, nosso bloco poderia ser criado com
qualquer um deles. Então essa é uma espécie de ideia
geral lá. E também permite que mais
marcapassos, mais uma vez, tornem nosso modelo
um pouco mais compatível
com outras matemáticas. Então isso é muito importante. E, claro, este ano, certo? Isso só nos permite tornar
isso mais, muito mais fácil, expansível, e
também nos permite que mais pacificadores
tornem essa extensão expansível também. Porque, claro,
no nosso caso, não
adicionamos
algo como 10 ou, titânio
ou, ou
algo parecido. Se outro modelo acrescentasse que um fabricante de pacotes mais ou mesmo
aquele mod poderia simplesmente dizer, ei, se isso, se os modelos do curso
MC, eles são apenas adicioná-lo também. Então isso é muito legal. Mas isso é, na verdade, tudo o que
precisamos fazer pelos nossos tanques. Então, número um, vamos ver
se a haste de dowsing com o novo é um método de
bloco valioso funciona. E também vamos ver se
ainda podemos criar ou um
bloco de cálcio de lingotes ou
inferências no Minecraft. Então, vamos ver, clique com o botão direito. E lá temos isso. Lá temos um
pouco de minério de cobre. E vamos continuar. Talvez também encontremos
alguma ardósia profunda, cobre ou ferro ou tenho certeza de que encontraremos
algum em algum momento, claro, a durabilidade não
está diminuindo. Oh, lápis-lazúli, para que
definitivamente não
tínhamos isso antes. Agora, vamos ver se
conseguimos encontrar
outra coisa aqui em algum lugar,
nenhum valor encontrado. A durabilidade não está
diminuindo porque estamos no
modo criativo atualmente. Isso também está considerando
outras áreas. Sono profundo, lápis,
taxa de lazúli ou está lá? Aí está. Então lá vamos nós. Isso é
realmente incrível. E vamos ver. Então lembre-se de
ter vindo bem e eles vão, ainda
podemos criar
o RCA pode bloquear, como se nada tivesse acontecido aqui. Então isso é bastante
frequente, legal, respeitável ou EBIT para
esta palestra aqui. Espero que você tenha achado útil
e ele aprenda o novo. Todo o código está
disponível para você
no repositório do GitHub ou em
indivíduos também. E te vejo
na próxima palestra. Então, sim.
54. (Noções de (Basics) Acionando escadas e latas: Ou eu dou as boas-vindas de volta ao cavalo de
tecido por um 118. E nesta palestra
vamos começar nossa série ou palestras sobre o que eu geralmente
chamava de não-bloco. Blocos. Claro que isso não
faz muito sentido. No entanto, o que queremos adicionar basicamente são escadas,
lajes, botões, placas de
pressão, cercas, cercas, portões, paredes, portas
e alçapões. E vamos fazer isso
nas próximas quatro palestras. Eles têm todas algumas semelhanças, mas há alguns passos cruciais e
importantes que você
precisa tomar em alguns deles. Então, vamos começar. E o aviso número um que
quero dar no
início é que definitivamente
copiarei todos os arquivos JSON aqui. Então, você definitivamente
precisará abrir o repositório do GitHub ou os juristas e
copiá-los também. Eu
recomendo escrevê-los. Você verá em um momento não
é realmente possível. Bem, é possível, mas você pode passar meia
hora fazendo algo melhor. Então, vamos ver
isso, não se preocupe. E o que vamos fazer é
copiar
o bloco SPD duas vezes. E a primeira será a escada
sublinhada de cálcio ORiC. E este vai ser
o resultado 40k sublinhado
escadas também. E este será o laboratório de sublinhado de renda da
Oracle. E esta vai ser
a laje de sublinhado da Oracle também. Agora, nenhum
deles é claro, blocos rápidos. Então as escadas do oráculo para ser bloco de
novilhos e a laje
é suposto ser laje. Agora você verá
que a fechadura da laje funciona absolutamente bem. Nenhum Roy
já recalc lá em cima aqui com o novo
bloco de escadas não funciona porque tem acesso protegido. O que isso significa? Bem, se clicarmos no
botão do meio do mouse, podemos ver que a prova de que o construtor aqui
está realmente protegido. Portanto, o que precisamos
fazer é
fazer uma aula personalizada com isso, o que é meio estranho. Eu pessoalmente, não
tenho 100% de certeza. Mais amplo esse é o caso. No entanto, é o que
é, então precisamos fazê-lo. Vamos também mudar
esse material aqui para metal porque no final
do dia isso é um cálcio. E depois que fizermos isso, vá para o pacote personalizado, clique com o mouse em nova classe Java. Este é o bloco de escadas modelo. E vamos estender
isso do bloco de escadas. Vamos passar o mouse sobre isso e criar um super
combinando construtor. E então mudaremos isso
de protegido para público. E agora terminamos. E basicamente
nunca mais teremos que
olhar para a classe mais
bloco de escadas nunca mais. Mas toda vez que
vamos fazer um novo bloco, que é um bloco de escadas, vamos usar isso em vez disso. E você pode ver que
o primeiro parâmetro é, na verdade, um estado de bloco. Então, o que temos que
passar aqui é apenas os blocos ou blocos de modo. Portanto, esse é basicamente o estado padrão
dot git. Então, basicamente, o que
temos que passar aqui é o bloco do qual as
escadas são feitas. Mas essa é a ideia geral. Mas, para isso, seus livros estão registrados e
estariam prontos para começar. No entanto, é claro, nunca
pode ser tão simples. Porque realmente como o
kicker para todos
os blocos
que não sejam blocos serão os arquivos JSON. Bem, como eu disse,
copiarei todos eles para sempre e,
claro, também explicarei. Vamos
copiar sobre a laje
e o bloco de direção diz Jason, e por favor, não caia
do seu assento quando vir
isso porque isso é bastante. Então, vamos
começar com lajes porque isso não é nada
ruim. Então o que você pode ver é que agora nós realmente temos
variância diferente, certo? Temos três
tipos diferentes de lajes, fundo, duplo e superior. E cada um deles aponta para um arquivo Jason modelo
diferente. Isso aponta para a laje Jason, isso aponta para o Oracle pode bloquear porque, claro,
se você tiver duas lajes, parece apenas
um bloco normal. E então este
aponta para a laje, mas na parte superior ou na metade superior
do bloco real. Essa é a ideia geral. Esse tipo aqui é
o que é chamado de propriedade de estado de bloco. Vamos olhar para aqueles
em uma palestra futura muito mais detalhes por
enquanto, podemos pensar
nessas variáveis como tendo algum tipo de valores
que elas podem tomar. E, dependendo do valor, alteramos o modelo para o qual os estados de
bloco escolhem pontos. Isso é praticamente
tudo o que há para ele. Agora, para as escadas,
na verdade, temos vários
blocos diferentes por propriedades. E é por isso que se
parece com isso. E eu continuarei rolando e você dirá,
isso é loucura. Sim, isso tem 209 linhas. Essa é a razão pela qual você
deve 100% copiar isso, sob nenhuma circunstância você
deve escrever isso, porque isso é uma loucura absoluta. Agora, um truque rápido que eu
quero compartilhar com você é que se você usasse um ID de modo
diferente aqui. Você pode selecionar
isso e pressionar Control R para substituí-lo e, em seguida,
substituí-lo pelo ID do MOD. Basicamente, esse clique em Substituir Tudo. E você pode ver que, de repente, em todos os lugares
,
substituiu a coisa real pela
melodia que colocamos aqui. Este é o Control Z
para voltar aqui. E o mesmo, claro,
vale para o cálcio. Então, se você estiver usando o
titânio Arnold, por exemplo, você poderia substituir todos eles e isso também
funcionaria. Onde não se esqueça de renomear
os arquivos JSON também. Mas isso realmente torna
tudo muito mais fácil. E você também pode fazer
isso a propósito, quando você seleciona a
pasta aqui e pressiona Control Shift R,
então o arquivo de substituição
aparece e você pode ver que
agora eu poderia substituir ou um cálcio em
todos os esses arquivos aqui. mesmo e, basicamente,
substitua-o por titânio,
digamos Substituir tudo. E isso também funcionaria. Mas essa é uma dica muito
importante e
recomendo fazer isso
se for necessário. Então, agora precisamos copiar os arquivos
do modelo de bloco e é aqui que
fica muito louco. E isso também é, você
verá agora por que eu digo: Bem, vamos copiar
tudo porque esses serão
cinco arquivos diferentes. Agora isso ainda não muito ruim Todas as coisas consideradas, é
muito ruim Todas as coisas consideradas,
mas ainda são algumas. Vamos apenas abrir as laje primeiro para que você possa
ver que, no geral, o que está escrito aqui não
é muito louco. Basicamente, temos apenas três texturas diferentes para
as quais apontamos para qualquer lugar, tanto para o laptop
quanto para a laje, essas serão
as mesmas texturas, seja qual for o caso, porque sempre queremos que isso pareça com o bloco oracle. E a única
diferença entre os dois com base em arquivos
é o pai aqui. Ou é um
laptop de cavalo de laje, é isso mesmo. E quando se trata das escadas, enquanto elas parecem um
pouco diferentes, mas também muito parecidas, temos três
texturas diferentes para as quais apontamos. E mais uma vez, a
única coisa que muda aqui são olhares, escadas
internas e escadas externas, ou o pai
é praticamente todas as mudanças ou todas as diferenças
no modelo de item Jason? Bem, esses são, felizmente, na verdade apenas os quatro blocos do modelo normal do
Jason. Isso aponta para a laje normal aqui e isso aponta para o arquivo
JSON
normal ou para escadas de telecomunicações aqui. Portanto, não se preocupe lá. E o louco é que não
precisamos adicionar texturas porque as escadas e as lajes lobo apenas usam
a textura do bloco oracle. Então isso é muito legal. A única coisa que precisamos
adicionar é uma tradução. Claro, o que
vamos fazer é copiar
isso aqui. Vou dizer, ou uma renda de vaca. Escadas
sublinhadas serão o Oracle Malcolm. Há e então
esta
será a laje recalc deles. Laje. Observe também que
essas escadas com um S, tão plural e laje singular, isso é muito importante
aqui também. Mas, na verdade, eu sei que você não vai acreditar em
mim, mas é isso. A coisa louca
definitivamente vai estar aqui. Os arquivos JSON para o
bloco declaram Jason. E isso continuará basicamente
para todos os nossos diferentes blocos não bloqueados
que vamos adicionar n. Portanto, eu recomendo apenas dar uma
olhada naqueles
no repositório do GitHub
e copiar aqueles acabados. E então vai
ser muito mais fácil. Mas agora, vamos ver se funciona. Ou eu fungo de volta no microfinanciamento pode
ver o
oráculo vir olhares e os escravos
foram adicionados ao jogo. E podemos
colocá-los e apenas fazer um bom, bem, quero dizer, basicamente o que
quisermos com eles, podemos simplesmente colocá-los e tudo aqui
funciona também, certo? Podemos ver as escadas internas e
externas ou trabalhar. Você pode definir isso
na parte superior e também
na parte inferior aqui e
juntá-los para fazer um bloco normal. Como você pode ver,
tudo aqui funciona. Então isso é muito legal, certo? Mas 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.
55. (Noções de botões) e placas de pressão: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra, vamos adicionar botões personalizados e placas de
pressão e continuar
com os blocos sem blocos. Então, vamos para a nossa classe de blocos
Mort e vamos apenas copiar sobre a laje de
telecomunicações eRIc duas vezes. E vamos
começar imediatamente. Então, esse será
o botão de vir da Oracle. E isso é, claro, mais
uma vez aqui o caso. E então o outro,
esta será a placa de
sublinhado de
pressão de sublinhado das telecomunicações. E mais uma vez, o mesmo
em minúsculas aqui. Sublinhado de pressão tardio. Agora, o botão calc
aqui é claro será um bloco de botões, o que você verá também nos
dá um erro. E a laje de um bloco
vai ser uma pressão ou melhor, o prazer
jogado Brock será um bloco de placa de
pressão,
o que, claro, também
vai ter um erro. Isso significa que precisamos fazer duas novas classes personalizadas aqui. Então, em nosso pacote personalizado, o bloco de botão de modo, que irá estender a classe de bloco de botão de
pedra. Vamos passar o mouse sobre
esse construtor credo combinando super. Quer mudar isso
para público aqui. Portanto, não se preocupe lá. E então nunca mais temos que
olhar para esta aula novamente. E, em seguida, no
pacote personalizado mais uma vez. O
bloco de placa de pressão de modo aqui. Um estende isso pelo bloco da placa de
pressão. E vamos passar o
mouse sobre isso novamente e também tornar isso público. Agora está usando as aulas
normais de baunilha. Vamos usar o bloco de botões de
pedra mod aqui. E então aqui vamos usar o bloco mod de pressão
jogado. Agora, o primeiro
parâmetro disso realmente será
uma regra de ativação. Este vai ser o ato. Eles evitam governar tudo. Então, basicamente,
tudo o que passa por cima desta
placa de pressão irá ativá-la. Na verdade, vamos clicar no
botão do meio do mouse sobre isso e o botão do meio do mouse clicar
no bloco da placa de pressão. E você pode ver que
temos a saída Redstone. Este é basicamente
o método responsável ou verifica
qual é o tipo real. Então você pode ver que esta guia
está sendo trocada aqui. Então, como uma
instrução switch e você tem tudo ou mães, no entanto, se você quiser criar seu
próprio tipo de ativação personalizado, mais
uma vez, é altamente recomendável. Você precisa de algum
conhecimento Java para realmente fazer isso. Mas não é muito louco. O que você pode fazer é fazer, basicamente você nem precisa
fazer sua própria
ativação ouvirá porque a ativação de
tudo o que você pode ver é um enum. Você nem precisa fazer isso. O que você pode fazer é
simplesmente substituir esse método em sua classe de bloco de
placa de pressão personalizada e, em seguida, ter o
seguinte aqui. Mas você pode ver que as entidades
não espectadoras, e você basicamente passa em uma classe
específica aqui. Então, qual é a classe do
que vamos conseguir? E essa é uma lista de animais
particulares ou de
multidões particulares que passamos. E essa é a ideia geral. Então, neste caso, tudo o que é uma entidade
viva, certo? Então mobs tudo o
que é uma entidade viva, então vamos retornar 15. Se a entidade que está acima
dessa classe de entidade viva,
caso contrário, podemos passar outra
coisa aqui também. Então isso é algo
para ter em mente se você não quiser
isso, tudo bem. Mas eu definitivamente recomendo
algum conhecimento Java para isso. Caso contrário, você
vai lutar com isso provavelmente um pouco. Bem, os blocos agora
estão registrados. No entanto, é claro, mais uma vez, infelizmente os
arquivos Drazen são a coisa que vai ser
a coisa louca. E neste caso, o arquivo JSON do botão para o estado do bloco
será realmente uma coisa louca. Você pode ver. A placa de
pressão só tem um alimentado falso ou verdadeiro. E então, ou temos
a placa de pressão ou a placa de pressão para baixo. Isso é bastante simples. O botão, como você
pode ver, é louco. Mais uma vez, como podemos baseá-lo no
chão ou na parede. Podemos tê-lo voltado para leste, oeste, sul ou norte. E pode estar ligado ou desligado. Então isso é basicamente o que
toda essa loucura faz, é que na verdade é muito louco. Então, no geral, este ano basicamente
apenas gira o bloco, e este ano faz com
que a textura gire com o bloco também para que eles não
rodem de forma independente. Essa é a
essência geral de tudo isso. No entanto, mais uma vez, é
realmente muito louco. Não digite isso fora de. Isso está disponível para você
no repositório do GitHub ou
no indivíduo também. Isso, é claro,
também estará disponível nas
bibliotecas externas aqui embaixo, o que já vimos
anteriormente. Então, eu recomendo apenas
copiar isso, se necessário. E você pode, claro, sempre
usar o truque para selecionar isso e pressionar Control
R para substituir algo. E então você pode substituir, por exemplo, o ano do MOD ID. E você não precisa fazer isso
muitas vezes individualmente. Mas, na verdade, vamos para o
EN nos sublinhar o arquivo JSON imediatamente porque isso é algo que eu costumo
esquecer às vezes. Então, não vamos fazer disso um hábito. Vamos dizer que o botão
oracle Vírgula e o Oracle pode
pressionar a placa. E este vai ser
o recalc e o botão e o pericárdio de pressão não sublinhado,
mas uma placa normal,
o ego e,
em seguida, os modelos de
blocos que vimos, é
claro que mais uma vez
há um menos, mais, mas felizmente para o
botão e a placa retro, mais
uma vez há cinco. Então, vamos dar uma rápida
olhada neles porque, mais uma vez, eles não são
tão interessantes. Todas as coisas consideradas. Você pode ver que o
botão aqui só tem um pai diferente a cada vez e a textura é sempre apontada para o
já bloco Kalikimaka. Então isso é praticamente
tudo o que há para ele. O mesmo com isso. Os pontos para o Oracle
podem bloquear a textura. E basicamente só tem a placa de pressão para cima ou a placa de
pressão para baixo como pai. Essa é realmente a
única diferença aqui. E para os modelos de itens, há algo parecido com algo muito
particular para o botão. Mas também isso não é muito
louco porque temos um modelo específico de bloco de
inventário de botões, o qual disso aponta, mas também nada para desistir. Mas, no geral, isso
não é muito louco. E, mais uma vez, não
precisamos adicionar texturas aqui porque as texturas
sempre serão, o Oracle pode bloquear para
qualquer um desses blocos. Embora agora vamos
ver se funciona. Ou farmacêutico de volta ao
microfinanciamento pode ver ambos. A placa de pressão, bem como
o botão, foram adicionados. E vamos apenas clicar no botão. Claro que funciona e
aqui exatamente o mesmo. E como
colocamos tudo, até mesmo as entidades do item aqui, cair nele ainda funcionará. Então isso é bastante
frequente, legal. E isso é, na verdade,
como é fácil adicionar qualquer um
desses blocos onde eu, mas isso já será
para esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. Lembre-se, é claro, que todo
o código está disponível
no repositório do GitHub ou em um
indivíduo também. E eu vou te ver na
próxima palestra, no entanto. Sim.
56. (Noções de cerc, portões de vedação e paredes: Curso de tecido para 118. E nesta palestra, vamos
adicionar cercas personalizadas,
cercas, portões e paredes
personalizadas, Minecraft. Então, isso basicamente
continuará com os blocos não bloqueados, como
eu gosto de chamá-los. Bem, vamos entrar na nossa classe
mais blocos e vamos copiar sobre a
laje personalizada aqui três vezes. Então, vamos ter um cálcio
oral termina, é claro. E isso vai
ser um Oráculo venha curvas aqui também. E então vamos ter
um portão de sublinhado de cerca. E aqui, claro, também, ou um calcSum sublinhado
barbatanas AND gate. E então aqui,
vamos ter uma parede oral de cálcio
e ou uma
parede masculina de chita aqui também. Lá vai você. Então, esse
será o bloco de um amigo e realmente funciona. E isso vai
ser um bom bloco de vedação. E, na verdade, funciona. Acabar com o luto ou três? Sim, um bloco de parede. E também funciona. Então, isso é realmente muito bom. Não precisamos fazer
nenhuma classe personalizada aqui neste caso. Então, podemos basicamente
continuar com os arquivos JSON, que mais uma vez serão loucos bastante frequentes, mas não se preocupam. Vamos passar por isso. Então, três blocos
Estados, arquivos JSON, e você já pode ver as coisas começando a
ficar loucas. Então, antes de tudo, o
portão da cerca, como você pode ver, tem três propriedades de
estado de bloco diferentes aqui, voltadas para a parede e abertas. E dependendo disso, basicamente
vamos escolher um modelo de sorte diferente novamente. E então, é claro,
vamos girá-lo e o bloqueio
UV também. Nada muito louco aqui. vez, uma dica muito boa
é pressionar o deslocamento de controle, ou se você tiver um cálcio diferente ou um cálcio, se você não usar
uma recapitulação, mas titânio, ou se você tiver um ID de modo
diferente, certo, você pode simplesmente digitar o
mara DMC curso aqui e digite sua própria melodia
e substitua-o assim. Mais uma vez, Control Shift e quando você está em uma pasta. E também, é claro, todos
os arquivos estão
disponíveis para download no repositório do
GitHub ou em indivíduos também. E a parede e a cerca aqui são realmente um
pouco diferentes. Essas são multipartes
, como você pode ver. E aí a ideia
é que você aplique uma determinada parte do modelo
quando algo acontece. Então você pode ver que, quando
há algo aqui, adicionamos um lado a ele
em uma direção específica. Em seguida, adicionamos o modelo
extra também. Então, vamos realmente entrar no
arquivo JSON dos
sublinhados e
vamos adicionar todos
eles imediatamente. Então, haverá
a cerca. E então vamos ter a renda
da Oracle sublinhado, sublinhado, sublinhado portão nesta cerca aqui E portão aqui. Esta também será a parede de
Malcolm. Parede de boas-vindas. Lá vai você. Então, agora adicionamos tudo isso. Então, isso também
vai ficar bem. E agora vamos adicioná-lo
aos arquivos JSON modelo, que serão muitos. Na verdade, temos
quatro para o portão, temos três para a cerca, e depois temos outros
quatro ou a parede. Então, como eu disse, muitos arquivos, 11 deles no total. Então, no geral, todos eles praticamente parecem
exatamente iguais. Apontamos para uma textura,
ou seja, a textura do bloco. E apenas os pais
são diferentes. Então você pode ver que realmente
não
há nada de louco acontecendo aqui. Trata-se apenas de ter
o pai correto e depois ter o apontar
para a textura correta. Isso é tudo o que há para ele. Não acho que seja realmente necessário
passar por cada um deles. Tudo parece o mesmo. Às vezes, o nome, ano
da textura é um
pouco diferente. Mas, no geral,
a maioria das vezes é toda
a diferença. E você pode,
claro, também sempre ir até as bibliotecas
externas, vermelhas para esta aqui no
Minecraft, projeto minecraft. Para a pasta Ativos, o
Minecraft bloqueia Estados. Temos os modelos, os modelos
e, em seguida, aqui também todos os
modelos ou também. Você pode ver a
parede do Enscape aqui, por exemplo. E isso também está disponível, então não se preocupe lá. Você sempre pode dar uma olhada
nisso e usá-los também. E basicamente copie-os. Agora, vamos copiar sobre a parede,
o portão da cerca e os modelos de item de
vedação também. Para conceder isso aponta para
o modelo de estoque de parede, isso aponta para o inventário da
cerca, e isso aponta para o portão final. Então, nada muito louco. Em mais uma vez, não
precisamos adicionar uma textura sobre o que precisamos
para adicionar nossas tags. Então, em nossa pasta de dados, Minecraft marca blocos, clique com o botão direito do mouse em novo arquivo
chamado dados de cercas JSON. E então vamos
apenas copiar
o conteúdo
deste ano por
apenas um momento para que tenhamos a formatação correta
para as tags. E então isso
vai ser núcleos MC para cerca de sublinhado recalc. E então
vamos arrastar isso para
a mesma pasta enquanto seguramos o
controle para duplicá-lo. E vamos chamar
isso de tag de paredes. E então esta será
a parede recalc. Isso é necessário para que as defesas realmente
se conectem umas às outras. Isso é muito importante, certo? E depois de
adicionarmos tudo isso, vamos ver se funciona. Tudo bem, descobrimos
que desde que, de volta em mente, os impedimentos podem ver todos
os três blocos foram adicionados e todos eles
se conectam totalmente bem. Então é exatamente isso que você
quer ver aqui. Vamos apenas definir
isso também. Lá vai você. Então, tudo está
funcionando muito bem. E bem, quero dizer,
eles são todos
adicionados e é realmente o quão fácil
é adicionar os portões da cerca, as cercas e as
paredes ao jogo. Borracha. Isso já 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.
57. (Noções de (Basics): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos adicionar uma porta personalizada e um
alçapão personalizado ao Minecraft. Agora, esses serão
realmente muito interessantes. Vamos entrar na nossa aula de blocos
de lemas. E com isso basicamente
conclua os blocos não bloqueados. Então, o que vai ser interessante
aqui é que eles realmente não
serão feitos de cálcio, mas serão
feitos de flor de cerejeira. Agora, a flor de cerejeira é,
claro, a madeira real. Então, vamos ter um costume
em uma palestra posterior, mas já
vamos ver a porta. Então, a porta
sublinhada da flor de cerejeira aqui. E então o mesmo vale para o sublinhado Sheri florescer,
sublinhado alçapão. Só vou copiar
isso aqui, torná-lo um pouco mais fácil
para a porta da armadilha do ego. E agora, na verdade, precisamos fazer um bloco de porta do motor e um bloco de alçapão
mod também. Bem, vamos criar
o bloco da porta, que estende o bloco da porta. Vamos passar o mouse sobre esse
construtor credo combinando super, e torná-lo público também. E agora nunca precisamos olhar
para a classe. Mais uma vez. A mesma coisa para
o bloco da porta da armadilha modelo. Vamos estender, é
claro, o bloco de alçapão. Também passe o mouse sobre o
construtor de taxa combinando super e tornando o
construtor público aqui. E então estamos bem. Então, a porta é claro que vai
ser um bloco de porta lema. E este vai ser
um bloco de alçapão modelo. E nós realmente precisamos
chamar outro, bem, eu acho que as
configurações de tecido e isso vai ser o não opaco aqui. Porque isso realmente o, tanto a porta quanto o alçapão contêm valores alfa
em sua textura. Isso significa que você
basicamente tem um portal transparente
no livro real. E se você tiver isso,
precisará adicionar esse não
opaco aqui. Isso é muito importante. E há até outra coisa que precisamos fazer para isso. E isso vai
ser, vamos fazer uma nova aula no pacote de cursos
MC. Portanto, clique com o botão direito do mouse em nova classe Java
chamada cliente do curso MC que implementará o
inicializador de mod do cliente aqui. Vamos passar o mouse sobre isso
e implementar o método, o método de cliente não inicializado. E isso não
conterá onde definimos
a camada do renderizador. Então, vamos dizer mapa de camada de renderização de
blocos. Essa instância. Bloco de dotplot da instância. Quais blocos? Dot door, exatamente a porta de
flor de cerejeira com o ponto
posterior renderizar é cortado. Então vamos
apenas duplicar isso e colocar o alçapão aqui. E o que também precisamos
fazer, e isso é muito, muito importante que
você siga isso, precisamos entrar em nosso tecido. Ponto adjacente aqui, e abaixo do
ponto de entrada principal aqui, certo? Isso é muito importante. Basicamente,
precisamos copiar isso. Bem, o cliente da CIA. Então precisamos dizer o curso
MC e, em seguida,
garantir que isso esteja
escrito assim. Então o curso MC, cliente, isso é muito importante e isso definitivamente tem que
acontecer de outra forma, o cliente no ano passado não será reconhecido e
teremos um poço, uma flecha em como isso
é sendo exibido. Mas depois de ter adicionado, isso estava bom e o código está pronto. Agora, simplesmente precisamos ir
para os arquivos JSON. É claro que todos os arquivos JSON
estão mais uma vez disponíveis para você no repositório do
GitHub ou como gists individuais. Agora, depois de fazer todos
esses blocos não bloqueados, vimos essa taxa de várias
vezes simplesmente aponta para diferentes modelos aqui mesmo no alçapão
ou também na porta. Nada espetacular demais
para ser honesto. Então, vamos também adicionar a
tradução aqui. Então isso ainda não é cálcio, mas esta é a porta sublinhada da
flor de Sherry. E depois vamos fazer
a porta da flor de cerejeira. E o mesmo vale
aqui para o alçapão. Vamos apenas adicionar
a armadilha na fronteira. E então o mesmo vale para
este alçapão, certo? Então, o objetivo e,
em seguida, o que podemos fazer é adicionar
os arquivos do modelo. Agora, na
verdade, existem alguns desses. Vamos copiá-los. Você pode ver que
existem sete deles. Mas, mais uma vez, mesmo que
existam sete deles, no geral, eles são
bastante diretos. Você pode ver que é mais uma vez apenas o pai que
é diferente aqui. E o mesmo
vale basicamente para o alçapão. A única outra coisa
interessante é que a porta é
composta de dois blocos, basicamente
temos uma textura superior e
inferior aqui que aponta para o que isso
é praticamente o único interessante coisa. Agora, o modelo do item, especialmente para a porta, é realmente muito interessante. Porque quando você
verá, isso é que este é realmente um modelo de item
normal. Ou um, para um item, não um bloco. Isso ocorre porque a
porta realmente tem, não é exibida no
inventário como um bloco, mas sim como um item real. O alçapão, no entanto, este ponto estirpe o alçapão
normal aqui. Então, para este, na verdade, precisamos
adicioná-lo a diferentes texturas. Na verdade, três
texturas de bloco
diferentes e uma textura de item. Então, é claro,
também estão disponíveis para você. Eles têm o
fundo da porta, temos a porta superior e o alçapão. Então, no item, também
temos a
porta aqui, então vamos
copiar isso também. Então o ego, a
porta ribossoma para o item. E agora tudo
foi adicionado. Agora, depois de ter
adicionado tudo isso, vamos ver se funciona ou em caso afirmativo, nos
encontramos em micro
lente pode ver que a porta e o alçapão foram adicionados
com sucesso ao jogo. Agora, se eu clicar com o botão direito do mouse em
você e ver que
realmente não
funciona para abri-los. Isso é muito curioso, e
eu posso abri-los. Bem, quero dizer,
vamos fazer isso corretamente. Aqui. Lá vai você. Eu posso
abri-los com um Redstone se eu dirigi
corretamente basicamente atrás. Então, isso é algo que ainda
precisamos mudar. E vou mostrar-lhe como você pode basicamente determinar
se
é ou não apenas aberto com
Redstone ou abrirá é ou não apenas aberto com com a mão também. Mas, na verdade, é uma solução
muito, muito fácil. Em vez de colocar
o material de metal, simplesmente
colocamos madeira material. E isso é tudo o que
precisamos fazer para mudar aqui para
abri-los agora com o fim. Portanto, não se preocupe lá. Mas isso praticamente conclui a parte de blocos sem blocos
da série de palestras, e isso também concluiria
a primeira seção aqui. Então, espero que você tenha achado isso útil e aprenda
algo novo. E eu vou te ver na
próxima palestra, no entanto. Sim.
58. (ferramentas) Criação um novo conjunto de ferramentas: Ou seja bem-vindo de volta ao curso
de tecido para 118. E nesta palestra, vamos criar
um conjunto de ferramentas personalizado. E o que quero dizer, acho que vamos começar a entrar na nossa classe de
itens modelo aqui. E vamos fazer
uma picareta machado e machado um todo, uma pá e uma espada. E, na verdade, vai
estar nessa ordem. Primeiro, o que vamos
encontrar é quando eu apenas copio o todo aqui, vamos
começar a fazer o, na verdade também
é legal
poder nomear aqui porque eu não quero
ter que digitar fora ou pode vir toda
vez
que o código estiver, é
claro, disponível para você
no repositório do GitHub ou em um
indivíduo também. Mas se eu vou começar a
fazer um furo pode escolher x aqui e vamos
fazer dele um novo item de picareta. Claro, vamos
encontrar mais uma vez, bem, amor
duro, ele vai ser acesso
protegido mais uma vez. Então, no nosso pacote de
itens personalizados aqui, vamos fazer
um item de grandes atos mod, que irá estender
o pico do próximo item. Leia o construtor correspondente super. E vou mudar
isso para público. E então
vamos imediatamente fazer a mesma coisa
para o item mod acts, que estende o item X. Também passe o mouse sobre o
construtor de período combinando super, tornando isso público também. E então também precisaremos
do item completo do mod. Estende o item inteiro. Mais uma vez, passe o mouse sobre um
construtor de leitura rápida combinando super e tornando isso público. E então, mais uma vez nunca mais
temos
que ver essas aulas. Isso faz muito sentido, seja qual for o caso. E você verá que ele realmente leva em
quatro parâmetros. O primeiro, que
é um material de ferramenta, na verdade é algo
que também
precisamos criar. Vou fazer isso
em nosso pacote de itens. Portanto, clique com o botão direito do mouse sobre
isso, uma nova classe Java ou material de ferramenta mod. E isso implementará a interface
do material da ferramenta
a partir do item net Minecraft. E na verdade não
vamos passar o mouse sobre isso. A primeira coisa que
vamos fazer é mudar isso para um enum. Isso é muito importante. Na verdade, vamos
fazer é clicar nisso e, em seguida, pressionar Control H para
abrir a hierarquia. E você vai
ver que temos materiais
de ferramentas aqui. Vamos clicar duas vezes sobre isso. E agora você pode ver que esses são os dois materiais da baunilha. E há um truque muito engraçado ou na verdade há um truque
muito fácil. E isso vai
ser, vamos fundo aqui,
não
na frente disso, o último suporte encaracolado, último suporte encaracolado, mas o segundo a último suporte
encaracolado. Em seguida, vamos segurar
Shift e clicar aqui. E então vamos
pressionar Control C para copiar
e, em seguida, Control V para colar. E então há uma coisa
que precisamos mudar, e esse é o nome aqui. Então, vamos
apenas copiar esse nome, colá-lo aqui e, em seguida não
devemos obter
mais erros. Agora, a razão pela qual estamos
fazendo isso é porque
no material
da ferramenta real será exatamente o mesmo, não
importa o que você faça. Portanto, geralmente
gosto de
copiá-lo da classe de materiais da
ferramenta. Isso, só
faz muito sentido. E então o
benefício adicional aqui
também é que você tem acesso
imediato a todos os diferentes valores que
os materiais aqui metade. Então, isso também é muito legal. Então você pode ver imediatamente basicamente o que está acontecendo. Isso é muito bom. Então, o que
vamos fazer é que
vamos nos
livrar de algumas coisas. Então, vamos
fazer algo
assim e depois
algo assim. Então, damos um nome
aqui a este vermelho, é
claro que todos os recalc
neste caso. E então, no
nível de mineração, podemos até fazer isso de uma maneira diferente. Nível de mineração ou
níveis de mineração que passaram atrás, que
acabaram de devolver o tubo, mas é um pouco
mais fácil de ler aqui. Em seguida, vamos mudar
a durabilidade para 450. Claro, a
durabilidade deve ser bastante autoexplicativa. Essa é apenas a durabilidade básica
dos itens reais, depois a velocidade de mineração. Então você pode ver que são 64. Para isso, vamos
fazer algo como 4.5. E talvez o dano seja
de
3,5 e, em seguida, a
intangibilidade seja ainda mais. Talvez seja algo como 25. E aqui, na verdade, não
precisamos de todo esse jazz só precisa de um fornecedor
de ingredientes. Então, vamos
fazer com isso. E então vamos
dizer ingrediente do item. Vou dizer itens mod,
mais itens que são lingotes de
cálcio e, em seguida, fechar
isso corretamente. Lá vai você. Agora, se nós adicionássemos
outro aqui, eu poderia simplesmente copiar
isso e você
verá que isso não
funciona bem , pois o último sempre
tem que terminar com um ponto e vírgula, enquanto cada um individualmente tem que ser separado
com uma vírgula. Então isso é muito
importante observar aqui. Isso é basicamente apenas
um enum avançado. Se você assistiu à introdução do
Java e deve reconhecer que o problema aqui com o preguiçoso realmente
não deve ser muito ruim. Então, isso ainda é realmente usado pelo Minecraft em si mesmos. Então, na verdade, estou. Certo. Com o uso também, acredito que a
depreciação deve estar totalmente bem como usar isso. E se em algum momento algo mudar
aqui, podemos sempre, você sabe, basicamente
dar outra olhada
na classe de materiais de modo
e como isso funciona. Tão totalmente bom. Mas isso é praticamente como se
não precisássemos fazer nada aqui. Acabamos de definir esses campos. E esses campos são
basicamente definidos para cada um
dos diferentes
níveis de material, por assim dizer. Então, se você quiser
mudar alguma coisa, basicamente
você simplesmente
mudá-lo aqui. E então isso leva
para todas
as diferentes ferramentas que você pode ter em
seu modelo, certo? E então podemos
fazer o seguinte. Podemos dizer mod tool
material.org cálcio. E o segundo parâmetro será o dano de
ataque. Acho que isso é um número inteiro. E então o terceiro parâmetro é a velocidade de ataque,
que é um flutuador. E, mais uma vez, apenas as configurações normais do item de
tecido. Agora, porque este é um machado de seleção de
item MOD aqui, neste caso, o risco de mudar um pouco
os números, os números aqui, teremos que
ajustar de qualquer maneira. Como se você tiver
seu modo real, provavelmente estará ajustando os números um
pouco porque, claro, equilibrar tudo não é
tão fácil quanto você imagina. Mas, caso contrário, na verdade,
não
precisamos adicionar mais nada. Então, o que podemos fazer é simplesmente colar isso em cinco
vezes aqui e, em seguida,
começar a mudar as coisas. Então, atua aqui, também age. Então, o XP provavelmente será
algo como 1. Essa é uma velocidade adicional, a
propósito, essa
não é a velocidade real, isso é adicionado a ela, mas mais danos aqui
para o item mais atos. E então vamos ter todo
o sublinhado da OMS e, em seguida, sublinhar
o buraco aqui também. Este é o modo de todos os itens. Mais uma vez, não sou,
na verdade, a menos que,
claro , zeros ou não tenha 100%
de certeza do porquê. Alguns deles você
precisa do item de modo e alguns deles você não precisa. Parece muito inconsistente,
mas é o que é. Este é um item de pá com
o nome ou uma pá de chita. E, claro, aqui também, ou uma pá de telecomunicações. Muito importante que você mude
os nomes aqui em todos os lugares, apenas para estar ciente disso. E depois a espada aqui. E então, por último, mas não menos importante, o oráculo vem espada. E aqui este é um item de classificação. E talvez esse dano de ataque
seja um pouco mais. E a velocidade também é três,
isso vai ficar bem. Agora, os itens estão
devidamente registrados, mas agora,
é claro, precisamos
dos arquivos JSON que tenham uma pequena coisa diferente com eles, mas na verdade é que agora não
deve ser muito louco. Então, vamos fazer com que os
arquivos do modelo sejam copiados. E, no geral,
tudo isso é bastante padrão. A única coisa que você
precisa cuidar,
e isso é muito importante aqui, é que o pai
é, na verdade, o
item slash handheld. E a razão para isso
é que você tenha uma aparência 3D quando estiver
em uma terceira pessoa. Então, basicamente, quando
você tem a espada na mão e outra pessoa
olha para ela em um servidor,
então, é claro,
parece que é 3D. Então é disso que você precisa lá, isso é muito importante aqui. E então vamos também para
o sublinhado arquivo JSON. E vou copiar
as traduções aqui mais uma vez, é claro, tudo disponível para você no repositório
do GitHub ou um
indivíduo também se ajusta. O mesmo, claro, com
as texturas aqui. Então, essas são as cinco texturas de
itens que
vamos precisar. Atua no todo, O porco age, a
pá e a espada. Vamos apenas copiá-los há
mais de um ano. E isso deve
ser praticamente tudo o que precisamos fazer. Na verdade, há mais uma coisa que é muito importante adicionar, e essas
serão as tags da ferramenta. Então, em dados,
vamos criar um novo diretório chamado Hambrick. E então, dentro de lá,
vamos criar um novo diretório chamado tags. E então, dentro de lá, vamos criar
novos itens de porta de diretório. E então basicamente
precisamos de acesso ao Jason. E vamos apenas copiar isso para este grande eixo gameta adjacente. E vamos copiar apenas um ano. Vamos preencher
isso em apenas um momento. Temos esse grande eixo. Isso vai ser pás. E então vamos
ter o sistema operacional e depois classificar. Então, neste ponto em 118, acredito que
esses não são mais necessariamente necessários ou nunca. Acredito que ainda é uma ideia
inteligente adicioná-lo a ela. Basta adicionar basicamente
o eixo específico, pás e tudo isso. Com essas tags. Realmente não há motivo para
não fazê-lo no
final do dia. Este é um processo bastante
simples. Depois de ter feito
isso, uma vez para um de seus dois materiais
do que adicioná-lo aos outros é
praticamente um processo muito
simples e um altamente recomendado
apenas adicioná-los. Então, no tecido,
namespace, tags, itens
e, em seguida, basicamente, acesse furos ,
escolha eixos, pás e tipos. Então essa é uma ideia muito inteligente
basicamente fazer isso
e adicioná-la lá. Mas isso é praticamente
tudo o que precisamos fazer. Então, vamos ver se funciona. Ou Francis volta e microfone. Como você pode ver, todas as ferramentas foram adicionadas ao jogo. Mas vamos ver, tudo
isso funciona, então isso é muito bom. Vamos ver se consigo
clicar com o botão direito do mouse com isso. E eu realmente posso. Então esse é um ótimo
sinal aqui também. E também pule isso. Isso também funciona. Também posso clicar
com o botão direito do mouse com isso, presumo que é claro que posso. E então não
temos madeira para fora. Você olha para isso, é o
quão rápido pode aparecer. Vou clicar com o botão direito
do mouse e
também posso minerá-lo corretamente. Então, tudo aqui
deve funcionar muito bem. E tudo
foi bem-sucedido. Isso, a propósito, é o que
quero dizer com o hand-held. Então, basicamente,
parece que você está segurando a ferramenta em sua mão em vez de apenas ter
o item assim. E é por isso que você precisa
do pai portátil ou de um bot 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.
59. (ferramentas) Criação uma multiferramenta personalizada (Paxel): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos adicionar um item
personalizado do Paxil ao jogo. Portanto, isso é claro, algo que é
completamente personalizado e, na verdade, requer apenas
um pouco de trabalho extra, mas na verdade é bastante
fácil, considerando todas as coisas. Então, o que vamos fazer é fazer uma nova aula em nosso pacote de itens personalizados
chamado mod packs ou item. E isso realmente vai se
estender porque é claro que um item do
Paxil não existe. Isso vai estender o item
da ferramenta de mineração. E
vamos passar o mouse sobre esse super
combinando construtor de criação. E vamos
tornar isso público, não
vamos precisar aqui
é o bloco efetivo um, o parâmetro e também
vamos escolher pegar o parâmetro do material da ferramenta e movê-lo para
a frente aqui. E então o efeito
dos blocos, certo? Se fôssemos, por exemplo, pressionar Control H aqui e apenas dar uma olhada no item de
picareta, por exemplo, você pode ver que isso leva as tags de bloco minable picareta, que é exatamente o que nós
estiveram aqui, certo? Então, basicamente adicionamos
nossos blocos para acabar com isso. Agora, Paxil, queríamos ser
capazes de ser eficazes em
atos de viagem e escolher blocos X. Como faríamos isso? Bem, vamos
fazer uma etiqueta personalizada. Então, na nossa classe fiscal modelo, o que
vamos fazer é fazer uma nova etiqueta aqui. Então, isso vai ser um
imposto próprio, na verdade. Portanto, uma tag normal cria aqui. E este será o sublinhado de
Paxil minable. E então aqui pacotes realmente
mineable, chicote, Paxil. E então essa etiqueta real
ficará fria aqui. Então, vamos
dizer tags moderadas, blocos de
pontos, não mandíbula Paxil. E agora podemos basicamente usar essa classe e ela deve
funcionar totalmente bem. É claro, ainda precisamos adicionar isso às nossas tags do curso MC. Então, em nossa pasta de blocos,
na pasta tanques,
clique com o botão direito do mouse em novo diretório
chamado mineable. Então dentro de lá dentro do botão direito novo arquivo, Paxil dark trace. Deixe-me copiar rapidamente
este aqui. Então, a partir da escolha X1 e
isso vai ser muito interessante porque podemos até colocar tags diferentes aqui, então não precisamos listar todas as coisas que
estão nas tags mineráveis. Ou podemos simplesmente fazer é
que podemos dizer hashtag. E isso significa que
esta é, na verdade, uma outra tag que
queremos colocar aqui. Então dizemos Minecraft,
mineable, chicote x. E isso, basta copiar isso
e dizer, obrigado e comprar. Agora, o que o item de pacotes não
terá é clicar com o botão direito
do mouse. No entanto, isso é algo
se você realmente quer isso, que ele poderia, claro, se
adicionar também. Na verdade, não deveria
ser tão louco. Basicamente, dando uma
olhada no item da pá aqui, você pode ver que há
algumas coisas aqui. E o item também, há algumas coisas
que não são muito loucas. No entanto, vamos
ficar com isso. Por enquanto. Vamos apenas copiar
sobre o oráculo vem espada e vamos renomear isso
para o oráculo vem Paxil. Então o mesmo aqui também. Paxil, o dano e a velocidade vão
ser reduzidos um pouco. E então este será um item de pacotes de modificação. Como você pode ver, tudo funciona. Muito importante é
que você altere os parâmetros aqui para
ser exatamente assim, então ele deve
funcionar totalmente bem. E então só
precisamos do arquivo JSON, uma tradução também. Então, vamos realmente fazer
a tradução primeiro. Isso vai ser
muito direto. Lá vai você. Portanto, a tradução e todos
os arquivos também estão
disponíveis para você, interesses
individuais ou
o repositório do GitHub. E vamos acabar com o solo
compacto oracle. E a textura também. Então, praticamente temos
tudo o que precisamos. Então, eles atrás, agora tudo
foi adicionado 0. Vamos ver se funciona. Ou encontrei isso de volta no Minecraft e como você
pode ver lá está. O Paxil foi adicionado
ao jogo e
não parece ótimo. Então podemos ver basicamente aqui, eu posso facilmente minerar isso e também
posso facilmente minerar isso. E ainda temos algum humor, e eu também posso
facilmente minerar nisso. Agora, mais uma vez,
clicando com o botão direito do mouse, ele realmente não
funciona nem para o caminho basicamente nem para a
remoção da madeira. Se você realmente quer isso, então isso não deve
ser muito louco para adicionar. Se você tiver algum conhecimento Java, tenho certeza de que você gerenciará. E se for realmente
altamente solicitado, eu poderia adicionar uma
palestra de acompanhamento sobre isso também, se isso é realmente o
quão fácil pode ser adicionar um item do Paxil ao jogo. Então, espero que você tenha achado útil e aprenda algo novo. E eu te vejo na
próxima palestra, no entanto. Sim.
60. (ferramentas) fazendo as armas que aplicam efeitos: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos
dar uma olhada em como você pode adicionar um efeito a uma entidade quando você acertar com um item específico. E essa é uma
maneira muito complicada de dizer basicamente, você vai adicionar um efeito de
fusão a uma entidade. E a maneira com isso
vamos fazer isso é que
vamos criar uma
nova classe aqui. E este será o item armazenado
mod que está sendo armazenado. Assim como um exemplo aqui, vamos estender
a classe de item de classificação. Eu só vou passar o mouse
sobre essa criação, construtor combinando super. E então podemos deixar
tudo aqui. E assim como com
um item normal, existem métodos
para substituir, certo? Então eu posso colocar uma substituição e você poderia ver
que ele estava no bloco, use como brilhar uma dica de ferramenta de caneta. Há um monte de
coisas que eu posso anular e não se preocupe lá. E há um
método específico que vamos
substituir e que é legal como o método post hit, que é chamado
depois de atingirmos
um inimigo ou melhor, após
o dano ter um inimigo ou melhor, após sido
adicionado para um inimigo. E o que podemos fazer é dizer que o status do ponto alvo afeta a nova instância do
efeito de status. Digamos que o status
afeta essa lentidão. Digamos que quatro
segundos no nível dois. E então também passamos o atacante faz Isso
basicamente
será a fonte porque somos o atacante e o
alvo é claro que,
que está sendo atingido
como a entidade que é sendo atingido aqui. E agora podemos ir para
a classe Mais Itens e simplesmente mudar isso para o item de classificação MOD
lento aqui. Por exemplo, você não
precisa necessariamente fazer isso. Você também pode criar um novo item, mas vamos mudar
a fonte de cálcio para isso. E quero dizer, é
praticamente isso. Isso é tudo o que precisamos fazer. Precisamos substituir o
método de ocorrência do sistema operacional e,
basicamente, basta adicionar isso, o efeito de status ao alvo. E isso é, na verdade, o
quão fácil é adicionar um efeito ao acerto. Então, apenas por causa de conclusão, vamos ver se funciona ou faz
inferências de volta no Minecraft. Então, vamos ver se eu bati em
uma ovelha. Lá vai você. A ovelha que estava realmente escondida agora tem Sloan
como aplicado a ela. E aquele que
basicamente foi pego no fogo cruzado
na verdade não o tem aplicado
porque só
é aplicado
à entidade direta que você está atingindo que
incluiria um peixe. Eu acredito que eles
provavelmente
morreriam depois de 100 sim. Slt eles vão morrer. Mas você realmente
viu que ele também tinha a lentidão se aplicando a ele. No entanto. Isso é
muito legal, certo? E isso já é isso 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.
61. (Armor) criando um novo conjunto de Armor (de (Armor): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos adicionar uma armadura
personalizada ao Minecraft. Agora, este é um exercício
que vai ser muito,
muito semelhante a adicionar
as ferramentas ao Minecraft porque vamos precisar um material de armadura
neste caso em vez
de um material de ferramenta. Essa será a
primeira coisa que
vamos fazer em vez do pacote de itens,
clique com
o botão direito do mouse em nova
classe Java chamada mod, mod armor materials a 0. E isso implementará a interface
do material de armadura aqui. E mais uma vez,
não vamos passar o mouse sobre e implementar o método, mas vamos clicar no botão do meio do
mouse sobre isso, ou melhor, apenas
clicar nele e pressionar Control H para entrar no braço
materiais de outra classe. E então, mais uma vez,
vamos selecionar na parte
inferior aqui. E, em seguida, segure Shift e
clique na parte superior aqui
e, em seguida, apenas Control C
e Control V para colar. E isso vai ser isso. A única coisa que
precisamos mudar aqui é a classe para um enum. E então vamos pegar
o nome desta classe. E isso mudou para
aqui também para que o construtor realmente
funcione corretamente. E vamos apenas
formatar isso de forma um pouco diferente com os
parâmetros aqui. E então isso
vai ficar bem. Você também pode formatar isso de forma um pouco
diferente para que
possamos realmente ler palavras
escritas lá. E aqui. Mais uma vez,
vamos excluir tudo , exceto o ferro aqui. E vamos chamar isso
de Cálcio ORE, é claro. E então o nome também Malcolm. E então, mais uma vez, podemos brincar com
isso um pouco. Podemos ver, é claro, o, os valores nulos aqui. Então essa é a ideia geral. O multiplicador de durabilidade deve ser bastante
autoexplicativo. É apenas o multiplicador
para a durabilidade. Então, por exemplo, você pode ver
que a corrente é 15, o ferro é 15, diamante é 33, total 25 e 37. Então eu acho que
isso é como um 18 vai ser bom
para cada cálcio. Então este aqui é um array int muito
interessante. Estes são os valores de proteção
para cada peça de armadura. Então, cada peça de armadura tem uma quantidade diferente
que protege você. E isso vai por sinal, de baixo para cima. Isso é muito importante. Mas isso é botas,
leggings, placa de peito. Mas isso é muito importante. Então poderíamos, por exemplo,
dizer algo como três, vamos ficar com os
cinco anos 7 e, em seguida, quem está realmente bem para
que vamos torná-lo um pouco
diferente dos outros. Por exemplo, o objetivo também é um
pouco outlier. Então você pode, claro, pensar nisso
como quiser na capacidade
da agenda é o
quão imutável isso é. Vou fazer
isso até quando D5, que é ainda mais do que ouro. Porque, você sabe,
ou um cálcio, é uma fantasia muito
ou assim eu acho que,
isso faz sentido. E, em seguida,
o evento sonoro, na verdade, vamos usar o equipamento de ouro aqui. Então armadura de item, ouro aqui. Isso faz um pouco
mais de sentido em minha mente, vamos manter
a resistência e bater a resistência ao BEC da mesma forma. Você pode simplesmente mudar isso e, em seguida, você adicionará
resistência e não escolherá resistência à sua
armadura que deve funcionar e você não
precisa fazer mais nada. E então aqui, é claro, em vez de ter
tudo isso aqui, só
queremos mais
items.org, lingote de cálcio. E vamos
tornar isso um
pouco mais fácil de ler. Não se preocupe aqui. Então, vamos fazer isso. E então não há retorno. Então lá vai você. E
agora parece muito bom. E mais uma vez, é claro, se você quiser ter
vários materiais de blindagem, eles precisam ser
separados por vírgulas. E então, é claro, também
nomeado de forma diferente e depois termina com uma largura de ponto e vírgula. O último, isso é
apenas uma ideia geral aqui. E se dermos uma
rápida olhada nisso, você verá que temos este ano de
consulta, a durabilidade
base. Esta é a durabilidade base de cada uma das diferentes peças de
blindagem. E então isso é
multiplicado pelo multiplicador de durabilidade. Você pode ver isso aqui. Portanto, temos o
multiplicador de durabilidade aqui. E obter a
durabilidade apenas lhe dá a durabilidade da base com base
no slot e, em seguida, tempos com
o multiplicador de durabilidade. Essa é a ideia geral aqui. Esses números,
é claro, você
também pode ajustar se
realmente quisesse. Vamos ficar com
isso por enquanto. Isso vai
ser totalmente bom. Neste momento, a classe real seu marido configurou para que
possamos mudar para a classe mais itens e agora começar a
criar basicamente nossa armadura. Então, vamos fazer com que um
oracle venha primeiro elemento. E então aqui também
ou um capacete de cálcio é
claro, eles atrás. E isso vai
ser um item de armadura. E você verá que o primeiro
slot aqui será
o material de armadura mod
materials.org cálcio. E então, na verdade, só
tem três parâmetros. A segunda é a cabeça do ponto do slot do
equipamento, e as configurações aqui estão boas. Então, vamos copiar isso quatro vezes. E então
vamos ter o prato de xadrez da escola. Esta placa e este é o baú da ranhura do
seu equipamento. Muito importante que
mudemos isso também. Caso contrário, é claro que
poderíamos adicionar isso ao slot errado, o que não é algo
que queremos. Nós também vamos fazer
leggings aqui. E novamente aqui pernas. O atrás e depois, por último, mas
não menos importante, são as botas. E então as botas aqui também. E isso é claro, os pés. Eles você vai. E agora todos os quatro pedaços de
armadura foram registrados corretamente com nosso mais
nosso material de cálcio. E agora só precisamos
adicionar o modelo do item, Jason e, claro, aqui a tradução muito importante. Aí está. É claro que isso
também está disponível para você no repositório
do GitHub ou um
indivíduo também se ajusta, você não precise
digitar tudo. Você pode realmente copiar
isso também. Mais uma vez, a maioria das coisas
quando você fez isso uma vez, você pode copiar muitas delas dentro de seu
próprio projeto também, eu recomendo fazer isso. A maioria desses modelos de itens, eles serão
muito, muito semelhantes. Então, entre eles, todos
eles são laranja para um imposto que é literalmente
tudo o que há para ele. Vamos adicionar os arquivos de
textura também. Lá vai você. E depois mais uma coisa, o que é muito importante é
que vamos
precisar da aparência 3D da textura. E isso é feito
na pasta Minecraft. Vamos precisar criar uma nova pasta em
nossa pasta de ativos,
clique com o botão direito do mouse em novo diretório
para o Minecraft. Tão pequeno jogo, talvez
você já tenha ouvido falar disso antes. Já fiz isso
, largue o que quer. Clique com o botão direito nas texturas da
pasta de microondas E então dentro de
lá dentro do botão direito do mouse novamente em novo diretório
chamado modelos. E depois mais uma vez
Clique com o botão direito do mouse no diretório chamado armadura. Isso é escrito apenas com um OH, então é a ortografia americana. E então aqui vamos
colocar em dois arquivos, mas esses são os arquivos de armadura. É assim que a
armadura real vamos olhar em 3D e devemos
realmente ser capazes dar uma olhada
nisso, se
formos para as bibliotecas externas
para aqui para os ativos, Minecraft, texturas
nos modelos , armadura. E então você pode ver que
é assim que se parece. Portanto, esta é a camada de ferro, por exemplo, camada
um e camada dois. Então, você também poderia, a propósito, copiá-los, acabou um pouco e depois
tê-los também. Agora, o que é muito importante
para eles é que o nome aqui tem que ser
exatamente a coisa certa. Isso é muito importante. Então, quando você tem o nome que é dado aqui dentro de
seus materiais de armadura, isso aqui tem que
corresponder exatamente a esse nome. Sublinhado camada sublinhado
um e, em seguida,
o outro sublinhado camada sublinhado dois, muito importante, que não pode
ser espaços entre eles. Não pode haver parênteses 1 porque você copiou
e nós
teremos o mesmo nome
e nada disso. Tem que ser exatamente isso
sob o Minecraft, texturas,
modelos, diretório de armaduras,
muito importante. Certifique-se de que isso esteja correto. Mas depois de ter certeza de
que tudo está correto, vamos ver se funciona ou está em microgreens de
back-end de primeira classe. Você pode ver que a
armadura foi adicionada e parece incrível. Então, vamos ver como
parece quando eu coloco. E lá vai você, pronto para ir para a batalha. E é assim que
é fácil adicionar a armadura ao Minecraft onde quer que
já seja para esta
palestra aqui, espero que você tenha achado útil
e aprenda algo novo. Tudo,
é claro, está disponível para você no repositório do GitHub ou um indivíduo apenas
incluindo as texturas, observe o
arquivo de credores a propósito, você vê sob qual licença ou texturas foram distribuídas. Muito obrigado, mas
seja qual for o caso, vejo você na
próxima palestra. Então, sim.
62. (Armor) fazendo um efeito completo: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos dar uma
olhada em como você pode implementar um efeito de blindagem total ou seu mapa. Agora, o que isso
significa,
efeito de armadura total significa basicamente que você obtém um efeito de status aplicado
ao seu personagem quando você usa um terno completo de
um material de armadura específico. E a maneira como
isso funcionará é
no pacote personalizado aqui,
vou clicar com o botão
direito do mouse em
nova classe Java. E isso será
chamado de item de armadura mod. E isso estenderá
o item de armadura mais. E, na verdade, vou copiar o
todo desta classe. Isso está disponível para
você mais uma vez
no repositório do GitHub
ou apenas. E vamos
passar por isso, como se eu fosse
explicar tudo à medida que basicamente
passamos por isso. Então, nós só temos
mais materiais de armadura, seu.org, cálcio eles atrás, e isso deve funcionar, certo? Então, o que está acontecendo aqui? Bem, a primeira
coisa que você pode ver é que temos um campo, um campo final estático privado ou o material a afetar o mapa. Agora, este mapa mapeia um material de armadura para um efeito de status
específico. Certo, isso é justo o suficiente. Então isso significa que, se você tiver esse conjunto específico de armadura, esse material tem esse efeito será
aplicado a você. Agora, a razão pela qual estamos usando uma
instância de efeito de status é porque a instância ou também salva a duração
e o amplificador. E podemos basicamente
mudar isso individualmente. Esta instância em particular na verdade, nunca vamos usar. Aqui embaixo, estamos criando
uma nova instância apenas com os mesmos valores
dessa instância,
porque, de outra forma, ela não
funcionaria. Porque uma vez que uma instância
aqui é usada, você não poderá usá-la novamente. Mas isso é só
para as pessoas que já
teriam
pulado e falado como, espere, isso não funciona. Isso é totalmente bom.
Na verdade, funcionará. Você verá, e este ano tem é
claro, apenas um item de
armadura,
mas na verdade é muito
fácil adicionar outro. Vamos simplesmente
pegar este pé aqui e
colocá-lo em mais uma vez. Então você pode ver que é
realmente o quão fácil é. É instância de efeito de status Eu
recomendo sempre ir acima de 200 ou a duração do
tick aqui. Porque se você estiver
em dez segundos do efeito de sua sentença
começando a esgotar, então ele
começará a piscar. E isso
significa basicamente, porque isso é aplicado
toda vez uma e outra vez, que ele piscará constantemente no canto superior direito e
isso pode ser muito irritante. Há também um ponto em dizer,
bem, talvez uma vez que a
armadura seja retirada, cada efeito ou esse efeito
específico deve ser retirado. Há um ponto em fazer isso. Não vamos fazer
isso neste exemplo. Como se houvesse
uma pequena limitação neste exemplo, mas tenho certeza que isso
vai ficar bem. Então, o que acontece então? Bem, nós substituímos o método de seleção de
inventário, que é chamado de cada tick. Se esse
item específico ou um
desses itens estiver dentro
do inventário, primeiro vamos
verificar se estamos ou não
no servidor porque
queríamos estar no
servidor para isso. E estamos nos certificando de
que qualquer entidade tenha isso em seu inventário
seja realmente um jogador. Esse é o caso, então
podemos ter certeza de que podemos lançar para a entidade para um jogador. E então vamos
verificar, ei, esse jogador tem um terno
completo de armadura? Então este é um método
que eu fiz aqui, onde
basicamente obtemos todas as diferentes pilhas de
blindagem e certificando-se de que
nenhuma delas esteja vazia. Então basicamente dizendo: Ei, se o jogador tiver um traje
completo de armadura, neste
momento, não
estamos verificando
o material, apenas que cada um dos
slots de armadura está realmente preenchido. E se for esse o caso,
continuaremos com o método
de avaliação de
efeitos de armadura. E dentro daqui,
estamos basicamente
passando por todo o
material para afetar o mapa e basicamente apenas obtendo a instância de efeito de status da
entidade material de blindagem que está dentro do mapa. E então vamos
verificar, ei,
se o jogador realmente
tem o efeito de armadura,
ou seja, agora que
estamos basicamente procurando. É claro que há um loop for
que vai passar. Se tivéssemos oito deles, então nós vamos passar e vai ser
como, Ei, faz o,
o jogador tem esse
material de armadura que os proprietários têm
esse material ligado, eles tem esse material de
armadura? E somente se o material
para cada um dos peitorais do capacete que fica
em Botas realmente corresponder. Só então vamos adicionar
o efeito de status para a armadura
específica aqui? E só para que tenhamos, novamente, estamos realmente
verificando isso. Novamente, isso não é estritamente
necessário aqui. No entanto, o que é estritamente necessário em altamente
recomendado fazer isso é o efeito do jogador booleano que eu basicamente
coloco aqui. E a ideia aqui é
que isso basicamente só adicionado
se o jogador
não tiver o efeito novamente. Caso contrário, isso seria adicionado cada carrapato 20 vezes por segundo. E passar por tudo
isso 20 vezes por segundo pode realmente
retardar o jogo de
forma bastante significativa. Portanto, é uma ideia muito
inteligente que basicamente não faz isso e absolutamente
para isso aqui. Também adicionando o efeito
várias vezes. Só não é uma boa ideia. E você pode ver aqui
que estamos realmente fazendo uma nova instância de efeito com o tipo de
efeito, a duração e o amplificador
da instância de
efeito de status real que definimos aqui. Então é isso que eu venho dizendo. Na verdade,
nunca vamos usar essa instância por si só. Estamos basicamente recebendo o amplificador de duração
e o efeito lá. E então há
algo que é possível que você não precisa
necessariamente
implementar. E isso está aqui. Eu tenho isso, para que haja 40% de chance de danificar
a armadura toda vez que
um efeito é basicamente aplicado. Agora você não precisa fazer isso. Então eu também posso
descomentar todas essas três linhas e, em seguida,
vamos ficar bem também. Eu só queria
acrescentar isso também, apenas se algumas pessoas se
perguntarem isso do que podem. Então, de onde
conseguimos esse código? Bem, a maior parte disso
é praticamente apenas conhecimento Java com um pouco de
conhecimento moderno misturado. E isso é algo
que você pode fazer depois de
entender mais intuitivamente o Java e a
modelagem e depois combinar os dois e, em seguida, criar algo
personalizado como este. Eu não diria com bastante facilidade, mas sem muito incômodo. Então, isso realmente
se resume a conhecer Java. Então isso é como mais um
apelo para você que, você sabe, especialmente
nas próximas palestras, especialmente quando
passamos basicamente
da seção de ferramentas e armaduras
para os conceitos intermediários, estamos realmente vai
continuar com o entendimento inerente
que você vai precisar para o Java. Mas não vamos ficar muito loucos
com esse preâmbulo aqui. Vamos realmente nos livrar
dessas duas importações. E então o que vou
fazer é ir para a classe mais itens. E eu geralmente só
faço o capacete, o item de armadura de modo. Você não
precisa colocar tudo em mais item de armadura em um conjunto de materiais de honra
mod. Você só precisa colocar um. Eu pessoalmente escolho o capacete porque acho que
o capacete faz mais sentido
basicamente tomar cuidado com
o resto do peito. Mas também pode fazer sentido, mas o que você preferir, é
claro, mas apenas um
para cada conjunto de materiais. Muito importante, certo? E isso, na verdade, é
tudo o que precisamos fazer. Então, vamos ver se funciona ou são
referidos como Minecraft. E como você pode ver,
eu já tenho o voo de neblina para mim porque
é claro que estou usando
a armadura completa. E isso é muito legal. Então este é Haze também porque
colocamos o amplificador em um. Deixe-me colocar rapidamente
o capacete para que possamos ver que isso vai
basicamente desaparecer. Eles atrás, ele se foi. E essa neblina para, porque o amplificador
basicamente é
um amplificador aditivo, certo? Então, se eu não tivesse nada lá dentro,
seria apressado um, amplificador de um, fase dois, e um incêndio empregador dos
três de hoje , bastante simples. E você pode ver, mesmo que
eu tenha o resto aqui, desde que eu não
tenha o capacete ligado, ele não funciona e
assim que eu colocá-lo no ego, agora, é
claro que acontece
assim que eu pego o armadura fora, a
pressa persiste. Isso é algo
que você poderia, por exemplo, adicionar
se quisesse. Essa é uma funcionalidade
que você poderia fazer, certo? Uma coisa rápida que
é muito importante. Esse objetivo aqui realmente não
funcionará, mas essa é outra limitação é que isso, obviamente,
não funciona porque não
temos um item
de material de
armadura MOD lá naquele momento. Então, na verdade, isso
não vai funcionar. Então, isso realmente
funciona apenas com materiais de blindagem de modo
personalizado
por enquanto, seja
quem for, talvez no futuro
eu atualize essa classe e seguida, ela
também pode ter essa funcionalidade. Quem sabe, certo? Mas seja qual for o caso, é
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.
63. (Armor) criando uma armadura de cavalo personalizada: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos adicionar armaduras de cavalos
personalizadas,
ter o Minecraft. Agora, a armadura de cavalo personalizada é realmente uma coisa muito
interessante porque há
uma pequena reviravolta lá que
precisamos ter em mente. Então, vamos abrir a classe
mais itens, e vamos apenas copiar sobre
as botas de goma oracle. E isso vai
ser renomeado para se preocupar CAL vem cavalo,
sublinhado armadura. E então a mesma coisa
no nome aqui, ou armadura sublinhada, e
este é um item de armadura de cavalo. Agora, isso também leva
em três parâmetros. O primeiro é o bônus, então este é o bônus árabe
que o cavalo recebe. E o segundo é uma string. Esse é o nome da armadura de cavalo
real, o que será
importante porque esse nome tem que corresponder ao
nome do arquivo. Então, se realmente o botão do meio
do mouse, clique sobre isso. Você pode ver que isso
está procurando a textura sob
entidade de texturas, armaduras de cavalo, sublinhados de armadura de
cavalo,
sublinhado, sublinhado de
armadura,
qualquer que seja o nome colocamos como parâmetro aqui. Agora isso, mais uma vez,
na verdade, tem que ser colocado sob o namespace Minecraft, mas não se preocupe,
vamos fazer isso. Vamos ver
isso em apenas um momento. E se eu
clicar no botão do meio do mouse sobre isso, à direita. Então essa é a ideia geral aqui. E isso é praticamente tudo
o que você realmente precisa saber. Então, o que é muito importante
é que o bônus aqui. Então, só para que você tenha
alguns valores de comparação, o ferro tem cinco bônus, a armadura de cavalo dourado
tem sete bônus e a armadura de cavalo de diamante
tem 11 prancha com 15. A armadura de cavalo de cálcio é
realmente muito, muito forte. Mas é claro que, mais uma vez, os números podem ser
ajustados da maneira que você quiser. Vamos antes de tudo entrar no E e
nos sublinhar arquivo
adjacente e adicionar a
tradução. Lá vai você. Todos os arquivos JSON e tudo isso também estão,
naturalmente, disponíveis para você no
repositório do GitHub ou um interesse individual também. Porque vamos
copiar sobre o modelo do item mais uma vez, porque é claro,
ele simplesmente aponta para uma textura normal
na pasta de texturas. Então, nada de ano louco, este é o item real. Ele é exibido
no inventário. E então a armadura 3D mais
uma vez tem que entrar
na pasta Minecraft, mas não se preocupe. Na pasta texturas, vamos
criar uma nova pasta ou diretório chamado entidade. E então dentro de
lá, clique com o botão direito novo diretório para horse. Dentro de lá dentro do botão direito do mouse em
novo diretório chamado armadura, mais uma
vez, apenas com um O, então a ortografia americana. E então vamos copiar
sobre o arquivo aqui, ou é uma armadura
sublinhada sob parafuso ou um cálcio. Mais uma vez, o nome aqui tem que corresponder com
esse nome aqui
e, em seguida, ele será
exibido corretamente 0. Agora, vamos ver Para obras ou descobri como uma
microtendência pode ver, a armadura de cavalos foi adicionada
com sucesso ao jogo, como teria sorte. Temos um cavalo domesticado ao nosso
lado. Então, vamos ver. E aí está, a armadura de cavalo em
toda a sua beleza, o oráculo vem armadura de cavalo. Então isso é muito incrível
se eu mesmo disser isso. Borracha, isso já é
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.
64. (Armor) adicionando um encantamento personalizado: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos dar
uma olhada em como você pode adicionar encantamentos
personalizados,
quem Minecraft. Então, para isso, vamos
entrar em nosso pacote de cursos MC. Clique com o botão direito em novo pacote
chamado encantamento. E lá precisamos de
duas classes diferentes. O primeiro
será o modo encantamentos. E o segundo será
o encantamento
do
atacante relâmpago. Este é o verdadeiro encantamento que vamos implementar. E o outro é basicamente registrar os Encantamentos. Mas o que vamos fazer é
estender isso pela classe Chen aqui,
reconstrutor combinando supra. E vamos
mudar isso para público. E então muito importante
que mudemos a matriz aqui,
os três pontos. Isso simplesmente nos permite passar em vários slots de equipamentos
no final e eles são
convertidos em áreas automaticamente
basicamente. Agora, a
classe de encantamento realmente tem alguns métodos que você
pode substituir quem quer que seja para nós, a coisa número um
é, em primeiro lugar,
o método de nível GetMax, que é muito
importante porque nós realmente precisa voltar para aqui. Portanto, o método de nível GetMax
retorna quantos livros serão gerados e quantos níveis desse
encantamento existem. Portanto, isso é muito importante para substituir os livros a propósito, você é gerado automaticamente, então você não precisa
fazer nada por isso. Esse nível basicamente
significa que esse nível basicamente define
quantos serão gerados. E agora o que esse
encantamento vai fazer? Bem, quando temos esse
encantamento em nossa, em uma arma. Então o que vamos
fazer é gerar um clareamento se forem relâmpagos de nível 1 e 2
se for o nível 2. Portanto, o método para
substituir isso é o método danificado pelo alvo. E o que vamos
dizer antes de tudo é que vamos dizer se o mundo
do ponto do usuário é cliente, muito importante aqui com um ponto de exclamação na frente sendo que
queríamos estar no servidor. Então podemos dizer mundo do servidor. O mundo é igual ao mundo dos
pontos do usuário que elenco. E então, geralmente, quando você
faz o pedido concluído para o mundo do servidor, geralmente que basicamente
você tem isso também, sugere que
N já está lá. E então também podemos dizer que camada de entidade
do jogador é
igual à transmissão de pontos do usuário. Mais uma vez, pressione a tecla tab para preencher automaticamente e, em seguida, coloque a entidade do jogador aqui. E então está tudo bem. Também vamos
obter os caminhos de bloco, que é a posição
igual ao ponto alvo, obter posição bloqueada
ou blogposts. Vamos clicar nisso e pressionar
Alt e Enter para importá-lo. E então precisamos
verificar o nível. Você pode ver que o nível
aqui é dado como um parâmetro. Então esse é o nível
do encantamento real. E outra grande questão é como
você gera um clareamento? Na verdade, é bastante fácil. Vamos dizer que raios
tipo entidade que surgem com o mundo. Nulo aqui, e nulo para o
nome, o parâmetro do jogador, a posição e, em seguida, geram motivo que acionou
regra e true. E isso é praticamente
tudo o que precisamos fazer aqui para
gerar um clareamento. A propósito, isso funciona
para qualquer tipo de entidade. Então você poderia basicamente substituir
esse raio por, por exemplo, um porco, e ele ainda
deve surgir naquele
momento. Então isso seria, claro
, muito interessante. Esse seria o encantamento do
atacante de porcos. Mas isso é claro
agora o que vamos implementar agora. Queríamos o
relâmpago ou o encantamento. Então, vamos
dizer se o nível for igual a dois e vamos
aparecer para forros. Então isso é praticamente tudo o que realmente
precisamos fazer aqui. E essa é a
classe de encantamento basicamente feita. Então, agora vamos passar para a classe
moderna dos campeões. E dentro daqui
teremos dois métodos que
precisamos definir. Um deles é o vazio
estático público chamado de modo de registro Shetlands. E isso será chamado mais tarde
na aula de mod do curso MC. Isso, mais uma vez, apenas
sistema de linha de impressão registrando encantamentos
mod, encantamentos mod. Para mod de núcleos MC, mod ID. Então precisamos de um encantamento
estático privado que se registre com um nome de string e um encantamento colocado em Shetland. E isso simplesmente retornará
os dados do registro, registro, ponto de
registro Pentland com um novo identificador de MC
course mod mod ID, um nome. E depois dos
primeiros parênteses, como nos Encantamentos, perímetro e ego, isso
registrará o encantamento. Isso é muito semelhante à
forma como basicamente fizemos isso na classe mais itens ou
blocos de motores. E depois faremos
os Encantamentos. Portanto, este é um encantamento
estático público ou um atacante de
sublinhado iluminador, que é igual
ao método de registro. O nome aqui é uma munição iluminadora do atacante
sublinhado
e, em seguida, um novo
ataque de iluminação ou encantamento. Então este aqui. E então podemos passar
no encantamento essa raridade incomum. Por exemplo, o alvo
de
encantamento por vírgula será uma arma
exatamente esta. E então o slot
do equipamento será a mão principal. E então terminando isso
e lá está. Então, isso é tudo o que há para ele. Um dos cantos,
é claro, disponível para você no repositório
do GitHub ou em ajustes
individuais também. E isso, na verdade, é o
encantamento já feito. Agora só precisamos nos ligar para o curso MC, multi-classe. Então, aqui, mais encantamentos que registram remessas modernas. Isso é realmente muito
importante se isso
não for adicionado a eles,
não funciona. Isso é muito, muito importante. E depois há
mais uma coisa no ouvido
e nos sublinha o arquivo JSON. Também vamos adicionar
na parte inferior aqui, a tradução. Então isso é encantamento e o raio do curso
MC
sublinha Stryker. E isso é claro, um disjuntor de iluminação,
muito importante. Só precisamos de uma
dessas traduções aqui. Então você pode ver que é isso e
isso para cada um dos níveis, na verdade só
precisamos traduzir isso uma vez. E então ele se traduzirá para todos os níveis dos Encantamentos. Mas, depois de
ter adicionado tudo isso, vamos ver se funciona. Ou somos fãs de volta
em microfinanças, você pode ver o relâmpago ou o presidente foi adicionado
com sucesso. Vamos apenas adicioná-lo ao
oráculo ou aqui. Um para o primeiro e
depois para o segundo. Certo, então vamos
experimentar essas ovelhas. Então, vamos ver. E lá vai você. Na verdade, funcionou. E vamos fazer o outro. Mas isso basicamente
irá para relâmpagos. Não é muito perceptível,
mas funciona. Você pode ver lá você
entra e faz o outro, isso prejudica um pouco mais. Mas, por exemplo, para as ovelhas, elas morrerão em
quase um golpe de qualquer maneira. Portanto, não é tão perceptível. Bem, sim, o tratamento funciona. Então isso é muito legal, certo? E isso já é para
esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Se ele o fizesse, eu
agradeceria muito uma crítica sua. Caso contrário, verei
você na próxima palestra. Então, sim.
65. (Intermediate) blockstate: Ou eu dou as boas-vindas de volta ao curso de
tecido para 118. E nesta palestra, vamos dar uma
olhada nas propriedades do estado de bloco. As
propriedades de estado bloqueadas são algo que já
vimos anteriormente. E isso estava na
porta, nas escadas e em todos esses
blocos não bloqueados,
ou seja, nos arquivos JSON
para os estados de bloco aqui. Então, por exemplo, se dermos uma
olhada na porta, essas aqui eram as propriedades do
estado do bloco em. Agora vamos dar
uma olhada em um exemplo. Mas antes de tudo,
vamos
passar por um
pouco da teoria. E para isso
vamos sair dos slides do PowerPoint. Claro. A primeira distinção que
temos que fazer é entre um bloco
e um estado de bloco. Isso é muito
importante porque o bloco é, na verdade, um tipo
de padrão singleton. Portanto, isso significa que em
nossa classe de caixa de correio, ou para baunilha
na classe blocks, cada campo de bloco é criado
uma vez para cada um dos blocos. Portanto, esse é um tipo
de padrão singleton. Sua pergunta resulta
de como, por exemplo, o que economizamos um bloco
dentro do mundo? Bem, fazemos isso
com os estados do Bloc. E esses são
basicamente casos de um bloco específico
dentro do mundo. Dizem, por exemplo, a posição do bloco,
a propriedade do bloco. Portanto, esse seria o
comportamento que passamos para o bloco que criamos e as
propriedades do estado do bloco também. Mas esta é a principal
coisa que vamos dar uma olhada nos slides a
seguir. E a ideia é que os
estados de bloco são basicamente salvos
pelo mundo e eles também
só podem ser alterados pelo mundo. E isso é feito,
por exemplo, fazendo o
estado de bloco ponto-ponto mundial e depois passando
alguns parâmetros. Agora, vamos passar
para a ideia de bloco, digamos propriedades ou como
armazenar dados em blocos. Agora, uma espécie de segundo título
aqui não está certo, mas está certo o suficiente. Então, temos um exemplo aqui
da classe pública,
Redstone ou bloco. E você pode ver que ele tem uma propriedade booleana chamada lit. E este ano é exatamente
o bloco dizer propriedade. Nós definimos isso
na classe de blocos. Então, no começo, você pode ser como, isso é meio estranho, certo? No entanto, esse é um rendimento
específico aqui. É por isso que não podemos usar apenas um booleano dentro
da classe de blocos. A classe de bloco
só existe uma vez? Então, o campo booleano, se você tiver apenas um campo
booleano lá, ele realmente seria alterado para cada estado de bloco dentro
do mundo para esse bloco. E é claro que isso
não está certo porque se um
específico ou bloco dentro do mundo está aceso,
é independente de todos os outros ou blocos, exceto se eles podem
estar próximos um do outro. Isso é algo totalmente diferente. Assim, você pode ver que
precisamos chamar o método append properties
e precisamos basicamente substituir isso e adicionar todas as nossas propriedades ao
construtor aqui. E isso basicamente faz todo o
trabalho pesado para nós. A propriedade sempre tem um
valor muito importante. Portanto, não pode ser nulo. O bloco pode ter várias propriedades
diferentes. Vimos isso na
porta também, por exemplo. Então a
propriedade do estado do bloco que usei para referir-se diferentes modelos dentro do a
diferentes modelos dentro do bloco Estados
Jason ou um bloco, como o bloco de escadas
permanece Jason ou como
vimos a
situação da porta Brock também. E então essa é a
diferença aqui. Então, se LET é falso, então parece que isso
e eu acendi é verdade, então parece assim. E mudamos o estado do bloco. Bem, podemos apenas
chamar o, bem, só
temos que ter a
variável mundial aqui em algum lugar. E então definimos o estado de bloco em uma posição específica
com o novo estado. E então este ano
é apenas uma bandeira, basicamente que notifica todos os
vizinhos de todas
as maneiras que eles precisam
ser notificados para n. Sim, essa é praticamente
a ideia de que estamos mudando uma caixa que acontece
no mundo, certo? E isso também
acontece no servidor. Então isso também é muito importante. E passamos na posição, esta é a posição do estado real
do bloco e parâmetro de
soquete é o novo
estado ou aquela posição do bloco. E então o terceiro
parâmetro, como eu disse, é apenas o comportamento atrasado, é apenas atualizar basicamente
os vizinhos e tal. Esta apresentação
e a folha
de truques também estão disponíveis para
você para download. Mas agora vamos voltar à
inteligência e ao pressionar shift duas vezes e começar a digitar
um Redstone ou bloco. E se você tiver isso, este ano e então podemos
entrar no bloco real si e você verá que é exatamente
exatamente aqui, certo? Portanto, propriedade
booleana final, estática pública chamada lit. E isso é exatamente certo. E se formos aqui, podemos ver que
este ano o mundo definiu caminhos de estado de
bloco e
, basicamente, é o estado iluminado. E agora se transforma em verdade. Esses três aqui são
praticamente o mesmo que notificamos o
comportamento que vimos. Você pode fazer três ou outra
coisa lá dentro. Não vamos nos
preocupar
muito com o comportamento de atualização para nossos propósitos. 3, sempre vamos
usar três, certo? Então eu
recomendo dar uma olhada
no Redstone ou na classe,
porque este é provavelmente um dos exemplos
mais fáceis realmente dar uma olhada. Mas, por enquanto, na verdade, vamos criar
nosso próprio bloco personalizado agora. Então, com uma propriedade de estado
de bloco do cliente. E para isso vamos
entrar em nosso pacote personalizado, mouse em nova classe Java. E vai
ser o bloco da
lâmpada Oracle vem que
vamos fazer uma lâmpada. E isso vai
estender a classe de blocos. Claro, quero dizer, vamos passar o mouse sobre criar, construtor
correspondendo super. E, no topo,
vamos adicionar uma propriedade
booleana final estática pública
da propriedade net microstate. E vamos
chamar isso clicado, que é igual à propriedade
booleana.gov. E, em seguida, um parâmetro de
cadeia de caracteres clicado. Então, estou chamando isso clicado. Isso não é o mesmo que LET. É claro que
também poderíamos chamar a fenda ou sobre ou algo assim. Mas clicado vai ficar bem. Porque o que podemos fazer é poderemos o botão direito do mouse neste bloco e, basicamente,
ativá-lo e desativá-lo. Então essa é a ideia geral aqui. E, claro, antes de
tudo, precisamos chamar o
método append properties ou substituir isso. E isso é tão fácil
quanto apenas
adicionar pontos do construtor e, em seguida, adicionar a propriedade
click a ela. Se você tiver várias propriedades, basta separá-las por vírgulas e
adicioná-las também. Então, é claro que isso não
faz sentido, porque adicionar a mesma propriedade
duas vezes não faz sentido. Mas se você tivesse outro, então você poderia apenas adicionar
isso lá também. Outra coisa que vamos
fazer é dizer este estado de
bloco padrão definido de pontos,
este ponto obtém o estado de bloco
padrão que com buracos lambidos. E isso, o que isso faz é que
qualquer que seja o
estado de bloco padrão desse bloco real, uma vez que o definimos pela primeira vez, vamos nos certificar de
que a propriedade clip é sempre falsa em
dessa vez. Então essa é apenas a ideia geral. E então vamos
substituir o próprio método de
uso aqui. Vamos retornar
o resultado real como
um só com isso
um pouco melhor. E depois
verificaremos antes de tudo, que não estamos no cliente. Então, mais uma vez, isso
garante que
a marca de formação aqui
esteja ou não no cliente. E queremos que a mão
seja e as mãos principais. Então, isso só é chamado uma vez. Vamos pegar um booleano em
Nova York chamado clicado. E isso vai ser “state dot get” e depois
clicado assim. E aqui, claro, você pode ver que já estamos
recebendo o status. Portanto, esse é o estado de
bloco real em que
clicamos com o botão direito do mouse e vamos
apenas obter o valor da propriedade
booleana
clicado no estado em que
acabamos de clicar com o botão direito do mouse. Mas essa é a ideia geral. E então vamos dizer que
o mundo definiu o estado de bloco
na posição em que
clicamos com a largura do ponto do estado lambida. E então,
basicamente, fazemos um VAP. Então, um curso de heróis de vírgula que é muito importante na verdade. Então lá vai você. Então, defina o estado de bloqueio mais uma
vez
nisso, em uma posição específica. Depois, com o estado, com a variável clicada sendo o oposto do
que era antes. E então estamos apenas atualizando todos os vizinhos também. E isto é, eu sei
muito louco, na verdade, tudo o que precisamos fazer aqui. Claro, se você tiver mais complicado para
blocos e blocos, isso que você
queria implementar. Bem, é só uma questão de experimentar um monte de
coisas, definitivamente. E também um monte de conhecimento Java
definitivamente ajuda aqui. Então, se realmente o botão do
meio do mouse, clique na
propriedade booleana e seguida, vá para a propriedade aqui, pressione Control H.
Podemos ver que existem booleanas nas propriedades e também propriedades enum. Portanto, esses são basicamente os três valores
ou tipos de propriedade de estado de bloco
grande que você pode
colocar em um bloco. Eu recomendo
também dar uma
olhada em outros blocos de baunilha
e como eles fazem isso. Mas vamos continuar
e, na verdade, obter o bloco registrado para isso. Vamos apenas pegar o bastão
na cerca aqui. E esta será a lâmpada de
cálcio, é claro. E, ou
lâmpada calcânea aqui também. E este é um novo
ou um bloco de lâmpadas. O ego. E o resto disso
realmente pode ficar. Mas eu queria adicionar
mais uma coisa a isso. E isso será basicamente depois que as ferramentas
requerem aqui, eu quero adicionar a
luminância aqui. E isso basicamente é a e C, a
a função Int
com um estado de bloco. Agora, o que é isso? Isso
parece muito complicado. Na verdade, não é. Então, vamos
pegar isso e eu vou
formatá-lo assim. E a ideia geral é que
isso é apenas um hype de, você pode pensar nisso
como um fornecedor, certo? Então lembre-se, o suprimento era esse
e depois devolva algo. No entanto, neste caso,
escrevemos algo entre parênteses e esse
é apenas o estado aqui. E então podemos fazer ponto de estado, obter o resultado, o bloco de lâmpada de
resultado. E na verdade temos um erro de
digitação aqui, sem preocupações. Então, se você tiver um erro de digitação, você pode basicamente pressionar Shift F6 e então
você pode alterá-lo. E então nós apenas mudamos isso
para já lâmpada de cálcio. Sorte, lá vai você. E então podemos
passá-lo aqui também, ou pode aterrar bloco clicado. E então vamos dizer ponto de
interrogação 15, Polônia 0. Agora, o que isso faz? O que está acontecendo aqui? Alguns de vocês podem dizer
que isso é absolutamente louco. Isso na verdade não é tão louco. Portanto, a luminância leva uma função para Int do
estado de bloco como você pode ver. E a ideia geral aqui é que a
função two int, certo? Bem aqui, não estamos
recebendo nada. Então, o que é isso? Bem, é simplesmente um, requer
que um número inteiro seja retornado e passamos
em um estado de bloco aqui. Isso é praticamente tudo o que realmente
precisamos saber um ano. Portanto, temos um
estado de bloco que podemos usar, e então, de alguma forma, temos que
retornar um número inteiro. Então, é praticamente o mesmo se eu escrevesse
algo assim, certo? Então, e então eu digo estado de bloco, isso é praticamente
a mesma coisa. Retornamos um número inteiro e
passamos em um bloco sentar. Agora, isso é
feito muito mais fácil, tudo em uma linha. Na ideia aqui é
que, com o real, digamos que a função que
escrevemos aqui é apenas um, obtemos o valor de
Clicked desse estado. E se for verdade,
vamos retornar 15. Então, basicamente, ligamos a luminância, então
tentamos e brilhamos. E então, caso contrário,
vamos retornar um 0. Então isso é tudo o que fazemos aqui. Se você quer apenas algo para tentar e você também pode simplesmente
fazer isso e retornar 15, e então o bloco sempre
dará uma luz agora as outras
coisas interessantes, é claro serão as
bloco Estados Jason. Então, mais uma vez, eu
realmente copiarei isso, mas isso é claro que está
disponível para você no repositório
do GitHub
ou no GIS individual. E você verá que
na verdade não é tão louco. Simplesmente clicamos em igual false ou clicamos igual a true. E então, dependendo disso, ele aponta para dois modelos de sorte
diferentes. Então, é praticamente isso. O arquivo de comprimento. Quero dizer, isso realmente vai
ser muito fácil também. É apenas um bloco
recalc ficar debaixo uma lâmpada e depois sentar aqui ou um sublinhado,
sem lâmpada sublinhada. Isso às vezes acontece lá, sua
lâmpada Oracle VM, nem está lá. E então vamos copiar sobre
os arquivos do modelo de bloco vale a
pena para a lâmpada
acesa e para a lâmpada desligada. E ambos apenas se referiram a duas
texturas diferentes como você pode ver, ou lâmpada ligada ou desligada. Então, nada muito louco. E então vamos realmente obter o modelo
do item da lâmpada também. Nada muito louco, apenas
se refere à lâmpada aqui. E então vamos obter
as texturas de blocos. E então, e então estamos
praticamente acabados com isso. E agora vamos ver se funciona. Ou ataque ofensivo
e microvesículas veem que o Oracle pode pousar
foi adicionado ao jogo. E se eu clicar com
o botão direito do mouse, eles, você vai, ele liga e desliga,
pois isso é muito legal. Agora, a razão pela qual não
obtemos nenhum, como a
funcionalidade de clicar com o botão direito do mouse, a mão basicamente se move é porque colocamos o passe
do botão direito do mouse. E isso é claro,
para que possamos mais, melhor basicamente colocar blocos
abaixo adicionados. Porque se não
tivermos o passe lá, então, você sabe, isso
é um pouco estranho. Portanto, é claro que você também pode alterar o resultado real que você
retorna no método não utilizado. Isso também é sempre
algo que você pode apenas experimentar e ver quais são as
diferentes funcionalidades. Mas, como você pode ver,
funciona totalmente bem. E eu posso simplesmente mudar
o extra, bem como,
claro, ativá-lo. Então, se eu só faço momentos à noite para que tenhamos
isso e veja bam, bam, bam, lá está. Posso apenas acender a
luz ou desligá-la. Então isso é muito legal. Borracha, isso já será para esta palestra aqui. Espero que você tenha achado útil e aprenda alguns dos novos. E eu vou te ver na
próxima palestra. Sim.
66. (intermediário) como os dados NBT?: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos dar
uma olhada nos dados do NB TY. Assim como as propriedades do
estado do bloco são basicamente dados que você
pode salvar em um estado de bloco. Nos dados BT estão os dados que você
pode salvar em pilhas de itens. Portanto, as pilhas de itens são dois itens , pois os estados do bloco são dois blocos. Portanto, o item empilha
o lanche real que você tem em seu inventário, enquanto um item é a ideia
geral desse item. Mas, mais uma vez, um único
padrão de certa forma. E a forma como vamos
dar uma olhada nisso é que vamos criar um novo
item chamado tablet de dados. E isso salvará
o último resultado das
varas de dowsing. Essa é a
ideia geral para que
copiaremos sobre um monte de código. Tudo isso está disponível para você
no repositório do GitHub ou em um
indivíduo também. Basta dar uma
olhada nos recursos. Eu
recomendo dar uma olhada neles, ajudá-los
comigo à medida que avançamos. E antes de tudo, para isso, vamos
precisar do novo item. Portanto, isso é clicar com o botão direito do mouse no pacote
personalizado e este é o item do tablet de dados. Isso vai
estender a classe do item. Claro, isso foi passar o mouse sobre esse construtor de criação
combinando super aqui. E este é, na verdade,
bastante simples. Então, as coisas que
queremos fazer é fazer esse
vislumbre por semana, basicamente um para
esse efeito brilhante quando isso realmente
tem em dados VT. Assim, podemos substituir
o método has glint. E então o que
vamos voltar aqui, você pode ver que estamos realmente
recebendo a pilha aqui. E isso é ótimo porque o que podemos fazer é simplesmente retornar ponto da
pilha tem MBT,
exatamente certo? Então, cada vez que um tablet de dados
tiver dados NVT adicionados a ele, vamos
fazer isso brilhar. Então, o que eu também quero
poder fazer é que eu queria
clicar com o botão direito do mouse nesta poeira
no ar e excluir
os dados oferecidos. Então, como você pode ver, vamos
usar o método dos EUA aqui. E o que vamos apenas
verificar é que
vamos dizer, ei, se user.name ficar pilha na mão com a mão que
acabou de clicar, certo? Se essa pilha como NVT do que o que vamos fazer é basicamente
vamos redefini-la. O que vamos dizer é que
vamos dizer o usuário ponto, empilhar e terminar com a mão. Vamos apenas dizer definido em VT. Sabíamos no composto BT. E essa é praticamente
a ideia geral. O tem NVT no conjunto e VT. E então, em apenas um segundo aqui, também
vamos ver o, basicamente eles recebem NVT. Esses são os três
grandes métodos que você precisa basicamente ter em mente. Então, também vamos
fazer uma dica de ferramenta aqui, e isso será exibido
quando
a pilha real tiver dados MVT. Então empilhe ponto como MVT novamente. E só então
queremos adicionar uma string. Digamos que chame isso
de atual ou aqui. E vamos dizer
pilha ponto-ponto ponto, ainda NVT desta vez. E a maneira como
obtemos valores diferentes
aqui que você pode ver para
colocar em C, posso obter alguns
tipos diferentes de dados aqui, e sempre tenho que
obter uma chave lá. Vou
usar o ponto do curso MC. Ou é assim que
vou chamar essa chave. O que eu
recomendo é sempre começar com seu ID marr
e, em seguida, um ponto e, seja qual for o nome real dessa variável
armazenada. E então podemos apenas adicionar pontos de dica de ferramenta
reta. E então dizemos
novo texto literal, neste caso texto literal com a corrente ou como uma
string e eles vão, e isso é praticamente a classe de item de tablet de
dados feita. Vamos ler imediatamente este ano porque isso
vai tornar isso
um pouco mais fácil para que a fuga pegue a armadura de cavalo recalc. E este será o tablet sublinhado de
dados. E aqui o mesmo tablet
sublinhado de dados. E aqui está o item do
tablet de dados exatamente certo. E só precisamos das configurações
normais aqui, é
claro, elas atrás. E também adicionaremos a contagem máxima aqui para que possamos
ter essa pilha apenas para uma. Então, esse será o tamanho
Max Stack de um. Isso é muito importante. E agora, é claro,
precisamos de alguma forma definir o que algumas coisas, adicionar os dados NVT ao
nosso item de haste de desvio. E para isso, na verdade,
vamos criar uma classe util porque isso
tornará nossas vidas um pouco
mais fáceis de usar em um pacote util, vamos clicar com o botão direito do mouse em
nova classe Java. E este
será o inventário Util. E vou copiar os
dois métodos aqui. E isso é apenas para economizar
algum tempo basicamente, porque eles provavelmente
serão reutilizados várias vezes que você pode ver como pilha
de
jogadores e inventário, isso verifica se esse jogador em particular ou não tem esse
item específico em seu inventário. E então eles recebem as primeiras verificações de índice de
inventário através do inventário deste jogador, obtém o primeiro índice dentro
desse inventário onde
este item está presente. Essa é a ideia geral aqui. E vamos usar
os dois na verdade. Então, vamos para a massa do item da
haste de dowsing aqui. E o que vamos
fazer é
adicionar uma coisa em particular. E isso é basicamente dentro
dos EUA em um método de bloco, certo? O que queremos fazer é
dizer, Ei, se a camada tiver o
tablet de dados em seu inventário, então queremos basicamente
adicionar dados NVT a ele. Então, vamos dizer se. E então podemos dizer inventário, util dot como
pilha de jogadores no inventário, podemos dizer jogador, e então o item é apenas
mais itens, tablet de dados de ponto. Portanto, se isso estiver no inventário, queremos adicionar
os dados NVT a ele. Bem, vamos
pensar sobre isso. Vou copiar
o método para isso porque na verdade
tenho um método para isso. E este é um método
privado aqui chamado add vt ao
tablet de dados. Você pode ver. E o que isso faz é realmente
bastante simples. Na verdade, não é muito louco. Em primeiro lugar, vamos obter a pilha de
tablets de dados aqui. Obtendo a pilha
e obtendo o primeiro índice
de inventário da tabela David. Então, vamos ter o
primeiro tablet de dados que está dentro do inventário
como muito importante. Então, se tivéssemos dois dados nos
informando no inventário, substituiríamos os
primeiros em dados de VT. Isso é muito importante. Agora, como definimos os dados NVT? Você pode ver
aqui, vamos
criar novos compostos. Então o composto NVT é o que
precisamos criar. Vou colocar uma corda
lá com a chave. Mais uma vez, o
ponto do curso MC sublinhado ou. E então aqui está a corda. Então essa é praticamente
a mesma string que tínhamos aqui
na saída. E então dizemos
tablet de dados em dados NVT definidos. E passando este composto NVT, teríamos acabado de
colocar uma corda. E então, dentro
da instrução if, vamos
chamar isso de adicionar dados
NVT ao tablet de dados
com o player. E vou dizer que a
posição clicou no ponto adicionar 0 menos I 0. E então o bloco abaixo, é muito semelhante ao que
tínhamos nas coordenadas de saída. Mas, por enquanto,
isso vai ficar bem. E isso é praticamente
tudo o que precisamos fazer. Então isso é basicamente
tudo o que há para ele. Neste
método particular que é privado, onde adicionamos esses dados a ele e seguida, o inventário
util, tornando-se um útil em alguma
outra área também. Então, isso também é um legal
muito frequente. E sim, essa é
praticamente a ideia. Mais uma vez,
os dados NVT, ao contrário disso, os métodos mais importantes são os
dados set e VT na pilha. Obter dados NVT na pilha e o tem
dados NVT na pilha. Então, esses são os
três métodos principais. E então, no próprio
composto NVT, você pode basicamente ver que eu
também posso colocar outras coisas como e esses são
basicamente todos os tipos de dados que eu
posso armazenar lá. E esses geralmente são
muito mais do que suficientes. Oh, isso é praticamente tudo o que realmente
precisamos saber lá. E então, e
vamos fazer é que primeiro vamos
adicionar o lang aqui. Bem, vamos apenas copiar
o item ou vamos pegar este. O tablet sublinhado
de dados é, naturalmente, o tablet de dados. E então vamos precisar
de um modelo de item. E isso é, claro, apenas um modelo de item
normal aqui. Portanto, o tablet de dados simplesmente aponta
para o tablet de dados ligado. Então isso é uma
coisa muito interessante aqui sobre por que é isso? Bem, há também um off? Sim. Algo que vamos
dar uma olhada na próxima palestra, na verdade, porque todos eles vão
mudar a textura real dependendo se ele tem
ou não dados
MVT e, na verdade, não
é muito louco sobre isso requer alguma configuração
interessante. Digamos. Agora, o tablet de dados
foi adicionado ao jogo. Então, vamos ver se funciona
ou se retorna no microfinanciamento pode
ver que o tablet de dados foi
adicionado com sucesso ao jogo. E vamos pegar um único. Isso mesmo.
67. (de (Intermediate) predições de itens (de intermediários): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos dar
uma olhada em provedores de
predicados modais. Então, se isso é algo que você simplesmente não tem idéia do
que isso significa, não se preocupe. Vamos
passar por isso em detalhes. Então, vamos
pressionar a tecla Shift duas vezes e vamos colocar em um modelo de
registro de provedor adequado, exatamente este. Vamos clicar nisso
e você pode ver que isso tem algumas
coisas bem interessantes aqui. Ou seja, por exemplo,
para o bot, o poste e o
puxando para dentro, o que é muito interessante
porque esses são dois predicados
que o bot precisa para alterar a textura do item dentro
do inventário. E isso é exatamente certo. Então, precisamos registrar nosso
próprio personalizado para que nosso tablet de dados possa
alterar a textura. Basicamente, queremos um
dado tabulado que esteja desativado quando
não há dados NVT nele e ligue quando
houver dados BT nele. Essa é a ideia geral. E o que eu também posso dizer
é que vamos pressionar a
tecla Shift novamente e vamos digitar
um sublinhado de tigela puxando. Você verá que existem alguns arquivos JSON
associados a ele. E isso, por exemplo, você pode ver
se refere ao item. Portanto, esse
sublinhado de tigela puxando 0 é referenciado no arquivo JSON de dados do
bot ,
que será do arquivo
JSON em negrito aqui. Mas você também pode sempre ir
até as bibliotecas externas em ativos do que no item de modelos
e, em seguida, basta ir
até a proa, bem aqui. Lá vai você. Então
este é o barco adjacente exatamente
aquele que abrimos. E você pode ver aqui, há substituições e se
um determinado predicado, então esses são os
produtos modais que acabamos de ver. Se eles tiverem um valor específico, vamos
realmente dar uma olhada em um modelo diferente desse. Este só mostra
a tigela normal. No entanto, se puxar for um, então vamos
mostrar esse modelo. Se puxar sua
ponta do poste está em 65 por cento vai
mostrar este. E então, se estivermos puxando
e puxando estiver em 0,9, então vamos
mostrar este. Essa é a ideia geral, ano. E é por isso que
será como podemos basicamente mudar as texturas. E isso é, na verdade, tudo
bastante simples. O que vou fazer é
fazer uma nova classe util, que vou chamá-la provedor de predicados de modelo
mod. E lá dentro,
vamos fazer um vazio público. Registre modelos, modelos,
coolers, sim, modelos mod. E isso chamará o registro do
provedor de predicados modais de malha que se registra com o
tablet de dados de ponto de itens
mod no novo identificador
MC course mod, mod ID. E então vamos
chamar isso. E depois do primeiro
parêntese, uma vírgula. E então o que queremos é uma milha no provedor de
modelo não reclamado. Você pode ver se eu
começar a escrever e empilhar aqui, podemos
apenas pegar isso. Então, vamos
preenchê-lo automaticamente assim. E então o que vamos
dizer é que vamos dizer stack dot tem MBT. Mais uma vez uma pergunta, marque um ,
f dois pontos 0, f. Então a ideia é que
vamos retornar um 14 sobre se o estoque tiver dados MVT
e vamos
retornar um 0 se ele
não tiver dados MET. E isso é praticamente
tudo o que precisamos fazer. Agora. Também precisamos escrever
cadastrar corretamente o ego, e então lembramos que isso está
no cliente aqui. Então, isso é muito importante
chamarmos isso no cliente, que queremos dizer mod, provedores de
predicados modais que registram modelos. E isso é, quero
dizer, é praticamente isso. Isso é tudo o que
precisamos fazer para que esse modelo seja registrado, ou digamos que o predicado
aqui esteja registrado. É claro que agora precisamos
alterar os arquivos do modelo no tablet de dados,
certo, então aqui. Então, na verdade, tenho
isso preparado. Vou copiar isso
e vou
explicar e também
vou, claro, tudo
isso está disponível para você
no repositório ou em um
indivíduo também. E a ideia é que este aqui agora
aponta para um modelo diferente. Então, o que vamos
fazer é
pegar o outro modelo aqui. Então, precisamos de dois modelos. Um deles é o tablet de dados
normal
e eu sou um deles é o tablet de dados neste. E desculpe, isso vai
ficar assim, então tudo bem, não se preocupe. Vamos apenas passar por isso. O destino de dados normal estará desativado
quando não tiver dados NVT. Se os núcleos MC ligados forem um, então vamos
ativar os tablets de dados. Então, vamos
agora dar uma olhada neste modelo aqui, que tem o
tablet de dados ativado. Mas agora só
precisamos também passar o fora para o item
extra aqui. Vamos apenas copiar
isso também. O ego, porque por padrão vai
parecer que está desligado. E então, se o predicado estiver
ativado, então vamos usar este
que se refere à textura em. Essa é a ideia geral aqui. Nem é. Isso é
um pouco confuso. Na verdade, não deve
ser tão louco. Estamos basicamente apontando
para uma textura diferente. Se algo for diferente, praticamente o
mesmo que um estado de bloco apenas no
modelo do item diz hora. E isso é
praticamente tudo o que
precisamos fazer para alterar a textura
do item de um item, dependendo
se algo acontecer. Então, agora vamos ver se funciona. Ou eu, então, se eu sou SoftBank
e microRNAs posso ver o tablet de dados normal agora
está desligado. E quando eu encontrar
algo que você pode ver agora ele se ativou. Agora, isso é realmente
um efeito muito legal. E se eu clicar com o botão direito do mouse
nele e excluí-lo, os dados NVT, você pode vê-los
também desativados. Então, isso é realmente algo
que é bastante frequente, legal se eu mesmo digo isso,
eu realmente gosto disso. Isso é algo
que basicamente, bem, na verdade é mais
fácil do que você imagina. Claro, os detalhes
específicos podem parecer um pouco
loucos para você. Mas, mais uma vez, com
algum conhecimento Java, não deve
parecer muito louco. Mas isso é realmente
muito, muito legal. Lembre-se que
já seria para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. Como sempre, todo o
código está disponível
no repositório do GitHub e
um indivíduo também. Vejo você na próxima
palestra. Sim.
68. TARde 7: Blockstate e NBT: Este exercício para o curso
de tecido para 118. E bem,
vou te dar uma ideia geral ou explicação do que
você deveria fazer. Então, desta vez, não há
realmente nenhuma solução porque basicamente sua
criatividade é solicitada e você deve simplesmente
correr solto com ela. Você deveria
fazer é que eles criem um novo bloco e
um novo item que, de alguma forma incorpora ambas as propriedades de estados de
bloco. Então, um bloco específico, bloco say propriedade e,
em seguida, um exemplo de dados NVT. Pode realmente ser o
que você quiser. Pode ser tão fácil ou
complicado quanto você gostaria. Você não precisa fazer
isso necessariamente. Isso é algo só
para você experimentar. Então, isso realmente é apenas
uma tarefa opcional, mas eu
recomendo continuar com isso
e apenas fazer algo que seja símbolo
e não muito complicado, não pense, ei, eu
estou indo para fazer uma engenhoca louca como
uma construção de criação. Não fique muito louco. Faça algo muito simples, que funcione e
trabalhe como sempre, uma ótima ideia. Então boa sorte na tarefa.
69. (Intermediate) adicionando uma colheita personalizada: Ou voltarei ao curso de
tecido para 118. E nesta palestra, vamos adicionar
nossa própria cultura
personalizada ao Minecraft. Então, adicionar uma cultura personalizada é
uma coisa muito interessante. Felizmente, é claro,
passamos pelas propriedades
do estado de caminhada
porque isso é algo que vamos precisar em nosso pacote de blocos personalizados. Vamos clicar com o botão direito do mouse em
nova classe Java chamada de bloco de nabo de modo. Agora, apenas gostaria de iniciar nossas aulas de bloco
com o modo de nome. Nem sempre, mas está tudo bem. E isso estenderá
a classe do bloco de colheita. E vamos passar
o mouse sobre isso em criar construtor
combinando super aqui. E o que eu vou fazer é clicar no registro de corte e
, em seguida, pressionar Control H. E você pode ver basicamente todos
os blocos de onde isso se estende. E vamos
apenas pegar o conteúdo, a totalidade
do conteúdo
do bloco de raízes
da beterraba aqui. Mas isso é praticamente tudo
o que vamos fazer. E então vamos
mudar o nome aqui para isso. Não precisamos desse primeiro campo. E então o que
também queremos mudar é que isso pode ambos aqui. E então, em vez
de tê-los em um bloco estático na parte inferior, queremos fazer isso imediatamente. E então o mesmo
para a forma aqui. Vamos fazer isso e
depois copiar isso aqui. H é igual a h. Bem, não é bem o ego. Então eu também vou apenas
nisso um pouco diferente para que
possamos realmente ler o que está acontecendo aqui. Porque a
forma do voxel é
algo muito interessante
e muito particular. Então isso é algo sobre o qual
temos que falar. Caso contrário, todo o resto só vai
ficar como está. Quero dizer, este, por exemplo, na verdade não precisamos. Também podemos adicionar
o H assim. E então, para esse estado, vai ficar bem
assim também. Todo o
código apropriado está, naturalmente, disponível para você também. Aqui nós, é claro, no, é
claro que
precisaremos realmente devolver um item diferente, mas vamos fazer isso
em apenas um momento também. E embora
não tenhamos
adicionado a substituição de adição a tudo aqui para que
saibamos que tudo aqui
foi substituído. E, no geral, isso é praticamente tudo o que precisamos nesta classe, exceto, é claro, o item de sementes que
temos que devolver. E você pode ver que os direitos
reais de propriedade da idade que temos uma pobreza H aqui na
propriedade etária, que é h3. Podemos ir para isso e podemos realmente ver a propriedade da
idade aqui. As ideias gerais de que
isso vai de 0 a três, mas há quatro estágios
desse bloco específico. E é também por isso que
existem quatro formas cubóides. A forma voxel, quando
você passa o mouse sobre um bloco, é
isso que está sendo
exibido como o, basicamente os contornos
do bloco. E isso é muito importante. E isso basicamente está sendo mudado aqui
dependendo da idade. Embora você possa ver que a
boa forma de contorno está retornando a matriz de
idade para moldar. E então, basicamente,
apenas lhe dá uma forma diferente,
dependendo da propriedade da idade disso. Essa é a ideia geral aqui. Então, se você tiver uma safra diferente com uma quantidade diferente de idades, você pode simplesmente
mudar a cada ano. Então, às vezes, há alguns
agentes disponíveis aqui. Como você pode ver,
há 123571520. Eu também. Ou você também pode, como
fizemos no Oracle, pode bloquear
discretamente seu novo, seu próprio novo em propriedade. Isso também funciona totalmente bem. Mas também vamos criar o
bloco na classe de blocos de lama. E para isso,
na verdade, vamos precisar um método completamente novo. Então, vamos copiar o método do bloco de
registro, certo? Controle C selecionado,
Controle V. Vou excluir o grupo aqui e a
chamada para o item do bloco de registro. Vamos chamar isso de bloco de registro sem
o método do item
Bloquear porque isso é
exatamente o que queremos fazer. Vamos apenas copiar sobre o alçapão de flor de
cerejeira. Esta será a safra de sublinhado de
nabo. Eu geralmente gosto de
chamar bem meus adereços, com a colheita final,
nabo, sublinhado. E este não é um bloco de
registro, mas este é um
bloco de registro sem item de
bloco, muito importante. Então, podemos basicamente excluir a guia do curso aqui
na parte de trás. E então também
faremos é que vamos lidar
com tudo isso. Em vez de acabar com isso, vamos realmente
copiar um bloco específico. E isso é o, os blocos
que as raízes da beterraba, é claro. E não um bloco de porta de armadilha de lama, mas um nabo mod, OK, bem no teorema. Então, por que não registramos
um item de bloco com isso? Bem, a ideia geral é que a cultura de nabo
realmente não tem um item
associado a ela. Precisamos de uma semente para este bloco
sem lugar, e isso é exatamente certo. Mas precisamos realmente entrar na classe de
dois ou mais itens e, em seguida, fazer uma semente de
nabo também. Então, vamos apenas copiar
sobre o tablet de dados e isso será uma semente de sublinhado de
nabo. Para este,
vamos chamá-lo queimado sob sementes
sublinhadas. E este é um novo item de bloco com
alias. Então isso pode ser, o que é isso? Bem, em primeiro lugar, vamos
colocar mais blocos que aparecem e depois
excluímos o contador máximo. Muito importante, na verdade. O item de bloco de gelo é
um item de bloco com um nome diferente do
bloco que ele possui, certo? Portanto, a semente de nabo, é claro, ou sementes é um nome
diferente da cultura de nabo aqui. E também o que é muito importante, vamos voltar para a classe de blocos
maternos e, em seguida, retornar itens mod ponto, virá-lo bem aqui. Isso é muito importante, caso contrário, as sementes não estão corretas. Portanto, isso é muito
importante que façamos isso e o código
basicamente esteja feito. O que precisamos fazer também é
que precisamos
chamar o
mapa da camada de renderização sobre isso também. Isso está na
cultura de nabo aqui, também seja cortado. E então o código realmente é feito
completamente no
que agora só precisamos fazer é adicionar a
tradução e, em seguida, os
estados de bloco e os arquivos de modelo de
bloco. Vamos apenas adicionar a cultura de
nabo aqui. Então você pode ver que estamos basicamente procurando por diferentes que
possam bloquear, digamos, valores
de
propriedades de 0 a três e,
em seguida, apenas apontando para
diferentes arquivos de modelo. Então, todas as coisas que já
vimos, isso não deve ser uma surpresa demais
, certo? Vamos adicionar o item aqui. Vamos apenas dizer que algo como as
sementes de sublinhado de nabo é claro, será
o surgimento abaixo, não sublinhado sementes,
mais uma vez com o sublinhado. E, em seguida, muito
importante para realmente adicionar a
cultura de nabo aqui também, aumentar a safra de sublinhado. E então aqui também,
estamos em um apertado, há um MOD onde você
pode passar o mouse sobre blocos e ele realmente exibirá
o bloco real aqui. E isso será exibido de uma forma que não
seja traduzida. Então traduza isso também. Eu recomendo fazer isso. É apenas uma linha, realmente não é tão grande
coisa, certo? Vamos primeiro adicionar os
quatro modelos de blocos diferentes aqui para a colheita de nabo, você pode ver que eles são apenas
sublinhados estágio 0 ou 2, 1. Certifique-se de que tudo
aqui esteja escrito corretamente. Quando você
pensa no Jason, a ideia de como eles
estão relacionados? Este é o nome
deste arquivo aqui, e então este é o nome
da textura que aponta para os modelos de bloco
aqui são todos,
basicamente o corte de bloco pai. E então a textura aqui
também é uma cultura que é muito importante. E que na verdade
não precisaríamos do modelo do item. Precisamos apenas de um modelo de item
para os nabos Aedes, e esse é apenas um modelo de
item normal como você pode ver. E então vamos copiar sobre as quatro texturas de
bloco de palco de nabo. Estes, tudo aqui, é
claro, está disponível para você. Então, vamos apenas
copiá-los também. E C 0 a três, e depois o item, as sementes aqui também. Então, termo sementes
na pasta de itens. Bem, na
pasta de itens, lá vai você, e isso é praticamente
tudo o que precisamos fazer. Agora, uma das coisas mais
importantes é o que esse bloco cai? Porque as mesas de loo que
vimos até agora, somos todos muito fáceis. A única
mesa louca de Lu realmente tem sido a órbita, mesmo que
não tenha sido muito louca. Mas agora, e
as culturas reais? Eles não precisam ser
específicos? Sim. Podemos ir mais uma vez às bibliotecas externas
aqui para
o Microsoft Project
e, em seguida, todo o
monte de coisas aqui. E depois entrando em vez
da pasta de ativos
na pasta de dados, Minecraft saqueou tabelas, blocos. E então vamos
dar uma olhada nas raízes da beterraba. E você pode ver que é assim que a tabela de raízes de beterraba
se parece e apenas carregar isso ou também
podemos simplesmente copiar
o arquivo real aqui. Então, vamos apenas para
Control C, esse arquivo, e depois entramos em nossas próprias tabelas de rotas de cursos
MC, pasta de
blocos. Está aqui? Isto é, claro, o invólucro de sublinhado de
nabo. E depois há algumas
mudanças que precisamos fazer. Isso é muito importante. Não pule isso. Dê uma olhada nisso. Portanto, a propriedade número 1, r max age
é definida aqui. Se tivéssemos uma rocha que tenha a
propriedade de idade máxima de cinco anos, teríamos que colocar
em cinco anos porque as coisas reais só caíram se essa idade fosse
atingida. Então isso é muito importante. E isso é a mesma coisa
que se passa aqui. Agora este ano, onde o
bloco aqui é o bloco. Portanto, isso precisa ser o cólon do curso
MC, nabo, sublinhado. Isso se refere ao bloco que fizemos em nossa classe
mod blocks, que é basicamente
verificado este ano, é o produto real. Então este será o
nabo do curso MC. Isto é, este seria o trigo se fosse
trigo e assim por diante. E então isso aqui são as sementes. Então este é o cólon do curso MC, aumente assentos sublinhados. Então isso é muito importante. Essas três coisas
precisam ser mudadas. Portanto,
certifique-se de alterá-los aqui e depois abaixo
aqui também. Porque aqui embaixo,
estamos
basicamente deixando cair assentos
adicionais, certo? Portanto, isso é muito importante que
você altere isso corretamente. Certifique-se de que o ID do
modelo esteja sempre correto, pois isso é algo que é
facilmente supervisionado basicamente. Então isso é algo que você facilmente
não reconhece,
especialmente, você sabe,
Armada D começa com um M. Minecraft também começa com um M. Às vezes pode ser algo
que você pode perder, mas isso é praticamente
tudo o que precisamos adicionar. Então, vamos ver se funciona. Ou Francis de volta em microfinanças pode ver que os
assentos de nabo foram adicionados, então vamos ver se
consigo colocá-los para baixo. E é claro que
posso colocá-los para baixo. Isso é
exatamente o que eu quero ver. E vamos fazer com
que a regra do jogo, velocidade dos tiques
aleatórios aumente em 100. E então eles vão
lá, eles crescem. E este é,
na verdade, o velho crescimento aqui. Vamos redefinir isso. Vamos voltar para o
modo de sobrevivência. Muito importante. Se você os invadir,
você tem que
quebrá-los no
modo de sobrevivência e no ego, eles até soltam nabos, mas apenas em tamanho real. Você pode ver se eles não são tamanho normal e eles só caíram sobre uma semente é praticamente
tudo o que eles precisam fazer. E, claro,
na tabela Lu real, você também pode alterar
os números, certo? Então, se você é como Não, isso não é suficiente nabos que caem, isso também é totalmente bom. Você sempre pode mudar isso
na tabela de loo j, certo, mas isso
é praticamente isso para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Mais uma vez, todo o código nos arquivos recentes está, naturalmente disponível no repositório do
GitHub ou em um indivíduo também. E te vejo
na próxima palestra. Então, sim.
70. (intermediário) como adicionar itens a um composter: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta breve palestra, veremos como você pode adicionar itens
personalizados ao bloco de
compostor. Mas isso basicamente
significa que, se você clicar com o botão direito do mouse no bloco de compostor, como uma chance de aumentar o nível em que o
compostor está. Isso é, na verdade, tudo
muito direto. Então, em nossa classe mais registros, vamos criar um
novo composter MOD de
registro de vazio estático privado , classe de
chances. E isso será chamado aqui logo após o
registro de combustíveis, chances de combustor de modo de
registro. E a maneira como
os adicionamos é muito louca. Vamos dizer que o bloco de
compostor, DOD Item dois níveis aumentou chance de PUT e depois
colocamos mais itens, nabos ponto-ponto,
assentos, por exemplo, através de uma chance de 35%. E vamos
duplicar isso com o Control D. E eu vou colocar
o nabo
também para que apenas a
vez disso você possa comer. E isso vai ser
uma chance de 65%. Se nós, clique no
botão do meio do mouse sobre isso. Também podemos ver que as
tendências estão aqui. Então você pode basicamente ver todas
as chances de haver
algumas sementes,
as mudas e folhas, e basicamente as chances que estão
associadas a nós, certo? Quero dizer, isso é
praticamente tudo o que você precisa fazer se você não tiver a classe de registros de
modo, você também pode pegá-los e apenas chamá-los no método
inicializado. No entanto, como criamos os registros modernos aqui, isso torna tudo um
pouco mais fácil e um pouco mais separado e um
pouco mais agradável de ler. E apenas por causa de conclusão, vamos ver se funciona
ou se estava de volta ao Minecraft e
vamos ver, lá vai você. Posso clicar com o botão direito do mouse e
ele realmente funciona. E as sementes também funcionam. Eles têm
35% de chance, enquanto os nabos têm
65% de chance. E lá vai você. Agora, tenho uma bolha me. Bem, mas 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.
71. (Intermediate) Mixins explicados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos dar uma
olhada no mixin. Mixin é um tópico que
tem que ser tratado
com muito cuidado. É por isso que eu meio que te peço para não ficar absolutamente
louco com isso. Mesmo que você entenda
isso depois desta palestra, um mixins deve ser
usado com moderação e não apenas
para tudo onde pode ser mais fácil usar
apenas mixin. Mixin, a ideia geral é
que você pode basicamente mudar as classes do Minecraft para defini-lo para qualquer coisa
que você quiser. Basicamente, embora pudéssemos, por exemplo, alterar métodos. Você poderia, você poderia
alterar o nível de acesso, certos métodos ou
certos campos, e poderíamos fazer então apenas alterá-los por um capricho basicamente. E isso geralmente é
pensado como um tópico complexo
e
complexo, onde quer que ele
realmente não seja tão louco. Então, se neste momento
você está apenas
copiando as coisas e não
está realmente seguindo com o Java. Então você realmente não
entende muito
das coisas Java por trás disso. Eu só
recomendo mais uma vez, dar uma olhada na introdução do
Java, porque o mixin é uma ferramenta que, se
você não
entender o Java, você estará
completamente perdido. Não vou entrar em muitos detalhes
sobre como ele realmente funciona. Vou mencionar
uma coisa e esse é o repositório do GitHub aqui
do mixin alimentado por esponja, o wiki lá especificamente. E essa tem sido uma ferramenta
incrivelmente útil para basicamente dar uma olhada e apenas entender a arquitetura
mixin. E enquanto eu vou aqui, você pode ver que isso basicamente
explica tudo em detalhes muito bons,
na verdade , sobre como funciona, como
podemos usar isso, como você pode
acessar algo e como você pode basicamente lançar
algo para uma
interface específica e, em seguida, basicamente usar os campos e
métodos lá também. Então, isso é muito
legal e muito útil e eu
recomendo passar por isso. Então, mais uma vez, se
você não conhece Java, então eu não sei como
ajudá-lo com isso porque você definitivamente
precisará conhecer alguns, eu diria pelo menos
intermediário ao conhecimento
avançado em Java para realmente entenda isso. A essência geral aqui
é apenas que, bem, é uma ferramenta muito louca e, mais uma vez,
use-a com cautela. Então, o que vamos fazer
é no nosso pacote mixin, vamos clicar com o botão direito nova classe Java e
vamos
chamar isso de
entidade de modo Data Saver. Este é apenas o nome
que estou dando. Isso vai ficar
totalmente bom aqui. E a primeira coisa que eu quero fazer é que eu quero
fazer isso abstrato. E a razão pela qual vou
fazer isso resumos porque qualquer classe
que temos neste mixin, nós realmente não devemos usar, ou pelo menos essa
classe em particular, nós realmente não devemos usar em
nenhum lugar do código. E agora, como fazemos disso um mixin é
realmente bastante fácil. Estamos na mixin bem aqui. E, em seguida,
colocamos na classe , queremos mudar, e essa será a
entidade, a classe de ponto de entidade. Agora, o que é muito importante é que
vamos importar a classe e
garantir que
escolhemos a entidade de microondas de rede. Agora, o que vamos fazer
é adicionar um MVT à classe de entidade. Portanto, cada entidade também
terá um campo MVT associado ela para que possamos salvar dados
MBT nisso. E a ideia geral é que o que
vamos usar isso
na próxima palestra para
adicionar comandos personalizados. No entanto, o que é muito
importante aqui que, embora este seja um pré-requisito
para a próxima palestra, os comandos específicos
que vamos fazer a próxima palestra basicamente
exigem que façamos isso. E então eu
recomendo assistir ambos juntos ao mesmo tempo. Então, back-to-back, bem, isso vai fazer é que isso
vai ter um composto
privado em BT
chamado dados persistentes. E então queremos, bem, basicamente abrir isso com um bom
método de dados persistente aqui. E o que vamos
fazer é apenas retornar dados persistentes, mas também podem ser nulos. E se esse for o caso,
então, se
os dados persistentes forem iguais a nulos, então o que queremos fazer
é apenas definir esses dados persistentes
para um novo composto NVT. Então, basicamente,
não retornamos dados vazios e
bem persistentes
nesse método e esse campo
será adicionado a essa classe. Então, para a
classe de entidade aqui. Então isso só será adicionado, mas em algum lugar que
não sabemos onde, mas isso é totalmente bom. Estamos trabalhando com isso. Esses dois serão adicionados a ele. E então também queremos
interjeitar determinadas funcionalidades
em dois métodos. Então, vamos abrir a classe de entidade
novamente e vamos pesquisar. Então controle F, e então
podemos procurar o método NVT
certo aqui, este. E o que queremos fazer é aqui que
queremos injetar que
basicamente colocamos todos os dados
neste NVT aqui, porque este
é o que é
salvo depois que o mundo
basicamente salva. Então, queremos que isso também
tenha nossos dados personalizados nele. E então o mesmo vale para o
método de leitura e BT aqui, onde realmente queremos
tirar isso fora dele. Então essa é a essência geral aqui. Então, o que queremos é um vazio protegido e isso vai
ser injetado certo? Método. O primeiro
perímetro disso é o perímetro do
método real que queremos. O método MDT direito tinha um composto nb t
como parâmetro. Vamos dizer que o MVT realmente
chama isso de MBT também. Podemos, mais uma vez, realmente
olhar para isso, certo? Então, certo, MET, composto MET. E porque também
retorna um composto MVT. O que temos que usar
é que temos que usar as informações de retorno de chamada retornáveis, sublinhar essa
informação, tudo bem. Na verdade, não vamos
usar este de qualquer maneira. E então vamos,
vamos dizer
se os dados persistentes, então isso mais uma vez
faz referência ao campo aqui. Se isso não for nulo, mas se houver dados lá, então vamos colocar
os dados reais lá. Portanto, não como uma string, mas apenas como dados. E vamos
chamar isso de MCQ, MC mais grosseiro algodão
sublinhado dados. Isso vai ficar bem. E então queremos colocar dados de sistemas
mais profundos aqui. Então, se houver algo
nos dados persistentes, então vamos salvar isso
neste composto NDT aqui, o que basicamente faz com
que isso seja salvo
no mundo também. Agora precisamos adicionar o atributo aqui em cima do método aqui, e há o
atributo de objeto com o nome do método. Então, isso é certo NVT. Então temos que especificar
em que posição vamos fazer isso e
vamos fazer isso em, em,
e depois em todas as maiúsculas. Isso significa que este ano está sendo executado
no início, depois que o método
começar a executar será executado na
primeira linha, por assim dizer. Ou seja, essa é
a ideia geral. E então o outro que eu
realmente vou copiar. Isso não é nada louco demais. O
método de leitura injetar aqui só tem a camada de leitura e B
também a cabeça, também NVT porque esse é o
parâmetro do método. E nisso, em vez de ter retorno de chamada para retornável, isso tem uma informação normal de
retorno de chamada e,
na verdade, você também altera
o ano chave. Então, isso é realmente
muito importante. E basicamente apenas dizendo: Ei, se essa chave existir, então o que vamos fazer
é definir os dados persistentes para o que
encontrarmos sob a chave. Lá vai você. Então,
isso é tudo o que realmente precisamos fazer aqui. E há mais uma
coisa crucial que é importante. E isso é que vamos precisar implementar uma interface. Porque no momento, porque esta é uma aula
abstrata, não
podemos pedir nada
a essa classe. O que queremos é que queremos
uma interface porque qualquer classe em Java pode ser
convertida para qualquer interface. Então, vamos dizer que eu poupador de dados da
entidade. E isso literalmente só vai ter uma coisa simples. E esse é um método de dados persistentes de
obtenção de composto NBC. Então é isso que
a interface tem. E então vamos dizer que implementos que o economizador de
dados da entidade
também adicionará a substituição de adição
aqui apenas para que
saibamos que
substituímos esse método, mas isso é praticamente
tudo o que precisamos fazer. Então, este aqui precisamos
para que possamos realmente chamar isso em uma
determinada entidade. Porque, é claro,
se tivermos apenas uma classe de entidade
durante o desenvolvimento, isso não tem os dados persistentes, então isso não funcionaria. Agora, há mais um
passo que precisamos fazer, e isso é que precisamos entrar em nossa
pasta de recursos são recursos aqui,
na verdade, no mixin
MCQs Jason, e adicionar o nome da classe
aqui nos mixins. Mas esse é o economizador de dados
da entidade de modo. E isso é praticamente tudo que realmente precisamos fazer aqui para fazer um
mixin único neste caso. Então, basicamente
mudamos a classe que definimos aqui e adicionamos
todo esse jazz a ele. Agora, não vamos
ver nada ainda, embora o, o que acontece basicamente
será mostrado na próxima palestra. No entanto, eu queria separar
isso porque às vezes, você sabe,
é como se isso fosse especificamente mixin. E então
o próximo será comandos e haverá
coisas específicas para comandos. Precisaremos
usar isso também. Então, basicamente,
a demonstração será
mostrada na próxima palestra. Então, mais uma vez, a mistura
definitivamente deve ser tratada com cuidado, especialmente se você é um iniciante ou
intermediário em um Java, eu
recomendo ir devagar. Não fique louco com isso. Sempre há
exemplos no GitHub e também realmente posso
recomendar o wiki. Na verdade, é muito bom. Você só precisa tomar seu
tempo, ler isso. Basicamente, basta
tomar seu tempo. Essa é a melhor ideia aqui. E também não fique louco com isso porque é uma ferramenta
muito poderosa, mas também poderia, em
teoria, quebrar, quero dizer, praticamente a totalidade do Minecraft se você
adicionar seu mod a ele. Então, definitivamente tenha
cuidado com isso, certo? Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e tenha aprendido algo novo. Se algo não estiver claro, não
hesite em
perguntar nas perguntas e respostas. Caso contrário, verei
você na próxima palestra. Então, sim.
72. (intermediário) criando comandos personalizados: Tudo bem, bem-vindo de volta
ao cavalo de tecido para 118. Nesta palestra,
vamos adicionar
um a comandos personalizados
ao Minecraft. Agora, isso é muito importante. A última palestra em
que falamos sobre mixins é, na verdade, um pré-requisito
para esta palestra. Então, se você não viu, assista e
basicamente coloque tudo em seu carvão está,
claro, disponível no repositório
do GitHub ou em um
indivíduo também. Ou você precisará
basicamente adicionar o mixin
ao seu modelo também. Caso contrário, você não
poderá acompanhar esta palestra. Então, para adicionar comandos personalizados. Primeiro de tudo, quando
entramos em nosso pacote de cursos IMC, clique com o botão direito do mouse em novo pacote
chamado comando. E lá dentro,
vamos criar duas novas classes chamadas
de comando return home. E então também o comando at. Agora você já pode
ver para onde isso está indo. Basicamente, vamos
fazer dois comandos. Um para você definir sua
casa e outra para você basicamente
retornar a
essa posição de casa. Agora, eu vou realmente copiar
o conteúdo de ambas as aulas porque
isso vai tornar isso um pouco
mais fácil e vou explicar
à medida que avançarmos. Bem, antes de tudo, vamos
fazer o comando set home. E vou
copiar isso aqui. E todo o código está
, naturalmente, mais uma vez disponível apenas e no repositório
do GitHub. Portanto, temos um método de
registro,
um método de
registro vazio estático público e um
int estático público, um método de execução. Esse método de execução é chamado
aqui nesta execução. E então você pode ver que
temos dois literais aqui. Então isso é basicamente o que está sendo feliz, o que
está acontecendo aqui. Então, basicamente, você tem que
digitar barra
e, em seguida, este
primeiro aqui em casa. Em seguida, adicionamos um ,
então aqui, temos que
adicionar isso como uma segunda palavra. Portanto, esse é basicamente o
comando que temos que colocar em ohms slash home set. E então ele vai executar
tudo isso aqui. Essa é a essência geral
disso e do comando run. Você pode ver que o jogador
obteve
do contexto get source player é transmitido para um protetor de dados da entidade. Mas esta é a interface que fizemos na última palestra. E isso basicamente nos
permite chamar o método get persistent data e,
em seguida, colocar uma matriz int com
o nome home pass lá. E isso só vai basicamente
colocar na posição inicial
do jogador. E então, no final, aqui
também vai dizer enviar feedback com textos literários em casa nesta posição
específica. Isso é praticamente tudo
o que realmente faz. O comando set home
realmente não é tão complicado. Todas as coisas consideradas. Claro, temos essa exceção de sintaxe de
comando lança. Este é apenas o caso. Nós só precisamos disso
basicamente, pois este é um, o comando run para
um comando bem, eu também sugiro dar uma olhada no gerenciador de
comandos aqui. Então, se eu clicar no
botão do meio do mouse sobre isso, você pode realmente ver
todos os
comandos de baunilha aqui. Então, como você pode ver,
há muitos deles. E se você tiver uma coisa específica que você
quer fazer com comandos. Então, se você quiser ter
um comando personalizado, então você pode basicamente
dar uma olhada neles. E antes de tudo, dê uma
olhada em como eles fazem isso. Então, basicamente, ok, Como o comando loop realmente funciona? Bem, isso é o que está
sendo executado. Assim, você pode ver executar,
inserir, inserir ,
executar bloco, que
há muitas coisas que você pode ver
basicamente como funciona. Na verdade, há muitas coisas. E este aqui é o
registro para isso. E isso, claro, vai ser a coisa em
que a maioria das pessoas são como, oh meu senhor, isso é realmente louco. E
esse é o caso. Se você quiser ter comandos
realmente complexos, será muito complexo. Só vai ser o caso. Uma coisa que vou dizer é
que só ajudarei em circunstâncias
limitadas
se você tiver um comando personalizado e
você perguntar no Q e a, porque eles ficam tão complicados, é muito, muito difícil
realmente desenterrar. É apenas o que é. Mas vamos continuar
com nosso exemplo aqui. Portanto, a classe de gerenciador de comandos
que eu posso recomendar. E, na verdade, vamos para o comando de retorno para casa também. E vamos apenas copiar
isso também. Então, vamos apenas obter
o conteúdo aqui. E mais uma vez, isso também não
é muito louco. É só que, neste caso, corte para casa e depois volte.
E então ele é executado novamente. Ele executa o
comando run aqui, que mais uma vez podcasts
o jogador para o olho Entity Data Saver obtém
a posição inicial aqui e o comprimento
aqui é desigual nulo. Então sabemos, ei, isso significa que contém outra coisa. Vamos apenas dizer que
nenhuma posição em casa foi definida isso ou aquilo estava
completamente certo. Então vamos pegar a
posição de casa aqui e dizer que
solicitamos o teletransporte para
exatamente essa posição. E vou dizer que o
jogador voltou para casa. Isso é tudo o que
realmente estamos fazendo aqui, não
é nada muito louco. E agora há duas coisas
que precisamos, ou seja, eventos. Agora, um dos eventos será
realmente muito fácil. Então, vamos entrar em
nossos registros mais. Isso aqui é
específico para cada comando, então você
precisará fazer isso para cada comando que adicionar. Nós basicamente queremos fazer
um novo vazio estático privado, derramar um método de comandos de registro. E então, da maneira como fazemos
isso, dizemos
registro de comando, retorno de chamada, registro de eventos, disse casa, dois pontos de
comando, registro de dois pontos. E vamos
duplicar isso com o Control D. Eu vou dizer o comando de retorno para
casa, registre-se. E então vamos
chamar isso aqui. Então registre comandos, e
então tudo está bem, mas isso tem que ser feito para
cada comando basicamente. E agora também
adicionaremos um evento específico,
ou seja, a cópia
do evento do jogador do servidor, porque a ideia é que
quando o jogador morre, nós realmente temos que copiar os dados NVT do jogador morto, por assim dizer, para a nova entidade. Então essa é a
ideia geral, no entanto. Este também é um olhar muito
solto nos eventos. Então, em nosso pacote de cursos MC, clique com o botão direito do mouse em novo
pacote chamado evento E então, dentro da
Terra, vamos fazer uma nova classe Java. E quando poderia chamar isso de cópia de evento
de
camada mod de um nome longo, mas isso vai dar certo. E então a maneira como
isso funciona é que isso basicamente implementa
uma determinada interface. Nesse caso, o evento do player do
servidor que copia exatamente deste. E então vamos
implementar o método aqui. E agora esse método
agora é chamado ou
será chamado assim que o registrarmos quando esse evento
for acionado. Então isso é o importante. E você pode ver que
há um jogador antigo, um novo jogador e um vivo, que na verdade não
vamos precisar. Só vou
copiar isso. Mais uma vez,
há apenas três linhas, mas vamos pegar
o jogador antigo e o novo jogador lança ambas para o protetor de dados da
entidade. E então
vamos obter os novos jogadores dados persistentes, colocando as camadas antigas ou os jogadores originais
versus novos dados. Isso é literalmente tudo
o que estamos fazendo aqui. E a forma como nos
registramos mais
uma vez nos registros
mod. E é basicamente
assim que você registra, bem, todos os eventos, privados, estáticos,
vazios, registra eventos. E isso é praticamente
o mesmo que isso
porque, na verdade,
o evento de retorno de
chamada de registro de comando também
é um
evento, por assim dizer. Vamos dizer que os eventos do jogador do
servidor copiam a partir deste momento, o evento aqui que é
muito importante, não a classe o que o
evento ou a interface, o evento Registrar, Novo Modo os eventos do jogador
copiam de, e é isso. Também poderíamos fazer
isso tudo na fila. Só recomendo
fazer isso assim. Acho que isso é
um pouco mais limpo. Vai ficar bem. Acho que você
vai ficar totalmente bem, mas isso é
praticamente tudo o que você precisa fazer. Claro, também precisa
chamar isso aqui. Então registre-se, agora
registre comandos, mas o registro cerca eles
atrás em apenas o suficiente, isso é tudo. Agora, este é definitivamente um processo
mais envolvido, especialmente escrevendo isso, certo? Então, isso mais uma vez, muito conhecimento Java, apenas pensando nessa soma, ok, onde você obtém
a posição do jogador? Como você pode salvá-lo
corretamente, em uma matriz int? Coisas assim são
definitivamente mais complicadas. E se você tiver ideias mais
complicadas para comandos personalizados, embora não fique mais fácil, mas vai ficar tudo bem. Tenho certeza disso. Mas, por
enquanto, vamos ver se
funciona ou se
retorna no Minecraft. Então, vamos antes de tudo ver o slash home e entendemos
que isso é muito bom. Vamos ligar para retornar primeiro. Nenhuma posição em casa foi dito Isso é muito bom
que não estamos recebendo nenhum erro ou qualquer coisa
que basicamente quebre. E vamos defini-lo aqui. casa de oposição nesta
ocasião parece boa. Vamos nos afastar de lá. E vamos apenas dizer para casa, voltar e voltamos,
isso é muito bom. Agora, vamos realmente
o jogador aqui. Vamos apenas brincar e eles vão. Isso é responder. Então agora estamos basicamente
longe disso e então podemos dizer Home Return,
e ainda funciona. E agora, por último, mas não menos importante, vamos voar todo
o oceano um pouco. Vamos fechar e salvar isso. Vamos voltar a entrar no mundo. E vamos ver se
isso também funciona com a barra de retorno em casa depois são basicamente bem de
volta ao mundo. E funciona, tudo está
funcionando muito bem, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil
e aprenda sobre o novo. Se alguma dúvida
permanecer, é claro, sinta-se à vontade para fazer nas perguntas e respostas. Mais
uma vez, provavelmente
não ajudarei em muitos detalhes se você tiver um comando
específico que deseja implementar, ele, você só vai ter que
experimentar muitas coisas e espero que você
seja capaz de obtê-lo, certo, mas isso seria
para esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda sobre o novo. E te vejo
na próxima palestra. Então, sim.
73. (Intermediário) adicionando flores personalizadas: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos adicionar uma flor personalizada ao
Minecraft, certo? Então, vamos navegar
para nossa classe OCS modelo. E lá dentro, vamos apenas copiar
sobre a safra de nabo. Agora, muito importante
porque isso
usou o bloco de registro
sem item Bloquear. Temos que mudar isso. Isso é muito importante. Caso contrário, vamos
encontrar um problema e
esta será
a rosa rosa
com um nome aqui. Pense em linhas e linhas de sublinhado. E então, é claro, também
precisamos adicionar o modo Grupo, mais grupo de itens start horse, para que tenhamos isso
no grupo de itens correto. Então este não é
um bloco materno, mas um bloco de flores. E o bloco de flores assume
três parâmetros diferentes. O primeiro é
um efeito de status. Então, vamos
dizer que são efeitos
que digamos que brilham
e uma ração de defeitos. Curiosamente,
isso é em segundos. Na verdade, temos que especificar
algo não muito grande, nada como 200 ou
algo assim. E então
vamos copiar a, vamos ver, a tulipa rosa. Por que não? Certo, e esse é,
na verdade, o bloco feito. Agora vamos passar
para os arquivos JSON. Então, esses são interessantes. A situação real do bloco não
é muito louca com ela. Apenas tipo de cópia
isso também, a propósito, haha, vamos também adicionar isso ao método inicializado aqui
no cliente do curso MOOC. Esta
será a rosa rosa, muito importante que
adicionemos a isso também. Você pode ver que o bloco
diz que Jason não é tão louco. E então, é claro,
a tradução aqui vai ser linhas de sublinhado
rosa. E então aqui rosa rosa
sem sublinhado, rosa rosa, lá vai você. Mas o modelo de bloco é um
pouco diferente aqui. Então essa será
a coisa interessante
neste tutorial, você pode ver que isso tem
o pai cruzado aqui, e então as texturas também
são cruzadas, e então aponta para a rosa
rosa pasta de blocos extraordinária. E isso também é muito
interessante porque o modelo do item ganha exatamente
a mesma textura aqui. Em vez de ter um modelo de item
normal associado a um
bloco em
que é curto
, mostra o bloco em 3D. Desta vez, na verdade, apenas pegamos a mesma textura, mas a usamos
como a textura do item. E então vamos
copiar isso também, é adicionado à pasta de extras de
bloco. E isso é praticamente tudo
o que realmente precisamos fazer. Então agora vamos ver se funciona
ou se salta para trás e densidade do
Minecraft pode
ver que a rosa rosa foi adicionada ao
jogo e eu considero baixo. E parece muito,
muito legal. Então, isso é realmente incrível. Bem, mas isso
já era isso para esta palestra muito curta aqui. Na próxima palestra,
vamos dar uma
olhada em como você pode adicionar a rosa rosa ou você está acostumado bloco floral
a um pote também. E acho que te verei na
próxima palestra. Ah, sim.
74. Flores Potted (intermediárias) (de mediatista): Tudo bem, bem-vindo de volta
ao cavalo de tecido para 118. E nesta palestra,
vamos dar uma
olhada em como você pode adicionar uma paleta personalizada
planejada ao Minecraft. Isso é realmente muito fácil e o que vamos
fazer é realmente copiar sobre a
colheita eterna aqui porque
teremos que usar o bloco
sem itens quebrados novamente. E estas serão as linhas de sublinhado rosa
dos oleiros. E então o mesmo nome aqui, sublinhado em vaso,
rosa, linhas sublinhadas. E isso vai
ser um bloco de vasos de flores. Agora, o primeiro parâmetro aqui será,
na verdade, mais blocos que crescem e crescem o ego. E então as configurações serão
transferidas da parte que allium os conjuntos tornarão nossa
vida um pouco mais fácil neste caso. Então, o que é muito importante
no cliente aqui, na verdade, temos que chamar isso mais tarde para o
produto rosa rosa também. E esse é praticamente todo
o código que precisamos. Agora só precisamos
adicionar um bloco permanece Jason primeiro copiando
isso. Na verdade, não muito louco. Isso simplesmente aponta
para um modelo de bloco. Vamos também adicionar a parte
que está em bruto aqui. Agora, este
só deve ser necessário. A tradução real aqui, se você tem um moderno
parado também, que basicamente verifica quais são
os nomes e
os exibe no topo. Portanto, isso nem sempre é necessário. E então o
modelo de bloco é realmente a coisa realmente interessante
para o bloco de terra de auditoria. E isso vai ser
isso porque antes de tudo, o pai é uma cruz de vaso de
flores. E então ele aponta
para uma textura de planta. E isso simplesmente aponta para a textura real
em
seu bloco que sua planta ou sua farinha
neste caso estão usando para
que esta aqui. E agora o que é muito
interessante, é
claro , é porque não
precisamos, não precisamos de um
modelo de item aqui porque, bem, isso não tem
um item associado ele porque vamos
conseguir este bloco clicando com o botão direito do mouse no vaso de flores
com essas linhas específicas. E o que também é
importante, vamos realmente dar uma olhada na mesa de
saque também. Então, vou copiar isso sobre tudo aqui, é
claro, está disponível para você no repositório do GitHub ou em um indivíduo também. E você pode ver
que estamos basicamente soltando uma rosa rosa aqui bem
como o
bloco de flores, partes de flores. Então isso é muito importante. Basicamente, acabei de reunir isso através das mesas de luge aqui. Ou podemos simplesmente entrar
aqui e podemos ver
as coisas de TI aqui. E basicamente é
exatamente o mesmo. Portanto, não se preocupe,
na verdade, há bastante
simples, certo? E agora, para fins de conclusão, vamos ver se funciona
ou fundos que de volta ao Minecraft e eu já coloquei alguns potes
e vamos ver. Lá vai você. Posso colocar as linhas lá e parece
absolutamente impressionante. E vamos ver se volto para nossa sobrevivência. Que você vá Ambos a extremidade do pote da gota de flor real. Isso é muito, muito bom. Rep, isso já é para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E eu vou te ver na
próxima palestra. Sim.
75. (Intermediário) adicionando sons personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar sons personalizados
ao Minecraft. Portanto, adicionar
sons personalizados é, na verdade um
processo bastante simples por si só. Colocar esse som também
é muito fácil. No entanto, pense que a coisa mais
difícil ou desafiadora pode ser a obtenção
dos arquivos de som adequados. Então, antes de tudo, precisamos de
alguns arquivos JSON para isso. O que vamos
precisar é de um arquivo JSON
no curso MC. Mais velho aqui. Então clique com o botão direito do mouse em novo arquivo chamado
Sounds ponto-ponto-dot Jason. E então, na mesma pasta, vamos criar uma nova
pasta chamada sons. Tão importante que ambos
sejam chamados de sons e sons. Então isso é muito importante. E eu realmente copiarei sobre um desses
sons já. Este
será o arquivo de som. Como você pode ver, o sublinhado da haste de
dowsing encontrou sublinhado ou aquele OGG. É muito importante é que todos os seus arquivos de som tenham ser OGG e se certificar de que
estão todos configurados para mono. Mas eles só podem ter o tipo de amostra mono ou canal
modal, caso contrário, eles não gostarão de você
problemas com isso,
tenha isso em mente. E eles precisam ser arquivos OGG e não apenas pegar
arquivos MP3 e renomeá-los. Você precisa obter um conversor
para convertê-los corretamente. Portanto, tenha isso em mente e
nos sons Jason aqui
temos que defini-los. Então, vamos colocar colchetes
encaracolados e então vamos
basicamente escrever no nome. Então, esse é realmente o nome. Vamos
registrar isso sob sublinhado da vara de
dowsing,
encontrado sublinhado. Ou agora eu geralmente gosto de pegar esse nome e tê-lo
o mesmo que o arquivo. Isso só torna muito mais fácil. Em seguida, vamos
adicionar um subtítulo aqui. Este vai ser
o subtítulo dois pontos e um curso MC dois pontos ou ponto realmente dowsing,
vamos pegar o mesmo nome. rigoroso vai comercializar, copiá-lo, Control C e depois
Control V, e depois vírgula. Então vamos
ter uma lista de sons. Então isso vai ser uma
lista, então colchetes aqui. E então dentro daqui
teremos a vara de
dowsing do cólon
MC Coors encontrada. E este tem que ser
o nome desse arquivo. É claro que isso é
apenas o ID do modelo. Então, dependendo da sua
melodia, isso muda, então o subtítulo é
realmente algo que você pode colocar
na pasta lang, como qualquer arquivo JSON, que é exibido quando você tem legendas e
este lugar de som, então isso está sendo exibido. Então isso é algo
que você também pode adicionar
agora ao registrar basicamente os sons. Do que precisamos? Bem, no nosso
pacote de cursos MC aqui, clique com o botão direito do mouse em novo
pacote chamado som. E então, dentro de lá,
vamos criar uma nova classe Java
chamada Modus sons. E isso será, na verdade,
bastante simples. Vamos precisar de um evento de som estático
privado, evento som de registro
antigo com um
parâmetro de string chamado name. E então
vamos fazer o seguinte. Vamos apenas fazer
um identificador, ID do quadro, que é um novo identificador com o mod do curso MOOC
meu ID e o nome. E então vamos
retornar o registro, que se registra com um evento de som de ponto de
registro com o ID e o
novo evento de som. Você soa um evento e
passa o ID. Novamente, é por isso que estamos fazendo um ID porque
temos que passá-lo duas vezes, uma para registrar e outra
para o evento sonoro real. E como isso se parece? Bem,
evento de som estático público chamado dowsing, sublinhado de
haste, encontrado sublinhado ou igual a um solvente de registro. Agora vendo sublinhado, o
sublinhado de haste encontrou sublinhado E então certifique-se de
que isso aqui, o que está escrito aqui é
exatamente o mesmo que isso. E é. E então
deve estar tudo bem. E isso é praticamente
tudo o que precisamos
fazer para registrar o som. Agora, é claro que
precisamos jogar de alguma forma. E o que
vamos fazer é quando
encontrarmos um ou na vara de dowsing, então vamos
tocar esse som. Oh, vamos apenas entrar aqui. Então, sabemos que isso
é encontrado bloco verdadeiro. Então, sabemos que este é o
momento em que isso acontece. E o que precisamos é do mundo, como o mundo aqui. E podemos apenas dizer tocar
som e passar pelo jogador, uma posição clicada, que
é a posição em que estamos. O som dele soa
um pouco aquela vara de
dowsing encontrou ou
e a categoria de som, vamos pegar
blocos Tudo bem. Volume 1 e pitch 1 também. Há também outra maneira
de podemos colocar como isso, isso é através do jogador. Portanto, isso também deve funcionar para que você possa ver
o jogador tocar sons. Existem maneiras diferentes,
mas isso também é bom. Isso deve ser totalmente
bom aqui neste caso. E isso deve basicamente
tocar esse som aqui. Então eu acho que, por
causa de conclusão, vamos ver se funciona. Certo, Francis de
volta ao Minecraft, vamos ver e tentar
se podemos encontrar um OR. E, na verdade, foi me
deixar rapidamente obter o som um pouco
mais. Aí está. E eu posso, claro, spam. Eu posso mantê-lo pressionado. E então, em algum momento
, fica irritante. E o mais
legal é isso porque o colocamos sob
a categoria de blocos. Agora ele não joga
mais porque, bem, desligamos
os sons do bloco, então isso é muito legal. Isso é algo para pensar
basicamente. E isso é realmente
o quão fácil é adicionar um som personalizado ao
Minecraft, certo? E eu já ouço
você gritar, bem, que tal adicioná-lo
a um bloco, certo? O que não posso mudar o som quebrando de um
bloco e coisas assim? Claro. E isso é
exatamente o que vamos
ver na próxima palestra, onde basicamente
vamos adicionar,
bem, o som de quebra, colocação
e passo. Existem mais alguns, mas isso basicamente será
feito na próxima palestra. Então, isso seria para
este aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra. Então, sim.
76. (de medium) grupo de som personalizado com bloco: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos adicionar um grupo de som Bullock de
clientes ao jogo. E o que é um grupo de som de blocos? Bem, um
grupo de música em bloco
consiste em cinco cidades diferentes, e essas são a pausa, o passo, o lugar do
hit e o som completo. E vamos
basicamente adicionar isso para criar um som personalizado ou nossa lâmpada
recalcular. Mas essa é a ideia geral. Primeiro de tudo,
vou copiar
os cinco arquivos OGG diferentes. Então os sons aqui, e nós vamos
apenas copiar esses. Esses são, claro,
todos disponíveis para você para download também. E então vamos
entrar em nossos sons, Jason e eu também vamos copiar o conteúdo que
vamos precisar. Isso é praticamente
o mesmo que isso, apenas com valores diferentes aqui. Acabamos de ter a
lâmpada de telecomunicações quebrada aqui. Então, para as legendas, praticamente a mesma
taxa ou MOD ID e, em seguida pontue qualquer que seja o nome aqui, quando o som é nomeado exatamente como o
som aqui. Isso é praticamente
tudo o que há para ele. Portanto, isso não deve ser
muito louco no geral. E então o que precisamos fazer na nossa
classe de sons de modo aqui. Vamos duplicar
isso e
vamos chamar isso recontagem vem sublinhado
lâmpada, sublinhado quebra. Então esse é o
primeiro, resultado, lâmpada
sublinhada, quebra de
sublinhado. E então podemos duplicar
isso cinco vezes. O segundo
será então o som do passo. Extra, altere o nome aqui
também e certifique-se de que ele esteja
escrito corretamente. Isso também é muito importante. E este vai ser o
lugar que soa com este,
lugar, esta série soa, e lá também será atingido. Então, por último, mas não menos importante,
temos o som completo. E então aqui, TODOS também. Certo, então esses são os cinco eventos
sonoros que
vamos precisar. Você também pode pensar em
salvá-los de outra forma, especialmente se você tiver
muitos outros diferentes, mas isso vai dar certo. Na verdade, isso está tudo bem. E agora, é claro, também precisamos de um grupo de som de bloco. Agora, você sabe, nós poderíamos
fazer isso em uma classe separada ou podemos
simplesmente colocá-lo nesta classe. Isso também vai
funcionar. Então, será um grupo de som de bloco
final público estático grupo de som de bloco
final ou um som
sublinhado. E isso é igual a um novo grupo de
som com um F1, F. Então esse é apenas o
tom e o volume. E então basicamente todos os
cinco desses sons, vamos ter
sons de modo, DOT, freio. Sons de modo, ponto, passo, sons de
modo, ponto, lays. O modo soa holandês. Tudo. Na verdade,
acredito que ele é atingido primeiro e, em seguida, seu
modo soa ponto o, sim, nesta ordem. Mas vamos verificar novamente. Então, clique no botão do meio do mouse
no grupo de som do bloco s. E, no entanto, um som completo
é o último. Isso deve estar correto aqui. E então esse grupo de
blocos de som irá, como vamos usá-lo? Acabamos de entrar na classe de blocos de
lama. E então, para nossa
lâmpada de telecomunicações aqui, podemos basicamente adicionar um outro parâmetro às configurações
do
bloco e esses sons serão. E então aqui nós apenas dizemos que o modo soa isso ou um cálcio soa. Vamos apenas formatar isso um pouco
diferente assim, o ego, e seria isso. Isso é praticamente tudo
o que precisamos fazer. Claro, precisamos
dos sons, Jason. Defina tudo aqui, faça os sons aqui, tenha os arquivos em nossa
pasta Sons taxa entre novamente, OGG
correto está corretamente
formatado ou convertido. E também em mono,
muito importante. E, em seguida, basta adicionar
mais sons aqui. Por enquanto, por causa de conclusão, vamos ver se funciona. Já encontrei suspeito
no Minecraft. E vamos antes de tudo
realmente mover o volume para
cima apenas um pouco para
que realmente tenhamos isso. Vamos ver o conjunto, o som de colocação
real. Isso é exatamente certo. Isso é completamente personalizado. Vamos ver o som quebrando. Isso é incrível. Então, isso também funciona. Isso define, coloque alguns
aqui e vamos pisar nele. Eles vão. E isso também deve funcionar quando
segui o slide a seguir, na verdade, não tenho 100% certeza por que isso não funciona. Isso é muito furioso. Acredito que ele
deve funcionar assim. E então o som de sucesso
seria esse. Eu acredito. Além do sucesso
no som completo, tudo parece
funcionar totalmente bem aqui. Então, também não tenho 100% de certeza de onde eles são chamados, para ser honesto,
porque geralmente deve ser a força nisso. Isso é certo? Então, quando você cai sobre ele, mas definitivamente não
há nada lá. E então quebrá-lo também
não parece funcionar. Então, vamos tirar
como uma escolha x, y. Então vamos ver o que, ok,
a quebra definitivamente funciona. Mas parece ser apenas o
som de queda que não funciona. Mas às vezes essas
coisas acontecem. Então lá vai você. Tudo bem. Então, depois de olhar para ele novamente, eu ainda não tenho
100% de certeza por que eles caem aqui não funciona
por qualquer motivo, isso nunca é chamado. Mas seja qual for o caso, o som completo não é
algo que seja muito louco
ou muito importante. Eu diria, Oh, isso provavelmente vai
ser totalmente bom. Seja qual for o caso. Os outros, é claro,
trabalham que são muito mais importantes neste caso. Então, tudo deve estar bem e isso já seria para
esta palestra aqui. Espero que você tenha achado útil e ele tenha aprendido algo novo. Vejo você na
próxima palestra. Sim.
77. (Intermediário) adicionando discos de música personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar um
disco de música personalizado ao Minecraft. Portanto, um disco de música personalizado, pior também requer um evento de
som personalizado. O que vamos fazer
é copiar isso mais uma vez. Na verdade, vai ser
muito fácil de entender. Você pode ver que só
temos o nome aqui. Mais uma vez, esse é o nome
que vamos
dar na
classe de sons modelo em apenas um momento. E então o nome aqui,
é claro, refere-se a um arquivo de som, mais
uma vez a um arquivo OGG. E neste caso,
é ainda mais importante que isso esteja em mono, porque se estiver em estéreo, então você vai ouvir isso basicamente em todo o mundo, em todo o servidor. Caso contrário, como
tem que ser mono, muito importante, muito, muito
importante neste caso. E vamos para o
modelo Sounds aqui. E vamos apenas
copiar isso e chamar essa briga
sublinhada da barra D. E aqui, claro, também, briga de
bar, certificando-se de
que tudo está escrito corretamente. Muito importante. E então, na classe mais itens vamos criar um novo item. No entanto, é claro o que precisamos, antes de tudo é um item de disco de música
MOD, infelizmente, porque mais uma vez, o construtor aqui
não é acessível para nós. Então, o item de disco de música passa o mouse sobre, crie um construtor
correspondente super. E então vamos apenas
copiar o público que eles são. E então nunca temos que
dar uma olhada nisso nunca mais, basicamente. E então vamos apenas
copiar as sementes de nabo aqui. E vamos fazer disso o bar sublinhar Berle,
sublinhar música, sublinhado disco. Então, no mesmo ano, o disco
sublinhado da música roll de barra sublinhado. E isso, claro, é
um item de disco de música MOD. primeiro parâmetro é a saída
do comparador. Então, o que está sendo produzido quando você coloca um comparador ao lado dele? E então vamos
dizer, não soa Barbara. Agora, outra coisa muito
importante está aqui, como você pode ver que
isso é verdade. Então isso tem que ser verdade porque o papel de barb, é
claro, é um fluxo. Portanto, você ama o disco de
música é um fluxo, então isso é muito importante. E também vamos colocar na contagem máxima de
um
para que só possamos
empilhar um desses. E então o que também é
muito importante é a tradução do E e nos
ressaltar o arquivo JSON. Na verdade, vou
copiar
os dois porque
na verdade há dois. Há o disco de música barb
roll, que é apenas o
nome do disco. E então a descrição
é basicamente o que acontece. Você sabe, se você passar o mouse sobre ele. E isso geralmente diz apenas
de quem é a música
e, em seguida, o nome da música. E também adicionei
a licença aqui. Portanto, isso está logo abaixo da CC
0 ou é de domínio público. Você poderia, em teoria, usar esse papel de barb também
em seu modelo antigo, poderia fazer basicamente
o que quiser com ele. Mas é por isso que eu adicionei
isso também. Certo? Isso é praticamente tudo o que
precisamos, exceto é claro, para um modelo de item e
uma textura para ele. Mas isso é algo que
vimos tantas vezes agora que na verdade não seria muito
louco neste momento. Isso aponta para a textura do barbeiro ou disco de
música
na pasta do item,
ou, claro, também vai
copiar que passou por cima também. Então, disco de música Barbaro. Lá vai você. E com isso, estamos
praticamente prontos para ir. E vamos ouvir se funciona. Ou eu, por exemplo, de volta ao
Minecraft e eles podem ver a música lá foi adicionada
com sucesso aqui. E vamos apenas puxá-lo para dentro. E lá está ele. É bem alto, mas
também é porque eu tenho minha música. Então está tudo bem. E este lugar normalmente um FI voa para longe. Você pode ouvi-lo ficando cada vez menos. E então
ele se foi completamente. E então, se voltarmos, lá vamos nós, continua. Tão absolutamente ótimo. E vamos aminar, está tudo funcionando totalmente bem,
como esperávamos. Borracha. Isso já seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda um pouco de novo. E eu vou te ver na
próxima palestra. Sim.
78. (Intermediate) adicionando um modelos de bloco personalizados no Minecraft com Blockbench com Blockbench: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos dar uma
olhada em modelos de blocos
3D personalizados. E como você vai
fazer esses modelos de blocos? Bem, vamos
fazê-los com bancada de bloco. Este é um programa
que está disponível. Vou vinculá-lo nos
recursos em algum lugar. E isso basicamente
permite que você faça modelos 3D
muito legais
para seus blocos, na
verdade , não é tão
difícil já ter um modelo de bloco preparado aqui para mim como o Oracle pode blaster. Então, basicamente, vai
ser como um alto-forno, especialmente feito de ou
um chita neste caso n. Há, para este exemplo em
particular aqui, duas coisas que
precisamos ter em mente. Então, a primeira coisa é
que você, é claro, também terá acesso a
esse arquivo de bancada de blocos. E o que você fará
então é ir para Exportação de
Arquivo e, em seguida, Exportar modelo de item de barra de
bloco. Isso exportará um
arquivo JSON como você pode ver. E você pode fazer isso. Eu posso anular isso. E então o arquivo JSON
ficará assim. Então, basta abri-lo
aqui e você pode ver que há uma espécie de
como ele se parece. Você tem a textura aqui e depois um monte de elementos. Então, esses são basicamente
os elementos 3D. E depois também há coisas que estão aqui na tela. Também podemos dar uma
olhada na tela se você for para o
canto superior direito aqui, exibir. E basicamente
mudou como
parece que
talvez você seja como, Oh, talvez seja um
pouco grande demais. Você pode ser como, Sim,
vamos apenas diminuir isso para como 2,5 de maio ser como 0.25.25.25 ou
algo assim. Talvez esse seja o
tamanho melhor. E então você
também pode alterá-lo do outro lado também.
Algo assim. E em primeira pessoa
talvez isso esteja bem comigo. Isso também vai ficar bem. Quando você o usa na cabeça. Parece muito estranho,
mas com certeza. Mas se estiver no chão, talvez seja um pouco grande
demais também. Então, talvez você queira mudar
esse ponto piloto para quando, para, quando for,
para que você o tenha
assim no quadro do item. Talvez você queira girar
isso ao redor, certo? Então, talvez a rotação
seja algo assim e
algo assim. Talvez seja uma maneira
melhor de fazer isso. E então, na
GUI, pense que a GUI parece perfeita. E aqui você pode basicamente mudar muitas coisas
no banco de blocos. Este não será um tutorial de espaço de bancada puramente bloco, mas como você pode basicamente tirar coisas do banco de
blocos aqui. Quando eu também salvo
isso como modelo, o glossário é por favor. E então ele já foi
salvo como arquivos JSON. Devemos ter essa
recarga. Lá vai você. E então também muda aqui para que tudo esteja bem. E isso, na verdade, é
basicamente tudo o que você precisa. Então, basicamente precisamos
desse arquivo JSON. Vou copiar isso
como modelo de bloco, certo? Então, vamos copiar isso como
o modelo de bloco que praticamente já tem
as coisas 3D lá. Agora o que precisamos é que precisamos, claro, da textura também. Então vou colocar isso aqui
nas texturas Brock. No entanto, o que vou
fazer é também criar uma nova pasta na pasta de texturas
chamada máquinas, e vamos
colocar isso lá. Isso não é estritamente
necessário, é claro, porque essa textura também
é uma textura de bloco, mas acho
um pouco mais agradável. E então o que precisamos fazer
é, claro,
especificar aqui núcleos MC e, em seguida, as máquinas cortam o nome disso. Isso é muito importante
que adicionemos ao nosso ID de modelo e
, em seguida,
o nome das palavras mais antigas
basicamente aqui, e então o resto
aqui está totalmente bom. Claro, ainda
precisamos de um modelo de item para isso. Nós vamos fazer isso também. Vamos derrubar as coisas fáceis primeiro lugar aqui, certo? Então o Oracle pode
blaster, tudo bem. Isso apenas se refere
ao modelo de bloco aqui. E então o bloco
afirma Jason, bem por enquanto,
o que vamos fazer é vamos
fazer um normal. A porta da explosão. E isso só vai
se referir à última string. Isso vai ficar bem. E para o mesmo para o bloco, vamos fazer um bloco
completamente normal aqui. Vamos apenas copiar, digamos que a rosa
rosa porque isso é
um bloco de registro e esse é o blaster de
sublscore oracle Malcolm. Então o mesmo aqui ou ele não pode
vir sublaster sublaster. E agora ele vai
ser um bloco normal. Mas vamos dar uma
olhada nisso em apenas um momento. Deixe que, na verdade, teremos que mudar
algumas coisas aqui. Nós materiais de metal
no grupo de itens mod, cavalo, isso vai
ficar totalmente bem. Para fins de conclusão,
vamos também adicionar a tradução aqui ou uma
contagem vem sublaster sublaster. Então, é claro que o resultado não ressalta a
explosão ou eles atrás. E agora, assim como um
bloco normal, nós o adicionamos. Agora vamos também adicionar o não opaco
real aqui. Isso é muito importante. E então também vamos
adicioná-lo ao get cut out. Portanto, essas são todas as etapas que você precisará seguir
para que isso também seja
exibido corretamente. E então, basicamente
veremos duas limitações com a maneira obtida como esta é
configurada e, em seguida, também
veremos como corrigi-las. Então, vamos ao
Minecraft e vamos ver o modelo 3D personalizado
pela primeira vez. Ou se me diz que um
microfinanciamento pode ver o recalc, uma blástula
foi adicionada ao jogo. E quando eu o defino, você pode ver que há duas coisas que são
muito interessantes. Primeiro de tudo, bem, não está realmente voltado para a
direção certa, certo? Como você pode ver, está sempre
voltado para a mesma direção, que na verdade
será para o norte como você pode ver. Mas isso é muito interessante. E também temos,
bem basicamente, uma caixa
delimitadora muito estranha em torno dela, o que definitivamente não é
exatamente o que você quer. Então, isso é
outro que está bem,
tem que ser consertado de alguma forma. Mas essas são as duas
limitações por enquanto. Mas esses dois podem ser corrigidos forma
bastante direta, certo? Para corrigir ambos, na verdade,
precisamos de uma classe de
bloco personalizada para isso. Portanto, no seu pacote personalizado, clique com o botão direito do mouse em nova classe Java
chamada recalc vem sob, não
sublinhado, na verdade explosões ou bloqueios, eles vão. E isso estenderá o bloco voltado
horizontal. Muito importante que
escolhamos esse. E vamos criar um
construtor combinando super. E a razão pela qual estamos escolhendo
isso é porque se eu pressionar Control H
depois de clicar nele, você pode ver que existem alguns outros blocos que
também estão tirando isso daqui. Por exemplo, alguns dos blocos de cama
parecidos , onde é
forte portão desse jeito. Isso é muito interessante. E geralmente eu realmente esperava que o bloco abstrato Ernest também
se estendesse a partir disso. Não, na verdade, ok. Isso é
com blocos de entidade. Justo o suficiente. Mas também tem a propriedade virada aqui. Essa é a ideia geral porque quando você
coloca no forno, mas ele sempre olha
em sua direção. Então, o que vamos fazer é
, na verdade copiar
rapidamente a
direção aqui. Portanto, isso não é nada muito louco, apenas uma grande propriedade igual
à propriedade começa a enfrentar. E vou copiar mais
algumas coisas que,
obviamente, estão disponíveis para
você no repositório, no repositório do GitHub ou no
indivíduo também. Precisamos do método append
properties. Já vimos isso
e vamos
usar o espelho e
o método Rotate. Você basicamente tem
isso girar
da maneira correta e, em seguida, eles
obtêm o método de estado de posicionamento basicamente faz com
que o revestimento seja sempre transformado em uma maneira que
o bloco esteja voltado para você. Agora, é claro, quando temos
os blocos de frente uma propriedade, é claro
que também precisamos
alterar o bloco Estados JSON. Há também algo
que vou copiar, mas isso é realmente
bastante simples. Você pode ver que está voltado para norte é apenas o modelo de bloco
normal. E, de outra forma,
acabamos de girar em 90, 180 e 270 graus. E você sempre pode verificar as bibliotecas externas
no canto inferior direito na pasta de ativos, o
Minecraft bloqueia estados. E então, por exemplo,
olhe para o alto-forno, por exemplo, é certo. E isso vai ser
praticamente o mesmo. A única coisa que é, isso
também tem uma propriedade de tampa, mas isso vai
ser totalmente bom. Então isso é algo em que
você pode basicamente dar uma outra olhada nisso e
como você tem que girá-lo. E isso é basicamente onde eu tirei
esses números. Bem, não vamos saltar
imediatamente de
volta para o Minecraft Porque agora, tal a caixa delimitadora? Será que a caixa delimitadora
é o que é chamado de forma voxel. E essa é a única
coisa que é genuinamente apenas irritante de se
fazer no banco de blocos, especialmente com este modelo. É muito chato porque geralmente o que você gostaria
é que você quer, queria centralizar
o pivô, certo? Então, antes de tudo, você
verá que, se eu centralizar o pivô corretamente, então ele tem valores
muito estranhos. Recomendo,
indo para um pouco acima, direita ou um pouco abaixo, basicamente arredondando para cima ou para baixo. Caso contrário, você terá um momento ruim com a
rotação dele. Porque o que vamos
ter que fazer é que teremos girar isso
três vezes para que, em todas as direções, teremos
uma nova forma de voxel. É
assim que vai ser e é muito chato. Mas essa é a
melhor maneira que eu
encontrei isso até agora funcionar. Se houver outras
maneiras, é claro, sempre sinta-se à vontade para entrar no Q e
a e me
falar sobre isso. Portanto, não se preocupe lá. O que vamos fazer é que
vamos, em primeiro lugar, eu tenho que ir ao File
e depois para plugins e obter o
plug-in mod utils aqui. Isso é do JDK dois a dois. E se isso, isso é muito importante, é
só, você sabe, você pode simplesmente ir para a
busca disponível por mod utils, certo? Já
o tenho instalado. É por isso que não
vem aqui. Clique no
botão Instalar e instale-o em seu banco de blocos. E então o que você terá é você precisará pegar todos
os cubos e todas as
coisas
que você tem e colocá-los sob
um grupo aqui, formas de
grupo ou voxel, exatamente escritas como isso. Sem espaços, nada exatamente
escrito assim. E quando você tiver isso, você
pode selecionar todos eles,
ir para Arquivo, Exportar
e, em seguida, Exportar forma voxel. Agora, é claro que estamos usando Rubrik, então queríamos exportar
os mapeamentos de fios. Vamos dizer confirme, e vamos salvar
isso como a forma de voxel N. Como você pode ver, eu
já salvei isso e podemos dar uma
olhada nisso também. Então eu só vou mover isso inerente para que possamos
dar uma olhada nisso. Mas é assim que parece. Às vezes você obtém
esses números malucos, o que você terá que fazer
é que você terá que
arredondá-los para o número inteiro mais próximo. Então, esse será
apenas um processo manual. Então, por exemplo, este é
apenas um 0, na verdade, certo? Porque é menos três
para a potência de menos 15, então são 15 zeros. E então um negativo, como
um 0.3, é como se fosse 0. Então, temos que fazer isso manualmente. Às vezes, é apenas a forma como o bloco bancada às vezes exporta. É muito estranho. Então isso vai ser, e esta é apenas
a forma do voxel. Se esta é uma configuração como
olhar para o Norte, o que agora temos que fazer
é quando você tem que
girar isso em 90 graus. E a primeira coisa
que você notará
neste exemplo específico é que ele é um pouco compensado. Assim, você pode ver que a
precisão, por
qualquer motivo , é necessário
movê-lo de volta para o meio. E então isso vai ser
norte, leste, sul, oeste. Então isso agora está voltado para o oeste. Agora temos que exportar novamente. Isso é voltado para o oeste mais
uma vez, certo? Então, quando eu substituo o w, e então podemos dar uma
olhada naquele w aqui. Isso também vai ser muito
interessante porque temos que
fazer isso novamente, então 0. E então isso vai ser um 14 e isso vai ser 13. E o que você verá
é que os números simplesmente mudam um pouco. E, você sabe, se você tiver tempo
suficiente e poder cerebral suficiente, provavelmente
poderá descobrir como mudar esses
números você mesmo. Mas isso é, claro, uma
loucura porque
temos tantas coisas aqui. E quanto mais complicado
o bloco for, mais complicado
isso também será. Vamos
girá-lo novamente e, claro, mais uma vez, redefini-lo para que funcione bem. Então é isso que você tem que ter
muito cuidado não
é alterado o número aqui, mas você terá que
mudá-lo como usando as setas, é se você mudar o número do que cada um desses
cubos só funciona. Apenas, apenas se move para dentro e por si mesmos é um bloco muito
estranho, que é um programa muito estranho. Mas atualmente é, pelo
menos pelo meu conhecimento,
o melhor que temos. Infelizmente, isso é claro
que vai ser o sul. E então vamos
girar imediatamente para o leste
também, que pode fazer isso
e depois fazer isso. E lá vai você. Agora devemos
ter tudo aqui. Então, vamos dizer caixa de
exportação ou forma, ou o Oriente também. Isso é ótimo. E agora o que vamos
fazer é pegar o Norte e
o Oeste e
imediatamente já usá-lo. Então, vamos tomar
esse controle C para copiá-lo. E então o que queremos é que queremos uma
forma de voxel final estática privada ou sublinhado de forma n. Então isso é moldado para Norte. E então nós vamos apenas
importar a classe stream, a classe voxel shapes
e a classe de
função Boolean by também. E então o que vou
fazer é copiar isso quatro vezes. Sobre isso, temos o ano norte, leste, sul e oeste. Certifique-se de copiar sobre os
corretos são
o nome correto aqui. Isso é muito, muito importante. Houve
pessoas que, você sabe, confundiram uma
delas com a outra. Então isso é muito importante. E aqui mais uma vez, temos que
limpar isso, tudo bem. Essas são algumas setas de aterramento, erros de arredondamento de ponto
flutuante. Às vezes pode acontecer. É apenas o que é. Mas isso não é muito louco. Haverá o
sul. Lá vai você. Então isso vai ser para o leste. E então temos todas as quatro formas
voxel aqui. Como eu disse, este é um processo
muito tedioso, mas você só precisará
configurá-lo uma vez e então
ele vai funcionar. Se você, é claro,
mudou o modelo, terá que mudar
as formas dos voxels também. Sim, então é isso, é
só o que é. Não podemos fazer mais
nada com isso. Então queremos sobrescrever o
bom método de forma de contorno, este aqui. E também vou
copiar o conteúdo. Como eu disse, tudo
está disponível para você, mas isso deve ser
bastante autoexplicativo. Nós apenas temos uma
declaração de switch que ele olha para
a propriedade de frente e
ela só vai dizer, ei, se o virar para o norte, então vamos
retornar a forma norte. Se estiver voltado para o sul, vamos voltar para o Sul
e assim por diante e assim por diante. Então, isso é realmente tudo
o
que esse método é algo realmente complicado estão nas formas de voxel. E, como eu disse, há,
infelizmente, não há outra
maneira de fazer isso corretamente ou mais facilmente
naqueles, eles estão, naturalmente,
todos disponíveis para você. O mesmo, é claro, com
o modelo aqui. Vamos girá-lo de volta
e então você verá que seja qual for o motivo, ele é
vermelho e lá está o Mac. Então isso é totalmente bom. Isso é como eu disse,
também disponível para você, o arquivo JSON, tudo o
que você pode baixar. E então só precisamos fazer
é em vez de fazer um bloco, queremos fazer isso um bloco de blaster de cálcio ou
E. E então, oh, bem,
é claro que também precisamos tornar isso público e então
tudo funciona, certo? Então, isso deve ser
tudo o que precisamos. Como eu disse,
é muito tedioso, mas tenho certeza de que
vamos gerenciá-lo. Ou, claro, também depende quantos blocos com diferentes formas loucas
você deseja adicionar. Então, esse também é o caso. Mas, por enquanto, vamos ver Para obras ou por que nos
encontramos um Minecraft. Então, vamos definir isso. A última bebida de cálcio
pode ver lá você vai. Os contornos combinam perfeitamente e se eu colocá-lo em
uma direção diferente, sempre me enfrenta. Lá vai você. Então,
tudo funciona e as
caixas delimitadoras totalmente bem. Agora, o que eu tenho a dizer
é que se você tem caixas delimitadoras
realmente complexas como esta, é
claro que você pode ver que tudo ainda está bloqueado , não tem, não tem nenhuma coisa diagonal
e coisas como
isso. Se você tem coisas
diagonais, eu recomendo
tentar talvez tornar seu modelo um
pouco mais fácil em R2, complicado, porque uma forma
de voxel
complicada e louca vai
diminuir o jogo caiu de forma bastante significativa. Mas isso é apenas algo
a ter em mente. Mas, na verdade, é
assim que é fácil adicionar os
modelos de blocos personalizados ao Minecraft. Mas para total
transparência, a Oracle pode última linha
foi feita pela platina G 17. Apenas ajustando a
textura é um pouco,
mas, de outra forma, ela está basicamente sob a licença
Creative Commons. Então, se você quiser usar este ou seu MOD lançado como real, então esteja ciente
da licença se você apenas
vai usá-la para fins
de teste bem,
basicamente, testes privados seu MOD lançado como real,
então esteja ciente
da licença se você apenas
vai usá-la para fins
de teste bem,
basicamente,
testes privados serão estar totalmente bem. Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo na
próxima palestra. Ah, sim.
79. (Intermediate) adicionando um item personalizado com Blockbench: Tudo bem, bem-vindo de volta
o curso de tecido para 118. E nesta palestra, vamos dar uma
olhada em modelos de itens personalizados. Quem da última vez vimos modelos de blocos
personalizados. Agora é hora dos modelos de itens do
cliente. Por enquanto,
vamos fazer um novo item aqui e, em seguida, vamos
adicionar o modelo do item. Então, esta
será a equipe de
sublinhado do Oracle Malcolm . E este é,
claro, também o caminho
sublinhado da Oracle que você segue. Este só será
um item normal por enquanto. E a contagem máxima de um
é realmente ótima. Não precisamos fazer nenhuma classe de itens
personalizados aqui. Só precisamos do modelo
do item para ele. E então, na verdade,
vamos ficar bem. Então, vamos adicionar a
tradução antes de tudo, ou uma equipe de sublinhado de calico. E então aqui também, a
recontagem vem pessoal, o ego. E agora o modelo do item
é o louco. Para isso. Mais uma vez
vamos abrir o banco trancado. E aí está, a beleza
da equipe de cálcio. E como você pode ver, estamos
usando algumas
das pequenas texturas, assim como a Oracle pode bloquear a textura. E, no geral, isso é
praticamente tudo o que você precisa. Portanto, é apenas um exemplo aqui. É assim que basicamente se
parece se você estiver segurando. Todas as outras
coisas de exibição também estão feitas. Você também pode pintá-lo
sozinho, se quiser. Mas, por enquanto,
estou bem com isso. Vamos para Exportar,
Exportar modelo de item de bloco ou uma equipe de cálcio que
já tenho este ano. Isso vai ficar bem. E, na verdade,
vamos simplesmente copiar
o arquivo JSON como
na pasta de modelos de itens. E então as únicas
coisas que precisamos
mudar aqui são
basicamente o nome. Então isso vai ser
Minecraft ou prancha. Isso, certo? Claro que com blocos de barra, lá vão eles, porque essas
são todas texturas de blocos. E então o mesmo para nosso
recalc e bloco também. Então os núcleos MC bloqueiam ali mesmo, e então o resto aqui vai
ficar
totalmente bom para nós. E eu sei que
você pensou que poderia estar dizendo isso, bem, isso ainda não pode ser. Isso é, na verdade, isso é
tudo o que precisamos fazer. Nós só precisamos deste arquivo
JSON primeiro, a modelagem do modelo de item
real. Bem, isso é algo
que você vai
ter que experimentar sozinho, como eu disse, um link blog bench. Mais uma vez,
não é tão difícil. Você pode simplesmente adicionar
cubos aqui, movê-los e depois torná-los maiores
ou menores assim. Então você não deve
ser muito louco. Estou pensando que
talvez com uma hora, uma hora e meia, um
pouco brincando, você vai pegar o jeito
muito rapidamente. É
praticamente como o Minecraft, mas fazer modelos com blocos. Portanto, é muito semelhante, na verdade, seja qual for o caso, vamos ver se funciona. Ou encontramos suspeito
e Minecraft. E como você pode ver, a equipe de cálcio
aura foi adicionada e parece atraente ,
incrível, mesmo
em 3D ou na terceira pessoa, parece muito legal. E eu realmente gosto
do pequeno bloco de ouro no topo. Isso é apenas outro Não, eu
realmente gosto do fato que é basicamente
toda a textura do bloco, apenas neste
pequeno bloco lá. Eu, eu gosto, eu gosto
muito disso. Então, é realmente
o quão fácil é adicionar os modelos de itens personalizados
Minecraft, certo? E isso já é isso para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. Todo o código e tudo isso é claro, está disponível para você
no repositório do GitHub, onde
um indivíduo também. E se você gostasse
disso, eu realmente
apreciaria uma revisão sua. Caso contrário, verei
você no próximo slide. Então, sim.
80. (Intermediate) adicionando uma bow personalizada: Tudo bem, bem-vindo de volta
ao cavalo de tecido para 118. E nesta palestra
vamos
adicionar uma
tigela personalizada ao Minecraft. O cliente é, na verdade um
processo bastante simples. Vamos pegar
a equipe oral de cálcio e vamos fazer esse nome T ou um bot capcom
com o nome aqui, é
claro, muito importante. Então ou um combo assassino. E então esse será um novo item de bot. E o registro está feito. Agora, o que é claro que
precisamos fazer é adicionar o
predicado modal aqui. Isso é o principal. E o que vamos
fazer é realmente copiar sobre um método
que eu fiz. E esse é o método
registrável. Você pode ver que basicamente
registra o bot. Todo esse jazz. Isso é de se eu clicar no botão
do meio do mouse sobre isso,
e então eu clico sobre isso. Este será o botão do
meio ou clique do botão do meio do mouse. E este é o
registro do provedor
previsto do modelo do Minecraft
ou de baunilha. E se eu for aqui, você deve ser
capaz de encontrar o
poste e o puxão aqui. Nós temos esses dois registros para o bot, o bot basicamente, e eu basicamente apenas
copiei esses, substituí o provedor nosso registro de
provedor de predicados modais de malha. Mas isso em um método separado só porque é um
pouco mais fácil, especialmente se você
quiser vários arcos, você pode simplesmente chamar isso. E depois com seu bot. Então, basicamente, mod itens , combinação
dot oracle, e então
é praticamente isso. Então, se você tiver outra
tigela que deseja adicionar, basta adicioná-la também. E então isso é praticamente, é praticamente isso,
isso é praticamente feito. Essa é realmente a ideia aqui. Então, isso é praticamente
tudo o que você precisa. E então, é claro, você
precisará, em primeiro lugar, da tradução que é
muito importante aqui, ou uma vaca está sob
rabisco, certo? Então, e não vamos esquecer
isso ou um chita. E então os modelos de itens
são bem o kicker. Mas, mais uma vez, eles
não são tão loucos. Quatro deles, vou
copiá-los. Esses são, naturalmente,
todos disponíveis para você
no repositório do GitHub ou em
indivíduos também. Este só aponta para
o oráculo chiclete aqui. E então, sob os predicados, ele aponta para os diferentes
modelos de itens que apontam para
este, este ou este. E eles são todos aparentes aqui. Muito importante,
na verdade, será nosso próprio recalc, uma tigela. E então a camada,
mais uma vez vai ser
uma textura diferente. Então, isso é realmente
tudo o que há para isso. Na verdade, não é tão
louco antes de um cliente que você precisará fazer
ou texturas diferentes, uma das bolas normais e, em seguida três delas que estão
puxando basicamente. Mas quero dizer, isso é
praticamente tudo o que há para isso. Na verdade, sou o quão fácil pode ser, porque já vimos os predicados
aqui para os modelos. Não é nada
muito louco Na verdade, é algo que deve
ser louco demais para você. São apenas alguns valores que
podemos basicamente usar
no modelo para determinar qual extra deve ser
mostrado para esse item. Isso é
basicamente tudo o que há para isso, por causa
da conclusão. Vamos ver se funciona ou nos
encontramos de volta em microfinanças podemos ver
que a combinação oracle foi
adicionada com sucesso ao jogo. E se eu atirar, você vai, a textura também muda. Então, tudo está
funcionando totalmente bem, exatamente como
esperaríamos, certo? Mas isso já era isso para
esta palestra aqui. Espero que você tenha achado isso útil. Você aprende o novo, e eu te vejo
na próxima palestra. Então, sim.
81. (Intermediário) Fluidos personalizados (de (Intermediate) (de mediate): Tudo bem, bem-vindo de volta
ao curso de tecido. E nesta palestra,
vamos adicionar um fluido personalizado ao Minecraft. Então, adicionar um fluido personalizado é que
eu diria um pouco complicado. Há como um
pouco de estranheza lá. Mas, no geral, tenho certeza de que vamos gerenciar
, em primeiro lugar,
no pacote do curso MC, clique com o mouse em novo
pacote chamado fluido. E lá vamos precisar de duas novas classes,
a classe de fluidos de modo e
a classe de fluidos Ani também. E vamos começar com
a classe de fluidos de mel, no entanto. Isso vai estender
o fluível, e não vamos
implementar os métodos. O que vamos fazer
antes de tudo é onde eu
faço esse resumo na verdade. E então o que vou fazer é
fazer o seguinte. Vou clicar
em fluido fluído, pressionar Control H e
clicar duas vezes na água aqui. E então o que eu quero
fazer é que eu quero ter tudo aqui, basicamente, tudo, exceto o construtor
e a cópia disso. E vou
colá-lo aqui. E podemos ter, na verdade,
não recebemos nenhum erro, isso é ainda melhor. E o que precisamos é que
ainda ouça o fundo. Na verdade, não precisamos
de nenhum desses construtores, mas precisamos é que isso
precisa ser fluido de mel, e isso precisa
ser fluido de mel. Há algo
que você vai claro, ter que fazer toda vez que adicionar um novo fluido. Então, uma maneira de
simplificar isso também. E então, no geral, acredito
que isso deve estar bem. Podemos apenas formatar isso de forma
um pouco diferente para que possamos realmente
lê-lo corretamente. Isso é para as partículas. E esse é o som. Na verdade, vou
mudar o som para, digamos que o bloco, slide de bloco de
mel. Porque é claro que temos
alguns blocos de mel lá. Só não temos um fluido de
mel neste caso. E então esses
fluidos, vamos mudá-lo apenas um momento. Mas agora temos o
fluido de mel junto com as classes
ainda e fluidas lá e nos fluidos mod, o que vamos precisar
é apenas duas coisas. E isso vai
ser, em primeiro lugar, um privado Que é um fluido de
BAL mais baixo registrará. Portanto, esse é o método de
registro se o fluido
global for o tipo de retorno, um nome de string e um
fluido ou fluido fluído, ou fluido de fluxo, tudo bem. Isso retornará o registro
do Registro. Registre esse fluido,
um novo identificador, mod do curso
MC,
ID de modificação e um nome. E depois dos primeiros parênteses, fluido
global, isso naturalmente
registrará o fluido. E então vamos
dizer estática pública, fluido global
final, fluido global
final, ou ainda um sublinhado de mel, o que é igual a registrar
sublinhado ainda. Então, um novo
fluido de mel que ainda está. E então eu vou
duplicar isso com o Controle D. Eu vou dizer que mel flui. E o mesmo no
nome aqui também. Se fluir. E em vez de
ainda ir chamar fluindo. E isso é tudo ótimo.
Não é isso que funciona. E o que podemos fazer na classe de fluidos de
mel aqui em cima, vamos devolver quais
fluidos e ele fluindo. E aqui, quando eu devolvo um mod, fluidos e mel ainda, ainda
precisamos fazer
um balde para isso. Não se preocupe nada. Na verdade,
bastante simples. E eu vou para a classe
Item e vamos aparecer
sobre o arco-íris. E este vai ser o balde de sublinhado de
mel. E aqui estão a mesma coisa, balde sublinhado de
mel. É claro que este é um item de balde. E este primeiro
vamos absorver os fluidos mod que ainda mel. Mas geralmente você quer
escolher o mel ainda. Se um fluido for solicitado, esse é o general como eu quero dizer, eu diria que
quase a essência dele. Também
precisaríamos de um mot block para que
isso seja um bloco
sem um item de bloco. Este será o bloco
de fluido de mel. Isso é algo que
vamos precisar um
sublinhado de mel enevoado, fluido. Sublinhado. Ok. Mais uma vez, isso será necessário para cada um dos seus diferentes fluidos. E isso vai
ser um, na verdade, isso, vamos precisar de muita classe de blocos de
fluidos para isso. Então este
será o
bloco BOD Lewis porque, mais uma vez, não
temos acesso
ao construtor. Este é um bloco de
fluidos sobre essas ótimas métricas de
construtor super. E então vamos
tornar isso público também. E a menos que
seja um bloco de fluidos, e o primeiro parâmetro
será fluidos, não dinheiro, ainda muito importante. E então aqui vamos realmente dizer
o material das configurações de tecido acabado. E então vamos
material a da água. Só para garantir
que isso funcione, vamos dizer que
não há colisão e não
opaco para que tenhamos e também não caia nada porque,
bem, de fato, água ou,
neste caso,
queda de fluido de mel, bloqueie adereços nada. Então, isso é isso. E então, na, mais uma vez, a
classe de fluido de mel, em primeiro lugar, o item do balde, muito fácil. Mais itens que no
balde. Muito bom. E então aqui embaixo, nós, por exemplo, podemos ver que
temos algumas partículas aqui, que neste momento
não vamos mudar, mas você pode fazer seus próprios tipos de
partículas e, por exemplo, tem mel pingando lá. Algo assim. Tenha essas correspondências aqui, que temos que
substituí-la por fluidos mod, mel ainda e fluidos. No sopro. Então aqui, o estado de dois blocos. E importante que
os blocos pontuam a água substituída por mais
blocos, esse fluido de mel. Isso deve ser bom porque
é claro que isso também é um bloco de fluidos. Portanto, ele herdará as propriedades
dos Estados de bloco dele. E eu realmente acredito
que essas são todas as mudanças que
precisamos fazer aqui. Nós mencionamos o bloco, os fluidos e o item. É praticamente isso. E agora precisamos fazer é que precisamos registrar o manipulador de fluidos
e o manipulador de renderização de fluidos. Agora, na verdade, vou
fazer isso dentro daqui. Você provavelmente poderia fazer se
você tiver vários fluidos, eu sugiro fazer uma classe personalizada
basicamente que o OLS. E o jeito que
vamos fazer é o seguinte. Vamos dizer fluido
ou render o registro auxiliar, exatamente esta instância
no registro. E então isso vai ser
mais fluidos na ISS ainda. Então, o que vamos ter a
ver com esses quatro ainda chifres soprando também. E então
vamos fazer um novo manipulador de renderização de fluidos
simples. Muito bom porque isso
foi basicamente fornecido por nós ou por tecido ou
este real ou 118. E vou dizer
simples manipulador de fluidos e vamos dizer água ainda. E o que vou fazer
é fazer uma vírgula e
vou copiar isso. Vamos precisar colocar
três diferentes, então vamos manter a água
ainda três vezes aqui e depois
mudar esta para a água fluindo. E então o último
será sobreposição de água. Muito importante que você escolha
a sobreposição de água porque os pontos basicamente
para a textura da água, mas a textura da água
é realmente cinza. E isso nos permite adicionar um
quarto parâmetro aqui. E essa será a tonalidade. Eu só vou pegar isso, esta é basicamente a tonalidade
do mel que eu escolhi, e esta é basicamente a cor que o fluido real terá. Portanto, esse é apenas um valor
RGB em hexadecimal. Então, não seria muito louco. E vou
dizer a mesma coisa aqui para o fluxo de mel. E então a última coisa
que vamos
precisar é antes de tudo, tradução para o balde. Então, o mel sublinha baldes
e o balde de mel lá. E, em seguida, um modelo de bloco. Agora isso realmente
vai ser tão fácil. Então eu só vou
copiar sobre este. Vou dizer balde
sublinhado Honey. E isso simplesmente se refere a uma textura de
balde de sublinhado de mel, que também
copiará muito facilmente. Bem aqui. Lá vai você. Depois, há mais uma coisa que é muito importante
que precisamos fazer, e isso está na
pasta de dados ou nas tags Minecraft, você terá que fazer com que
um novo Diretório contenha fluidos. E em vez de
eles vão fazer uma nova etiqueta chamada
regada adjacente. E vamos apenas copiar
o conteúdo das
paredes, Jason aqui. E vamos mudar
isso para o curso MC. E isso vai
ter que incluir tanto o mel ainda, certo? Sublinhado de mel ainda, bem
como sobre o sublinhado fluindo. Então, isso basicamente representa a física de toda a
provação, por assim dizer. Então, vai ter a
mesma física que a água. Isso é o melhor com o que posso
fazer por enquanto. No entanto, isso é tudo o que
vamos precisar para isso, embora seja bastante complicado. Há muitas coisas
e, claro,
também há coisas que
você pode querer mudar. Os tipos de partículas
aqui, por exemplo, há um monte de
coisas que você
ainda pode fazer em teoria. Mas, no geral, eu só queria, antes de tudo, mostrar como
você pode realmente fazê-lo. E isso deve
ser bastante simples. Então, para fins de conclusão,
vamos ver se funciona. Tudo bem, as finanças
em mente, como você pode ver, o balde de mel
foi adicionado ao jogo. Vamos ver se funciona. E funciona, na verdade funciona e foi
muito interessante é que eu realmente fiz isso infinito por enquanto. Mas podemos realmente mudar
isso muito, muito facilmente. Esta é, na verdade, uma mudança
muito fácil. E você também pode ver
que eu o tenho fluindo. Por exemplo, você pode ver que as partículas aqui ainda são
as partículas de água normais. Isso é praticamente o que
eu disse que, você sabe, pode querer que ele seja alterado em um pouco de capacidade, mas no geral,
vai ficar bem. E também se você entrar nele, você pode ver que a
sobreposição aqui também é azul. Não há muito que possamos fazer sobre
isso no momento. Pelo menos eu não descobri
como você pode recolorir isso. Mas, por enquanto, quero dizer, é que ainda é um top fluido
completamente personalizado que é realmente muito legal. E para o
bem de conclusão, na verdade, também. Vamos realmente ver
como se livrar do infinito aqui, certo? Na verdade, é muito, muito fácil. Este booleano aqui é infinito, é igual a falso, e isso é literalmente
tudo o que há para ele. Então isso é tudo o que existe. E há, claro,
algumas outras coisas como a velocidade do fluxo git, você tem que obter
diminuição de nível por bloco, um carrapato, taxa de
ticks, a última
resistência da Europa. O nível do fluido ainda, há muitas coisas
que você pode fazer e você, eu recomendo mais uma vez, está brincando com
os números um pouco, experimentando um monte
de coisas, você sabe, esteja aberto à experimentação
com isso, então tenho certeza de que
você pode implementar o fluido de seus
sonhos, por assim dizer. Mas isso 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.
82. (de mediate) motive tabelas de loot de baunilha: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos dar
uma olhada em como você pode modificar uma tabela de alaúde. Então, antes de tudo, você
pode dizer: Espere, nós já fizemos uma mesa lasciva no início
do curso. Sabemos como adicionar tabelas lw. Sim. Mas o que você não sabe
é como você pode adicionar dois blocos
lascivos que
já existem na baunilha. E é isso que
vamos dar uma olhada nesta palestra aqui. Para isso no pacote util,
clique com o botão direito do mouse em nova classe Java. Este será o
mod, modificadores de mesa de saque. E, na verdade, vou
copiar todo o conteúdo e
explicaremos à medida que avançarmos. Agora, é claro,
tudo disponível para você
no repositório do GitHub ou em
indivíduos também. E a ideia geral aqui
é que, antes de tudo, não
vamos
adicionar sementes de pimenta, mas, claro,
sementes de nabo aqui. E então a
ideia geral é que temos três
soro identificador aqueles pontos para uma tabela de luge específica. Então, a tabela Lu, quando vamos para
as bibliotecas externas, esta direita, projeto Net
Minecraft e assim por diante. À vista da pasta de dados, tabelas
luge, ela bloqueia o jogo de entidades de
tórax. E você pode basicamente dizer que assim como você pode ver e
então eu posso ver, ok. Há um baú iglu lá dentro? Isso é exatamente o
que está aqui, que você basicamente pega
o nome sem o JSON. Muito importante. E
você também pode tê-lo nas casas aqui
também, por exemplo. E coisas assim. Então, você pode basicamente modificar
qualquer uma dessas tabelas. Agora, em teoria, acredito que
ele poderia tirar disso. Recomendo não fazer isso. Recomendo
apenas adicionar coisas. Agora, como você adiciona coisas com
este construtor de pool de loop de malha. Agora essa é a coisa
que vai
ser a mais complicada. A coisa sobre isso é que
eu tenho um exemplo disso aqui, onde você basicamente tem uma chance particular de
algo cair. Você também pode colocar isso em
um e, em seguida, você tem 100% de chance de soltá-lo. E então aqui com
esta função de largura, com a função de carga setCount e um provedor de
número de carga uniforme. Basicamente, podemos dizer que isso tem, isso cai entre esse número
e esse número de itens. Mas, como você pode ver claramente
sobre a haste de dowsing dentro
do baú iglu, bem como
o fígado de carvão da trepadeira só vai cair uma, enquanto as sementes de
nabo da grama caem um ou dois. E apenas com
35% de chance de realmente cair se
formos ao construtor de pool de loop aqui, bem, você não pode realmente
ver o que está acontecendo aqui. No entanto, é muito complicado. Então você só vai ter que
experimentar um monte de
coisas basicamente. Veja, por exemplo,
um condicionalmente, ok, o que
meio que é colocado aqui? Bem, posso colocar o construtor
aqui. Certo, justo o suficiente. Então, se pudéssemos dar
uma olhada nisso, eu tenho que usar esse construtor de condições de
loop. Então você pode ver que este é um construtor de condições de
loop. E eu poderia dizer, por exemplo, percorrer pessoalmente a condição
e pressionar Control H e ver todas as diferentes
condições de carga que existem. Então essa é uma daquelas
coisas que é muito legal, onde a hierarquia aqui é
incrivelmente útil para isso. Por exemplo, você tem
o loop de verificação de tempo, condição de
loop, que é
realmente legal. Temos a condição de correspondência
com loop. Temos a condição de loop de
player kilobyte e todo esse jazz. Então, há
muitas coisas que você pode basicamente colocar aqui. É só uma questão de você ter que
experimentar um monte de coisas. E basicamente, bem, é
meio que e eu admito que isso é meio que
correndo contra a parede com sua cabeça até que, você sabe, basicamente funcione. Então, há muita tentativa. Mas se você quiser, se você tem algo
realmente complicado onde você quer
adicioná-lo
a algo, então será assim. Mas seja qual for o caso. Então, como você pode ver aqui, estamos basicamente
chamando o evento de callback de
carregamento da tabela de saque . E então você está dizendo,
ei, se o ano do ID corresponder à ideia que
especificamos aqui, se o ID do bloco de grama for
igual ao ID aqui, então vamos adicioná-lo, então vamos adicionar tudo
disso para a mesa de loo. Então essa é a ideia geral. E então vamos
fazer a mesma coisa. E o iglu e depois
a trepadeira também, onde adicionamos a fita de
carvão aqui, a haste de dowsing e
aqui as sementes de nabo. E a única coisa que
precisamos fazer então é entrar em nosso, bem MSE curso mod
As e, em seguida, basta chamar os modificadores de tabela de saque de mod
que importam outras tabelas. E é isso. Isso é tudo o que há para isso. E se quisermos adicionar algo, apenas
copiamos, criamos um novo identificador, adicionamos outra
declaração if em um monte de coisas por aqui.
E é isso. Isso é tudo o que precisamos fazer. No entanto. Acho que recebeu
as obras para
nos encontrar um Minecraft. Então, vamos primeiro
matar um creeper NSC. Aí está ele. Uma tira de carvão
caiu da trepadeira. E então vamos,
na verdade, em primeiro lugar, eu matarei esse creeper porque senão vamos
ter um momento ruim. Além disso, vamos diminuir um pouco
o volume. É um pouco alto aqui para mim. Então eles vão e vamos colocar um modo de sobrevivência
e vamos cair lá. Você pode ver que já tivemos
sorte na primeira vez. Os assentos de nabo estão
realmente caindo. E saiba que
temos de todo. Vamos também procurar
um iglu rapidamente. Bem, você olharia para isso? Há uma vara de dowsing. Então, é realmente o quão
fácil é adicionar o aludido às tabelas de
saque já existentes, certo? Todo o código é claro, mais
uma vez disponível no repositório
do GitHub ou em um
indivíduo também. E isso também já é
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, eu o verei
na próxima palestra, no entanto. Sim.
83. (Total mediate): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos dar uma
olhada nos avanços. Portanto, os avanços são
feitos por meio de arquivos JSON. Então, o que vamos fazer é
entrar em nossa pasta de dados na pasta do curso MC,
clicar com
o botão direito do mouse em novo diretório
e avançados frios, certificando-se de que estamos
lendo isso corretamente. As metas que são muito importantes. E, na verdade,
vou copiar
os dois arquivos básicos que
já estão preparados e
vou explicar, certo. Então você pode ver que eu tenho o avanço do arquivo JSON do
curso MC e o avanço
avançado da haste de desvio. E esses dois são um
pouco diferentes. Mas o que está acontecendo
aqui é que temos um avanço. Estamos, que é
basicamente a guia. Portanto, isso cria uma
nova guia Avanço. Se o avanço
não tiver um pai, você pode ver que isso é aparente. Curso Mc. Curso Mc.
Certo, com certeza. E então este
não tem um pai, mas tem um plano de fundo. E o plano de fundo realmente
tem que ser tão específico. É muito estranho, mas
tem que ser que eles
tenham que colocar seu ID
e, em seguida, blocos de texturas, e então qualquer
bloco, por exemplo, você não estava em segundo plano, ou você poderia, claro, também colocar em uma pasta diferente, em
uma pasta diferente, na pasta de texturas que também
funcionaria também, mas o resto deve ser
bastante autoexplicativo. Você tem um item, obtém um título, isso é apenas
o título do avanço real. E então teremos uma
pequena descrição aqui. O que o quadro está em uma tarefa? Agora eu acredito que você pode
realmente entrar aqui. Há um desafio
também e assim. Portanto, há uma
visão diferente, coisas diferentes. Então torradeiras, então isso vai ser se ele vai
mostrar
ou não o brinde no
canto superior direito
da tela, depois anunciado fechar. Bem, isso deve ser
bastante autoexplicativo. E agora eles são realmente
difíceis,
digamos que sejam os critérios. Porque aqui
entramos nos requisitos os gatilhos
e as condições, no
entanto, vamos dar uma olhada nisso em geral. Não vamos fazer
nenhuma condição personalizada ou gatilhos porque
isso vai ser muito, muito mais difícil e isso é
realmente algo que é muito mais complexo
no momento. Mas, por enquanto, vamos dar
uma olhada no gatilho
alterado do inventário aqui. Isso significa que se eu
conseguir um oráculo
entrar, entrar no meu inventário, então o
que vai acontecer é que eu vou conseguir
esse avanço. E então o mesmo com a vara de
dowsing, certo? Se eu conseguir uma vara de dowsing no meu inventário e vou
conseguir esse avanço. Então esse é o ano da ideia geral. E mais uma vez, tenho um
ótimo recurso para você, que é mais uma vez, é
claro Miss antigo GitHub IO, onde você pode basicamente gerar os arquivos JSON
para os avanços aqui, isso é exatamente
como insanamente ótimo. Poderíamos ver, por
exemplo, condições. E depois há
algumas condições diferentes. Podemos dizer, qual é
o requisito aqui? E você pode ver que há vários requisitos
diferentes. Por exemplo, usando o
item, mesmo há possivelmente algum animal de pão
iluminador canalizado. Então, como você pode ver, há
muitas coisas que você basicamente pode colocar aqui. Marque, até faça
listas, olhe para tiques ou há muitas coisas
que você pode fazer alguma entidade. Eu recomendo apenas brincar com
isso um pouco. E, claro, também há sempre nos repositórios do GitHub de modos
populares, onde
você também pode
dar uma olhada em
seus avanços. Altamente recomendado,
que às vezes você só precisa
pensar um pouco sobre isso. Agora, embora os avanços não sejam a
coisa mais importante, você sabe, eles ainda podem ser uma adição bem
legal ao seu tapete. E apenas por uma questão de conclusão, vamos ver se funciona, mas certifique-se de fazer um novo
mundo primeiro, porque se você já teve algum desses
itens em seu inventário, você obterá os
avanços imediatamente. Melhor fazer um novo mundo. Essa é uma ideia muito inteligente, ou nos encontramos
no Minecraft. Então, vamos ver, e vamos apenas tirar a taxa de lingote aqui. Então, vamos lá
e lá está, para que tenhamos o
avanço aqui, nossas mentiras na telecom. E se entrarmos
nos avanços, você pode ver que já temos o
avanço da vara de dowsing aqui, como esperar por nós, por assim dizer. Acabei de receber outro avanço. Então, se eu conseguir, por exemplo, o ferro Inglaterra, que
obtemos outra guia. E você pode ver a guia
Minecraft e aqui como a
guia Modelo do curso MC para
o nome da guia sempre será o nome do
primeiro avanço. Mas essa é basicamente
a ideia geral aqui. Além disso, vamos também
tirar a vara de dowsing, e também
vamos conseguir isso. Mas isso não funciona. São autores como você. Isso é pelo menos o que eu ouvi. E vamos ver, aqui mesmo. Lá vai você. Então, tudo
funcionando muito bem lá 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.
84. (intermediário) como provocar partículas de espirrar: Tudo bem, bem-vindo de volta
ao cavalo de tecido para 118. E nesta palestra,
vamos dar uma
olhada em como você pode gerar partículas
no mundo. Agora, a coisa específica que
vamos ver é basicamente possuir as
partículas no bloco SPD. Então, basicamente, neste exemplo
específico, como você pode gerar
partículas em um bloco. E então, geralmente, por exemplo, para entidades ou mobs, isso deve ser muito
semelhante na verdade. Então, no geral, o que você precisa é apenas uma variável World e você
precisa estar no cliente. E para isso
vamos substituí-lo pelo método de seleção de exibição aleatória. E este basicamente só é chamado no cliente e
temos um mundo de variáveis. Então, isso é
exatamente o que precisamos. E o que vou fazer
é
copiar sobre o conteúdo
disso tudo está disponível para você no repositório
do GitHub ou um indivíduo apenas, bem. E você verá aqui, você basicamente tem uma chance. Mas temos 35% de chance essas partículas
surgirem basicamente, e estamos sempre
fazendo um novo flutuador. Então, às vezes, temos todos os quatro pequenos e às vezes,
não temos nenhum deles gerado. Essa é uma espécie de ideia geral. E você pode ver que
a maneira de gerar uma partícula é chamar partícula de ponto
ponto-ponto mundial. E precisamos fornecer
um tipo de partícula. Ele está usando o
botão do meio do mouse. Clique sobre isso. Há vários tipos
de partículas
aqui, tipos de
partículas padrão. Você poderia, em teoria,
também ler o seu próprio. Isso é algo que não
vamos olhar nesta palestra. Onde quer que possamos dar uma
olhada nisso em uma palestra futura, ainda não temos 100% de
certeza. E temos que
fornecer a posição. Então posição x, y e z. Você pode ver que eu sempre adiciono um pouco de
aleatoriedade aqui para que não
respondamos sempre na
mesma posição. E então a velocidade, bem, essa é apenas a
velocidade com que isso se move. E eu queria me mover para cima. E você pode ver que aqui, basicamente, ele se move para cima. Mas nós podemos fumar, há outras coisas
como cinzas, há explosão. Portanto, há muitos tipos de partículas
diferentes. Mas vamos ficar com
isso por enquanto. E apenas chamar isso quatro vezes apenas faz com
que haja um pouco mais dessas partículas
que estão sendo propriedade onde quer que você
tenha uma variável World, você pode apenas fazer
uma declaração if. Se o mundo for cliente
e então você pode chamar a partícula,
isso só funcionará no lado do cliente.
Isso é muito importante. Isso é algo em mente. Mas, caso contrário, por causa de
conclusão, vamos ver se funciona. Ou as empresas anunciaram de volta no Minecraft e vamos
ver lá estão. Essas pequenas partículas já estão subindo do bloco SPD. Você pode ver se eu colocá-lo para baixo, ver que alguns deles estão se levantando. E é definitivamente apenas um aleatório ao ligar basicamente. E é claro que você sempre
pode ligar mais ou menos
dependendo do que você quer fazer, mas isso é sempre
uma possibilidade. Mas essa é a ideia geral. Gerar as partículas, bem,
especificamente em blocos, mas praticamente em
qualquer outra coisa está chamando o mundo em nosso método de
partículas, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e aprenda no Novo, e eu o vejo na
próxima palestra. Sim.
85. (pintores personalizados (intermediários) (de (Intermediate): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar pinturas personalizadas
ao Minecraft. E em pinturas personalizadas
é realmente um processo muito, muito simples
no pacote do curso MC,
clique com o botão direito do mouse em novo pacote
chamado pintura. Em vez de lá,
vamos clicar com o botão direito do mouse novas pinturas do modo de classe Java. E então, dentro de lá, vamos
precisar de algumas coisas para métodos para serem exatos. Uma
pintura estática privada, um motivo, pintura de
registro com
um parâmetro de nome de string e um
motivo de pintura, motivo final. Tudo bem. Vamos retornar o
registro de dados do registro, motivo de pintura de pontos do registro
com um novo identificador, MC course mod n mod ID name. Depois dos
primeiros parênteses, passaremos pelo motivo
da pintura terminaremos com um ponto
e vírgula. O poder também é muito importante. Precisamos de um método de pinturas de
registro vazio estático público aqui está apenas
indo para sistema linha de impressão registrando
pinturas para identificação ímpar. Só para que tenhamos
isso porque realmente
temos que chamar isso do
lado do método de
mod do curso MC aqui. Então, no método inicializado, vamos fazer isso logo após os registros modais. Então, em pinturas que
registram pinturas. E agora em diante vamos realmente
adicionar as pinturas. Bem, como isso é feito? Bem, na verdade, é
muito simples também. Motivo de pintura final estática pública ao pôr do sol aqui. E vamos apenas dizer registrar
a pintura com o nome do pôr-do-sol. E então um novo motivo de pintura, que leva
apenas dois inteiros, a largura da
imagem e a altura desses valores aqui são basicamente
em pixels. Sim, desde que eles combinem, tudo está, deve ficar bem. Então, vamos apenas duplicar
esse tempo com o Control D. E também
vamos adicionar o planejado e o andarilho também. E, em seguida, certifique-se de que
mudamos o nome diz bem planejado e pergunto. E então os tamanhos
também planejados um 16 por 16, e este é
realmente estendido por 32. Isso para que você tenha
alguns exemplos. E então a questão
é, bem, mas de
onde tiramos as pinturas? Bem, em primeiro lugar, as
pinturas que eu tenho também são feitas por platina G.711. Então, se você quiser usá-los,
observe a licença. Se você quiser usá-los
no seu MOD público semelhante,
estes, anote a licença. Caso contrário, vamos apenas
copiá-los. Então, esses realmente
entrarão na sua pasta
de texturas aqui, certo? Então, nos ativos MC
texturas grosseiras e depois pintando. E então lá estão eles. As três pinturas, os nomes aqui, é claro, têm
que corresponder ao que o nome é aqui. Será bastante autoexplicativo neste
momento. E enquanto o resto só
vai cuidar
de si mesmo basicamente. Então isso é tudo o que você precisa. Você precisa das pinturas desta classe e muito importante que você
chame esse método aqui. Caso contrário, não funcionará. Bem. Vamos apenas ver os trabalhos. Tudo bem,
nos encontramos de volta ao Minecraft e eu já
tenho as pinturas. Vamos apenas configurá-lo para baixo
e vamos ver se
podemos ter algum bloco para conseguir
nossa pitting lá está. Há o primeiro. Mas vamos ver o que
isso não, isso não é. Não será nosso pôr-do-sol ou
vamos obtê-lo em algum momento. Estou muito certo, como você pode ver, basicamente
eles estão lá. Há o próximo. E
vamos ver, vamos dar uma olhada. Bem, isso não vai funcionar, mas este vai funcionar. Então, vamos fazer isso. E vamos ver se podemos obter o pequeno dos 16
por 16 um também. Então, a ideia geral é, como você pode
dizer claramente que está. Assim é que as
pinturas são basicamente adicionadas à rotação
da pintura normal. Mas isso é
realmente muito legal e bem, você pode basicamente
adicionar qualquer pintura e sim, você pode torná-los tão
grandes e tão bonitos e como o que você
basicamente quiser 0. Pode ser qualquer coisa
que você queira, desde que eles adiram
aos centros normais e haja arquivo PNG em
sua pasta de texturas. Isso é, na verdade, o quão
fácil pode ser, certo? Mas isso já seria
para esta palestra aqui. Espero que você tenha achado útil
e aprenda um pouco o novo. E te vejo
na próxima palestra. Ah, sim.
86. (Antecedência) entidade de bloqueio personalizada (de bloqueio: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos adicionar uma
entidade de bloco personalizada ao Minecraft. Agora, como você provavelmente
terá visto isso como uma palestra mais longa, porque este
é um tópico muito complexo. E o que eu realmente
sugiro é assistir a esta palestra e a próxima palestra ao
mesmo tempo. Então, basicamente, o tabaco Mac, porque a próxima palestra está imediatamente relacionada a isso e na verdade, faremos com que
a entidade de bloco funcione um pouco melhor. A segunda coisa que eu
queria mencionar é que se eu
disser entidade de mosaico, quero dizer entidade de bloco, ela foi basicamente renomeada em 117. E, portanto, ainda tenho, às vezes ainda uso o nome da entidade do bloco. É só o que é, mas
então eu quero dizer a entidade Brock. E também vou copiar muito do
código e, em seguida,
basicamente explicaremos através dele porque apenas escrever tudo isso
é absurdo. Mas não faz
nenhum sentido. Por favor, esteja ciente. Há
o repositório do GitHub e há indivíduos exatamente onde você pode
basicamente copiar
todo o código também. Você não precisa
se preocupar com isso. Você tem tudo
disponível para você, então não se preocupe lá. Certo, então vamos começar. A primeira coisa que
vamos precisar é que, na verdade
, precisaremos de um, algo no pacote de itens, e isso será um
novo pacote, inventário antigo. Então, dentro de lá,
vamos criar uma nova interface,
embora aqui, nova interface de classe Java. Esse é todo o inventário
implementado. E mais uma vez, como eu disse, nosso caviar, o
inteiramente disso, que está tudo disponível
para você, é claro, nisso
não é tão interessante. A ideia geral é
que, em primeiro lugar, o João por judeus e,
ou justiça eu acho. E isso é de domínio público. Portanto, não se preocupe lá,
podemos usá-lo. Mas ainda assim todo o crédito
vai apenas para
isso, na verdade é muito útil o ano de inventário
implementado. E a ideia geral
é que quando
implementamos essa interface em
nossa incrível entidade Brock, podemos basicamente
usar facilmente o inventário que
está associado a ela. Mas essa é a ideia geral. Vamos
precisar disso e basicamente nunca mais
veremos isso novo porque isso já está
quase perfeitamente feito. Mas não precisamos de mais
nada lá antes de
mergulharmos na entidade do bloco, vou
mostrar um pouco da teoria por trás
da entidade
do bloco. E para isso,
é claro, vamos abrir os slides do PowerPoint. Essa é a
ideia geral de uma entidade de bloco. Existem quatro partes. Há a classe de bloco II, a classe entidade de
bloco, a classe do manipulador de
tela e a classe de tela. O que é muito importante
aqui é que, no geral, a classe de blocos é provavelmente
uma das mais fáceis. É exatamente onde você clica
com o botão direito
do mouse e, em seguida, algo na entidade Brock acontece porque a entidade de bloco
cria o manipulador de tela. O manipulador de tela basicamente
lida com a tela. Parece loucura, mas a
ideia é que há uma separação acontecendo aqui
porque a classe de tela, Vamos começar aqui é apenas cliente. Ok, então isso significa que
é literalmente apenas essa imagem. Há algumas nuances lá. Claro, podemos exibir
as setas de progresso. Podemos exibir os compradores
aqui, coisas assim. Sim. Mas é só essa imagem. Eu poderia substituir a
imagem por uma imagem do meu rosto ou uma imagem com
um cachorro ou o que eu quiser. E o manipulador de tela, como os slots reais aqui, eles ainda funcionariam. Eles não precisam se
parecer com isso. Essa é uma lição muito importante que você precisa,
bem, entre em sua cabeça.
É muito importante. Esta é apenas a tela, isso é apenas o cliente,
apenas esta imagem. Agora, a
classe de tela aqui, no entanto, tem uma referência
ao manipulador de tela. E o manipulador tem os
slots no inventário, como você pode ver marcando isso com azul para o
inventário do jogador e a barra quente. E então, como violeta
rosa, temos o, bem basicamente, os
slots personalizados com a tela
Handler também faz é que ele pode sincronizar valores
da entidade de bloco, do
servidor e do cliente. Agora isso é algo que é
muito importante e que isso também é algo que
vamos
ver na próxima
palestra, na verdade, porque isso requer um pouco
mais de configuração, por assim dizer. E vamos
armazená-lo, antes de tudo, ter uma
entidade de bloco normal que fará algumas coisas interessantes. Mas isso é uma coisa
muito, muito importante. E então, sincronizando
esses valores, podemos usá-los
na classe de tela. Por exemplo, exiba a seta de
progresso aqui corretamente. Essa é a ideia geral. Agora, a própria entidade de bloco, o que esta contém dados e funcionalidade para um bloco. Essa é a ideia geral. E então também pode
ter um inventário. Para este inventário, como eu disse, é meio que tratado
pelo manipulador de tela. Há um acoplamento muito apertado entre este e este. E então não há muito
apertado de um acoplamento entre esses dois é
basicamente tem uma referência. Então, com a classe de blocos, ele
só tem uma referência aqui. Então esses dois definitivamente
estão mais relacionados. Há um pouco de uma
relação estreita entre, é claro, a tela e o manipulador de
tela, pois eles têm ambas as telas no nome, para ser uma indicação muito boa que eles têm algo
a ver um com o outro . Mas, no geral, essa é
a ideia geral, essa é a
teoria geral por trás disso. Não é nada muito louco, se algo aqui for um pouco confuso, não se preocupe com isso. Espero que eu seja
capaz de esclarecê-lo quando estivermos realmente
programando tudo isso. Mas vamos
voltar para a inteligência. E agora vamos criar a entidade de bloco
real. Então, em nosso pacote de blocos, clique com o botão direito em novo
pacote chamado entidade. E então, dentro de lá,
vamos precisar
conhecer as cláusulas, o bloqueio de modo nessa classe. E então também o cálcio livre. Entidade de riso, certo?
E lá está ele. Portanto, isso vai
estender a entidade de bloco. E isso implementará
o inventário
implementado por vírgula de
fábrica do manipulador de tela nomeado , o que já fizemos. Vamos passar o mouse sobre isso, digamos
Implementar Métodos e dizer:
Ok, vou passar o
mouse novamente, criar uma
correspondência de construtor super. E agora devemos
estar felizes com isso. Então o GetItems aqui
você pode ver null. Bem, podemos mudar isso com
muita facilidade, porque
agora vamos adicionar uma lista final
privada de itens padrão com
a qual é
chamada de inventário. E isso
será igual a um padrão,
uma lista de tamanho quatro com ponto de pilha de
itens AMD. E esse
será nosso inventário. Esses
serão nossos quatro slots. Então, faz sentido. E podemos simplesmente devolver
isso aqui. Então, inventário, apenas devolvê-lo. E isso deve ser bom
para o texto de exibição. Este é o texto
exibido na parte superior da interface do usuário. Só vamos economizar para o tempo sendo novo texto literal. Ou pode vir blaster,
isso vai ficar bem. Está tudo bem. Então, no menu Criar aqui, na verdade, temos que fornecer um manipulador de tela como você pode ver. Agora, o que vou
fazer é fazer isso
propositalmente
um erro, porque
senão provavelmente esquecerei porque, como eu disse, há muitas coisas
que temos que fazer aqui. No entanto. É por isso que estou cometendo isso
propositalmente e erro. Não vamos executar
o cliente por um bom tempo de qualquer maneira, então barulho lá. Então o que também
precisávamos fazer é que precisamos excluir o
primeiro parâmetro aqui ou o outro construtor. E então temos que fazer o resto dentro das entidades do
bloco MOD. E o que vamos fazer
é dizer um bloco estático público, entidade do
tipo ou recalc e aluguel de
explosão t.
Vamos chamar isso
de blaster sublaster de renda oracle. Agora, na verdade, não vamos
atribuir isso a nada, porque o que vamos
fazer é que teremos uma estática pública, vazia, registro, todas as entidades
assim exatamente. Então o que vou fazer é
copiar sobre isso e estou disposto a
explicar à medida que avançarmos. Então, o que é isso? Então, vamos
chamar o registro que registra para o tipo de entidade de
bloco. Tudo isso deve ser bastante
autoexplicativo com um novo identificador da Armada D
e o Oracle pode blaster. Ok, e então
vamos chamar o construtor de tipo de
entidade de bloco absoluto
no creat com o Oracle pode
explodir ou dois pontos de entidade, dois pontos sabiam, bem, isso
vai criar um novo ou um pelicano
entidade blaster e, em seguida, isso é atribuído
a um bloco específico. Esse bloco será o bloco que, quando
você clicar com o botão direito do mouse, essa entidade será atribuída a ele. E, na verdade,
teremos que mudar algo na
própria classe de blocos também. Portanto, o Oracle pode
explodir ou bloquear a classe. Vamos ter que mudar algumas coisas lá também. Mas, por enquanto,
vamos ficar bem com isso. E, na verdade,
vou fazer isso um pouco diferente.
Tudo bem, tudo bem. E então este registro todas as entidades método
deve ser chamado no modo MC course mod class. Mas isso também é muito importante. Vamos
chamar isso aqui. Então bloqueie entidades, registrei entidade,
então é muito importante,
caso contrário, não obteremos uma seta, mas não conseguirá
salvar os dados corretamente. Então é por isso que
vamos precisar disso. E então, em vez do
tipo que não temos, podemos ver mais entidades de livros
que a Oracle pode lançar. E agora todas as setas
, exceto a que eu quero ter, desapareceram. E podemos basicamente continuar
a abrir a classe ampla, que será a
Oracle pode explodir ou bloquear. Agora já fizemos
coisas aqui que são completamente independentes
do que temos. Então, basicamente, a
propriedade de direção e tudo isso, nós realmente não nos importamos com
isso no sentido de que você
também pode ter um bloco que não
tem essas coisas, certo? Esses são independentes um
do outro. Mas o que vamos
fazer é estender o bloco com a classe de
entidade e
implementaremos a interface
do
provedor de entidade de bloco. Vamos passar o mouse sobre esses Métodos de
Implemento. Use o método Create block
entity que precisamos implementar aqui. E então o resto será totalmente bom. Agora temos isso que já
podemos fazer, mas aqui vamos apenas
dizer novo ou uma vaca pode explodir ou entidade com
uma posição no estado. E então isso já está
feito aqui. Isso é realmente o quão
fácil isso pode ser. Também será necessário
fazer é que precisamos API sobre
o tipo de renderização. Então, vou
copiar esse método. Você precisa substituir o método de tipo
get renderizado. Porque quando você
substitui essa classe, você pode ver que ela é invisível. Não tenho certeza se
é o caso de um por qualquer motivo, só
precisamos substituir isso. Tudo bem. Então, o que eu também
vou substituir é o método
de substituição no estado por algumas coisas aqui, como já mencionei, todo o código está
disponível para você no repositório
do GitHub ou no
individual também. Portanto, não se preocupe, você pode copiar
tudo isso também. E esse método é
realmente muito, muito legal. Há, isso simplesmente
soltará todos os insights
da Oracle pode explodir ou
entidade apenas no chão. Então isso é basicamente
o que isso faz, é
realmente muito legal. E eu recomendo
apenas usar isso também, porque isso
imediatamente cai todo o inventário quando
você destrói o bloco. E depois há
mais uma coisa, é claro, e esses são os métodos dos EUA. Então, como o método do botão direito quando eu também coloco isso aqui. Então você pode ver que o que eu
basicamente vou fazer é
eu vou dizer, ei, se eu estiver no rio, então
eu vou dizer, Ei, fazer uma nova fábrica de
manipuladores de tela. E enquanto isso não for nulo, posso abrir a tela
manipulada. E isso é, basicamente,
faz com que as coisas em movimento levem o manipulador de tela através da entidade de bloco e
assim por diante e assim por diante. E então, basicamente
, abre a tela, mas esses são os principais métodos
que vamos precisar. Depois, há mais um método
que vamos precisar, e esse é o método
get ticker. Mas este é o
ticker aqui. Só vou pegar ticker. Então você pode ver o que
eu realmente vou
retornar é que vou
retornar o tipo de verificação, as entidades de bloqueio
hype e não marcadas, e não recalc blaster. E então eu vou dizer ou entidade
complexa RCA dois pontos, dois pontos. Agora isso, é claro que ainda não
temos porque não
temos um método de tick em nosso
Oracle pode explodir ou entidade, mas isso é o que
vou adicionar também. Portanto, isso basicamente habilita a habilidade de tick para
sua entidade de bloco. Então pegue, você provavelmente já
ouviu falar que este é um 125 de segundo e basicamente vai ser
feito constantemente, certo? Então, cada carrapato, então a cada 125 de segundo,
algo pode acontecer. E isso é
exatamente o que queremos
fazer dentro de nossa entidade. Cada carrapato que
agora podemos fazer alguma coisa. E do jeito que
vamos fazer isso, vou copiar
mais de 1234 métodos. Então esse é uma vez o método de tick vazio
estático público
e, em seguida, três
métodos personalizados que serão necessários para
demonstrar como você pode, por exemplo, criar algo. Agora, este é um exemplo grosseiro,
porque na próxima palestra, vamos fazer civilização de
receitas personalizadas e os clientes contentes ao longo palavra para basicamente
dizer que podemos criar arquivos
JSON para nossos
próprios como máquina, para nossa própria entidade de bloco, o que é muito legal. Mas, por enquanto,
vamos usar isso
apenas para que tenhamos
alguma funcionalidade aqui. E você pode ver,
então o método tick aqui, ele tem quatro parâmetros, posição
mundial,
temos o estado e temos a própria entidade. Agora, o que é realmente legal
é que a entidade, basicamente
temos
acesso a isso e podemos fazer o que quisermos com ela. Você pode ver o que eu faço
é que eu posso dizer, Ei, não
tem receita e não atingiu esse limite. E então eu criarei
o item que é uma
espécie de ideia geral aqui. E o que eu vou fazer aqui, você pode ver é que eu
vou apenas
remover a primeira pilha,
a pilha do slot 0, do lote de paradas um
e do slot dois. E então eu estou enviando
a pilha no slot 3 para que o Oracle possa escolher x aqui e estou recebendo a mesma contagem. Então, vou
aumentar a contagem. É uma ideia geral.
E então aqui, na verdade precisamos colocar três lá. Então isso é muito
interessante ali mesmo. O que é necessário para isso? Bem, no primeiro slot,
preciso ter chamado sliver, e no segundo slot preciso
ter uma picareta dourada. E no terceiro slot, ou
no slot com índice dois, terei que
ter um lingote oracle. Essa é a ideia geral. E se todos forem verdadeiros, e se a pilha
não tiver atingido o limite, podemos criar o item e seguida, a viga,
o item será criado. Agora isso vai parecer
semelhante na próxima palestra, mas
um pouco diferente. Porque, mais uma vez, esta é apenas uma maneira muito grosseira de
codificar tudo. E eu prometo que você
definitivamente não faz isso. Este é apenas um exemplo
agora para esta palestra, apenas para que você possa
ver qualquer funcionalidade. Próxima palestra,
vamos fazer isso corretamente. Há muito bem com a serialização da receita,
eu recomendo. É por isso que eu disse assistir as
duas palestras uma após
a outra imediatamente, porque vai ser
muito, muito melhor, certo? Mas, na maior parte,
a entidade
de bloco é feita com o manipulador de tela aqui é a última coisa que
precisamos fazer. Mas para isso,
na verdade, vamos precisar do manipulador de tela
e da tela. Então, no pacote do curso MC, clique com o botão direito do mouse em novo
pacote chamado tela. E então lá dentro, vamos criar um
monte de coisas. Bem, os manipuladores de tela de modo,
esse é o primeiro. E então o
segundo será
a tela de blasters recalc. E então
haverá o resultado blaster no manipulador. E isso vai ficar bem. E vamos
dar uma olhada
no manipulador de tela primeiro. Esse será
o mais importante, um dos mais interessantes. Mais uma vez, eu realmente
copiarei a totalidade
da classe e
passaremos por ela peça por peça. Não se preocupe lá, certo?
Então, lá temos isso. E vamos ter um teorema de algumas
setas, não se preocupe, porque é claro,
temos que definir o blaster de tela oracle. Isso é praticamente
a mesma coisa que
tínhamos que fazer para
a entidade de bloco, exatamente onde estamos
referenciando este em vez de apenas obter o tipo
do parâmetro. E o que você também verá é há dois slots aqui, que são por qualquer
motivo bem
lidos, são slots personalizados. Na verdade, vou
copiá-los também. No entanto. Eles são símbolos
muito frequentes,
como você pode ver, este é muito simples. E então os resultados são que o pequeno slot
também é muito simples. E então podemos realmente
importá-los para o ego. E vou explicar isso
em apenas um momento também. Mas, no geral, o que o manipulador de
tela está fazendo? Bem, basicamente, estamos verificando o tamanho
Hayes do tamanho, correto? Bem, na verdade
tem que ser quatro. Então isso é muito interessante. E estamos basicamente dizendo, ei, isso tem todas as coisas
que precisamos fazer. Apenas definindo os campos aqui, o inventário, o mundo. Ainda não precisamos do
mundo. Bem, talvez precisemos do
mundo em uma palestra posterior. E então adicionamos nossos próprios slots. E é assim que os adicionamos,
este slot ponto-ponto, e então criamos um novo slot. E você pode ver que
aqui estou fazendo uma nova ranhura de combustível do motor porque aqui eu realmente só quero que o combustível seja colocado. E então, nesses slots, eu importa para mim. E então este é
o slot de resultados. Também não quero que o jogador esteja colocando
coisas lá, apenas a entidade de mosaico ou o manipulador de
tela basicamente. Isso é muito fácil.
Isso apenas substitui o método canon certo aqui e o slot de combustível mod, eu basicamente
tirei a maior parte
disso do slot
de combustível do forno abstrato. Mas você sabe, como uma
ideia ou basicamente, mas isso é praticamente
tudo o que você precisa fazer. Os índices, é claro,
apenas contam, certo? 0, 1, 2, 3. Também será bastante
autoexplicativo. E então o x e y aqui, isso vai ser
algo que
é muito interessante porque estas interessante porque estas são as coordenadas
do canto superior esquerdo 000 para basicamente o lugar onde o slot está vai
estar na interface do usuário real. Vou copiar a GUI que vai na pasta de texturas, uma GUI. E então este é o
Oracle pode explodir ou GUI. E vou abrir isso. E o que eu
explicarei basicamente é que a maneira como funciona
é a seguinte. Que se eu for fazer
isso, por exemplo, certo? Você pode ver isso. Você pode ver isso, certo?
Então aqui é 0, 0, vamos contar para baixo. E então vamos
para a direita. E então esse pixel aqui é o que precisamos para este slot. E você pode ver que é exatamente
18 para a direita e 50 para baixo. Essa é a ideia geral. Se você tem o Photoshop ou se
você tem o GIMP ou o paint.net, você geralmente
pode fazer é usar a ferramenta Selecionar para ver o quão longe isso está e você só
precisa contar. Essa é a única maneira que isso realmente funciona, é muito irritante. Pode ser muito chato,
mas é exatamente o que é. E então temos esses
dois métodos auxiliares, que também são chamados de inventário e barra quente do
jogador. Agora, eles são
mais agradáveis de ler do que apenas ter essas
coisas lá uma vez. É como, eu não sei, entender por que isso não é
feito em baunilha também. Porque na baunilha
é apenas essa coisa. Assim como colocar
no construtor. Eu sou como, ok, isso é estranho. Então o método do lote transversal é algo que simplesmente não
vamos olhar. Isso só nos permite
clicar com a tecla Shift pressionada em uma pilha nessa, em nossa
entidade personalizada, entidade de bloco. Sempre que não vamos olhar
para isso porque
isso é, na verdade, porcas de fricção. Este é o pior
método que eu já vi. Só não quero ter
nada a ver com isso, então não importa. Vamos apenas dizer,
obrigado que isso funciona
e tudo está bem, podemos usar o método
basicamente apenas diz:
Ei, podemos usar isso? É praticamente isso. Se o jogador estiver muito
longe, algo assim. Isso é tudo o que
isso faz também. Então, agora vamos passar para
os manipuladores de tela, e vamos colocar isso aqui. Na verdade, vai ser
bastante simples. É apenas um tipo de manipulador de
tela estático público na verdade, do tipo ou um manipulador de tela ou
explosão. Recount vem o manipulador de sublast ou sublinhado tela de
sublinhado. Manipulador. Lá vai você. É igual a um registro do
manipulador de tela, manipulador
verde, registro,
registro que eles atrás. E isso vai
ser simples,
mas isso é muito importante com um novo identificador de
C corps mod, mod ID. Mais uma vez, todos recalc
vêm em seu blaster de pontuação. E depois dos
primeiros parênteses, vamos dizer manipulador de tela recalc e
blaster,
dois pontos, dois pontos novos e
terminaremos com um ponto e vírgula. Isso é tudo o que precisamos aqui. Mais uma vez, o código também está disponível. Você também pode copiar isso. Agora, para não escrever tudo. Aqui no manipulador de tela, podemos ver que a era foi resolvida. Agora, na entidade de gesso, também
podemos finalmente resolver
essa seta aqui também. Podemos apenas dizer que isso
vai ser um novo registro pode explodir ou manipulador de tela com
o ID do coletor, o inventário. E então isso como o inventário, porque é claro que este é
um inventário implementado. Portanto, podemos simplesmente
passá-lo em nossa própria entidade de bloco. E então podemos fechar
a entidade do bloco. Podemos fechar isso. Podemos fechar isso. E então apenas a tela
é deixada e a tela é, como eu disse,
praticamente apenas a imagem. Agora, claro, é um
pouco hipérbole. Há um
pouco mais nisso. Vou copiar isso também e
vou explicar. Então, no geral, você pode
ver que esta é uma tela de alça de oracle vem abençoada
seu manipulador de tela, muito importante que esta
é uma tela manipulada. Ele também aponta para a
textura que você pode ver que este é um identificador que aponta para as texturas GUI ou um blaster de
cálcio GUI PNG, Isso também tem que corresponder. E então estamos basicamente
desenhando a textura
aqui e nos métodos de
fundo de desenho. Então, basicamente, isso apenas centra o título no meio
da entidade do bloco. E, em seguida, o método de renderização
apenas renderiza o plano de fundo, as dicas de ferramentas também. E esse método
de textura de desenho será muito interessante, especialmente na próxima palestra, onde vamos adicionar o progresso do fogo e a barra de progresso da
seta faz. Isso é o que você
precisa chamar basicamente para adicionar mais coisas à imagem, para desenhar mais na imagem. Porque se dermos
uma olhada nisso, você realmente tem o fogo aqui e a flecha ali. E isso, precisamos
sobrepor isso e basicamente expandiu o
tamanho dele dependendo, digamos que o
progresso, por exemplo. Então essa é a ideia geral aqui. Mas, por enquanto,
este, certo, a textura do desenho com x, y, 000 largura de
fundo, altura basicamente atrai
toda a equipe do Goo aqui. Essa é a ideia geral. Além disso, também temos que
chamar uma coisa no curso MC, método
compatível
ou melhor classe. E esse será
o registro de tela,
registro que se
registra com os modelos sendo manipuladores ponto ou um Malcom no
ano passado manipulador da Suécia e o cólon da
tela do blaster de cálcio, dois pontos novos é muito importante que esta seja
a tela no segundo parâmetro e
os manipuladores de tela de modo basicamente fazem referência
no primeiro. Muito importante, mais uma vez, pode ser um pouco
confuso às vezes, mas essa é a
maneira básica que tem que ser. E então tudo deve
ser configurado corretamente. E eles significam esse ponto, vamos ver se funciona. Ou você nos encontra de
volta no Minecraft. E como você pode ver,
vamos ver o que acontece. Há que o
recalc e o blaster, e você pode ver que tudo ainda
está funcionando bem. Podemos até mudar o clique
nisso, isso é ainda melhor. Isso é muito legal. Agora, vamos colocar o, se tentarmos colocar qualquer outra coisa aqui,
isso não funciona. O nível do curso, no entanto,
funciona porque causou o fígado é um item de combustível,
portanto, funciona. E então aqui também não
podemos inserir nada. Vamos colocar
uma picareta muito acolhedora e na parte inferior, uma
picareta no topo. E então aqui uma recapitulação poderia
escolher x deve aparecer. E aí está, ele
realmente funcionou. Agora, eu não tenho
100% de certeza se eles ainda são uma flecha com
isso. Não, não há. Tudo isso funciona. E isso
também não funciona porque o limite de pilha aqui
foi atingido. Assim, podemos adicionar outro, e assim que eu removê-lo,
o outro é adicionado. No entanto. O Oracle pode explodir
basicamente já está funcionando. Claro, não está
disparando aqui e
não está tendo uma
barra de progresso no momento. Isso é o que eu venho dizendo. Basicamente, fazer
tudo codificado e coisas assim
definitivamente não é aconselhável. É apenas uma maneira que você
pode realmente ver, hey, ele realmente funciona
e tudo aqui é, bem, ótimo final
funcionando bem, certo? Mais uma coisa que precisamos adicionar
à explosão ou entidade são dois
métodos que são muito importantes para salvar
o inventário quando o mundo real fica bem, quando você se move para fora do mundo, e esse será
o NVT certo e um método NVT lido. E você pode ver que
nos estoques estão bem carnudos do que inventários lidos e lidos
vazios. Lá vai você. Então isso teria sido
fatal. Bem, lá vai você. Então esse é basicamente
o inventário, certo? Mit apenas escreve as listas padrão de
inventário aqui para os dados NVT e, em seguida, o vermelho
apenas lê. Então essa é a ideia básica aqui. E isso é muito
importante que também
chamemos isso de outra forma, quando fechamos o mundo, ele não salva o inventário. Então essa é a
ideia geral lá, certo? Por exemplo, agora
tenho 62 chamadas fígadas aqui. Bem, vamos
fechar o mundo. E vamos entrar
lá novamente. E vamos ver se
as lascas de carvão permanecem e elas ainda estão lá. E lá estão eles
62 amantes de causa, vamos. Tudo salvo. Como eu disse, este é um tópico
muito complicado e há muitas partes
móveis aqui. A folha de truques estará disponível para você como
download, bem como
é claro que você tem o repositório do
GitHub e exatamente onde você pode basicamente dar uma
olhada em tudo o que você está indo precisa
adicionar aqui. E, no geral, só vai ser,
é exatamente como é. Portanto, a entidade das
entidades
de bloco é muito
complicada e você
só precisará avançar e tentar entender
cada parte dela. Espero que eu tenha conseguido
basicamente facilitar isso,
seja qual for o caso. É isso para esta
palestra aqui. Espero que você tenha achado útil
nos aprendizados do novo, Se você apreciar
muito, revise de você. Caso contrário, te vejo
na próxima palestra. Ah, sim.
87. Tipos de receita personalizada (Advanced) (Advanced): Tudo bem, bem-vindo de volta
o curso de tecido para 118. Nesta palestra, vamos
dar uma olhada em como
você pode adicionar um tipo de
receita assumido Minecraft a. Anteriormente, fizemos nossa entidade recalc e
blaster broke. E eu te disse que é uma forma muito grosseira
de criar aqui. Porque o que
queremos é que queremos poder usar arquivos JSON de receita
normal ou
nossa entidade blaster também. Isso não só o tornará
melhor, porque não
precisamos codificar
tudo aqui. E também, e
isso é ainda melhor. Ele permite que mais
fabricantes de pacotes, por exemplo, adicionem receitas personalizadas para nossa entidade de bloqueio e
coisas assim. Então, mais uma vez, vou copiar a
maioria do código. Portanto, tudo isso está
disponível para você
no repositório do GitHub ou
nos juristas também. Então você tem tudo
disponível para você e eu explicarei
à medida que avançarmos. Então, no pacote do curso MC, clique com o botão direito do mouse em novo
pacote chamado receita. E então, dentro de lá,
vamos precisar duas aulas, aula de
receitas imortais. E então também a recontagem
vem por último ou receita. E vamos
começar
copiando a totalidade dos custos respiratórios do
blaster. Agora, mais uma vez, vou realmente passar por isso
e explicarei, não deve
haver
erros aqui. Então, antes de tudo, você pode ver que isso
implementa a receita do inventário simples. Isso só faz sentido
porque um inventário simples é praticamente apenas isso
é um inventário simples. Você pode ver que
existem três campos. Há uma saída,
há uma lista padrão
de ingredientes, que são os itens da receita. Essas serão as entradas e também
haverá um identificador. Esse é basicamente
o nome que você pode ter em seu arquivo JSON, mas vamos ver
isso em apenas um momento. Assim, o construtor de
receitas da Oracle pode explodir exatamente esses três parâmetros
diferentes que você tem como campos. Isso é muito importante.
E então há um método muito importante e
esse é o método de correspondência. Agora, o método de correspondências,
como você pode ver, leva-o no inventário e você também
pode obter os itens da receita. Então, os itens de receita, esta é a lista
que foi lida a partir do arquivo JSON, o que significa que qualquer lista
basicamente você tem de ingredientes ou itens
dentro do arquivo JSON. Estes
serão salvos aqui. E o que isso tenta é que
ele vai dizer, ei, esse é o primeiro ingrediente
dentro da nossa lista, como no arquivo JSON, corresponder à pilha dentro
do inventário. Se for esse o caso,
continuaremos
se o próximo
coincidir com o, com a pilha e o
inventário do segundo slot. Para também,
vamos devolver isso, que espero que seja verdade, então, basicamente,
determina se há ou não uma receita presente dentro do inventário.
Isso é muito importante. Portanto, este é um
dos principais métodos que
é muito importante. Mas também se você tiver
um inventário maior, se você tiver mais slots nos quais
você precisa colocar as coisas. Essa é a parte em que você
precisa definir a funcionalidade. Basicamente, essa será
a coisa mais personalizada. Quando você faz suas receitas
personalizadas ou entidades de rock personalizadas, basicamente se elas parecem
completamente diferentes, se elas talvez tenham 12 slots
diferentes e então você precisa colocar certas coisas em certos slots
e coisas assim. Esse é basicamente
o método em que a
maior parte disso será o que a funcionalidade está programada,
como implementada. E é muito, é muito
difícil de realmente passar,
ok, como você tem que
fazer tudo de todas as maneiras diferentes. Mais uma vez, aqui, neste
momento, o conhecimento Java, se você não
o tiver, você vai perder provavelmente para sempre. Isso não é, isso é muito, muito complexo e tenho certeza que você já
descobriu isso
neste momento. Isso especificamente aqui
vai ser muito interessante. De fato, o resto
dos métodos não são realmente tão interessantes. Você pelo
método de artesanato, nós apenas, a saída Fitts é verdade. Obter saída é apenas uma cópia
da saída, o identificador. Vamos apenas obter ID, que está virando o edim. E então aqui chegamos a coisas
interessantes e esse é o serializador de receitas,
bem como o tipo de receita. Porque podemos ver que temos
duas classes estáticas aqui, a classe type e
a classe serializador. E isso foi realmente
apenas nos ajudar imensamente porque eles apenas
facilitam nossas vidas. Porque temos
a instância aqui do tipo, bem
como o serializador. E podemos apenas perguntar a esses
dois métodos aqui para onde a classe de tipo não
é tão interessante. A classe serializador que você pode ver na verdade tem três métodos. Esse é o método de leitura, leitura
e gravação. Então, vamos passar
por isso também. A primeira coisa aqui,
essa string aqui, o nome
que ela deve ser dada
no arquivo JSON. Muito importante. Vamos ver
isso em apenas um momento. Mas isso é muito importante que isso, claro, corresponda lá. E então temos o método de
leitura aqui. Este é o método
de leitura de um arquivo JSON. Então, isso vai ser
lido de um arquivo JSON, e você pode ver isso. Então, isso lê em primeiro lugar
, a saída aqui. E ele vai ler em uma área
adjacente
dos ingredientes. E então ele fará uma lista padrão
mais uma vez do tamanho 2. Agora você pode dizer, espere, mas
temos quatro lotes diferentes. Sim, mas só temos
dois slots de entrada. Temos um slot de combustível para
slots de entrada e um slot de saída. E é por isso que
há apenas dois anos, porque as entradas,
existem apenas duas entradas. Todos os outros, em qualquer receita. Basicamente, vamos apenas
definir essas entradas corretamente. E então vamos fazer
uma nova receita aqui. E a mesma coisa praticamente acontece com a outra leitura e o método de gravação faz isso que
usamos no buffer de pacotes. Então tudo isso funciona ao longo
do ano em que a rede. Agora, o que é muito
importante aqui é que quando escrevemos coisas, certo? Você pode ver o que estou fazendo
é ver que escrevo um número inteiro com o tamanho
da nossa lista de ingredientes. Então eu escrevo cada um
dos ingredientes e depois escrevo a saída. Este pedido tem que ser
exatamente o mesmo aqui. Então você pode ver que eu li um número inteiro que vai ser este. Então eu li cada um dos
ingredientes e acabei. E então eu li a saída, mas a ordem em que
você a escreve para o buffer de pacotes tem que ser a mesma que a ordem em
que você a lê. Você comete um erro lá. No ambiente de desenvolvimento, você não verá nada de errado com
você, vai te ver. Algo errado é
assim que você
o coloca no servidor e tenta se juntar
ao servidor, então isso não funcionará mais. Muito importante, muito importante que você tenha isso em mente, que tudo aqui combina. E esse
é praticamente o ônibus de receita para a receita do seu cliente. Há um monte de
coisas, é claro, que você poderia mudar, certo? Se você disser, Ei, eu realmente
tenho várias saídas. Claro que você pode mudar isso. Você pode dizer, Ei,
eu só tenho uma entrada ou tenho
ainda mais entradas, ou você pode, isso é tudo. Há algo que somos. Provavelmente Java é o que o
mantém de volta porque a
maioria dessas coisas é
praticamente apenas uma coisa Java normal. Não há quase nada
aqui que diga Minecraft. A única coisa que
diz Minecraft é a pilha de itens basicamente. Mas isso é algo que
as pessoas que conhecem muito Java, mas não muitos Minecraft
provavelmente ainda poderiam descobrir muito, muito rápido. Então isso é algo que eu
realmente quero dirigir para casa. Estamos basicamente acabou como se o playground
não estivesse mais neste momento. Somos como o Indeed e sim, é apenas o que vai ser, mas vamos continuar
e isso vai ser na aula de receitas. E, na verdade, vou
copiar isso também. Isso é, na verdade, muito
simples. Você só tem um método de registro e você pode ver antes
de tudo, nós somos gaveta, estamos registrando o serializador de
receitas com o ID do
serializador e, em seguida, a instância e depois
o tipo de receita. Há também a ideia
do tipo e, em seguida, a
instância do tipo também. Então, isso também é bastante
simples. E este,
na verdade, temos que chamar dentro da classe MOD do
curso MC. E vamos chamar isso. Vamos fazer isso bem aqui. Receitas de modificação, não registre que você vai para o que chamamos
isso, isso é muito importante. E então ambas as aulas, podemos realmente fechar porque
terminamos com elas. E então podemos
continuar para a entidade. Já temos isso aberto aqui. E agora isso vai
ser muito interessante, é que vamos
reescrever principalmente a entidade aqui. Porque o que vamos
adicionar é que vamos adicionar um delegado de propriedade. Então, vou copiar
isso mais uma vez, tudo isso está disponível para
você e você pode ver que temos um delegado de
propriedade final protegido e isso será criado
ou digamos que sim, criado dentro de
o construtor. Então, vou também
copiar isso. Você pode ver que esse delegado de
propriedade é igual a um novo delegado de
propriedade. E então temos instruções de
comutação que se referiam ao progresso, ao progresso máximo, ao tempo de combustível e ao tempo máximo de combustível. A ideia geral é que
temos esses quatro números inteiros ou os quatro pontos de dados que
queremos passar para
o manipulador de tela. E depois para
a tela para que possamos mostrar o progresso
e também o combustível. Bem, basicamente na quantidade de combustível que ainda está queimando. Então, isso vai ser um pouco mais
complicado mais uma vez, porque temos que fazer isso
em um delegado de propriedade porque isso precisa ser salvo no servidor e no cliente. Porque, mais uma vez, a
tela é somente cliente e o restante é basicamente servidor
e cliente. E se nós apenas passarmos por
cima, não vai funcionar. Você está basicamente
alcançando as barreiras lá, o que você não deve fazer. Então isso é muito importante. E então também devemos adicionar três coisas à
taxa no método GET. Esse é o progresso do blaster, o tempo de combustível e
o tempo máximo de combustível com o método certo, basicamente colocando-o aqui. Então, vamos colocar
isso aqui. Isso vai dar
certo, onde
basicamente estamos lendo
no progresso,
o tempo de campo e
o tempo máximo de campo. Então isso também é
salvo agora, o principal que
será a mudança
desses quatro métodos. Mais uma vez, vou
copiar tudo, mas espero
explicar bem, uma
forma que
seja satisfatória. Há muitos métodos que realmente
temos que copiar. Então, vamos copiá-los e vamos ver se
tudo aqui funciona. Portanto, não há flechas,
o que é bom. Mas você pode ver que
há muitas coisas aqui. Vamos passar antes
de tudo, o método tick. Mais uma vez, o método de tick. Eu retrabalhei isso
da seguinte maneira. Então eu tenho um método aqui chamado, está
consumindo combustível. Agora está consumindo combustível basicamente
significa que eu coloquei um combustível e ele ainda está queimando para que o fogo ainda
esteja queimando. Você sabe disso
do forno normal, certo? Os incêndios queimando. E se eu fosse
colocar em um bloco ou, por exemplo,
começaria a cheirar. Esse é o método
de consumo de combustível. Isso é o que isso retorna, certo? Se for verdade, então
ainda há algo lá dentro. Se for falso, então não é. Então, enquanto estamos
consumindo combustível, vamos dizer, Ei, o tempo de
combustível vai
diminuir cada carrapato, certo? Isso é exatamente o que acontece. Certo, justo o suficiente. Portanto, isso deve ser bastante
autoexplicativo. Então vamos dizer
que tem receita. Agora que o
método da receita mudou completamente para este fim. Vou
explicar rapidamente o que é isso. Então, antes de tudo, vamos
apenas pegar o mundo não deve
ser muito louco. E então fazemos um inventário
simples
do tamanho do inventário de
entidades. E então estamos apenas definindo cada pilha que temos em
nossa entidade para o inventário. Agora isso é apenas uma abreviação para basicamente confirmar
o inventário aqui. Porque nossa entidade
não é um inventário simples, mas temos que ter um
inventário simples para nossa receita, mas essa é a ideia geral. E então aqui você pode
ver que recebemos este opcional da nossa receita,
certo, chamado de correspondência, e então nós temos o
mundo, mas o gerente de receitas na primeira partida, onde
basicamente dizemos:
Ei, nós temos esse tipo, leia o tipo de receita, este inventário e
este mundo, certo? E então nós apenas dizemos, ei, existe uma correspondência para esse tipo? Existe alguma receita que
corresponda a esse inventário? Basicamente dizendo: Ei, se o método de correspondência na
receita aqui retornar verdadeiro. Essa é a ideia geral, isso é
o que é chamado basicamente, nós também devemos
ser capazes de ver isso,
mas isso é definitivamente mais
complicado como você pode ver, que a ideia geral é que
você pode ver a correspondência de pontos de tipo. O método de correspondência é
chamado e isso basicamente causou o
método do colchão na receita. E se isso retornar verdadeiro, então
teremos algo aqui. E as partidas presentes
basicamente apenas dizem: Sim, encontramos uma receita
que corresponde ou o inventário do tipo de receita que foi fornecido.
Então isso é verdade. Então sabemos que
encontramos uma receita e, em seguida, há mais
algumas coisas que
precisamos verificar. Então, por exemplo, pode inserir
quantidade no slot de saída, apenas um método auxiliar que
basicamente diz: Ei, se a contagem máxima for maior do que a
contagem real, já conseguimos isso. Não inserimos nada. Isso só garante que, por
exemplo, quando já
temos uma picareta lá, não
podemos inserir
outros atos de peck, basicamente tornando-o uma
pilha de para escolher eixos,
o que, claro, não
faz nenhum senso. E então também temos o
item pode inserir no slot de saída, que basicamente verifica, Ei, é o mesmo item ou a pilha
está vazia? Então, podemos simplesmente inserir
algo lá. Mas esses são basicamente os
métodos que ele também verifica. Vamos apenas ter certeza de
que tudo está bem e que nada seja basicamente
mal substituído. Bem, esse é o método de receita
tem. Uma vez que esse é o caso,
vamos ver, ei, é agora? Não tem combustível
em um slot de combustível. Então, isso vai
ser bem aqui. Ele apenas diz, ei, é o
primeiro slot vazio basicamente, porque sabemos
que no nosso slot, que tem o combustível com o índice 0, este é um slot de combustível, então na verdade só
há combustível inserido nele. Então isso é muito interessante. Então podemos basicamente dizer, Ei, se isso não estiver vazio, sabemos que há combustível nele. E se não estamos consumindo
combustível no momento, vamos
consumir combustível. Mas isso só
acontece quando temos uma receita presente
lá dentro, coisas lá dentro. E, em seguida, o método de combustível cone
Zoom,
na verdade, também bastante
simples. Somos apenas mais uma vez
uma verificação de sanidade. Ei, certificar-se de que
isso não está vazio, é que temos
certeza absoluta sobre isso. Em seguida, estamos definindo o tempo de
combustível para qualquer hora real
da pilha removida. Então, se eu colocar um resfriado lá, vou ser
devolvido cento,
seiscentos pelo tempo
que leva os carrapatos. E então, se houver
qualquer que seja a causa do fígado, eu vou pegar 400
e assim por diante e assim por diante. Então, isso apenas define o tempo de combustível
e, em seguida, define
o tempo máximo combustível
uma vez que o tempo
de combustível também. Por isso,
precisamos que ambos tenham
certeza de exibir
o progresso corretamente. Precisamos do máximo, você terá
o tempo de campo atual. O tempo do campo é o que muda. O tempo máximo de campo
simplesmente permanece o mesmo assim que isso é definido, uma vez que o combustível foi consumido, onde basicamente
então perguntando: Ei, ele
está consumindo combustível? E se for esse o
caso, podemos progredir. Portanto, o progresso aqui é o progresso do
item que está sendo criado. Isso também será
exibido na seta de progresso. E então aqui você pode
ver que por enquanto, o que eu configurei é que eu sempre tenho um
progresso máximo de 72. Agora, isso é algo que
você poderia, por exemplo, também mudar dentro
da receita e dizer,
ei, isso leva mais tempo, isso leva mais curto, seja o que for. Também possibilidade
por enquanto, eu codifiquei duro. Isso é apenas algo
que decidi fazer, nada com que me preocupar. E então basicamente dizemos: Ei, se o progresso for
maior que o progresso máximo, então vamos
criar o item. E então elaborar
o item mais uma vez, apenas para a verificação de sanidade, basicamente, ambos por meio de diz:
Ei, essa é uma
receita existe aqui. Se estiver presente, vamos
remover os slots 1 e 2. Então, vamos remover os itens de
rafting são importantes. Não vamos remover o sal
zero porque isso já acontece quando
pegamos o combustível. Quando consumimos o
combustível, você pode ver, podemos dizer remover a pilha daqui e depois obter o
item dessa pilha. Basicamente, faça o material de combustível. Isso é muito importante. É por isso que
só removemos de 12. E então estamos dizendo: Ei,
estamos definindo a pilha de três com um novo item, pilha deste item, que é exatamente o item que está recebendo da saída. Então é isso que é lido,
na saída do
arquivo JSON da nossa receita ou receita
do cliente e conta eu vou
ser aumentado em um. Então, se não houver nada lá, ele será definido como um. Se já houver
algo lá, vamos apenas
aumentá-lo em um. Então essa é a ideia geral aqui. Há também algumas outras
maneiras de você fazer isso. Por exemplo, poderíamos
fazê-lo para que você possa especificar uma contagem de
quantos existem. E então, em vez de
aumentá-lo em um, você o aumenta por essa
contagem, assim por diante e assim por diante. Há muitas coisas
que você pode fazer, mas ,
no geral, é assim que estamos fazendo isso
por enquanto. Tudo isso
praticamente à medida que avançamos, é muito mais
e variável de guerra, ou você diria personalizável. Então você pode fazer mais
e mais coisas aqui. E então estamos chamando o método de progresso de redefinição de
entidade, que apenas define
o progresso de volta para 0 para que saibamos que tudo está basicamente redefinido seu direito e, infelizmente, ainda não
terminamos. Mas espero que este tenha sido
um bom passo a passo disso e explique
tudo isso muito bem, espero
idêntico, então, se houver alguma
dúvida restante, por favor use o Q e a, e eu tentarei para responder às
perguntas melhor que eu posso. Eu também recomendo apenas estar aberto à
experimentação, brincando um pouco com
isso, apenas experimentando um
monte de coisas. Essa é sempre a melhor
coisa que você pode fazer. Porque o que precisamos
fazer é
entrar na tela e às aulas de manipulador de
tela. Na verdade, precisamos
adicionar um novo parâmetro aqui que será
os delegados da Parte ROM, então delegado de propriedade, delegado
antigo. E é apenas formatar
isso um pouco diferente do que dentro
do outro aqui, vamos dizer em novos todos os
delegados de propriedade de tamanho quatro. E então queremos adicionar
isso como um campo também. Então, quando eu digo delegado privado, final de propriedade
ou delegado de propriedade. E então estamos apenas definindo
isso depois que o inventário aqui são bastante
delegados, delegados. E então, na entidade, vamos obter
uma seta aqui, porque agora temos que passar
neste ponto
Delegado de propriedade também. E o erro aqui desaparece, a entidade deve ser feita. Agora, acredito que estou bastante
certo aqui no final, ou queremos adicionar
é que queremos adicionar
as propriedades de adição e, em seguida,
apenas adicionamos adicionar
as propriedades de adição e, em seguida, o
delegado aqui. Isso é literalmente tudo
o que estamos fazendo. E lá também precisamos quatro métodos diferentes
que queremos acabar. E vou explicar
aqueles, é claro, também. Temos o método de fabricação. Isso só diz: Ei, temos algum progresso no momento? Se fizermos com eles,
estamos criando. Você tem algum combustível. Isso significa apenas que, se
o combustível for superior a 0, sabemos que estamos tendo algum
combustível que está sendo queimado. E nós dois precisamos
do progresso da escala , bem como do progresso do
combustível em escala. Agora, você verá que esses métodos são muito
freqüentes insanos, certo? Bem, a ideia é que apenas, essas são apenas as
coisas normais que você
precisa calcular
para obter o erro. Por exemplo, para diminuir ou a seta de progresso
para aumentar, certo? Então esta é a seta de progresso aqui é claro que não está
bem, certo. Este é o tamanho do progresso do combustível, digamos que alguém
assim, porque o tamanho dos poucos progressos. Então, mais uma vez, se eu
abrir a GUI aqui, isso é 14 por 14 e nós vamos
basicamente descer, certo? Então, queremos que isso seja 14
se o combustível estiver completo, e então só queríamos
ir lá com este. Isso é 26 de diâmetro. Então é por isso que essa
seta tem 26 tamanhos. Portanto, essa é sempre a largura
dos pixels da sua
seta ou a altura, dependendo se você deseja
ir de cima para baixo, de baixo para
cima ou da direita
para a esquerda para a esquerda para a direita. Essa é a ideia geral. Algo é confuso
aqui. Não se preocupe. Experimente muitas coisas
por alguns valores, veja o que reage, o que acontece. Sempre recomendo, certo? Mas, no geral, isso ainda deve
ser alguma matemática básica aqui. Isso não deve ser muito louco agora, mas estamos usando isso. Bem, estamos usando isso
na caixa verde aqui. E vou copiar as duas últimas coisas que
basicamente vamos precisar. E essas são as
texturas amplas aqui. Então esta será a flecha e essa
será a textura do combustível. Agora você já vê que há algumas coisas muito loucas aqui. Sim, essa é a coisa. Porque o que acontece é que
o deslocamento aqui, certo? O 8422 será esse offset. Então, vou te mostrar isso. Portanto, esta é a taxa de erro e a seta começa aqui, e isso é 84 pixels
para este lado
e, em seguida, 22 pixels de
cima para baixo. E é aí que eu quero
desenhar essa flecha, certo? É aqui que eu
quero desenhar isso. E então o que eu quero
desenhar? Bem, esse é este. Então os 176 e os 14
coincidem exatamente aqui. Então a questão
é, bem, qual é o tamanho do que eu quero desenhar? A altura sempre
será de 36 taxas, então isso sempre
estará lá. Mas então o progresso
da escala vai aumentar. Então, a largura do que eu quero
exibir basicamente é mostrada à
medida que o progresso aumenta. E é assim que a
flecha é desenhada. Agora, para o combustível,
como você pode ver, isso é muito mais complicado porque o que eu realmente quero
ir de cima para baixo, e porque os valores aqui
começam com 0000 aqui, temos que fazer algumas
contas loucura aqui onde aumentamos
e diminuímos essas coisas. Eu não me
preocuparia muito com isso. Isso sempre
será a mesma ideia quando você estiver usando algo que
deseja aumentar
de cima para baixo. No geral, brincar com isso
mostrará como funciona. Espero que a introdução
geral aqui faça sentido, certo? Então, onde você basicamente sabe de
onde esses valores vêm, para
o que eles estão apontando e por que basicamente chamamos
o que estamos chamando aqui. Bem, isso, esse tipo
de faz sentido aqui. Mas, de outra forma,
acabamos com um código. Foi, mais uma vez, uma coisa
bastante complicada. Muitas coisas aqui. Então, vamos agora adicionar uma receita
personalizada também. Pior porque
temos que ter receita. Caso contrário, não podemos. Qualquer coisa através disso
estará em nossa pasta de dados e
na pasta de receitas. E este
será o recalc e escolha X de recalc e blaster. Então, isso está na receita do curso
MC que eles vão e é
assim que parece. O tipo é núcleos MC ou
um blaster de lata de vaca. E isso vai fazer um aviso porque isso não existe. Não. Acredite em mim, ele existe. Acabamos de fazer isso. E então você pode ver que a primeira será uma picareta dourada. A parte inferior
será um lingote de cálcio ou a, seguida, a saída
será um Oracle pode escolher x e você pode literalmente adicionar vários arquivos
JSON com esta aparência. E todos eles vão funcionar. Essa é a beleza disso. É por isso que o tempo. Parece muito
trabalho no começo. Assim que você puder adicionar
esses arquivos JSON lá, você terá um tempo muito
mais fácil com ele. Então, só para ter certeza, vamos ver se funciona. Ou o que encontramos é
isso no Minecraft. E a primeira coisa que
quero dizer, se você já tem
uma entidade de bloco que você se senta excluída, como destruí-la porque isso pode ter alguns efeitos
adversos lá como o NVT que foram salvos para isso
podem ser muito diferentes. Temos que realmente
definir isso novo e ainda podemos
abri-lo totalmente bem. Isso é muito bom. Mas vamos pegar um eixo de porco
dourado aqui também. Então você pode basicamente ver se
isso vai funcionar ou não. Então, vamos colocar o
fígado de carvão aqui. Vamos colocar o oráculo
entrando no fundo e
depois aqui, e vamos ver se
algo acontece. E lá está ele. Veja
o progresso começa, Isso vai para baixo e bam, no Oracle pode escolher x,
os dois itens desapareceram. Vamos ver se nós dois
podíamos lá dentro. Então isso não tem como se
nada aconteça e retire a lasca e agora você pode ver que ela ainda está
funcionando, é claro, porque
ainda há combustível lá dentro. E bam, temos um, o Orca entra,
chega aqui, permanece. E depois há
um grande X lá. Se não tivermos combustível, nada acontece porque não
temos combustível. E assim que eu colocar combustível
, ele vai ser consumido. E vamos
continuar com isso. No entanto. Aí está. Tudo ainda está funcionando muito
melhor do que antes. Agora temos progresso. Vemos
quanto, quanto combustível resta. E tudo isso é
absolutamente ótimo. Então, quero dizer, não
poderia ser melhor. Tudo ainda está funcionando
e isso é ótimo, certo? Então, mais uma vez, essa
foi definitivamente palestra
mais complexa mais
uma vez. Mas isso vai ser
o resto do curso praticamente porque agora
vamos passar
para outras coisas. E então a geração
mundial entrará, o que também
será muito complicado. Então, é apenas
o que vai ser. Mas, por enquanto, isso é praticamente para
esta palestra aqui. Espero que você tenha achado útil
e urinas do novo, e eu te vejo
na próxima palestra. Então, sim.
88. Madeira personalizada (Advanced) (de madeira: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos
adicionar arborizado personalizado
ao Minecraft. Então, vamos fazer um tópico um
pouco mais fácil, basicamente cobrindo
isso nesta palestra, isso para que possamos basicamente recuperar das duas
últimas palestras. E depois
vamos continuar imediatamente
com loucura. Por enquanto. logotipo seria despojado,
tiraria blog e tábuas. Todos esses serão
adicionados aqui. Vamos pegar a rosa
rosa e vamos fazer isso o log de sublinhado de
flor de sublinhado de cereja. E então, é claro,
muito importante que
mudemos isso no nome também. Então, log de
sublinhado de flor de cerejeira, então este é um bloco de pilares. Para o bloco de pilares aqui. Há apenas um parâmetro. E então isso é praticamente
tudo o que precisamos fazer. Então isso copiará o registro de carvalho e, em seguida,
vamos copiar isso cinco vezes para isso que
temos assim. Então agrupamentos de dois vezes
dois e depois um solitário. E então
vamos passar. Então esta vai
ser a flor de cerejeira seria madeira de flor de cerejeira. E a única coisa que muda
aqui é que isso realmente o tira
da madeira de carvalho. Agora isso não é
estritamente necessário. No entanto, eu gosto de fazer isso. Então, por que não? Este será o log de cereja
sublinhado despojado. E o mesmo para o nome. Começa com despojado. E então este
será o tronco de carvalho despojado. Este é o
sublinhado despojado. Sublinhado de flor de cerejeira faria. Mais uma vez o mesmo aqui. Sublinhado Cherry Blossom faria. E então ele vai levar
o mesmo aqui despojado. Ok, eles fariam atrás? E então este será
o sublinhado. tábuas são importantes,
isso é plural. Ou as tábuas geralmente estão em Laurel. E então isso
vai ser um
bloco louco , o bloco normal. E isso vai
levar as tábuas aqui. Então, este será o ego das tábuas
sublinhadas. E isso é todos os
blocos registrados. Bem, isso foi bastante
simples, não foi? Sim. Então, o que
vamos precisar aqui agora é o que precisamos para
torná-los ignoráveis. Como fazemos isso? Bem, isso é
realmente muito fácil na classe de registros modernos. Vamos apenas adicionar um
novo vazio estático privado para o método de
bolhas de tira de registro. E isso chamará o registro de
blocos com script. Esse registro com
o bloco de toupeira inicia um log ribossomo e , em seguida, bloqueia o log de flor de
cerejeira despojado. Então isso é muito importante.
Vamos apenas duplicar isso com o Controle D. Quando mudar isso também faria, então mudar isso
também. Lá vai você. E não se esqueça de
chamar isso aqui. Então isso é muito importante. Registre
bolhas de tira ali mesmo. E então a mobilidade da tira, por assim dizer, já está pronta. N já está frio. E agora vamos passar
para a parte favorita dos arquivos de todos,
o arquivo adjacente. Ou, na verdade, eu
diria que eles são definitivamente um pouco
mais complicados do que você poderia esperar. Então, vamos ter
apenas cinco blocos é arquivos
Js e vamos
dar uma olhada neles em geral. Então você vê um bloco de pilares
basicamente se parece com isso. Ele tem
propriedades de estado de bloco de eixo, eixo x , eixo
y d aqui e os valores que ele pode pegar e seguida,
apenas aponta para
o mesmo modelo, no entanto, apenas girado no log no entanto, você pode ver que isso aponta para o horizontal
e este também. E este aponta
o blog normal. Então esta é praticamente a
única diferença entre essas tábuas são
absolutamente chatas, apenas estados normais do Bloco. Com base no arquivo. Nada de louco acontecendo lá. Vamos adicionar a tradução também porque
isso vai ser,
e então eu, bem, quero dizer, às vezes
me esqueço. Então, vamos adicioná-lo também. Vamos colocá-lo aqui. Então isso é algo assim. O tronco, a madeira um log muitas vezes despojado
versões e as tábuas. E, claro, todo o
código, os arquivos JSON, tudo isso está
disponível para você no repositório
do GitHub ou em um
indivíduo também. Porque especialmente
quando chegamos aos arquivos
JSON
do modelo de bloco, bem, é aí
que começamos
a dizer basicamente, bem, você sabe,
provavelmente copiando. Agora posso entender por que
isso pode ser sensato. Porque em algum momento,
é muito. Então,
serão sete arquivos novamente. Oh, vamos apenas adicioná-los, então
vamos ter o, vamos fechar
um monte de coisas aqui que você vai para o log. Isso tem uma fechadura superior,
à direita, é claro, porque a parte superior e inferior, as extremidades parecem diferentes
dos lados. Esta é a coluna do cubo também. E então o mesmo vale
para a horizontal, praticamente a mesma coisa. As tábuas são tábuas normais. Quero dizer, eu não sei
o que dizer. Na verdade, as tábuas são muito
chatas. O fim da madeira é o mesmo porque a madeira
basicamente é apenas a casca. Então, o que está por aí? Essa é a ideia lá. E então temos a
parte superior despojada e o registro da tira. Mais uma vez, muito o mesmo. É, ele, tudo permanece o mesmo, muito como o resto não
é tão interessante. Todas as coisas consideradas, é praticamente tudo o que
há para isso, certo? E então os
modelos de itens são
praticamente apenas padrão. Bem, esses só
vão ser 5 felizmente. E também ainda está
disponível para você. Então, eles apenas apontam para
um pai em particular, basicamente um modelo de bloco
específico. E então, é claro, também
queremos todos os extras aqui. Vamos acabar com todos
esses também. Eles atrás, também são
apenas cinco curiosamente. E isso deve ser
basicamente por isso. E a outra coisa que queremos fazer é
basicamente queremos
já adicionar algumas coisas ou à
prova de futuro, por assim dizer. Então, na pasta de dados, na pasta Minecraft, vamos adicionar algumas tags. Então, número um,
vamos adicionar os logs de log e os
logs que gravam tags. Assim, podemos ver o seguinte. Então você pode ver que aqui estamos usando o curso de hashtag MC, blocos de flor de
cerejeira. Isso é fascinante.
O que é isso? Bem, na verdade,
vamos ter uma tag personalizada de
logs de flor de cerejeira também. Então, vamos copiar
este também, é apenas tags normais
como você pode ver. Então, isso apenas aponta para todos os
logs e, em seguida, podemos
referenciar todos esses
como uma tag como esta aqui, o que é muito interessante. E então, nos registros que queimam, basicamente
fazemos a mesma coisa. Então, apenas fazemos isso. Os registros que queimam. Se tivermos esses lá dentro, podemos basicamente usar
os logs como você fará os itens. Então, isso apenas os adiciona
imediatamente aos itens de combustível. Então, outra coisa que
vamos fazer nas tags, tags
Minecraft, Clique com o botão direito do mouse em
novo diretório para itens. E então, dentro de
lá, vamos adicionar
a pilha de pranchas, mas vamos
apenas adicionar isso. E vamos
ter os MCQs, tábuas de flor de
cerejeira lá,
porque isso
nos permitirá criar certas
coisas com nossas tábuas. Então, por exemplo, uma mesa de artesanato ou acho
que provavelmente é quase isso. Acho que há apenas um número
limitado de coisas que
podemos criar com o pistão de Planck, por exemplo, também funcionaria. Então, algo assim. E então o que
também é muito importante é que, porque já
adicionamos esses registros
à nossa tag de logs. Depois de introduzirmos folhas, elas não serão exibidas
ao lado de nossos registros. Então isso é muito importante, mas
isso é tudo o que precisamos
fazer para basicamente
adicionar nosso costume. Então, vamos ver se funciona. Tudo bem, nos encontramos de
volta em Minecraft. Como você pode ver, tudo
foi adicionado e eu posso configurá-lo e
parece absolutamente incrível. 0 mais uma vez,
tudo parece ótimo. E também podemos tirá-lo com o
botão direito do mouse com um machado. Você pode ver, eu posso tirar todo esse jazz e tudo
está funcionando bem. Então, quero dizer, isso é
praticamente tudo o que há para isso, para adicionar o
Minecraft personalizado, certo? Mais uma vez, é claro,
todo o código no arquivo JSON está disponível para você no repositório do GitHub ou um indivíduo também. Mas isso vai ser
para esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo. E te vejo
na próxima palestra. Então, sim.
89. Sinais personalizados (avançados) (de (Advanced): Tudo bem, bem-vindo de volta
o curso de tecido para 118. Nesta palestra,
vamos
adicionar um
sinal personalizado ao Minecraft. Para adicionar um sinal personalizado, na verdade feito bastante fácil porque
vamos usar, este é o exemplo de
sinal de tecido da nova pesquisa é um repositório
basicamente muito útil. Agora eu quero ter certeza de que você está ciente de que
isso está sob a GPL, basicamente licença
pública geral. Então, se você quiser usar exatamente
o mesmo código
em seu próprio modelo, certifique-se de
seguir a licença, apenas certificando-se de que
isso seja entendido. Isso, é claro, também
estará vinculado aos recursos. E vamos continuar aqui. Então, vamos
dar uma olhada. Vamos precisar de duas coisas. Primeiro de tudo, e isso
vai ser dois mixin. Interessante, não é? Bem, eu realmente vou copiar sobre ambos os arquivos. Esses são, claro, também
todos disponíveis para você. Agora eles são realmente
muito, muito fáceis. Eles não são tão loucos. Então você pode ver que temos o tipo de entidade de
bloco mixin, onde basicamente ele também suporta
nosso próprio sinal. Então, é muito,
na verdade não é tão louco, é basicamente certificar-se de
que, desde que um sinal de parede, atribua um bloco ou
um nd, um sinal de entidade aqui,
vai ficar tudo bem. E o acessador do tipo seno
basicamente faz com que
basicamente possamos acessar
o tipo de sinal real. Como a
classe de tipo de sinal aqui, você pode ver que ela está protegida. Na verdade, podemos criar
um novo tipo de sinal. E com isso,
basicamente não podemos. O que vamos fazer com isso? Bem, em primeiro lugar,
vamos
adicionar isso ao tecido, mixins reais do curso MC Jason, porque,
oh garoto, se esquecermos disso, isso não seria tão bom. Vamos
adicioná-los aqui. Este é apenas o nome 1
segundo desses arquivos, muito importante que eles correspondam. E então podemos
basicamente prosseguir. E prossiga. Vamos entrar no pacote de
blocos indie, na verdade, então vamos comer os
sinais no pacote de blocos. Então, vamos fazer
um novo tipo de sinal de modelo. Então eles vão apenas fazer um tipo de sinal final estático público, velho Sherry sublinha florescer. Isso será igual ao acessador tipo
seno
que registra novo acessador de tipo de
sinal, um novo tipo de sinal de retenção, sublinhado
Sherry, blossom. E isso é tudo o que
precisamos fazer para criar um novo tipo de sinal mod
ou um novo tipo de sinal. E então podemos prosseguir
na classe mais blocos real. Ou vamos apenas copiar
sobre as tábuas aqui. E então o que
é muito importante é que ambos serão registrados
sem um item de bloco. Porque o
interessante sobre os sinais é que temos um
sinal de parede e um sinal normal. E esses serão que
teremos os mesmos itens
associados a ele. Então, vamos
ter um bloqueio mental
e, em seguida,
teremos um bloqueio de sinais normal. Então a mesma coisa
entra aqui. Sinal de sublinhado, linha normal. E então este é um bloco de sinal de
parede, que como segundo parâmetro, na verdade leva os tipos de
sinal mod ponto cada flor. E então não é
preciso um grupo de itens aqui porque
é claro que não temos, não
temos um
item de bloco que não este. O mesmo mod. Os tipos de sinais são incríveis e depois mudam
isso para uma calçada. Lá vai você. Agora esses são os dois blocos basicamente registrados
por via retal. Isso é ótimo. E, na classe
mais itens, teremos que
criar um novo item. Então, vamos pegar o
balde de mel aqui. Sinal de sublinhado
flor de sublinhado de cereja. E então o mesmo aqui. Sinal de sublinhado de flor muito
sublinhado. E este será
um item de sinal I e item. E então
o primeiro será esse. Na verdade, a contagem máxima será 16. E então vamos
ter mais sinais de pontos de blocos. E quanto mais blocos ponto parede sinal como o
segundo parâmetro, o ego ou o terceiro, eu acho. Então este é o item feito em amina foi quase
completamente feito neste momento. Na verdade, é muito
louco o quão rápido isso vai, mas com os mixins, isso vai tornar nossas
vidas insanamente mais fáceis. Como se essa fosse uma
das grandes coisas que o mixin basicamente nos
fornece. Mas a coisa que
agora precisamos adicionar
ainda são algumas bacias dos Estados de bloco. Ainda precisaríamos de um Oi no
bloco C, Jason bem aqui. Então esse será o sinal
da flor de cerejeira, que simplesmente aponta para
o sinal da flor de cerejeira. E então também precisamos do sinal de parede de flor de
cerejeira. Precisamos de ambas as postagens, no entanto, apontando para
o mesmo modelo de bloco. E então, nos itens,
vamos ter
um item aqui que é o
dono da flor de cerejeira poderia assinar. E então o mesmo aqui também, serão as flores de
cerejeira. E então, nos modelos,
na verdade, só como eu disse, temos um modelo aqui. E esse é o modelo de sinal normal porque isso
define apenas a partícula. Como você pode ver, isso é tudo o
que basicamente requer aqui. No item, é claro que
também temos apenas um item. Bem, só temos um item. Portanto, basta
apontar para a textura normal. Essas serão as texturas do
item aqui. Só vou
copiar isso. Sinal muito incrível ali. E então, como ele é
exibido em 3D? Bem, isso é basicamente
uma coisa interessante, mas basicamente precisamos
entrar em nossa pasta Minecraft
Textures novamente. E então, na pasta da entidade, precisamos adicionar a pasta de sinais. E então o nome disso
aqui tem que corresponder
ao nome que recebemos
na classe de tipos seno. Então isso é muito importante. Isso basicamente tem
que corresponder a este. E então é assim que ele está
sendo exibido em 3 D, certo? E depois de ter adicionado tudo isso, vamos ver se funciona. Tudo bem, nos encontramos no
Minecraft e olhamos para isso. Bem, na verdade,
vai ser um bloco. Bem, quero dizer, não é a
pior coisa de sempre, mas vamos ver
se o sinal realmente funciona e eles vão, funciona. Isso é ótimo. Bem, estou em
um terno como este de novo, e então vamos colocá-lo
no chão também. Também funciona e tudo
está funcionando muito bem. Então eu sou, a única
coisa que realmente
precisamos consertar é a
tradução aqui. Mas isso não é,
claro, uma solução fácil, apenas mudando isso para bloquear. E então também vamos
movê-lo para baixo para que
tenhamos um pouco
mais organizado aqui. Mas isso praticamente
resume, certo? E depois de ter corrigido a tradução aqui,
estamos basicamente terminados. E é assim que você pode adicionar
um sinal personalizado ao Minecraft. No geral, com a ajuda
do repositório. Como eu disse, ele vai
ser vinculado aos recursos. Na verdade, é bastante
simples, certo? Mas isso 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.
90. (Avançado) como atualizar o Minecraft e tecido: Ou eu sou bem-vindo de volta ao curso de
tecido para 118. E nesta palestra
vamos atualizar
o Minecraft e o fabric
para a nova versão, 1181. Certo. Então, atualizar uma versão
geralmente pode ser, bem, eu não diria
arriscado necessariamente, mas pode haver
muitas mudanças entre versões e algumas
coisas podem mudar. Agora, felizmente para nós, as mudanças aqui
basicamente não estão presentes. Portanto, não há mudanças em
tudo que ainda deve funcionar em um 1800 com
a nova versão de malha. O que vamos fazer é
abrir nosso arquivo de propriedades Gradle. E essas são isso aqui, as dependências e
as propriedades da malha, outras coisas que
vamos mudar. E este é exatamente o
site que queremos abrir. Eu já tenho isso aberto
aqui e você pode ver certificando-se de que estamos
na versão correta aqui, 1181. E então é isso que
queremos copiar
antes de continuarmos uma
mensagem do futuro. Como 1 1000th 2 foi
praticamente lançado, recomendo vivamente
o que
você faz é mantê-lo em 100 1800. Se você tem acompanhado
as palestras com 118, eu recomendo
que você fique em um 1800 em vez de atualizar imediatamente para
cento e oitocentos e dois, porque um 1800 para todos
os próximos geração mundial não
vai funcionar com 172
no final do curso, haverá uma seção
na qual podemos assistir se você quiser passar com um 1800 para apenas
ter isso em mente. Então, recomendo,
mantenha em 181. E então você pode atualizar
no final do curso,
clicar com o botão direito do mouse
em Copiar, então basicamente
queremos colá-lo basicamente
queremos colá-lo aqui e você pode ver que não mudou muito. Então, a versão de tecido,
na verdade, estamos na
mais nova versão de tecido. Isso é ótimo. Então,
podemos excluir isso. Podemos ver que a
versão do carregador aqui é realmente nova, então vamos
substituir isso por ela. E então tanto a versão para o Minecraft quanto o
fio também são alteradas. Também vamos
substituir ambos. E, basicamente,
basta salvar isso e, em seguida, recarregá-lo
com a carga Gradle muda aqui porque
agora vai
reconstruir o projeto com cerca 1.18.1 e a nova versão yarn, mesmo com o carregador. Ele provavelmente poderia ter mudado a versão mod aqui também, mas vamos ficar bem. Acho que está tudo bem. E lá vai você,
construa com sucesso. Agora tudo aqui será mapeado. E então o que
podemos fazer é que podemos, eu recomendo fazer a
depuração pela primeira vez. Então, correndo isso, quando eu executei pela
primeira vez que comprei, o jogo, não
começou, mas assim que executei pela segunda
vez, ele começou. Então, provavelmente há algo
em segundo plano que precisa baixar pela primeira vez. Então, se você está recebendo um
erro para alguns executá-lo, basta executá-lo novamente e ver
se funciona novamente porque isso foi uma coisa muito estranha, mas vamos
ver se vai ou não
funcionar. Mas é claro que é
o erro esperado que, por
não estarmos conectados, Minecraft já começou
em uma tela diferente. Então lá vai você. Cento e oitocentos um lindo, absolutamente ótimo. E lá vai você. Estamos no
jogo, basicamente funciona. Vamos apenas entrar
no mundo apenas para garantir que tudo
funcione entre as versões. Normalmente, se for
a mesma versão,
então, se for apenas as últimas mudanças
digitais tipo de falar, as mudanças provavelmente
não afetarão muito. Às vezes, há
coisas obsoletas de uma
versão de malha para a próxima. Esse pode ser o caso. Vou tentar basicamente manter tudo o
mais atualizado possível. Então, basicamente, vou
adicionar uma palestra em algum lugar
onde seja como, ei, isso mudou. Você tem que fazer isso assim agora. Mas, no geral, você pode ver que ainda
posso clicar com o botão direito aqui. Eles ainda estão, ainda estou
recebendo a velocidade aqui. Então, no geral, geralmente tudo aqui ainda funciona muito bem, certo? E isso é realmente o quão
fácil é atualizar. Então, vamos apenas para
completar aqui, vamos fazer algo como Vamos fazer neste ponto que estamos em uma
versão como 0.1.5 ou
algo assim. Acho que me sinto assim. E
então vamos colocar isso 118 do nome da base do arquivo. Não vamos mudar
porque isso, claro, ainda
é curso de tecido 118
e isso vai ficar bem. Mas agora estamos na micro
versão 1800 e a mais nova versão
de fio da versão inferior também. E é assim que é mais
fácil atualizar o tecido que já
tem para esta
palestra aqui. Espero que você tenha achado útil e tenha aprendido
algo novo. Vejo você
na próxima palestra.
91. (Gen) árvores personalizadas (de de mundo): Ou voltarei ao curso de
tecido para 118. E nesta palestra,
vamos adicionar uma árvore ao
Minecraft, certo? Então, adicionar uma árvore envolve também adicionar as
folhas e um rebento. E isso também
envolverá adicionar os ossos da geração de
papéis do urso porque a desova real
da árvore é de
alguma forma como um pouco misturada com a geração
mundial. Mas, por
enquanto, em primeiro lugar, vamos para a
classe de caixa de correio e vamos
criar as folhas
e as mudas. Vamos copiar sobre
as tábuas aqui
das tábuas de flor de cerejeira e
vamos dizer folhas aqui, depois sai aqui. E talvez os elifs bloqueiam. E isso vai
copiar as folhas de carvalho. Então a mesma coisa
aqui,
amostragem de flores de cerejeira e depois
rebentos aqui também. E este é um novo bloco de
queda. E então teremos
a mesma coisa que já
tivemos anteriormente. O eixo aqui está protegido. Portanto,
vamos precisar fazer um mod dessa classe de blocos de construção. Vamos apenas estender a classe
do bloco de rebentos, sobre este
criador combinando super. E nós só vamos
tornar isso público. E em vez do bloco
irmão onde você usa o mod sublingual, agora existem, na verdade dois parâmetros que
vamos precisar. Você pode ver que precisamos de
um gerador de irmãos. Então isso é algo
que vamos
criar dentro de um novo pacote. Então, curso MC,
clique com o botão direito em novo pacote O velho mundo vai
criar o pacote mundial. E, em seguida, um novo recurso legal do
pacote. E lá dentro
vamos fazer um novo pacote
chamado pacote de árvore e
indústria. Vamos criar uma
nova classe Java chamada Cherry Blossom
tackling generator. Vamos precisar criar basicamente novos para cada árvore diferente
que queremos adicionar. Isso é igual ao gerador de
rebentos, rebentos. E isso basicamente
apenas implementa um método e esse é o método
get three feature. Por enquanto,
vamos manter isso nulo. Adicionaremos o
recurso configurado aqui em apenas um momento. Então aqui vamos dizer um novo gerador de
duplicação de flor. E isso é basicamente tudo o
que precisamos fazer aqui. Mas ambos estão feitos. Na verdade, vamos
adicioná-los imediatamente à camada de
renderização apropriada aqui, porque então não
precisamos mais pensar nisso. Então as folhas e a
amostragem também. E então também aqui certificando-se que isso copia o
rebento, a propósito, isso também é importante dia atrás. E então
vamos adicionar imediatamente todos
os arquivos JSON porque
eles estão prontos. E então podemos
basicamente
continuar com o código depois disso. Ambos são todos basicamente
apenas arquivos JSON normais. Você pode ver apenas as folhas
aqui e o rebento aqui, ou o bloco Estados Jason Lange. tradução, quero dizer, neste
momento, seria bastante
autoexplicativa. Aqui vão as folhas
e o rebento do que com
os arquivos do modelo de bloco. A única coisa interessante
aqui é que a amostragem tem um pai cruzado e uma textura
cruzada aqui, mas as folhas são um bloco
normal ao redor. Essa é a única coisa
interessante aqui. E depois há outra coisa
interessante na textura
do item ou no rebento. E isso é que o
rebento realmente tem uma textura normal
como você pode ver. Então, ele realmente aponta para
uma textura de bloco aqui, porque o rebento que é
exibido
no mundo, no padrão cruzado é o
mesmo que está, como um item. Basicamente, é
isso que é esse o caso. Então podemos apenas adicionar o rebento e as texturas das folhas também. Lá vai você. E então tudo aqui
foi adicionado
praticamente para que não
precisemos mais nos preocupar com isso. E agora basicamente
só precisamos adicionar o recurso e figurado aqui que
aparece com a árvore, por
exemplo,
quando a farinha de ossos. Então esta é a primeira parte
e, em seguida, a próxima palestra, vamos ver como gerar a árvore como geração mundial. Como parte da
geração mundial, porém, vamos criar no pacote de recursos, clique com
o botão direito do
mouse em nova classe Java. E esta é a classe de recursos
configurada pelo modo. E para isso, na verdade,
vamos precisar de algumas coisas. Número 1, vá,
vamos precisar, vou copiar
sobre esses métodos. Todo o código está,
naturalmente, disponível para você no repositório
do GitHub
ou em um indivíduo apenas, você pode ver que registrei método de recursos
configurados aqui. Isso é algo que
vamos chamar no topo do método
inicializado, na verdade bastante
drenado, mas é aqui que
precisamos chamá-lo uma necessidade fraca de
chamá-lo no topo. Caso contrário, a ordem de
inicialização não funciona muito bem. E então também temos
esse método de registro, que você pode ver que é registrado
religioso, um recurso Configurar sob
o nome que é dado aqui. E isso é praticamente
tudo o que há para ele. E vamos precisar disso porque, na verdade
, vou copiar sobre o recurso
configurado de flor de cerejeira. E vou explicar à medida que basicamente
avançamos, o que você verá é que estamos basicamente registrando
com o nome cherry blossom e é uma configuração de árvore de
recursos. Então essa é a ideia. Se
clicarmos no botão do meio do mouse na árvore, você pode ver que este é um
recurso de árvore ou apenas um recurso. E assim que
você chamar configurado, ele se transforma em um recurso
configurado. E estamos passando um, b. Construtor de conflitos de
recursos,
que precisa algumas coisas para que possamos clicar no
meio do mouse sobre isso
também e você pode ver, oh, este é um
provedor de tronco, um placer de tronco, fornecedor de folhagem, um totalmente para colocá-la e, em seguida,
um tamanho mínimo. Então, a ideia geral aqui é que temos um
bloco, digamos provedor. Isso, o primeiro é, fornece o que o
log será. Então, isso vai ser o
que for o porta-malas. Então temos um diferente,
podemos fazer diferentes lugares porta-malas. Então eu posso clicar no
botão do meio do mouse sobre isso e pressionar Control H sobre o placer. E você pode ver que existem diferentes
tipos de placers de tronco. E sim, você também pode
fazer o seu próprio, certo? Eles são, muito
conhecimento Java provavelmente é necessário porque torná-los, na verdade
, é muito difícil. Então o terceiro parâmetro são as folhas que
você deseja ter. E então o blob todo, cada lugar, ou neste caso, é a forma como as
folhas são exibidas. Mais uma vez, você pode
entrar aqui e dar
uma olhada nos placers de folhagem Control H. E você pode ver
basicamente que
há um monte de opções
lá também. Então, mais uma vez,
recomendo muito brincar com isso um pouco. E, em seguida, a característica de duas camadas, podemos voltar novamente. Esse era o tamanho mínimo, então ainda não tenho 100% de
certeza do que exatamente isso é. O que eu acredito que a
ideia geral é que isso é quanto espaço tem que
estar ao redor da árvore. Se não me engano, isso
é algo, mas, em
geral, a geração mundial, há tantas
partes móveis que é loucura. E então também mudou
de 16º, 170 para 180. Agora, tudo muda com
bastante regularidade. Normalmente, no entanto. Às vezes, é difícil acompanhar. Mas isso é, eu
acredito, o que é isso. E precisamos devolver isso no
gerador de rebentos aqui. Então, precisamos dizer recursos
configurados mod que a árvore de
cerejeira. Então, devolveremos isso.
Tudo deve estar bem. Então, agora em teoria, assim que colocamos o
rebento e nós a identificação da farinha de ossos, ou o tempo passar, ele vai crescer em uma árvore. Então, esta é basicamente
a primeira parte disso. Então, vamos ver se funciona ou se sou dito de volta no
Minecraft como você pode ver, o rebento e as folhas
foram adicionadas. Eles não parecem ótimos por enquanto, vamos definir o rebento e menos painço ósseo e
vamos ver se
conseguimos uma árvore e lá está uma
árvore poderosa grande e forte. Então, isso é muito legal. E vamos também tentar colocar alguns deles aqui em baixo. E vamos ver se eles
podem realmente crescer. Quando eu ligo a regra de mensagens instantâneas, a velocidade e a
antipatia
aleatória aumentam por
loucura. Vamos ver. Lá vão eles. Deixe este na verdade gerar
porque está muito perto. Na verdade, temos que
nos deixar afastar um pouco e, em seguida vai surgir
provavelmente também. Eles vão lá, é totalmente bom. Então, tudo funciona
totalmente
bem, como você
esperaria, certo? E mais uma vez, para recapitular para cada nova árvore
que você deseja ter, você terá que precisar de um
novo recurso configurado de conflito amargo, bem
como um gerador de
rebentos personalizado e, em seguida, um rebento personalizado. E essas são basicamente as
três coisas que você
vai precisar para basicamente
facilitar uma árvore crescendo a partir de um rebento quando ele farinha de
ossos ao longo do tempo ou ao longo do tempo. Por quê? Mas isso seria para
esta palestra aqui. Espero que você tenha achado isso útil
e ele aprenda que o novo, se você o fez, eu
agradeceria muito uma revisão sua. Caso contrário, eu o verei
na próxima palestra, no entanto. Sim.
92. (Gen) Geração de árvores (de de mundo): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos dar uma olhada em como você pode adicionar árvores de caule, a geração
mundial. Mas fizemos a bandeja
personalizada da última vez e agora vamos adicioná-la à geração mundial. E, especificamente,
também veremos como você pode filtrar
facilmente em
que bioma isso vai. Então, o que vamos
fazer é que
precisaremos de mais algumas
aulas para isso. O primeiro está na classe features,
clique com
o botão direito do mouse em nova
classe Java chamada de recursos
colocados no modelo é
muito importante. Esta provavelmente
será a classe principal hoje. E isso vai ser muito interessante porque isso tem dois métodos diferentes
que vamos precisar. Mais uma vez, vou
copiá-los. O tribunal está disponível
para você, é claro, no repositório do GitHub ou em
um indivíduo apenas isso, o recurso de
local de registro de método e o método da chave do registro. Bem, ambos são
muito importantes aqui. E o um deles basicamente, obtém a chave de registro para
um local específico recursos. Portanto, isso é o que
vamos
precisar nos referir quando
realmente queremos gerá-lo. E isso,
na verdade,
registra o recurso de lugar e a
chave de registro real que eu também
copiarei , na verdade,
bastante simples. Você pode ver que é apenas
uma chave de registro de uma chave de registro do recurso
local que a flor de
cerejeira colocou chave. E isso é igual à chave
do registro. E então o nome aqui, basicamente o mesmo nome que o recurso colocado também
será obtido. Então isso é muito importante. Mas antes que possamos criar o recurso
colocado para a árvore, na verdade
temos que obter outro
recurso configurado aqui, certo? Então, agora há algo
muito interessante. Então, para ver basicamente o código de baunilha para
os recursos e outras coisas, podemos ir para a classe de recursos. E agora o que você pode
ter é a linha azul aqui e basicamente
nada mais aqui. Para corrigir isso, podemos ir para o terminal e
podemos colocar em pontos, barra de
pontos Gradle,
w, Jan fontes. E então basta passar por isso e depois deixar isso passar. E depois que isso tiver
sido feito,
espero, as fontes basicamente
gerarão para nós o caminho. Há outro truque que
podemos usar basicamente para realmente ver as fontes reais,
basicamente para o Minecraft. Bem lá vamos nós. 58 segundos. Construa com sucesso,
isso é muito bom. Se você tiver uma compilação
falhou e diz:
Ei, eu gosto desta. Olhe para isso. Você não está usando a versão
correta. O que você pode fazer é adicionar o Java home às propriedades radiais em que você precisa alterar sua variável de ambiente
doméstico Java, qualquer uma delas funcionaria. Mas, por
enquanto, isso é bom. Então agora podemos fazer é que
podemos fazer o botão do meio do mouse, clicar em Recurso e você
verá que isso
ainda não funciona bem, eu posso escolher fontes. E então direi, vou
usar as fontes do mapa. Eu digo sim e vejo de
repente que tudo está aqui. E agora podemos realmente ver como é o
código-fonte real. E para este, por exemplo, isso não nos
interessa muito. Mas se eu
voltar do meio do mouse, clicar nele novamente, você pode ver em todos os lugares
onde isso foi usado. E você pode ver
que ele é usado
nas classes de
recursos configurados em árvore como, oh, isso é muito
interessante, não é? É como, Sim, é muito interessante, vamos
ver, por exemplo, o recurso de configuração AUC
é um recurso configurado no registro com o recurso de configuração de árvore com basicamente os recursos de
OK. Você pode ver isso aqui. Basicamente, é apenas um construtor
já feito. Você pode ver o construtor de
conflitos em árvore. E então, literalmente, tudo o que
fizemos também, certo? Criamos um
StateProvider de bloqueio do log. Fizemos um placer de tronco
e todo esse jazz. Então, tudo isso é
feito aqui também. Mas agora esse recurso de
árvore real, recurso configurado de
configuração é usado novamente. Então, se eu botão do meio do mouse,
clique nele novamente, você pode ver que isso é usado nos recursos
do lugar da árvore, certo? E se eu entrar aqui e
ver que este é agora um
objeto de feição colocado e este, pois a largura
sobreviveria ao filtro nele. Mas agora fica ainda mais louco e, por favor, fique
comigo por enquanto. Você pode ver que esse
recurso de lugar é então usado
nos recursos
configurados de vegetação com outras coisas aleatórias. Então isso é como uma loucura, certo? Para que você possa ver que esta
é a linha, então a linha 66. E veja que esta é a vegetação da floresta
escura, que mais uma vez é uma característica configurada do recurso
aleatório Conflict. Este é usado em
um recurso de lugar. Novamente, embora
basicamente estejamos indo do recurso
configurado
para colocar o recurso para configurar o recurso
para colocar o recurso. Parece loucura como
uma maneira de fazer isso. O que eu recomendo é passar por todas as aulas de
recursos aqui. Basicamente, há uma
porcaria de coisas aqui. Na verdade, é insano. Há tantas coisas aqui. Eu só recomendo
passar pelo, basicamente as características do
lugar da árvore em todo o local são
insanamente interessantes. E basicamente para ver, bem, como a baunilha faz isso? Como a baunilha gera coisas? E vamos fazer
uma coisa semelhante. Digamos, Bem,
a coisa semelhante que vamos fazer é
entrar em nossa
classe de recursos configurados de modo novamente. Então, aqui mesmo. E,
basicamente, iremos pegar esse recurso configurado e fazer outro
recurso de configuração fora dele. Agora vou copiar
isso também. Este é o único com a
configuração do recurso aleatório neste caso. E você pode ver que isso basicamente leva o seletor
aleatório de recursos, mistura um novo conflito de feição
aleatório configurado aleatório
e, em seguida, pega a árvore de
cerejeira com o
filtro sobreviveria do cereja, rebento ou a mesma coisa. Então, basicamente, isso é um
pouco complicado. Provavelmente há uma maneira melhor fazer isso, mas, por
enquanto, essa é a melhor maneira
que eu descobri
basicamente que poderia funcionar
e que deveria funcionar. E isso realmente é totalmente
bom e vamos trabalhar agora. A razão pela qual precisamos do recurso
configurado
aqui é porque
queremos esse filtro. Agora, o problema é
que esse filtro, se eu clicar no
botão do meio do mouse sobre isso, você pode ver que isso
retorna um recurso de lugar. E o problema é que uma vez
que eu tenho um recurso de lugar, não consigo fazer outras
colocações nele. Então eu só posso fazer uma colocação
em particular aqui. E é isso. Agora, provavelmente há,
como eu disse, outra maneira de fazer isso que vai ser
extraída e um pouco de amina 1.18 é muito nova e a geração mundial
está completamente refeita. Então, talvez haja uma atualização para isso em algum momento. Mas, por enquanto, isso funciona
absolutamente a
propósito, não há preocupação. Então, vamos usar isso agora e criar um
recurso de lugar a partir dele. Então, nos recursos do mercado, último, mas não menos importante, vou
copiar isso também. Esta é a
flor de cerejeira colocada. E você pode ver que eu estou tomando o aleatório da árvore de cerejeira, que é exatamente
este aqui. E eu vou usar isso com a colocação de modificadores de recursos
colocados vegetais, que eu tenho, que basicamente
posso entrar. Então você pode ver que esta é basicamente uma lista específica de modificadores
já construídos. E então eu vou dizer, Ei, pegue a contagem de modificadores extras. O que é isso? Bem,
o que isso deve fazer é gerar uma
árvore por tronco. Tem 10% de chance de
responder a um extra. Acredite que essa é uma espécie
de ideia geral em que
você está pode até
surgir um pouco mais. Mas, no geral, essa é
a ideia geral. Então, se você quiser, por exemplo, uma árvore que é super rara, mas você
pode fazer é simplesmente dizer nenhuma contagem 0. E então, como uma
chance de 0,1% de
um patrocinador extra, por exemplo, ou mas para nossos propósitos aqui, é claro
que queremos vê-lo. Queremos ver a árvore
real. Então, vamos fazer isso assim. Isso basicamente determina o, como isso, a
árvore realmente gera. O que é muito importante
é que essa chave aqui e esses
anos-chave desses livros, livro, esses dois nomes
têm que ser os mesmos. Isso é muito importante. E então o que
vamos fazer é precisar de duas novas aulas. Na verdade, isso é
de classe mundial. Primeiro de tudo, no pacote de trabalho, clique com
o botão direito do mouse em novo
pacote chamado Jen. E então lá dentro
teremos duas novas classes,
a classe mod de três gerações e, em seguida, também a classe
mod world gen. Então, na classe de
gerador de árvore modelo, vamos adicionar um vazio estático
público legal, gerar uma árvore. Res realmente faz. Talvez queiramos
criar vários. E aqui, disposta a OMS chamou
as modificações do mole iam que adicionam seletores de recursos. E então aqui podemos basicamente
selecionar biomas diferentes. Podemos dizer, Ei, apenas
pegue todos os biomas, topo, leve todos os
que estão no excesso de trabalho. Podemos até ir por tag aqui. Então você pode ver que
há muitas maneiras
diferentes de usar isso. Vamos, vamos fazer
as categorias e
vamos dizer
planos de ponto de categoria para que basicamente apenas o que
surgir em aviões por ohms. E então a
geração pisa aqui, vamos dizer passo de
geração, e esta é a decoração
vegetal. Vou mostrar isso em um momento. Em seguida, o mercado
apresenta essa chave. Então, queremos que a chave
aqui seja passada. E então isso gerará
nossa última característica em todos
os biomas que têm os planos de categoria na etapa de
geração vegetal. Então, na verdade, vamos entrar nisso. Você pode ver que existem
diferentes etapas de geração. E é muito importante
comer esse pedido basicamente. Então, uma vez que nós, por exemplo, um minério subterrâneo,
você pode ver aqueles que vêm antes da decoração
vegetal. Portanto, teremos que
adicionar os remos antes dele. Então isso é muito importante e
você também sempre terá que fazer basicamente a coisa
correta aqui. Mas geralmente é
muito claro qual é
a etapa de geração real na geração do mundo moderno, agora, haverá
um método simples também. Esse será o vazio estático
público. Vamos chamar isso de geração mundial de modo
degenerado, coisas que raio
ou nome mais legal, mas será suficiente definitivamente. E então isso
chamará a geração de árvore modelo que gerou árvores. E então este
aqui será chamado na parte inferior
do método
inicializado. No entanto, a geração do mundo moderno, gere o mundo moderno novamente, e é isso. Então, vamos recapitular mais uma vez. Vamos fechar tudo o
que temos e vamos reabrir os
que mudamos. Então, tínhamos um novo recurso
configurado que
temos que adicionar para basicamente
garantir que a árvore de
cerejeira só apareça onde uma muda é válida. É por isso que isso é tão
importante aqui. Isso é feito, então podemos
criar um recurso com isso, que basicamente vai
filtrar um pouco ainda mais com algum posicionamento. O posicionamento específico
que escolhemos foi a contagem extra,
altamente recomendável. Por exemplo, entrando
aqui você pode ver modificadores de
posicionamento para clicar no
botão do meio do mouse sobre isso, e acredito que posso
clicar nisso novamente. Então você pode ver, por exemplo, onde todos esses
recursos foram usados. Portanto, há, por exemplo, alguns já
preparados quando você estiver na
classe de recursos do lugar, que você pode usar. Então, há
muitas coisas lá dentro. Eu acredito que eles também são usados com o Control H Certamente lá você pode ver que há alguns recursos de
posicionamento quadrado , deslocamento
aleatório. Há muitas coisas aqui. Só mais uma vez posso
recomendar brincar com ele. Esteja aberto à
experimentação para isso. Especialmente quando
se trata de geração mundial. É muito complicado. E, portanto, se você tem algo em mente que você
quer exatamente como você quer, quem, você vai ter experimentar um monte de
coisas com isso. Mas
esse recurso de lugar basicamente tem a mesma chave aqui que a chave. Portanto, essa chave tem o mesmo nome que o
recurso de lugar e isso tem que corresponder. E então podemos chamá-lo na geração
da árvore modelo
com essas biomodificações, isso é algo que os presentes de
tecido para nós agora este é um recurso experimental pode ser removido ou alterado
sem aviso adicional. Isso é muito importante
por enquanto. Ainda funciona. Ainda podemos
usá-lo se ele mudar. Claro, vou fazer e atualizar a palestra
em algum lugar para que você saiba como você pode basicamente
fazê-lo sem essa aula. Mas, por enquanto, vamos
usá-lo porque é muito fácil de usar e
funciona perfeitamente. E então, basicamente,
isso é capturado
na geração do mundo moderno
ou mais geração mundial, classe. E que o padrão é chamado
no, em um literalismo. Então isso é praticamente tudo o que
há para ele por enquanto. Vamos ver se funciona, certo? Não se esqueça de criar um
novo mundo para isso também. Porque é claro que mexemos
com a geração rural onde toda vez que você faz isso, eu recomendo
fazer um novo mundo apenas para ter certeza de que
tudo surja corretamente. Então, vamos ver, ou
nos encontramos no Minecraft. Então, vamos apenas localizar
em aviões aqui. E vamos ver se as árvores de
cerejeira surgem lá. E vamos ver, lá
estão eles como se não fosse
um grande bioma aqui, mas eles estão gerando. E isso é ótimo. Então, como você pode ver, respondendo, isso é uma espécie de
general
um veado por ano sobre o
quanto eles são pequenos se
os biomas um pouco maiores, claro
que você pode vê-lo
um pouco mais claramente. Mas, por enquanto,
isso é totalmente ótimo. E como eu sempre digo, quando se trata dos números, você terá que ajustar os
números de uma forma ou de outra. Então, essa é uma
parte importante disso de qualquer maneira. Então isso é algo que você definitivamente tem que ter em
mente, certo? Mas tudo funciona
e esta é praticamente a primeira palestra para a
seção de geração da Guerra Mundial feita. Espero que você tenha achado útil
e tenha aprendido algo novo. Vejo você
na próxima palestra. Ah, sim.
93. (Gen) Geração de flores: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos dar
uma olhada em como você pode basicamente adicionar a
geração de farinha ao seu MOD. Agora, mais uma vez, muitas
coisas serão copiadas,
mas, na verdade, desta vez
não vai ser muito. O núcleo é, claro,
para você disponível no repositório
do GitHub ou em um
indivíduo também. Agora, a ideia geral
aqui é que, quando
se trata da geração
das flores, uma das coisas que
as pessoas podem perguntar é, bem, como você
descobriu isso? Na verdade, não é tão louco. É praticamente a mesma
coisa que fizemos antes. Clique no botão do meio do mouse na
classe de feição e, em seguida, você tem ,
por exemplo, o recurso
flor, certo? E então eu posso clicar no
botão do meio do mouse sobre isso e ver onde ele foi usado. Por exemplo, ele foi
usado no padrão da flor. Então o que eu faço é eu
literalmente copiar sobre o padrão da flor
aqui você pode ver que eu apenas seleciono a linha inteira, pressione Control C, Control V
e, em seguida, basta dar uma
olhada em tudo o que eu preciso. E então você pode ver que, ei, isso leva um leão dandy
e eu sou tipo, ok, então eu posso basicamente substituir
isso por minha própria flor, coisas assim e
assim por diante e assim por diante. E é praticamente
assim que você faz isso, certo? Você apenas tribo continuamente e, em seguida, apenas com
isso você basicamente, bem, você
faz engenharia reversa e então você
sabe como funciona. Primeiro de tudo,
vamos copiar
o recurso configurado aqui, e veremos que uma
das coisas aqui é vermelha,
e isso é exatamente o
conflito de recurso Criar patch
aleatório é, eu acredito que está aqui ou na verdade na decoração
vegetal, acho que isso é usado aqui. Este não é
o que queremos. Queremos dar uma olhada. Este, eu acredito. Não, não é o caso.
Então você pode ver que há muitos diferentes aqui
, na verdade. E, na verdade, o que
queremos é o seguinte. Na verdade, vou
copiá-lo. Este é este aqui. Assim como o conflito
de
recurso de patch aleatório de um provedor sit de bloco e várias tentativas aqui que isso basicamente chama
esse método aqui. Portanto, não se preocupe lá. E a ideia geral aqui
é que isso agora atende basicamente tudo nisso cria o conflito de recurso de
patch aleatório. Podemos realmente dar uma
olhada nisso também. Mas isso não vai
ser tão interessante para nós, geralmente aqueles como classes de conflitos de
recursos são bem, meio
complicadas às vezes. Quero dizer, tudo isso é
bastante complicado, como você provavelmente
terá adivinhado e percebido neste momento. Mas, no geral, esse é o recurso
configurado. E agora, quando pensamos, ok, temos um recurso
configurado, mas o que também precisamos é que também
precisamos de um recurso colocado
que esteja exatamente certo. Então, na nossa classe de
recursos colocados no modelo, agora, vou
copiar isso. Agora, este é realmente bastante simples
porque você pode ver isso a rosa rosa
colocada e esta será alguns
registros, um recurso de lugar. Vamos pegar o recurso
configurado da
nossa classe de recursos configurados em modo quando,
digamos, com um determinado posicionamento. E neste caso,
vamos adicionar o posicionamento do filtro de raridade de
quatro e um posicionamento quadrado,
apenas um modificador normal
aqui com também o mapa de altura e, em seguida, o modificador de posicionamento
biológico. Então isso é muito louco, como de onde isso vem? Bem, mais uma vez,
ele reproduz características de algumas das flores reais. Se dermos uma olhada neste recurso
correto de configuração vegetal. Nós só vamos
pegá-los e então
podemos, por exemplo, ver as características da vegetação,
local de vegetação aqui. Nosso calor, que é a linha 73. E podemos apenas ver uma raridade
aqui, quadrada também. Ele também pega o mapa de altura do bloco de
movimento e o modificador de
posicionamento do bioma. Então, é basicamente de onde
todos eles vêm. Basicamente, peguei
tudo isso da baunilha e
funciona lindamente. Então essa é praticamente
a ideia geral. Agora, o que
também vamos precisar é de uma nova chave de registro para isso. Então esta será a chave
sublinhada da polícia
de rosa rosa . Isso terá o mesmo
nome que isso mais uma vez, porque eles
terão que corresponder. E então isso é
praticamente tudo o que precisamos fazer agora, é claro,
precisamos ainda gerar isso. Mas para isso precisamos
no pacote gen no New Mode, barramento de geração mais baixa. E, na verdade, vou
copiar o método aqui. Não é nada muito louco. Oh, olhe para os recursos
colocados no modelo, eles vão e então tudo o
ano deve ficar bem. Então, mais uma vez, esses só
vão surgir nos aviões apenas para que o tenhamos basicamente
no mesmo bioma. E então isso só terá
que ser resfriado aqui. Portanto, isso pode ser
chamado acima ou abaixo dele. Isso importa porque ambos são decoração
vegetal. Tudo aqui é
chamado de engenharia, foi adicionado corretamente. Vamos ver se funciona. Mais uma vez, não se esqueça de
criar um novo mundo, pois mais
uma vez mexemos com
a geração mundial. Então, vamos ver o que podemos ver. E por sorte, já estamos ao lado de um
avião e lá estão eles,
as rosas cor-de-rosa manhã
em pequenos remendos aqui. E você pode ver
que há outro patch. E então há como
um grande remendo aqui. Então, isso é muito legal. E você pode ver,
é claro, mais uma vez, mexer com os números
é a principal coisa que você terá que fazer
para obter sua geração. Basta escrever se você quisesse
um pouco diferente. Claro, não se preocupe. Você sempre pode experimentar isso. Mas, por enquanto, isso é realmente ótimo e todos
eles geram, bem, isso é
muito legal, certo? Mas isso já será
para esta palestra aqui. Espero que você tenha achado útil
e ignorância do novo. Mais uma vez, todo
o código está naturalmente, disponível para você
no repositório do GitHub ou em um
indivíduo também. E te vejo
na próxima palestra. Então, sim.
94. (Gen) de minério de: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos
fazer o que
vocês estavam esperando. Vamos ver como adicionar
ou gerar ao Minecraft quando se trata
da geração geralmente, ou geração é praticamente a única coisa em que
todos gostam, Oh meu Deus, eu preciso saber
como ou geração funciona. Essa é a coisa mais
importante de todos os tempos. Eles querem o
esporte deles no mundo. E isso é exatamente o que
vamos fazer agora. Mas, mais uma vez,
descubra isso. Vamos
clicar no botão do meio do mouse no recurso. E o que você encontrará é
que aqui ou isso, ou sim, de fato,
é um recurso ou. E se eu clicar nisso, você pode ver que existem
alguns recursos configurados. Por exemplo,
existem alguns diamantes,
pequenos diamantes, grandes
diamantes enterrados. Mas vamos
dar uma olhada no pequeno recurso de
diamante
configurado. Você pode ver que isso tem um ou recurso Conflict Diamond ors. Então, o que é isso? É uma lista de todos os conflitos
futuros, nosso alvo, nós
realmente teremos
que fazer isso
nós mesmos também. Mas não se preocupe. Isso não é como se isso
não fosse tão difícil. Agora, mais uma vez
copiarei tudo, mas tudo
aqui está, é claro, também disponível para você
no repositório do GitHub ou em um
indivíduo também. E para um, ou, como eu disse, precisamos de uma lista
desses destinos aqui, bem
como um recurso configurado. Agora isso
é praticamente tudo o que precisamos. E você pode ver que
preening o alvo aqui, existem basicamente
duas alvos de taxa. Então, se eu basicamente
fizer isso um pouco diferente para que ele seja um
pouco diferente aqui. Então lá vai você. Agora você pode
ver claramente ambos os alvos e ambos basicamente blocos
associados a ele. Um alvo tem um teste de regra
que segue, certo? Então, o teste de regras que você pode ver aqui basicamente
apenas verifica, Ei, isso corresponde a esse bloco
específico aqui? Então, neste caso, estamos
realmente dizendo: Ei, tudo o que pode basicamente
substituir por uma pedra, a pedra ou,
em seguida, também há ardósia
profunda ou substituível. Então essa é a ideia geral aqui. Por causa, claro, nosso
normal ou pode substituir, ou deve ser capaz de
substituir a pedra normal e depois dormir profundamente ou deve ser
capaz de substituir ardósia profunda. Agora isso não é apenas armazenar, isso pode, por exemplo, também gerar diretamente
e coisas assim. E o mesmo com o sono profundo. Há como outras coisas, outros tipos de blocos
que também podem
surgir no estado profundo e
, portanto, isso é necessário. Agora, o tamanho aqui vai ser muito
interessante porque o tamanho, se realmente entrarmos aqui, você pode ver que ele só
diz tamanho e o tamanho lá significa que este deve ser
o tamanho médio de uma veia. Portanto, esse deve ser o tamanho da
veia, na verdade. E então, como ele aparece
no mundo real, você será capaz configurar com o recurso
colocado novamente, que realmente precisamos uma
coisa muito interessante e que é uma nova classe e o
recursos embalados. Então este é o modo ou comedores e vamos apenas
copiar sobre dois métodos. Agora, esses métodos vêm
do recurso ou em si. Então, a partir da baunilha ou dos recursos, eu basicamente os levei e os
tornei públicos aqui para que
possamos ter acesso a eles para que
possamos facilmente API sobre o recurso local aqui, que é o oracle
reclama como você pode ver, porque o oracle vem ou com um posicionamento específico e depois
os modificadores com contagem. Então, a contagem nos
vários que você está basicamente diz quantas veias
devem surgir por tronco. Este é pelo menos meu
entendimento atual disso, realmente, que o modificador de contagem é quantas veias surgem por tronco. E então temos um modificador de
posicionamento de faixa de altura do trapézio. Então você pode ter visto essa imagem de como
os minérios agora surgem. E existem diferentes tipos
de recursos basicamente, ou diferentes tipos de
modificadores geraram? Há o trapézio, há uniforme e você pode até fazer fornecedores de altura personalizados. Podemos ver que há constante
trapezoidal uniforme, muito tendenciosa, ponderada,
tendenciosa em relação a eles. Então isso é muito interessante. Portanto, existem diferentes provedores de
altura que você pode basicamente
colocar lá. Se, por exemplo, você é como, não, eu quero que isso apareça como um
provedor muito, muito chato, muito tendencioso para a muito chato, muito tendencioso para a altura
inferior pode ser feito. Você pode ver que você pode
criá-los com muita facilidade na verdade. Então, mais uma vez, experimente,
experimente, experimente, esteja aberto à experimentação, especialmente com isso visualmente
brincando com isso. Este é um exemplo de
como fazer isso, certo? Nós
vamos basicamente dizer, Ei, isso pode surgir em qualquer lugar de
menos 80 a mais 80. Isso é basicamente para fins de
teste,
por enquanto. Se eu quisesse realmente
fazer esse recall do nosso provavelmente até mesmo usar
o muito tendencioso como no modificador de
posicionamento inferior oito porque eu sinto que isso seria
o refrigerador e seria provavelmente diminuem
a contagem também. Mas só queremos mostrar que basicamente
funciona aqui. E então a chave, mais
uma vez, é muito fácil, mas é apenas a chave recalc, sublinhada ou desaparafusar. Então a mesma coisa aqui. Este tem que ser o
mesmo nome que este, é
claro que mais uma vez, reproduz mesmo
recurso com
a chave de registro. E então só precisamos de uma
nova origem de modelo aqui. Então mod ou generation também copie isso
rapidamente. É praticamente
o mesmo que os outros. Isso é apenas recursos
colocados em demoed eles atrás. E então isso é praticamente
encontrado em todo o mundo. Então este é
outro e isso está na etapa de
geração de ors subterrânea. O que é muito importante
é que isso seja chamado antes da decoração
vegetal. Portanto, MAR ou geração geram portas. Isso é
muito importante. Caso contrário,
não funcionará corretamente. Mas isso é mais uma vez,
na verdade, tudo o que precisamos. Então, só precisamos de um recurso de
configuração que
realmente tenha uma lista de alvos, o que é muito importante
porque é
claro que você quer que a
loja e o estado profundo ou apenas o tamanho pequeno seja
o tamanho das veias, basicamente o tamanho da veia aqui. E, em seguida, coloque o recurso. Podemos dizer quantas veias
por transcrições nasceram
e, em seguida, de que tipo de
maneira elas devem surgir. Mas neste caso trapézio
e, em seguida, um deslocamento Y. Então, basicamente, diga: Ei, de que
nível Y até que nível eles devem gerar? Essa é a ideia geral. Mais uma vez, recomendo vivamente brincar com ele. Você pode clicar no botão
do meio do mouse e ver o que você pode mudar. Diferentes
provedores HIE, tudo isso. Eu recomendo vivamente. Apenas
brinque com isso. Se você tiver valores
diferentes ou funcionalidades diferentes
onde você quer que seu
cavalo apareça. Mas, por enquanto,
vamos ver se funciona. E, claro, como
tantas vezes porque nós mexemos com a geração
mundial. Vamos criar um novo mundo, ou um farmacêutico no Minecraft
lá, na verdade, é um comando muito bom
que podemos usar, que basicamente
apenas preenche todas as coisas abaixo aqui com ar. E nós podemos basicamente, então, vou dar uma olhada em tudo isso. Então, vamos ver se algo que queremos
surgiu aqui. E para este, na
verdade não se
parece com isso. Bem, então vamos
entrar em não sobrevivência, mas na verdade,
no modo ditador. E vamos apenas passar e ver se conseguimos descobrir que o, OU aqui, temos. Então, algumas delas surgiram. Você pode ver aqui um pouco mais. Na verdade, homens velhos, veia
ainda maior aqui. Como você pode ver, ele
gerou perfeitamente bem. E provavelmente há ainda
mais disso ao nosso redor. Lá está lá alguns,
alguns mais até mesmo. Então, isso é realmente
o quão legal é. E isso é,
claro, um sono profundo. Agora também gera
e pedra, é claro. Então olhe para isso
lá, por exemplo, nós imediatamente o encontramos. Então isso é praticamente o
quão fácil isso, certo? Acho que enfatizo isso
o suficiente para que você deva experimentar isso um
pouco e experimentá-lo. Então, não vou me repetir, mas direi que é
isso para esta palestra aqui. Espero que você tenha achado útil
e anos de idade do novo. E te vejo
na próxima palestra. Então, sim.
95. Como fazer um arquivo JAR a partir de sua Mod: Tudo bem, bem-vindo de volta
o curso de tecido para 118. Nesta breve palestra, veremos como você pode fazer um arquivo JAR
fora do seu modelo. E a maneira como você faz isso é abrir o terminal e colocar na barra de pontos Gradle w construído. Agora você está basicamente apenas
deixar isso passar. Isso não deve demorar muito. Serão redondos cerca de 10
segundos. Lá vai você. Cinco segundos, na verdade,
talvez um
pouco mais se o seu
PC for um pouco mais lento, mas não se preocupe. Se você receber um erro aqui talvez você não esteja usando a versão
correta do Java. Você pode especificar a variável home
Java aqui para que ela
use o JDK correto. Além disso, agora
você encontrará seu arquivo JAR dentro
de suas pastas. Então, na
pasta Build, na verdade, vamos
clicar com o botão direito do mouse neste Explorer
aberto aqui. Vamos
construir libs de pasta
e, em seguida, este aqui. Portanto, aquele com o
nome mais curto é o arquivo JAR. E agora você pode adicionar
isso e tentar e vamos jogar com isso adicionado a
um servidor, coisas assim. Isso tudo funciona basicamente como qualquer outro arquivo JAR
que você possa baixar, por exemplo, de
forragem de trabalhadores ou algo
assim, certo? Mas é isso para esta
palestra aqui. E isso também é
para o conteúdo
planejado, digamos, para o primeiro
lote de conteúdo deste curso. Agora, haverá mais
tópicos adicionados no futuro. Então, após basicamente, essa
palestra será uma seção chamada alguns tópicos
adicionais ou
algo assim, onde tópicos adicionais
no futuro serão adicionados. Então, talvez se você estiver assistindo este curso logo
após ele sair, talvez não
seja nada lá. Mas no futuro, algo
pode estar fora de lá. Isso é bastante frequente, legal. Então, espero que alguns tópicos
mais avançados também sejam
abordados lá. como, talvez alguns tópicos
não tão avançados
que ainda possam ser úteis e que possam ter sido solicitados
bastante, certo? Mas isso seria para
esta palestra aqui. Espero que você tenha achado útil
e ignorância do novo. Vejo você espero
na próxima palestra. Então, sim.
96. (tópicos adicionais) de tela de atualização (1.18.1): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra, vamos atualizar nosso
tecido para a versão mais recente. Pelo menos para mim. Quero dizer, acho que
provavelmente será uma
versão um pouco mais nova, mesmo para você. Mas para isso,
é claro, vamos para o
arquivo de propriedades do Gradle e, em seguida, podemos
navegar para isso aqui. Então, duas versões de rede da EMC, HTML e
eu já abrimos isso. Então, essas são as novas versões
aqui dos mapeamentos de fios, do carregador e da
versão de malha , pois continuamos
uma mensagem
do futuro, já
que 118 para dois foram
praticamente lançados. Eu recomendo vivamente
o que
você faz é mantê-lo em cento,
oitocentos e um. Se você acompanha
as palestras com 118, eu recomendo que você fique em um 1800 em vez de
atualizar imediatamente para 172 porque um 1800 e toda a próxima geração mundial é não vai funcionar com 1800. No final do curso, haverá uma seção
onde podemos assistir se você quiser passar com um 1800 para apenas
ter isso em mente. Então, recomendo,
mantenha-se em 181. E então você pode atualizar
no final do curso, vamos fazer é que eu
realmente vou colocar isso no outro
monitor e eu vou copiá-lo exatamente assim. E então temos os
outros três aqui. Então, esses são aqueles
três que eles atrás e então nós
vamos movê-los. E isso é praticamente isso. E então vamos clicar
no pequeno elefante aqui
é que não aparece. Você sempre pode
abrir a guia Gradle e clicar neste botão também. E então, à medida que é construída, mais
uma vez, pode
demorar um pouco. Pode levar um minuto ou dois, ou também pode
demorar apenas trinta segundos, depende da sua velocidade na conexão com
a internet, se você atualizou ou não
no passado, coisas assim. Mas uma vez que isso seja
basicamente executado, vamos
basicamente
esperar pacientemente até que este
passe e, em seguida veremos se algum erro pode ocorrer ou
não. Tudo bem, então você pode ver
por mim que levou 50 segundos, então não muito tempo,
na verdade totalmente bem. E, no geral,
no momento, não estou recebendo nenhum erro ou
o que
podemos fazer é simplesmente iniciar a tarefa do cliente de
execução e vamos ver se alguns erros
podem ocorrer ou não. Claro, mais uma vez,
pode ser um pouco vermelho aqui, alguns avisos diferentes , pelo
menos, que devem
estar totalmente bem enquanto os clientes reais
começarem, ficaremos bem. Esta era, é claro,
como sempre, é apenas um
erro normal que
vimos basicamente toda vez que
iniciamos o cliente. Portanto, não se preocupe lá. E lá vai você. Portanto, a janela já
está carregada. E vamos ver. Aí estamos nós. Então, tudo funciona totalmente bem e isso é realmente o
quão fácil é atualizar. Agora, se é claro que já vi
uma atualização anteriormente , no entanto, eu queria fazer isso mais uma vez basicamente antes de
entrarmos
na parede, os tópicos adicionais que vamos discutir no, nas próximas palestras. Então, esses serão
muito interessantes, algumas coisas realmente avançadas. Mas tenho certeza de que
conseguiremos passar por isso e será
realmente interessante. Mas isso já está pronto para
esta palestra aqui. Espero que você tenha achado útil e
aprenda algo novo. Vejo você
na próxima palestra.
97. (tópicos adicionais) de XP de para blocos: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos dar uma
olhada em como você pode adicionar gotas experientes
aos seus blocos. Agora, isso é algo que enigma de poucas
pessoas no passado, mas na verdade é bastante simples quando
você sabe onde procurar. E isso é basicamente que
vamos pressionar
a tecla Shift duas vezes e
depois vamos
dar uma olhada na classe de blocos
orais onde vou garantir
que isso inclua não projetos. E então vamos escolher
este aqui. E então, na verdade,
vamos fazer o, vamos realmente entrar
no terminal aqui. E digamos que Gradle w fontes apenas no caso após as atualizações. Às vezes, você precisa quando o, quando muitas coisas são atualizadas, você precisa realmente fazer as fontes de
geração aqui. E vamos deixar isso
passar e então podemos ver o que a classe real
tem a oferecer para nós. Lá vai você. Demorou cerca de um minuto
e depois foi feito. E agora o que podemos
fazer é, em teoria, podemos procurá-lo novamente,
certificando-se de mais uma vez, selecionaríamos isso e aqui ainda
temos a barra azul, mas agora podemos escolher
fontes aqui. Quem são as
fontes mapeadas, diga, ok, e depois que ele recarregar, então devemos obter
a classe adequada. Normalmente, a diferença não
é cegonha, mas às vezes pode
ser uma diferença. Certificar-se de que temos as fontes adequadas aqui em vez de apenas as
descompiladas. Agora, a
classe de blocos laranja aqui nos dá a capacidade de também passar um uniforme
no provedor, que é a experiência
que cai quando, na verdade, enquanto destrói esse bloco. Isso é, na verdade, tudo o
que precisamos fazer. Então, em nossa
classe de blocos de modo, vamos, por exemplo, pegar o resultado do oracle
ou o caso do mais, provavelmente não gostaríamos que a experiência
extra caísse. Mas vamos fazer isso aqui porque faz sentido
fazer isso como um exemplo, geralmente
são, é claro, porque nosso cálcio ori ou
bloco cai de cálcio Rory, geralmente você não gostaria de adicionar
a experiência aqui. Mas só por exemplo, faremos isso após
as configurações do bloco de tecido. Vamos apenas adicionar
outro parâmetro aqui e esse será o uniforme
na criação de pontos do provedor. Vamos apenas dizer algo
como três a sete. Vamos ver o que podemos realmente dar uma olhada
no bloco ou aqui, vamos dar uma olhada em onde
isso foi usado. Então, clique
no botão do meio do mouse sobre isso e, por exemplo, vendo o Esmeralda ou
apenas como exemplo, vamos ver o provedor. Aqui está exatamente 37. Esse é
aproximadamente o tamanho que você quer. Isso eu acredito, deve ser todos
os diferentes ou blocos
onde isso foi usado. Mas é claro que você
pode mudar isso. Talvez você tenha uma ordem
incrivelmente rara e talvez queira que
isso seja muito maior, mas é claro que também seja o caso. Isso é tudo o
que você precisa para ter sua
experiência de queda de blocos também. Então, para fins de conclusão, vamos ver se funciona ou se
Francis de volta ao Minecraft. Então, vamos apenas meu um
pouco disso e lá vai você. Veja isso também cai a experiência. E como eu disse, você pode simplesmente mudar
os números inteiros que eles são, e então basicamente
tentar diluir em quantas experiências
você quer que ele caia. E podemos ver, posso continuar aqui e h está trabalhando
continuamente. Na verdade, é assim que é
fácil adicionar alguma experiência
do cliente que derruba a sua. Isso já aconteceu, para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra.
98. (tópicos adicionais) como adicionar blocos transparentes: Ou eu sou bem-vindo de volta ao curso de
tecido para 118. E nesta palestra
vamos adicionar um
bloco transparente personalizado ao Minecraft. Isso, na verdade, mais
uma vez , uma daquelas coisas
que na verdade é bastante simples quando
você sabe o que fazer, é
claro, isso
geralmente é o truque disso. Mas vamos entrar e vamos
apenas copiar sobre as folhas de
flor de cerejeira bem aqui. E esta será a janela de sublinhado de
inverno, mesmo que o inverno esteja lentamente
mas seguramente desaparecendo. Mas isso é claro que está bom. Há, é claro,
vai voltar algum tempo. O inverno está chegando. Claro. Vamos fazer deste um novo bloco
de vidro que eles atrás
e isso vai apenas copiar sobre o vidro do
bloco aqui. Isso é praticamente
tudo o que precisamos. Agora vamos, na verdade, também
adicionar não foi opaco. Isso é realmente muito
importante e vamos adicionar alguma força aqui também. Por que não alguma força personalizada? E isso vai ficar bem. E para o bloco, na verdade é tudo o
que precisamos. Agora, a razão pela qual precisamos
da classe de bloco de vidro é se entrarmos nela, ponto
mais médio, clicar nele
e, em seguida, clicar no botão do meio do mouse clicando
no bloco de classe abstrata, você pode ver que ele
tem primeiro de tudo, a
forma de colisão da câmera vazia. Então temos o nível de luz de
oclusão ambiente. É necessário para que a
luz passe. E então também temos
o método translúcido, basicamente retornando verdadeiro aqui. É por isso que usamos o
bloco de vidro, só faz sentido. Agora, o que
também precisamos
fazer para que a janela de
inverno seja adicionada
corretamente na classe de cliente do curso
MC, vamos copiar sobre
a amostragem aqui. Não vou fazer
desta a janela de inverno, e vamos tornar essa camada de
renderização translúcida. Então fique translúcido. Muito importante que
adicionemos isso também. E então a
transparência real é feita. Agora, é claro,
ainda precisamos adicionar os arquivos JSON normais que vamos copiar
sobre tudo aqui, é
claro, disponíveis para você
no repositório do GitHub, um indivíduo também. A corrida do mar, o bloco
dos Estados é completamente apenas um dia
normal, na verdade meio chato. Block diz arquivo JSON. E então vamos também copiar
a tradução aqui. Isso não é nada,
nada muito louco. Nada que o alarme
de qualquer forma, forma ou forma. É apenas
coisas normais como já
vimos muitas vezes. mesmo com o arquivo JSON do
modelo de bloco. Você pode ver completamente
normal o arquivo do
militarismo e
nós vamos ir 33. Sim, vamos
passar com um arquivo JSON modal de
item três também completamente normal. E então, na verdade, também vamos obter a textura
que você acabou e isso seria praticamente isso. Isso é tudo o que precisamos. Então, duas coisas muito importantes, tornando-o um novo
bloco de classe não opaco. E também
certificando-se de que isso é chamado obter
a camada de
renderização translúcida. E depois de ter
adicionado tudo isso, vamos ver se funciona ou
se respostas no Minecraft z, a janela de inverno foi adicionada
com sucesso ao jogo. Então, vamos colocá-lo para baixo e
você pode ver, lá vai você. Podemos ver isso e
parece incrível. Então, trabalhar praticamente
exatamente como o vidro normal, como você esperaria. E vamos ter mais
uma coisa e
vamos dar uma
olhada nos textos de mais
uma vez para
mostrar basicamente uma outra coisa que é muito importante para blocos transparentes
personalizados. Abrimos a
janela de inverno PNG bem aqui. E uma vez, é claro, muito
importante aqui é que esses pixels aqui
são, claro, transparentes. Eles têm um valor alfa associado a ele
que é menor que um. Isso é muito importante
que o valor alfa aqui para alguns dos pixels seja, é
claro, menos de um. Caso contrário, não será
transparente. Então, isso é praticamente tudo o que
há para ele também. Você pode fazer isso no GIMP, em pintura na rede ou em
dois ótimos programas. Eu pessoalmente uso o Photoshop, mas esses dois também funcionariam. Mas seja qual for o caso, isso já é
para esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você
na próxima palestra.
99. (tópicos adicionais) Adicione itens animados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar um
item animado personalizado ao Minecraft. Agora, adicionar um item animado é , na verdade, um processo bastante
simples. Agora isso vai ser
uma textura que vai ser animada
e mudando ao longo do tempo. Para isso, é claro,
vamos precisar de um novo item. Então, vamos entrar na nossa classe
mais itens, a menos que apenas uma cópia superior
sobre o item da tigela, na verdade, isso provavelmente
será mais fácil. E entre o nosso chamado
isso, o
realce mágico sublinhado recalc
vem sublinhar poeira. E então o mesmo aqui. Sublinhado mágico ou um sublinhado de
cálcio poeira. Agora isso vai
ser um item normal. Curioso, não é? Sim, o item real
em si é
muito, muito simples de ser feito. O
interessante será, na verdade , a
textura em si
, bem como o
metarquivo MAC associado. Interessante, o
que faz isso, o que vamos ver. Mas antes de tudo, vamos adicionar a tradução
aqui para que a tenhamos. E, em seguida,
também vamos adicionar o arquivo do modelo. Agora, o arquivo do modelo, pode
dizer, Bem, o arquivo modelo tem que ser um
louco complicado, não é? Provavelmente vai ser
realmente incrível. E não, na verdade, é
apenas um arquivo de modelo normal, como você pode ver claramente, que
apenas aponta para uma textura. E a textura é a coisa que vai ser
a
parte interessante, bem, interessante de tudo isso. Então, vamos
copiar isso, incluindo o arquivo MC Mehta. Agora, é claro,
tudo está disponível para você
no repositório do GitHub em
indivíduos também. E você pode ver
aqui, este é o pó real em si. E você pode ver que essas
são várias texturas. E esses são os
quadros
referenciados no metarquivo MC. Você pode ver 012345, é praticamente 012345. Eles vão, eles serão basicamente animados
em um termo francês de 16. Eu recomendo mudar isso e brincar um pouco
com isso, estar aberto à experimentação aqui. interpolação significa simplesmente que ela meio que desaparece de um quadro para o outro em vez de mudar discretamente. Essa é a ideia geral de
interpolação neste caso, e essa é a ideia aqui. Então, isso é realmente
tudo o que há para ele. Agora é muito importante
que o metarquivo MC
tenha o mesmo nome que o, como a textura
incluindo o ponto PNG. Isso é incrivelmente importante. Certifique-se de que isso
esteja escrito corretamente. Mais uma vez, uma daquelas
coisas em que é melhor
verificar ou
triplicar a ortografia. E para alguns
exemplos, para blocos. Por exemplo, você pode ir para as bibliotecas externas
aqui para mapas de
projetos de micróbios de rede, assim por diante e assim por diante. E vamos entrar
na pasta de ativos, bloco de texturas
Minecraft. E vamos dar uma
olhada no bloco magma porque esse
também é animado. Você pode ver que a textura do magma é
realmente livre, texturas
diferentes. E aqui está o metarquivo MAC. Mais uma vez,
quase exatamente o
mesmo que com o metarquivo real
que temos aqui. Você pode ver que é apenas um tempo de quadro
diferente para o magma e isso é praticamente tudo o que há
para ser altamente recomendável, como eu disse, brinque um pouco
com isso. Experimente e veja o que você
pode basicamente inventar. Mas, caso contrário,
vamos ver se a textura animada
funciona corretamente. Ou um Minecraft. Como você pode ver, o
pó mágico foi adicionado com sucesso e você pode ver que parece
atrito, incrível. Ele gera ou melhor
anima automaticamente. Você pode ver que ele apenas, parece muito legal, pois tem um, você sabe, como um efeito
cintilante para ele. E, como eu disse, isso é completamente personalizável. Você pode simplesmente mudar
o metarquivo MC, brincar
um pouco com isso e, em seguida você pode apenas com isso, apenas com coisas básicas como essa, você já pode adicionar algumas coisas
muito legais e frequentes em seu modelo. Isso já foi para
esta palestra aqui. Espero que você tenha achado útil
e aprenda algo novo e eu te vejo
na próxima palestra.
100. (tópicos adicionais) Tela de menu personalizada: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos fazer uma tela de menu personalizada. Agora isso vai ser
muito interessante,
porque uma
tela de menu personalizada é algo que é algo muito
interessante para adicionar ao seu MOD. Agora, uma das
coisas que eu quero
mencionar imediatamente aqui é que quando estamos fazendo a tela do
menu nesta palestra, vamos fazer com
que ela sempre seja exibida. E então, na próxima
palestra em que
vamos falar sobre configurações, vamos fazer isso para
que você possa descobrir se a
coisa é exibida ou não. Isso é muito importante
que você adicione isso. Porque, caso contrário,
seu MOD nunca
será adicionado a nenhum mod pack nunca. Você precisa tornar
isso configurável. Mas isso é algo que
vamos ver na próxima palestra. Neste, vamos fazer a tela de título personalizada da parede. Agora, o que vai ser realmente
interessante é que eu
vi muitas maneiras de isso ter
sido feito anteriormente, mas basicamente sempre usando
a classe de tela de título. Então esta será
a tela de título. Lá você vai por baixo deste
aqui e tela GUI do cliente de micróbio. E foi muito
estranho porque eles sempre basicamente
acabaram de fazer o título inteiro. criador de tela fez um
mixin e acabou de mudar. Quero dizer, muitas coisas aqui. E eu estava tipo, não consigo imaginar que essa
será a única maneira de fazer isso. E, de fato, na verdade,
não é a única maneira de fazê-lo. Eu encontrei uma maneira muito, muito mais fácil e melhor. Então, ainda vamos
precisar de um mixin, mas vai ser muito simples. Então, antes de tudo,
vamos fazer uma nova classe imita e mixagem de tela de
qualidade empacotada. Vá e vai
parecer assim. Vou copiá-lo. Vou dizer, Oh meu Deus, isso é exatamente demais. Não é quase nada. Você vai fazer
disso uma interface. Isso vai
misturar a classe de tela. E ele só vai ter um acessador aqui ou
a lista de drawables. Isso é tudo o que
vamos precisar aqui. Isso é literalmente
tudo o que precisamos. Então, é claro, para a mistura, também
precisamos adicionar isso são
misturados aqui agora, muito importante, isso
está sob o cliente. Isso é muito importante porque isso só
afetará o cliente. É por isso que temos que
ter isso aqui. Também podemos ver isso
no ambiente de tela, valor,
tipo de ambiente aqui é cliente. Isso só aconteceu
no cliente. Portanto, precisamos
colocar a mistura
no cliente, na mistura JSON. Depois que fizermos
isso, agora estamos log. Ok, como
vamos proceder agora? Vamos fazer uma
nova tela de título. Vamos estar
no pacote util. botão direito do mouse em nova
classe Java chamada de, vou chamar isso de
kelp e tela ociosa do título. Lá vai você. Isso vai estender a classe
da tela de título. Você pode ver que na verdade não
temos que passar o mouse sobre isso e não temos que
fazer nada aqui. Mas o que vou
fazer é copiar o
conteúdo disso. Mais uma vez, tudo isso
está disponível para você
no repositório do GitHub e
individual também. Vou explicar o que é
o FREC. Hubbard aqui. Podemos ver esse respingo. Este é o
identificador real que aponta para minha imagem que eu queria
substituir a largura normal da imagem. E então também temos a textura das
telas de título do Minecraft. Este é apenas o
Minecraft que está escrito basicamente
no topo, no meio, topo da tela de título real porque tivemos que
realmente adicionar isso. Mais uma vez. A maneira como isso funciona é que
chamamos esse método de renderização. A primeira coisa
que ele faz é renderizar a tela de título normal. Então, como você pode ver,
eu separei isso em quatro
métodos diferentes aqui. Em seguida, estamos desenhando nossa tela de título
personalizada. Depois disso,
vamos desenhar o logotipo da Microsoft com eu
vou desenhar os avisos de
direitos autorais
e, em seguida, vamos desenhar
a tela de título e os botões. Eu era muito importante é
que definitivamente sempre mantenha os avisos de direitos autorais
lá e não 100% de certeza. Mas eu acho que se
você não os tiver, você pode estar cometendo fraude de
direitos autorais ou algo assim.
Então, mantenha-os lá. Apenas mantenha assim. Este é praticamente
o mesmo código que também está
na tela de título. A maioria dessas coisas foi tirada
da tela de título. O logotipo real aqui completamente
da tela de título. Os botões de tela retirados
da tela de título e, em seguida, da tela de título personalizado de
desenho. Este aqui
é um pouco do eu não
diria necessariamente o máximo de coisas do cliente, mas a maior parte disso como clientes, você pode ver que a
maioria das coisas é muito semelhante a isso também. Estamos basicamente desenhando
uma textura diferente aqui. E isso é praticamente
tudo o que estamos fazendo. Agora. O que vamos fazer
com esta tela de título? Bem, vamos tornar um
novo evento interessante. No pacote de eventos RV, vamos clicar com o botão direito do mouse em nova classe
Java e este será o evento de tela de título de substituição. Vamos exatamente o que
vou chamá-lo. Isso implementará o ponto
Eventos da tela antes nele, e precisamos levar
este aqui. Esse evento é essencial antes de um evento
específico ser inicializado. Em seguida, vamos
implementar o método
before init aqui. E então vou copiar
o conteúdo, o que também será
muito simples. Mas o que
vamos dizer é hey, se a tela que está sendo inicializada
atualmente for uma tela de título e não
for nossa tela de título. Vamos apenas definir essa
tela em direção à tela de título. Isso é exagerar
aqui com facilidade suficiente. Isso é literalmente exagerado. E agora só precisamos
basicamente fazer esse registro, este evento real aqui. E isso vai ser feito
na classe do cliente. Então, cliente do curso MC,
muito importante. E então aqui
vamos dizer eventos de tela antes nessa época
da fábrica de eventos aqui. E então
vamos apenas dizer um registro,
um novo evento de substituição,
substituir o evento da tela de título. É isso. Agora, a tela de título será substituída por essa
textura aqui. Temos curso, ainda
tenho que adicionar essa textura. Caso contrário, vamos apenas
obter textura preta e rosa, não é o
que
queremos que isso vá GUI e,
em seguida, em
segundo plano, então novo diretório, seu
plano de fundo eles atrás. E depois copiaremos isso. Isso também está disponível
para você. No entanto,
observe que há um aviso de direitos autorais
associado a isso. Mais uma vez, pode ser retirado
aqui do arquivo de créditos. Você pode ver alguns pelo joelho. Então, esta é mais uma vez a mesma licença
Creative Commons. E então você só precisa vincular a página do Fiverr ali mesmo. Isso
também manterá isso em mente se você quiser usá-lo. Eu recomendo não
usá-lo porque não
faz sentido porque quando você verá
a textura real aqui, eu simplesmente não, você
não precisa usá-la. Bem, seja qual for o caso, isso é tudo o que precisamos. Então agora vamos ver se
funciona ou está começando a carregar aqui e devemos imediatamente, é
claro, vê-lo. E lá estamos nós. A tela de título personalizada está funcionando exatamente como você
esperaria. Os botões ainda funcionam. Posso dizer, isso é como um exemplo muito ruim,
mas lá vai você. Então eu posso basicamente clicar em tudo e
tudo ainda funciona. E temos o personagem
micróbio Milo aqui segurando um sinal
tutoriais por coluna e linha. Aqui, à esquerda,
temos um pouco de um spoiler bem aqui. Então, quem sabe o que
isso combinado significa? Quem sabe? Mas, no geral, eu realmente gosto que seja muito legal e
tudo está para funcionar. E assim você pode até acessar
os direitos autorais aqui. Você ainda pode clicar nisso e tudo ainda está
funcionando muito bem. Na verdade, é como é
fácil adicionar uma tela de título personalizada
ao meu ofício, certo? E, como eu disse,
recomendo também verificar a próxima palestra, onde vamos adicionar um
conflito a isso também. Porque se você não
tiver o conflito, então você tem que tornar
isso configurável. Eu vou apenas dizer isso,
mas por enquanto, é
isso para esta
palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você
na próxima palestra.
101. (tópicos adicionais) Adicione Configs simples e básicos: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos adicionar um simples conflito ao Minecraft.
Então, o que isso significa? Como funcionam os conflitos? Bem, primeiro de tudo,
vamos usar uma aula já feita. E isso é
aqui do tecido, lábios
simples aqui. Isto é de um magistrado Vmax. E tenha cuidado ou tenha certeza de que
isso está sob um direito autoral. E então esta
será a licença do MIT só para que você esteja
ciente disso. Então, certificando-se de que você
saiba que esse é o caso. O simples conflito
aqui é, na verdade ,
quero dizer, é bastante
simples. Na verdade, não é
muito complicado, mas vamos usar isso. E isso é claro que tudo
está disponível para você também no repositório do GitHub em
indivíduos também. E eu realmente copiarei
sobre todas as três classes que são feitas no pacote de curso MC clique com
o botão direito novo pacote chamado config. Então
lá dentro, vou copiar sobre as três aulas. Como eu disse, eles também
estão disponíveis para você para download. Mas vamos ver. Lá vai você. Lá estão eles. Temos a classe de
conflito simples, que geralmente é apenas
uma classe Java normal. Dentro daqui,
nada aqui é basicamente para
Minecraft ou tecido. Tudo isso é um código Java normal. Aqui eu tive, fiz uma pequena
modificação aqui, é que ele reconhece
um comum depois de
um valor que é tudo o que eu
basicamente adicionei aqui também. Vamos só, porque meu, achei um pouco mais legal por causa da
maneira como eu configurei para que tenhamos esse provedor de
conflitos aqui. Podemos ver que essa é apenas
uma configuração padrão. Agora, o que isso faz? Realmente é apenas uma lista de pares. Então, teremos
um par de chave-valor para um conflito
ser razoavelmente sensato, onde há uma string
que será a chave, então algum tipo de valor. Não sabemos qual valor
porque podemos basicamente salvar coisas em
valores diferentes e isso está na
classe de conflitos mod é basicamente tudo bem feito aqui temos esse método de conflitos de registro, que vamos chamar em apenas um momento. Mas o que isso faz? Bem, ele faz um novo provedor de
conflitos. Em seguida, cria os conflitos. Esta é a
criação real dos conflitos. Você pode ver que estamos apenas adicionando pares de
chave-valor a este moderno
provedor de conflitos aqui. A ideia é que
essa é a chave. Então você pode ver que acabei de
ter alguns exemplos aqui. Valor do teste T, temos
outro valor de teste. Outro valor de teste é
uma string em dobro, ou tenha esses comentários
aqui apenas para que
seja um pouco mais fácil
para o jogador ou o usuário real
alterar esse conflito para que eles saibam que tipo
eles quer mudar isso para. Você também pode adicionar
outras coisas a ele também. Como possíveis coisas
que você pode colocar aqui, algo assim também
seria o caso. E você pode ver que tem o valor eletrônico
da tela de título de substituição aqui, que é o mais importante, e qual é o que basicamente
vamos dar uma
olhada em apenas um momento
por enquanto, vamos aqui e no topo
dos
não inicializados, queremos dizer conflitos mod,
não conflitos registrados. Isso é praticamente tudo
o que precisamos fazer aqui. Então, como eu disse, é claro que
todo o código está disponível. Agora, sobre isso, o muito
importante é que você não
pode usar seus
valores configurados aqui em todos os lugares. E isso é algo que
é muito importante aqui. Porque alguns, isso, basicamente o que
vamos fazer é vamos administrar um cliente
por apenas um momento. E vou explicar por que pode
haver alguns problemas aqui. Então, temos dois
tópicos diferentes, certo? Portanto, há o thread do servidor e o cliente para isso, é
claro, também por isso temos o mod de núcleos MC aqui e a classe de cliente do
curso MC. Porque este é apenas o cliente, isto é, isso é para ambos. Isso deve ser quatro comuns. Basicamente. Nossa configuração agora será interessante
porque no, se estivermos no servidor, será
realmente carregado. E então, se estivermos no cliente, ele também será carregado. Então agora eu tenho meu microfone, ele começou e
então eu posso sair. E agora eu deveria ser capaz de encontrar meu conflito na pasta
R1 em conflitos. E lá vai você,
conflito de curso MC ou propriedades. E você pode ver que eles estão. Então você tem a chave real aqui e, em seguida, seja qual for
esse valor, e então você também pode
ver o valor padrão,
bem como o comentário que
eu basicamente adicionei aqui. Essa é a ideia geral, e é assim que ela é exibida. Agora, mais uma vez, o
interessante é que esse arquivo realmente
será o mesmo para o servidor
e o cliente. Agora, se nós, por exemplo, mudássemos algo
no que quer que seja nos itens mais, por exemplo, e dissemos que há
uma contagem máxima diferente aqui. Isso vai ser uma incompatibilidade entre o servidor
e o cliente. Seja muito cauteloso de onde
você está usando isso. Descobri que conflitos em tecido são muito mais difíceis de fazer corretamente. Então, em Forge, não
sei se
não há uma boa solução
que encontrei. Todas as APIs do Config são incrivelmente complicadas
e não são muito fáceis de seguir. Não tenho 100% de certeza. Este simples conflito
aqui será suficiente para definitivamente algumas ou
algumas coisas de clientes, 100% para as coisas do servidor. Bem, veremos. E você também pode separar
isso para fazer um, essas três classes basicamente, ou melhor, essas duas
classes fazem disso um mod. conflitos de clientes só
chamam isso no cliente, então ele
nem deve ser uma cratera no servidor porque, é claro, a tela de azulejos
substituída
neste momento, neste caso aqui, na verdade, na verdade, algo que só acontece no cliente
real. Mas, no entanto,
deve ser totalmente bom. Então, vamos entrar no evento de tela de título de
substituição. E então aqui vamos
dizer que vamos dizer mod,
mod client, sem mais conflitos. Eles vão mais conflitos
que substituem a tela de título. E
vamos apenas adicionar um fim e será isso. Basicamente, você
só vai verificar se isso é verdade ou não. E se fôssemos, por exemplo, mudar isso para
falso aqui, e depois começar de novo. Depois que isso foi
basicamente criado uma vez, agora ele deve ler
o valor real em. E vai dizer, ei,
substituir a tela de título é falsa e, em seguida, não
substitua a tela de título. Mas, como eu disse, ainda existem alguns obstáculos
na frente do conflito. Portanto, essa definitivamente
não é a melhor, a melhor solução no momento. Lá vai você. Funciona. Esta é a melhor solução
no momento, no entanto, não
é a melhor solução
provavelmente para sempre. Ainda não encontrei uma implementação muito boa
de qualquer coisa que seja uma boa
API de conflito para malha, mas
é o que é. Mas, no entanto, agora, pelo menos
adicionamos como o
ano de conflito para a tela, que é basicamente a coisa
mais importante aqui. Você também tem algo
para conflito, modo que pelo menos eles tendiam a entrar
na direção certa. A wiki de tecido MC, a propósito, tem uma lista de alguns conflitos
diferentes. Como eu disse, não
achei nenhum dos outros tão interessante
ou tão bem feito. Pelo menos eu realmente não, passei um pouco de
tempo com cada um deles. E o
conflito simples realmente é facilmente usado enquanto o caso de
uso que temos. Vou vincular isso
também para que você possa basicamente dar uma olhada em alguns
dos outros também. Mas, por enquanto, acho que ficaremos bem. Isso já está para
esta palestra aqui. Espero que você tenha
achado útil
e novo, e te vejo
na próxima palestra.
102. (tópicos adicionais) Adicione efeitos personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar um efeito personalizado ao Minecraft. Isso é uma coisa muito
interessante porque o efeito real vem
de outro aluno que realmente
importou esse efeito em sua multidão, mas teve um problema. E eu consegui consertá-lo. E eu fiquei tipo, Isso é
um efeito muito legal. Eu quero basicamente mostrar
como isso funciona e isso é realmente muito
mais direto do que você imagina. Em nosso pacote de cursos MC. Vamos clicar com o botão direito do mouse em
novo pacote em vigor. E então, em vez de lá,
vamos fazer duas novas aulas. Um deles será a classe
Mode Effects. Então o outro será
o efeito de congelamento. O efeito de como
isso vai funcionar é basicamente congelar uma entidade ou que ela não
pode mais se mover. Sabe, um
pouco de eu não diria necessariamente nenhum problema aqui, mas vai ser uma coisa
interessante de se ver porque há algum
tipo de maneiras interessantes, digamos, que isso funciona, mas vamos
ver como isso funciona. Vou copiar o
conteúdo da classe real,
estender a classe de efeito
de status que você pode ver. E então, basicamente, eles terão um
construtor normal aqui. Vamos sobrescrever o método de efeito de atualização de
aplicação. Portanto, esse será
o método de ticking que basicamente irá segurar cada tick que uma entidade tem esse
efeito de status aplicado a ela. E então, também, muito
importante, temos que substituir o método de
efeito de atualização pode aplicar e retornar
um verdadeiro aqui para que esse método seja uniforme porque
se isso for falso, então isso é nem mesmo casaco. Você pode ver que
basicamente estamos apenas pegando as
coordenadas atuais das entidades reais e,
em seguida, definindo-as, deixando a entidade real
voltar para essas coordenadas. Pode haver alguns problemas com isso, especialmente
com o voo. No entanto, para o jogador real, esse método chamado
é muito importante. E para qualquer outra coisa, então qualquer coisa que tenha uma entidade que está acontecendo no
mundo, então a velocidade definida é importante porque isso
basicamente faz com que os animais ou um zumbi ou o que quer que possa não ser mais
capaz de se mover. Então, ambos são importantes, e isso é praticamente
tudo o que você precisa fazer aqui na classe Mode Effects. Mais uma vez, vamos simplesmente copiar isso
porque por que não? Isso não é muito. E também, é claro, tudo
disponível para você
no passado ou para um
indivíduo também. Você pode ver basicamente
nada muito louco. Temos o efeito de status do que estamos
registrando aqui. E estamos
registrando isso dentro do carvão de efeitos de registro, o
que é claro
que é algo que precisamos chamar em vez do curso MC Ahmad
classe aqui, vamos passar
por cima do fundo aqui. Vamos dizer mais efeitos,
não registrar efeitos. Lá vai você. E isso é tudo o que
precisamos fazer agora, precisamos ainda adicionar
mais uma coisa e isso vai estar na pasta Texturas do curso
MC de ativos. Você quer criar um novo diretório chamado mob underscore effect. Efeito. Lá vai você, Effect.
E então queremos adicionar o PNG de congelamento a ele será o PNG real ou a imagem real que é exibida quando você
tiver esse efeito. Isso é, na verdade,
tudo o que há para ele. Na verdade, não é
tão complicado, especialmente o
efeito de status por si só. A categoria aqui deve ser
bastante autoexplicativa. Esta é apenas a
cor que você pode ver, esta é apenas a cor
real disso,
desse efeito de status
que vai ser usado, acredito em oceanos
e persas, basicamente
vamos
ver a próxima palestra também. Por enquanto,
vamos ter esse efeito sem porção. E depois de ter adicionado tudo isso, vamos ver se funciona ou
se estava de volta ao Minecraft. Então, vamos apenas adicionar
e ver se posso me
dar o efeito aqui. Então, este será
um jogador lá e você pode ver o
efeito de congelamento do curso MC está lá. Então, vamos dar
para mim e você pode ver, eu não consigo mover alguns
tentando pressionar as teclas, ou seja, não funciona, certo? E você pode ver que não temos uma tradução real
no momento, mas
isso vai ficar bem. E você pode ver que eu não consigo,
nem consigo mover o mouse. Ainda posso acertar blocos
se eu estiver feliz. Mas você pode ver que
isso é
muito , estou basicamente congelado. Provavelmente há algo
que você também pode fazer para que você não receba essa agitação quando estiver
tentando mover o mouse para cá. Mas, no geral, funciona. E então, assim que o efeito
desaparecer, lá vai você. Agora pode sair novamente e
tudo está funcionando bem. Então isso é muito legal. Como eu disse, todo o resto será adicionado
na próxima palestra, incluindo uma parte e toda a tradução estará lá também. Mas isso será para
esta palestra aqui. Espero que você tenha achado útil
e milhões no Novo, e eu te vejo
na próxima palestra.
103. (tópicos adicionais) Adicione poções personalizadas: Tudo bem, bem-vindo de volta
o curso de tecido para 118. Nesta palestra,
vamos adicionar poções
personalizadas ao Minecraft. Agora, porções personalizadas
são muito interessantes, e isso é claro
que vai se afastar
do friso efetivo que
adicionamos na última palestra. O que vamos fazer
é fazer um novo pacote aqui, e vamos chamar
isso de pacote de poções. Lá vai você. Então, em vez de lá,
vamos fazer uma nova classe Java chamada mod oceans. Eles atrás. Mais uma vez, eu realmente
copiarei o conteúdo aqui. Mas antes que possamos copiar
o conteúdo, o que queremos fazer é
realmente copiar sobre isso aqui. Se quisermos obter o friso da porção e, em seguida, registrar o método de
poção ou isso está naturalmente, disponível para você
no repositório do GitHub e interesses
individuais
também. Portanto, não se preocupe. Então eu vou realmente adicionar o método de
poções de registro modificado aqui, porque
poderemos adicionar as
receitas da poção Registrar em apenas um momento porque para as
receitas que adicionamos, nós realmente precisamos de
um misto aqui, mas não se preocupe. Na verdade, também não
vai ser complicado. Mas esse
método de poções de registro chamará aqui. Então, sob os efeitos motores, mais poção, comece a registrar
a poção. Então lá vai você. Isso deve ser isso. Agora, isso é realmente
importante
atribuirmos esse campo dentro
do método de poções de registro. Não tenho 100% de certeza. É só um
pouco estranho aqui, mas descobri que isso funciona. E se, se o atribuirmos
imediatamente
aqui quando inicializarmos o
campo e ele não funcionar. Mas seja qual for o caso, agora
precisamos de uma mistura. Então, se realmente dermos uma olhada
no registro de receitas de fabricação de cerveja aqui agora, eles estão em uma receita de
micróbios líquidos. Esta é uma ótima classe
que registra todas
as diferentes
receitas para poções. E você pode ser
como, isso é ótimo, mas infelizmente, o método de
receita de poção de registro é privado. Isso é um tipo de
problema aqui, é claro, porque isso significa que não
podemos simplesmente adicioná-lo. Se isso fosse público,
será muito mais fácil. Mas, felizmente, podemos
usar um misto. E para isso, vamos
fazer uma nova classe Java, e esta será
a receita de fabricação de cerveja. Você registra mixin. Lá vai você. Então isso vai ser, eu
realmente copiarei e isso é mais uma vez muito direto e, claro, tudo
disponível para você. Vou mudar isso
para uma interface. Isso é claro que vai misturar
a aula de
registro de receitas de fabricação de cerveja. Então vamos basicamente
ter esse método estático chamado apenas invocar receita de porção de registro, certificando-se de que esse nome
aqui é o mesmo que, deixe-me voltar aqui
como esse nome aqui. Então esse nome tem que corresponder a
esse nome no Volcker. E então estamos apenas adicionando
essa afirmação porque isso
nunca deveria ser frio. Se o misturado e funcionar corretamente, então esse método deve
ser chamado de entalhe, o que quer que esteja escrito aqui, Isso é apenas outra coisa. E então também temos que
adicioná-lo no
curso EMT, raça mista. E muito importante,
você quer adicionar isso, mas vamos adicionar isso aqui
mesmo sob o mixin. Portanto, isso é muito
importante em mixagem, não Cliente aqui, certificando-se de que isso
está escrito corretamente. Assim, podemos
verificar novamente a cópia, saltar isso e tudo
escrito corretamente. Isso é ótimo. Então o que queremos fazer
é ir para
a classe de porções MOD mais uma vez. E vamos
fazer uma dívida privada marcar. Não, lá vai você. Vazio estático. Vamos chamar isso de receitas de poções de
registro. E então, dentro daqui, o que vamos fazer é
chamar a mistura de
registro de receita de cerveja, invocar receita de porção de registro. E então vou dizer que
vamos usar as porções. Desajeitado, estranho. Eles atrás. E então eu quero que os itens mod
comecem ou lingote de cálcio, temos que ser adicionados
e, em seguida,
vamos obter mais poção começar a porção levantada
aqui como resultado. E isso é
praticamente tudo o que
precisamos agora que este
precisa estar frio aqui. Então vamos chamar isso
na parte inferior bem aqui. Depois que todos os
persas tiverem sido registrados para nossas porções
personalizadas
, registraremos as receitas da
porção também. E isso vai
registrá-lo a propósito, para todas as três
partes diferentes vezes sem poção. Poção, bem como a porção
persistente. Isso é praticamente
tudo o que precisamos aqui. E então ainda
precisamos da tradução, que é muito importante. E vamos adicionar
a tradução também. Mas a tradução
é muito interessante porque os itens aqui, então as partes estão realmente sob o namespace Minecraft. Não é 100% certo por
que esse é o caso. Eu acho que, quero dizer, é obviamente o caso porque quando
registramos uma poção, o
item da porção real será registrado no Minecraft. É apenas o que
é, mas tudo bem. E então também precisamos de
um para o efeito aqui. Só vou acrescentar isso. Vamos apenas
acrescentar isso na parte inferior
bem aqui. Então, efetue o congelamento do curso MC, e isso é gratuito. Então, essas são as quatro traduções
que precisamos também. E isso é, na verdade, tudo o
que precisávamos adicionar, a porção incluindo
a receita da poção. Então, acho que vamos ver se
funciona ou fósseis de
volta ao Minecraft. Então, vamos tentar
ver se
posso ou não criar minha parte personalizada. Então, se eu colocar o
oráculo entrando, já
estamos começando a
ter algum progresso aqui. Isso
já é muito bom, é claro, porque isso significa que está pelo menos
trabalhando a receita. Agora, espero que também
estejamos recebendo as
porções reais corretas aqui também porque, de outra forma,
às vezes você recebe a poção desconfortável
se algo deu errado, mas não congelamos a poção, porção de congelamento e
o oceano persistente também. Mas, por enquanto, podemos
realmente ir e ver
também como funciona para as mães. Vamos matar o ano das ovelhas. E vamos realmente
ver o que podemos ver. Se eu adicionar algumas ovelhas aqui, na verdade
, são algumas delas. Mas se eu acabei de quebrar isso, você pode ver agora
eles estão todos congelados. E o que eu posso realmente
fazer é
que você pode ver que se eu bater nele, isso realmente
vai ser interessante porque eles realmente
vão flutuar
no ar, bem como o Y é de claro também um congelado lá. Vamos realmente ver,
vamos fazer o seguinte. Vamos, na verdade, mais uma porção de
congelamento aqui. Vamos colocar alguns zumbis. E vamos ver. Vou voltar para sobreviventes que eles vão me
seguir e depois congelá-los. E então você pode ver que
todos eles estão congelados. Muito, muito engraçado,
mas na verdade funciona. E, às vezes,
eles são descongelados novamente. Volte aqui, lá vai você. E isso é, na verdade, o
quão fácil é. E como você pode ver,
todas essas coisas foram adicionadas corretamente, as porções foram adicionadas, tudo funcionando também. Então, vamos voltar aqui e ver todas as porções e
as receitas de poções também. Então isso é muito legal. Isso já seria para
esta palestra aqui. Espero que você tenha achado útil e tenha aprendido algo novo. Vejo você
na próxima palestra.
104. (tópicos adicionais) Adicione entidades personalizadas com Geckolib: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos adicionar uma entidade personalizada ao Minecraft. A tão esperada palestra
sobre como você pode adicionar uma multidão personalizada ou entidade
personalizada ao Minecraft finalmente
está aqui. E, no geral, será
bastante simples. Acho que todas as coisas consideradas, há muitos passos
que temos que passar, mas cada um dos
diferentes passos
na verdade não é tão difícil
por si mesmos. Agora, a primeira coisa que
quero dizer é que todas as entidades
que vamos fazer aqui
serão entidades labiais de gecko. Então, não vamos fazer
nenhuma entidade de baunilha. Começaremos imediatamente com as entidades labiais reais da gecko. E, na verdade, vou
vincular algo aqui. Então esse
será o lábio de gecko, basicamente o
repositório do GitHub aqui. Então o lábio de gecko que você pode ver é uma biblioteca de animação
ou matemática de micróbios. E no momento, basicamente o que
vamos fazer com isso é que vamos usar isso para realmente implementar
as entidades reais. E isso também nos
permitirá ter uma
maneira um pouco mais agradável de animá-los. Então eu recomendo
também fazer isso. Quero dizer, também, a palestra aqui
e as próximas palestras sobre as entidades sempre vão
exigir a biblioteca labial gecko
lá, não contornar isso. E também isso
não é uma coisa. Algumas pessoas são como, Oh,
eu não quero que outras pessoas também tenham que baixar
outro março, coisas assim. Não se preocupe com isso. Eu recomendo estar aberto a isso porque,
para o usuário, geralmente muitas coisas
acontecem em mod packs de qualquer maneira. E então algo
como o lábio de gecko
provavelmente está lá de uma
forma ou de outra. Seja qual for o caso, você pode ver o uso do tecido. Temos algumas coisas diferentes
que precisamos copiar. O que vou fazer é
realmente ter isso no meu outro monitor
já aqui para mim. O que vou fazer é
copiar as coisas
para que você possa ver que precisamos primeiro adicionar um URL maven
aqui nos repositórios. Então este será esse que sempre será
o mesmo. E então podemos realmente
dar uma olhada nisso. Então, isso vai
ser 32 que são na verdade a mesma versão
que eu tenho aqui também. E isso vai estar
sob dependências. Então, vamos
colocar isso aqui. A maioria das implementações software queima gecko lib, equilíbrio, arquivo
tracejado, fabric dash
118 e, em seguida, 3032. E isso é, na verdade, todas
as coisas que precisamos. Você pode ver que isso é para
forjado, então não precisamos disso. E depois há algumas coisas de
inicialização aqui, basicamente o que
vamos ficar bem com isso. Então, vamos voltar
aqui e vamos recarregar isso. Então vamos recarregar
isso mais uma vez, certo, para levar
alguns minutos, talvez, algo assim. Também pode
levar 20 segundos. Claro que depende muito da
sua conexão com a internet e também da sua parede
em geral, a velocidade do seu PC
enquanto eles passam 13 segundos. Isso é meio legal. Então, vamos realmente dar uma
olhada no que podemos ver agora. Há algumas
coisas que precisamos
adicionar em nosso pacote de cursos MC. Clique com o botão direito do mouse em novo pacote chamado entidades ou entidade,
na verdade, vamos fazer isso. Lá vai você. E então,
em vez de lá, faremos um novo pacote
chamado Custom. E, em primeiro lugar,
no pacote de entidades, vamos clicar com o botão direito do mouse em
nova classe Java chamada entidades mod. Lá vai você. E quanto mais entidades classe realmente será
preenchida em apenas um momento. Em primeiro lugar, precisamos
das entidades reais. Então, em nosso pacote personalizado, clique com o botão direito do mouse em nova classe Java, e essa será
a entidade guaxinim. Lá vai você. E então temos isso feito. Agora vou copiar uma
quantidade bastante sensata de coisas aqui, o que vai ser,
você vai dizer, ok, isso é um pouco de coisa
aqui. Não se preocupe com isso. A ideia geral aqui
é que, embora haja algumas coisas
que eu quero basicamente copiar
e copiarei. Primeiro de tudo, é claro, tudo isso está disponível para você
no repositório do GitHub no
indivíduo também. Então eu recomendo
que você vai ter que verificar isso de uma
forma ou de outra. E também há
muitas coisas que vou tentar explicar
o melhor que posso fazer. Primeiro de tudo,
isso vai estender
a entidade animal aqui. E, em seguida, também
implementará a IA animável. Você pode ver que isso é da Ecolab. Vamos passar o mouse sobre
isso e implementar métodos. E então vamos dizer,
ok, depois que isso for feito, você vê que o método de teste Create é que, para a entidade animal, vamos manter isso
nulo por enquanto. Na verdade, não
vamos dar uma olhada
na desova de
entidades tribais agora. Nas próximas palestras,
veremos talvez haja outra
palestra sobre isso no futuro. Mas, por enquanto,
nada como planejado. Seja qual for o caso, também tem os controladores de registro e
a fábrica de animação aqui. Esses são da interface
animável para os olhos. E então passamos o mouse
sobre isso de novo. Basicamente, então crie um
construtor correspondente super. E lá vai você. Agora vamos tornar esse construtor imediatamente público
para que tenhamos isso. E então vamos
fazer é
adicionar o fator de animação aqui. Então, vamos animar
na fábrica de animação, você pode ver uma
nova fábrica de informações privadas bastante
simples , fábrica, nova
fábrica de animação. E depois passando isso, então vamos
devolver isso aqui. Não vamos adicionar
animações nisso. Palestra na verdade, seja lá o que for, configurá-lo aqui
não é nenhuma preocupação. Então isso vai ser totalmente bom. Depois, há duas outras
coisas que definitivamente conhecemos. Então, a primeira coisa que
realmente precisamos é que queremos dizer que esse ponto ignore a câmera
para Ostrom é igual a verdade. Sinceramente, não tenho 100% de
certeza do que isso faz. Só sei que
devemos chamá-lo. Então essa é a ideia geral. Às vezes, esse é o
caso em entidades, também o
tópico bastante complexo, então não se preocupe lá. Mas seja qual for o caso, essa é a coisa mais fácil. Em seguida, queremos adicionar
alguns atributos. Vamos copiar sobre
o método de atributos definidos. Você pode ver que aqui, estamos basicamente construindo
alguns atributos. Você pode vê-lo máximo, saúde, velocidade de
dano e
coisas assim. Então, estamos basicamente configurando isso nessa entidade específica, esses números, é claro, você pode alterá-los
como quiser, mas eles precisam estar lá. Isso é muito importante. E então também
precisamos de alguns objetivos. Esta é a IA da
sua marca geral. Basicamente. Agora eu tenho duas coisas
aqui que são basicamente, já
posso excluir. Vamos precisar
deles em um pouco. Vamos basicamente em
palestras futuras quando estamos fazendo essa
entidade guaxinim, também T-Mobile. Isso é algo para
as futuras palestras. Como eu disse, podemos ver que existem alguns objetivos diferentes aqui e eles têm prioridades
diferentes. Quanto menor o número de prioridade, maior
a
meta real está em sua prioridade. prioridade 0 seria a
primeira coisa que acontece. E então, se houver um
conflito entre o basicamente, se dois objetivos pudessem ser
executados do que aquele com a prioridade mais baixa
e executados
na cara porque é
assim que funciona. E isso é, na verdade, todas as coisas diferentes
que precisamos adicionar. Não há
mais nada que precisemos
adicionar nessa entidade em si. Todo o resto vem, bem, quero dizer um pouco
mais tarde, quando
vamos começar com
a entidade da tabela. Então, nas futuras palestras, a entidade de gravação está concluída. Então, vamos para a classe de entidades
mod. E mais uma vez, eu vou
realmente copiá-lo, mas não se preocupe. Porque mais uma vez, tudo isso
está disponível para você e vamos passar por isso para que
possamos ver que vamos, vou criar um
novo tipo de entidade da nossa entidade de
registro de clientes aqui? E então
vamos chamar
registro, registro, que registre novo tipo de entidade. Vamos dizer que isso se
chama guaxinim. E, em seguida, vamos chamar o tipo de entidade de
malha de Construtor, criando um
novo tipo de entidade. Eu vou dizer que
este é um grupo
jurado de criatura , é claro, diferentes tipos de
pontes, como você pode ver. Você também pode ver onde diz que
é pacífico, sim, e então isso
vai ficar bem. Em seguida, criar uma nova
entidade guaxinim garante que você esteja, que você fez seu
instrutor Republic. Caso contrário, você receberá
um erro aqui, é claro. E as dimensões aqui
são as dimensões caixa do quadril dessa entidade. E então
vamos chamar o prédio ali mesmo e será
isso. Isso é, no entanto, é claro
que não é tudo porque nada
pode ser tão simples assim. No pacote de entidades,
vamos clicar com o botão direito do mouse novo pacote chamado cliente. E dentro daqui vamos fazer o modelo e o renderizador. Serão duas aulas, então será
o modelo de guaxinim. E também vamos
fazer o guaxinim. Se você for o
renderizador de guaxinim de classe Java, lá vai você. Essas são as duas aulas
que vamos precisar, mais
uma vez, copiar
algumas coisas aqui. Então, vou fazer
o modelo primeiro. Bem ali. Isso vai realmente
estender o modelo GO animado. Você pode ver a entidade de
guaxinim do tipo. Lá vai você. E então, se eu passar o mouse sobre isso, posso realmente ver três métodos que precisamos implementar. Estes são os três
obtém localização modal, modelados como local de
textura e são animados por localização. E mais uma vez, como eu disse, vou copiar sobre a abundância
, mas nada muito louco. Estamos apenas criando
novos identificadores sob nosso ID de modelo e, em seguida,
colocando o diferente, bem aqui está o local da
textura, local da
animação e
a localização do modelo. Vamos
adicioná-los em apenas um momento. Primeiro de tudo,
temos que basicamente terminar o código ou
quero terminar o código e, em seguida, também
vamos
mudar para
bancada de bloco para realmente ver nosso modelo de guaxinim
personalizado. E vamos antes de tudo ir
aqui para o renderizador real. Então, vamos dizer que
isso estende o renderizador de entidade geo
do tipo guaxinim. E eles vão. E então
vamos passar o mouse sobre esse super
construtor rápido. E então temos que
tirar o primeiro modelo. O segundo parâmetro
aqui, na verdade, porque aqui queremos passar
em um novo modelo de guaxinim. Isso é o que queremos. E então, apenas para ter certeza, também
vamos substituir o método de localização de textura get. Eu vou
basicamente passar o passatempo disso. Então você pode ver isso aponta
para a mesma textura. Este aponta para. Isso deve ser
praticamente tudo o que precisamos. E isso é, na verdade,
essas duas aulas feitas. Agora ainda precisamos combinar o renderizador com as entidades. Então, como fazemos isso? Bem, vamos entrar em nosso curso MC, método cliente. E então, na parte inferior,
onde vamos dizer, vamos dizer a entidade, renderizar um registro,
este aqui, registrar entidades de modo,
aquele guaxinim. Então vamos dizer que o renderizador de
registro dois pontos, dois pontos sabiam que
não deveríamos ter erros se tudo
tiver sido configurado corretamente. Portanto, as entidades reais, a classe CRF e
configuradas corretamente, as extensas foram
configuradas corretamente, então não devemos receber nenhum erro. E agora a coisa
realmente funciona. Mas agora é claro que
ainda precisamos de uma entidade. De onde obtemos uma entidade? Bem, a entidade que você
obtém de um banco de blocos. Agora já vimos isso
praticamente antes, mas vamos
entrar nisso novamente. E aqui você pode
ver o guaxinim. Não parece
incrível? Eu gosto, eu realmente gosto disso, mas isso é feito pelo Euro ou assim, isso vai, é claro, fazer o arquivo dos credores. Isso vai ser um
link lá também. Mas eu realmente gosto disso. Você pode ver que
basicamente isso é um, este é um modelo labial gecko. O que você vai precisar,
na verdade, está em plugins de arquivo. Não, isso não é necessário, certo? Vamos fazer plugins. Estas são as animações
labiais da gecko util. Você precisa deste plugin aqui. Caso contrário,
não vai funcionar. E então você pode fazer,
se você fizer um novo, você pode fazer um modelo animado
labial gecko. Então este é um lábio gecko
animar o modelo. E o que há de tão
especial nisso? Bem, você tem essa guia
animada aqui, e você pode ver que existem animações
diferentes para isso. Mas essas animações
neste caso já estão feitas, mas não se preocupe, é claro. Vamos vê-los em uma palestra
posterior quando estamos realmente passando pelas
animações por enquanto, o só queremos é
que
basicamente só queríamos exportar o modelo de gecko é que
isso não aparecem
para você a propósito, vá para converter, converter projeto
e, em seguida, certifique-se escolher o modelo animado
ao vivo da gecko. Se isso aparecer nisso, você
poderá
fazer isso corretamente. Então eu posso economizar, posso
dizer exportar modelo glicolítico. E então vamos
basicamente exportá-lo. Agora, na verdade, vai
copiá-lo também. Então, vamos voltar aqui. Portanto, o modelo é um arquivo
geográfico, ponto geográfico JSON, e isso tem que
ir para a pasta de ativos. E então vamos criar
uma nova pasta aqui, diretório GO, e então
ela entra lá. Então, vamos
apenas copiar isso. Lá vai você. E você pode ver que esta é a
geometria do guaxinim. Então, às vezes eu tinha um erro de digitação lá, mas
não se preocupe. Isso ainda deve funcionar
porque o que realmente procura,
é esse nome aqui. E desde que esse nome funcione com o nome
dado aqui, você pode ver o geode do
cão guaxinim GO adjacente. Isso é o que, este aponta
para a localização do meio. Ainda precisamos do local de
textura que estará sob
texturas, é claro. Em seguida, em uma nova
pasta chamada entidade. Que em vez de lá
vamos fazer uma nova pasta chamada guaxinim. Então este
será o guaxinim dot PNG. Então, vamos copiar
isso também. Lá vai você. E agora tudo está configurado. A duração da animação
que podemos ignorar por enquanto. Como eu disse, vamos
dar um passo de cada vez, e isso é praticamente
tudo o que precisávamos fazer
para adicionar o guaxinim real. Claro, como eu disse, dentro do banco do bloco, haverá muitas coisas
que você tem que fazer aqui. Este arquivo de bancada de blocos
também estará disponível para você. Portanto, não se preocupe lá. Você pode basicamente pegar
isso e experimentá-lo e depois ver o que você
pode usar com isso. Caso contrário, é muito importante que
basicamente
usaremos a gecko ao vivo a partir
deste ponto em diante. E, no geral das outras coisas praticamente
devem ser feitas aqui, selecionamos o neste rio registrado o
guaxinim e o renderizador. E apenas para passar por cima
disso para uma entidade personalizada, o que você vai
precisar é que você
precisará da classe de entidade. Você não precisa de um
renderizador e um modelo. Agora, isso é realmente o mesmo se você não estiver usando a Ecolab. No entanto, a extensão aqui, é
claro que vai ser
diferente porque este vai ser um
modelo GO animado aqui para lábio de gecko. E não será isso para um
tipo de entidade normal ou baunilha, certo? Então, há mais uma coisa
que precisamos fazer e que é definir sobre
os atributos. Agora vamos fazer isso em
nossos registros, aqui mesmo, os registros de modo,
vamos apenas fazer uma nova classe privada estática nula. E esses serão
os atributos de registro, mas isso vai ser um
resfriamento da entidade de malha, vamos chamá-la de registro de atributos
padrão de malha . Eles atrás registram
entidades mod, aquele guaxinim. E então vamos
chamar os atributos do
conjunto de dados da entidade guaxinim que eles atrás. E isso deve
ser que o erro aqui seja ou o
aviso aqui deve estar bom. E então, é claro, vamos
chamar isso aqui, registrar atributos que eles são um objetivo. E então mais uma coisa que é, claro, bem importante. Todas as coisas consideradas
serão os ovos de desova. Então vamos precisar de um ovo de
desova para o guaxinim. Vamos entrar na nossa classe de itens de
modo e vamos adicionar isso também. Vamos
apenas copiar isso. Este vai ser o sublinhado de guaxinim sublinhado ovo sublinhado. Agora isso vai ser chamado
de ovo sublinhado de
sublinhado de guaxinim. Este será um
novo item aqui. O primeiro parâmetro do qual será
os tipos de entidades de entidades
mod que guaxinim e entre elas terão
cores primárias. Então, eu realmente
vou copiar isso porque eles são basicamente justos, essas são as cores do esperma e do óvulo
reais basicamente. E já me instalei para que não precisemos adicionar isso novamente. Agora, o que precisamos fazer, e isso é muito estranho, mas quero dizer, é o que é. Na verdade, precisamos
adicionar um spawn AG Jason arquivos enquanto estiver no arquivo adjacente do
modelo de item. Então, na
pasta de itens de modelos e copie isso. Agora isso vai ser
muito, muito direto. Você pode ver que ele só tem o pai do
modelo de item gerando ovo
e, em seguida, eles respondem
em ficar coloridos. Também adicionamos a tradução porque, então, também temos
isso feito. Este é um item aqui. Vamos colocá-lo
aqui. Lá vai você. Assim, o guaxinim gerou
ovo agora também
adicionado com sucesso também e deve
imediatamente enquanto apenas trabalha. Quero dizer, isso é
praticamente o quão fácil isso deve ser. E agora estou bastante certo que tudo aqui
foi adicionado. Podemos ver que existem
alguns passos aqui. No entanto, uma
vez que você
passa por eles uma e outra vez, isso é praticamente
sensato nos objetivos aqui. Quero dizer que
há muitos objetivos. Então, se nós
clicar no botão do meio do mouse no objetivo aqui, você pode ver a classe de meta. E se eu pressionar clicar nisso
e depois pressionar Control H, você poderá ver todos os
diferentes objetivos que estão em baunilha e eu posso
até expandi-los. Há ainda mais objetivos aqui. Você pode
dar uma olhada neles. Você pode até
fazer seus próprios objetivos. Em teoria, isso é
muito complicado. Não vamos
entrar nisso tão cedo. Os objetivos são muito, muito complicados
e as melhores maneiras dar uma olhada
nisso como definitivamente antes de tudo, os objetivos de baunilha. E, em segundo lugar, você
sempre pode dar uma olhada em alguns repositórios do
GitHub de outros mods onde pode haver algumas entidades com
objetivos interessantes que você já viu. E você pode então dar uma
olhada em como eles são feitos e aprender com o fato de que os objetivos
são muito complicados. É IA, é o que é. Mas, por enquanto,
isso é tudo o que precisamos. Então, acho que vamos ver se
funciona ou se as respostas na microfísica veem que a desova de guaxinim
foi adicionada. Então agora vamos ver se
podemos gerá-lo. E aí está, o guaxinim realmente
aparece e lá vão eles, andando por aí,
é claro, neste momento, não é realmente animado. E eles também têm
alguns deles. Mas se eles realmente
sobreviveram como dois hits, três acertos com
outra fonte de luz. Então isso é muito louco
porque eles ajudam, é
claro, foi
bem alto. Mas isso é algo que
você sempre pode mudar. Isso é algo que está
sempre aberto à experimentação aqui, mas você pode ver os animais
reais surgem. Então isso é
muito legal. E bem, quero dizer, vamos ver onde o futuro dos
leads com eles. E vamos realmente
dar uma outra olhada
na classe de entidade porque há mais algumas
coisas que podemos adicionar, o que pode ser
interessante para você, onde nos encontramos de volta
no classe de entidade e
só para que você tenha visto porque isso provavelmente será algo que
as pessoas vão perguntar. Porque, quero dizer,
é claro que você sempre pode entrar na
aula de animais aqui e dar uma olhada em
todos esses métodos que você
pode substituir. mesmo a propósito, com a entidade passiva e
a entidade consciente do caminho
e assim por diante e assim por diante. Podemos ver que as
entidades estão indo todo o caminho de volta para
a entidade viva, que basicamente todo o
resto aqui são basicamente descendentes
da hierarquia. É altamente recomendável também
verificar esses. Há muito a ser ganho ao olhar para as entidades de baunilha. Você sempre pode encontrar
coisas interessantes da maneira como elas funcionam. Mas uma coisa que também
pode ser perguntada, como adiciono
sons personalizados à minha entidade? E para isso temos quatro métodos diferentes
aqui , onde vou copiar
sobre o som ambiente,
o som hertz para o som
surdo e o som passo. Esses quatro métodos, você pode
simplesmente retornar um evento sonoro. Isso, é claro, então, inclui os
eventos sonoros personalizados que já vimos em palestras anteriores. Então, isso também funcionaria. Então, altamente recomendável, você pode basicamente fazer isso e, em seguida, ele vai reproduzir esses sons
em circunstâncias específicas. Eu definitivamente
queria mostrar isso também. Isso pode ser algo
muito interessante para você. Caso contrário, todo o
resto realmente
recomenda dar uma olhada em
alguns dos exemplos de baunilha. E então também basicamente, bem, dando uma olhada em como podemos fazer isso nas
próximas palestras. Porque, como eu disse,
vamos fazer algumas palestras diferentes sobre, bem, quão diferente, como
as entidades reais funcionam. Então, vamos basicamente
configurar as animações reais. Da próxima vez. Vamos dar
uma olhada em algumas
das variâncias e, em seguida,
algumas outras coisas também, o que é realmente interessante. Então eu recomendo verificar
esses também. Mas, por enquanto, isso 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) Adicione animações de entidades com Geckolib e BlockBench: Ou eu dou as boas-vindas de volta ao curso de
tecido para 118. Nesta palestra,
vamos adicionar animações
personalizadas à
nossa entidade personalizada. Para isso. Primeiro de
tudo, vamos voltar para o banco quebrado. E, como é claro, na última palestra, nós adicionamos
a entidade guaxinim. Este modelo de bancada de bloco está
disponível para download. E quando você tem isso, o que é muito
importante é que este é um modelo labial gecko aqui. Se isso não for formatado
corretamente, você pode converter o projeto em um modelo animado de lábio de gecko. E então você deve ter
essa guia do Animate aqui. E na guia Animate, você pode ver se você já
trabalhou com algo como qualquer coisa que seja um programa de edição
onde você tem
certas chaves, seus quadros-chave
que você pode definir. Isso também é animação
em, por exemplo, unidade, algo assim é
basicamente o mesmo aqui. E o que podemos fazer é clicar na animação da ilha. E por exemplo, posso clicar
na cauda e você pode ver que defini algo
na rotação aqui. O que posso fazer é
simplesmente reproduzir a animação. Você pode ver que
sobre a cabeça e o corpo estão lentamente
subindo e descendo. E a cauda aqui está apenas balançando um pouco
para frente e para trás. O que você pode ver se eu clicar neste quadro-chave que podemos até colocar em certos métodos chamadas de
função aqui, você pode ver Query
anime time math sin, esta é apenas a onda
senoidal que somos em seguida, colocando o tempo real de
animação em. E isso basicamente só, bem faz isso no eixo y. Então, ele vai girar
isso no eixo y. Essa é a ideia geral aqui. Você pode colocar muitas coisas
diferentes aqui. Você também pode, é claro,
colocar os quadros-chave manualmente. Assim, você pode fazer um quadro-chave,
fazer algo a respeito
e, em seguida, avançar o tempo, criar outro quadro-chave,
avançar o tempo fazer outro quadro-chave
e assim por diante e assim por diante. E é claro que você pode fazer isso manualmente sobre o que
eu fiz como eu disse, aqui no corpo. Eu fiz a onda senoidal na cabeça. Eu também fiz uma
onda senoidal para cima e para baixo. E então, para a cauda, também
fiz uma onda senoidal. Então você pode ver que esta é onda
senoidal e, em seguida, a
posição aqui
também está em uma onda senoidal
apenas
um pouco de valores
diferentes ou diferentes aqui, que parece um
pouco diferente, mas no geral,
parece muito bom. Então, é apenas muito simples, mas basta
dar uma impressão de alguma vida que eles são em vez
de apenas ter uma estática. E também podemos dar uma
olhada na animação da caminhada. Você pode ver lá você
vai, a animação de caminhada. E então também podemos dar uma olhada na animação sentada de que uma é realmente
completamente estática neste caso, também
seria
algo adicionado lá. Mas, por
enquanto, estou muito feliz com o que é isso. Também é apenas um exemplo
aqui, sem preocupações lá. O que fazemos com isso? Com todas essas animações? Então, como salvamos
essas animações enquanto vamos à animação? E então vamos
salvar todas as animações. Primeiro de tudo, então você pode ver onde eu quero salvar isso
na idade Tracer file raccoon
animação, esse traço. Então, vou salvar isso. E então podemos basicamente usar esse arquivo JSON para
o nosso projeto. Vamos
voltar para um tecido. E se nos lembrarmos
disso no modelo, temos que especificar o
local para as animações. Isso vai acontecer mais
uma vez, ativos pasta do curso
MC aqui. E então aqui
vamos fazer um novo diretório
chamado animações. E então lá dentro, vamos colocar a animação de
guaxinim, aquele arquivo adjacente,
a ressalva está aqui. E então eu só tenho que
mudar rapidamente o nome de guaxinim CR2. Isso é algo que
deve ser consertado para você. É só que havia um erro de
digitação lá antes, e então deveríamos ser ferro. Agora temos essas
animações que somos basicamente
feitas aqui. Agora, como
vamos usá-los? Como eles podem ser usados? Bem, eles podem ser
usados na classe de entidade. Então, lembramos que adicionamos os controladores de registro
e a fábrica aqui. E agora temos que adicionar mais
duas coisas lá. Então, antes de tudo,
vamos adicionar o predicado. O predicado é um método, então
vou adicionar isso na parte inferior aqui. Vamos fazer
algo como animação. serão
as animações onde você pode ver este é o nome
da animação que basicamente
usará esse nome aqui, tem que corresponder a esses nomes, certo? Então você pode ver que esta
é a
animação sentada que não
vamos
usar neste tutorial laranja em
vez desta palestra. Vamos usar isso
na palestra posterior. E então essa animação
da animação ambulante aqui é realmente algo
que usamos aqui. E então a
animação ociosa aqui, esses nomes têm que
corresponder muito importante. E então a questão é,
quando isso está acontecendo? Bem, você pode ver
que a animação de
caminhada está acontecendo quando o evento está se movendo, você pode realmente dar uma
olhada no evento de animação e ver alguns exemplos aqui. Normalmente, não
há muitos exemplos. Algumas outras coisas que veremos, especialmente com
o evento de configuração. Veremos em um pouco como
podemos , em uma palestra futura, como podemos basicamente
implementar isso quando
tivermos a
animação sentada também. Mas, por enquanto, queremos isso e, em seguida, o que
queremos adicioná-lo
ao evento controllers registrado está seguindo. Mais uma vez, é claro que tudo
isso está disponível para você
no repositório do GitHub e
individual também. Vamos realmente pegar este. Portanto, esses são dados de animação
no controlador de animação. Vamos fazer um novo
Animation Controller apenas com um controlador de animação aqui. E então
vamos passar para este kit de produto de pontos ou
este produto de cólon. E este produto
aqui é solicitado, e agora essas
animações devem ser,
bem, basicamente, basicamente
funcionais já. Isso é tudo o
que precisamos para essas
animações específicas aqui, porque já
configuramos tudo com o modelo aqui. Isso é aponta para o arquivo JSON
real. Atualizamos e exportamos tudo do banco de
blocos aqui. Pior, se você quiser ter
algumas animações loucas e legais, há sempre, há muita coisa
que você pode fazer sobre isso. Mas, como eu disse, no geral, é apenas uma questão
de experimentá-lo. Estar aberto à experimentação mais
uma vez aqui, certo? Quero dizer, nós não vamos
passar por todas as coisas e você também terá que experimentar algumas coisas por conta própria. Mas, no geral, é
praticamente assim que você faz isso. Sim. Vamos ver se funciona. Ou o que encontramos foi de volta ao Minecraft. E, como você pode ver, as animações reais foram adicionadas com sucesso ao jogo. Então você pode ver que você sabe, a animação ambulante também. Então, ambos
funcionam a propósito,
os sons também funcionam a partir da última
palestra que podemos ouvir. Esses também funcionam. Vamos realmente pegar o
som surdo que eu acho que era de um porco. Vamos ouvir isso também. Sim. Isso é meio
estranho, mas tudo bem. E então o ambiente real soa ou do
golfinho, quero
dizer, não se encaixa,
mas é meio engraçado que realmente funciona. Mas, o mais importante, as animações funcionam,
como você pode ver, que isso é muito legal e foi bastante fácil de implementar
todas as coisas consideradas, posso dizer o que
definitivamente mais fácil implemente algumas dessas animações
personalizadas. Neste caso, em vez fazê-los com o modelo de
baunilha,
isso é muito mais difícil, posso dizer isso, mas
muito legal. No entanto. Isso já está para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
106. (tópicos adicionais) Adicione as variantes de entidade: Ou eu sou bem-vindo de volta ao curso de
tecido para 118. E nesta palestra
vamos adicionar multidão
personalizada, variância
ao Minecraft. Então, o que isso significa é basicamente, você provavelmente já
viu a entidade
do cavalo, a multidão de cavalos em Minecraft, e ela pode ter cores
diferentes ou códigos
diferentes. E isso é exatamente o que
vamos fazer pelo guaxinim. Agora, isso é surpreendentemente uma
coisa muito simples de se fazer. Agora, há
alguns lugares onde realmente
precisamos
adicionar algumas coisas. Mas, principalmente, é claro
, na classe de entidade e também no renderizador, se não me engano, sim, está no renderizador e
no modelo, na verdade, há alguns lugares onde precisamos mudar algumas coisas, mas não se preocupe lá. Na verdade, uma vez que você entende o que
estamos fazendo aqui, na verdade
é bastante
simples. Mas a primeira coisa
que vamos fazer é no pacote de entidades,
vamos clicar com o botão direito do mouse em novo
pacote chamado de variação. Então, em vez de lá,
vamos fazer uma nova classe Java. Vamos selecionar enum, e este será
o guaxinim uma variante. Agora vou copiar
o conteúdo disso. No entanto, basicamente haverá o mesmo toda vez que você
fizer uma nova variante. É assim que parece. As únicas coisas que você
precisa mudar são basicamente as referências reais aqui
ao nome dessa classe. Caso contrário, está tudo bem. E então aqui, assim como qualquer outro enum que
vimos anteriormente, você apenas lista todos
os diferentes enquanto enums aqui e depois
apenas se lembra deles. Quero dizer, aqui isso
é provavelmente
como verde e esse ID que
provavelmente é um pouco
mais sensato aqui neste caso, seja qual for
o caso. Então, vamos ter
um invariante padrão,
uma variante escura e
uma variante vermelha. Agora, como escolhemos esses? Como sabemos o que
vai acontecer aqui? Bem, o que vai
acontecer é
na classe de renderizador de guaxinim aqui, vamos adicionar um mapa. Mais uma vez, eu
realmente copiarei isso. No entanto, é muito
simples uma vez que você realmente vê como ele se
parece e, em seguida,
parece talvez um pouco louco e
no primeiro sinal, mas então você vai ser como, Ok, isso é na verdade,
não é muito louco. A única coisa que
estamos fazendo aqui é que
estamos dizendo bivariante de localização, um novo mapa da
variante Raccoon para o identificador. que significa apenas que se o, se estivermos
passando para essa variante, o guaxinim padrão
variou aqui. Vamos apenas
apontar para essa textura. Se for a variante escura,
vamos apontar para essa textura. Se for a variante vermelha, vamos apontar
para essa textura. Isso é literalmente
tudo o que há para ele. Se você tiver vários,
basta adicionar mais aqui, saída
mapeada e, em seguida, com uma nova variante e
assim por diante e assim por diante. É isso. A
localização real da textura aqui e agora tem que ser alterada. Então, temos que dizer ponto
bivariante de localização obter. Agora a questão é, bem, como obtemos a variância? Bem, temos que de alguma forma colocar
a variante na entidade. Isso é o que
faremos a seguir. Vamos deixar essa
área aqui por enquanto, e vamos mudar
algumas coisas na entidade. Isso é um pouco
mais complicado, digamos, onde há
mais partes nisso. No entanto, estou mais uma vez, tenho certeza de
que tudo ficará bem. Vou copiar todos os métodos diferentes agora isso vai ser
alguns deles, mas vamos suportar comigo e
vamos passar por isso. Vou então explicar todos
os métodos diferentes que teremos um erro aqui, ou
seja, as setas de dados. Então, na verdade, precisamos de
algo chamado de dados de
trato do tipo inteiro. E eu vou realmente adicionar
isso ao topo aqui, porque geralmente gosto que os
dados de prática reais aqui estejam
no topo e, em seguida,
não há mais erros
na classe
de entidade. E então, na verdade, vamos explicar
o que o FREC está acontecendo
aqui.
Mas o que temos? Temos antes de tudo, esse rastreador de dados, isso
é interessante, certo? Portanto, os dados de rastreamento aqui
que você pode ver são, bem,
é uma maneira de armazenar dados em uma entidade que é rastreada tanto
pelo
cliente quanto pelo servidor. É claro que isso é muito importante
que esses sejam os mesmos. E podemos ver por
um exemplo aqui, se eu clicar
na entidade animal pressione
Control H e, por exemplo, entrará na entidade espaço
OR. Podemos ver que há algumas coisas de dados
práticos aqui. Você pode ver que
existem algumas bandeiras. Existem os dados
do proprietário UUID. E acho que
podemos ir mais longe na entidade talvez
no cavalo. Lá vai você. Temos uma variante de
identificação sem osso de armadura aqui também. E isso é praticamente
exatamente o mesmo mundo funciona. Então, é praticamente
aqui que consegui como isso funciona
da entidade cavalo. Então, mais uma vez, é
só mostrar mais uma vez. Está tudo nas
aulas de baunilha também. Você pode dar uma olhada
neles e você pode
encontrar quase qualquer coisa
lá também. Eles são a ferramenta West e o melhor recurso que
você tem em mãos. Agora, o que mais temos
na classe em que
usamos isso, certo? Então, vamos usar isso. Você pode ver em primeiro lugar aqui
no rastreador de dados init, isso é incrivelmente importante. Você precisa adicionar este
ano, caso
contrário, não funcionará. Precisamos inicializar esses dados. O rastreamento desse tipo
real de dados. E então podemos ver que
temos um método de variante definido que, na verdade, é
usado apenas nesta classe específica e é usado apenas
no método inicializado. Enquanto o
método inicializado, bem, isso é chamado quando uma
dessas entidades é gerada e
especialmente quando é vínculos, por exemplo, através de uma desova. O que é suposto
responder ovo, o que é claro que queremos é que
queremos uma variante aleatória aqui. Vamos definir essa variante e então ficaremos bem. Vamos o que acontece aqui. Em seguida, também temos um método de leitura e
direito para dados NVT. Isso deve ser bastante
autoexplicativo. Estamos apenas salvando
a variante
aqui e depois estamos
lendo aqui. Praticamente tudo o
que você precisa saber, enviando-o mais uma vez, também
bastante autoexplicativo. Esta é a única coisa
que é meio estranha aqui com esse fim. E no 255, isso é apenas algo
que é necessário. Não vou entrar em
muitos detalhes. São apenas algumas travessuras Java
basicamente com o ID. Porque na variante
aqui você pode ver que ela é meio que
salva dessa maneira. Então, vamos basicamente mantê-lo assim e
ficar bem com isso. E vamos dizer,
ok, é o que é. É assim que precisa ser feito, mas tudo funciona bem. É praticamente isso. Esses
são os diferentes métodos. E agora, claro, o que
podemos fazer aqui é que podemos dizer entidade e o T.
Lá vai você, certo? Ponto de entidade obtém covariante. E então lá vai você. E então precisamos
fazer a mesma coisa no modelo aqui,
onde, claro,
também temos a textura. Mas podemos literalmente pegar
a mesma coisa, esta. E nós só temos que
dizer aqui , então o renderizador de guaxinim, Isto é o
que queremos levar esse local bivariante, mas obter entidade, obter variância. E é isso. Agora, é claro, ainda
precisamos da textura, então não nos esqueçamos de copiar
sobre ambas as texturas. Caso contrário, isso
seria definitivamente um pouco de supervisão. Então, vamos guaxinim,
lá vai você. E então temos guaxinim escuro e o guaxinim vermelho também. Lá vai você. E isso deve ser
praticamente tudo o que precisamos. Vamos apenas garantir que tudo isso também esteja escrito corretamente. Raccoon escuro deve estar bem, guaxinins
vermelhos também estão bem. Isso deve funcionar. Isso deve funcionar e
ser funcional, então
isso é muito bom. E isso é realmente o
quão fácil é adicionar alguma variância. Agora, mais uma vez, é claro, há muitas coisas pequenas
diferentes. Digamos que o mapa aqui
não seja muito louco. Isso não deve ser muito louco. Isso não deve ser muito louco. mesmo com a entidade real. A quantidade de métodos não
é muito quando você
pensa sobre isso, não
são muitos métodos. É muito para
envolver a cabeça
quando você pensa sobre isso. Esses dados, variante de
empate de identificação de dados, ok Há um pouco
estranho, mas no geral, não deve ser
nada muito louco. Você sabe, neste momento,
espero que a maioria de vocês tenha conhecimento Java
suficiente
para você apenas passar
por isso
e
entendê-lo de uma perspectiva Java. E mais uma vez,
é claro, como eu disse, as aulas
de baunilha oferecem todos os exemplos diferentes. Existem incríveis e realmente bons e você pode trabalhar com eles também. Mas, por enquanto,
porque adicionamos tudo, vamos
ver se funciona. Ou células de gordura em Minecraft. Então, vamos gerar alguns
guaxinins, e lá vai você. Já temos toda
a outra variância aqui, gerando alegremente. Aqui, a partir do ovo de desova, você pode vê-lo, tudo funciona perfeitamente bem. E isso é só, isso
é simplesmente incrível, não é? Então, neste caso, é claro, a variante realmente
é um pouco de uma textura de parede diferente
em termos de coloração. Mas quero dizer, isso ainda é muito legal,
realmente incrível. E quero dizer, está
funcionando muito, muito bem. E quero dizer, é geral, eu acho e espero que
você concorde com isso é realmente bastante
simples e não muito difícil de fazer. Então isso é
muito legal, certo? Como sempre, é claro que todo o código está disponível para você
no repositório do GitHub em
indivíduos também. Mas, caso contrário
, isso seria para esta palestra aqui. Espero que você tenha achado isso útil e
aprenda algo novo. E te vejo
na próxima palestra.
107. (tópicos adicionais) Adicione entidades de Tameable: Ou eu sou bem-vindo de volta ao curso de
tecido para 118. Nesta palestra,
vamos adicionar
a funcionalidade de capacidade
à nossa entidade guaxinim. E para isso, o que vamos
fazer é antes de tudo, vamos mudar
a superclasse real aqui para uma entidade alcançável e
alcançável. Entidade atingível. E então só
precisamos copiar isso aqui
para o tipo de entidade. E então vamos
fazer a mesma coisa com os atributos aqui. E o que vamos fazer então é que vamos adicionar mais
uma vez algumas coisas agora
vou copiá-las mais uma vez,
mas não se preocupe. Tudo isso está
disponível para você
no repositório do GitHub em
indivíduos também. E não devemos ter
erros na teoria. Isso incluirá, mais uma vez, em algum trato um dado aqui, esse tipo, desta vez
do tipo de booleano. Como você pode ver, um booleano. Este é o booleano sentado. Isso é muito importante
porque isso vai salvar
se este guaxinim,
esta entidade está sentada
ou não . Agora já existe uma configuração. Digamos, o que você diria uma variável sentada
na entidade da tabela, acredito que isso deveria estar
aqui, bem aí você vai. booleana privada. No entanto, isso aqui é
que acredito apenas no servidor. que significa que esse tipo de coisa
interessante porque isso está apenas no servidor se
agora também adicionarmos o seguinte, uma animação
para sentar nesta aqui. Então, vamos
adicionar isso também. Você pode ver se isso está sentado, então este é meu
booleano personalizado aqui, que realmente leva o rastreador de
dados sentado. Se isso é antigo, não funciona porque
isso aqui, tudo
o que o
laboratório de gecko faz
praticamente é apenas no cliente. As animações
acontecerão no cliente. Portanto, a variável sentada
tem que ser de alguma forma traçada. É por isso que precisamos adicionar
uma variável sentada personalizada. É por isso que este
existe aqui. E é por isso que este existe. E isso realmente chama
esses conjuntos sentados. Este é realmente
chamado de super método aqui que
define isso como igual a ele, mas não podemos usá-lo. O método normal está
sentado nesse caso, porque isso simplesmente não funciona. Também é uma coisa muito importante. Por favor, note que
temos que adicionar a variável are sitting ao rastreador de
dados aqui. Isso é incrivelmente importante. Por favor, não se esqueça
disso, caso contrário, seu jogo falhará quando
você entrar em nosso mundo. Isso é muito importante agora para provavelmente o
grande método aqui, e esse é o método móvel
Interact. Então podemos ver que temos um conjunto, definir um método is sitting. O placar é necessário
para a equipe real. Então, isso é apenas para que
a coisa real da equipe central
das entidades
e, em seguida, possa ser lixiviada. Vamos apenas colocar
isso em falso porque tem sido
um problema com a gecko live e basicamente colocando
a liderança em entidades que
não funcionam bem. Seja qual for o caso, eles interagem método mob. O que é isso? Bem, isso é claro que é um código
quando você clica com o botão direito em uma multidão. Agora, quando
clicamos com o botão direito nessa multidão, o que queremos fazer,
é claro, é que queremos alcançar. Possivelmente. O que eu tenho aqui, por exemplo, é o item para domesticar. Acabei de criar um
pouco de uma variável aqui. Acabei de definir isso para uma maçã. Então, se você quiser mudar isso, você pode simplesmente mudá-lo aqui. E então podemos ver, bem, se o item é realmente o item para domesticado com
o qual
estamos clicando com o botão direito do mouse. E é, a
entidade real ainda não está domada, então o que
faremos desde que estejamos no servidor real. Então isso acontece
no servidor. Então o que vamos
fazer é basicamente Hey, basta definir o dono para o jogador que é
clicado com o botão direito do mouse. Vamos fazer algumas coisas básicas de
recálculo. Vamos enviar o
status da entidade aqui e, em seguida,
definiremos imediatamente para definir o, depois de realmente
domar uma entidade, vamos configurá-la para sentar. Interessante. Agora, se ele já estiver domado, estivesse no servidor
e a mão principal está certa e
clicamos com o botão direito do mouse, então vamos apenas
alternar essa configuração. É muito importante que
tenhamos essa mão aqui
também porque esse é um problema real. Isso é frio para ambas as mãos. Então é por isso que talvez se
você não tiver isso, na verdade
não vai funcionar. Já vi esse erro ou
erro algumas vezes antes. Agora, se fôssemos
executar isso assim, teríamos um pouco de problema e é que a entidade real
não se senta. Agora, por que esse
é o caso? Bem, porque
na verdade temos que adicionar mais dois objetivos aqui. E isso será
o número um, o objetivo definido com prioridade um, é incrivelmente importante
que esse objetivo seja acima de todos os
outros objetivos maravilhosos. E eles olham em volta de
metas e tudo isso. Porque, como você pode ver,
onde é importante que eles se sentem a meta é
maior do que o objetivo maravilha. Caso contrário, o que
acontecerá é que o guaxinim se sentará e
então ele vai se perguntar, e então ele vai se
sentar novamente e então
vai se perguntar, e
isso pode se sentar novamente. É por isso que a prioridade
aqui tem que ser, bem, quero dizer menor nesse
caso, mas uma direita mais alta? Então, só precisa ser um
número menor aqui neste caso. E então o
dono do caminhão ataca ou um gol. É que eu nem acho que
precisamos disso, porque na verdade não acho que o
guaxinim atacaria
um ataque alguém que
detecta o dono. Mas, na verdade,
não tenho certeza disso porque parte disso também
foi tirada
do lobo. É claro que também podemos
dar uma olhada nisso. Basta procurar
lobo com entidade. Lá vai você. E então podemos basicamente dar
uma olhada em todos os objetivos aqui que você pode ver que é
realmente bastante extenso, como muitas coisas diferentes. Principalmente o atacante
cairá o objetivo do proprietário. E você pode ver
mais uma vez, o objetivo definido está no topo aqui. Prioridade dois, muito, muito
importante que este seja o caso. Caso contrário, você pode
ter alguns problemas. Portanto,
tenha isso em mente. Isso é incrivelmente importante. Agora, além disso, a habilidade é realmente
feita assim. É uma entidade tributável e
depois tem a possibilidade domá-lo exatamente com a variável
sentada aqui também. Agora, a variável sentada,
se você tem algo que você realmente não
quer que ele fique
sentado, totalmente bem, então você
não precisa adicionar isso. Você não precisa
adicionar o sentado. Você não precisa adicionar
isso basicamente só precisa do método de mob de interação. Isso é praticamente
tudo o que há para ele. Mas, por enquanto, eu diria, na verdade porque adicionamos tudo
por causa da conclusão, vamos ver se funciona ou se o
conselho está de volta ao Minecraft. Uma coisa mais importante
aqui também é dizer, a
propósito, quando você está
usando isso em tecido, basicamente, toda vez
que você entra no mundo, você tem um jogador diferente, mas é muito importante
ou um nome diferente. Portanto, é muito importante
que, quando você tem
isso, às vezes, seja muito difícil testar isso
às vezes. Qual o caso pode ser? Vamos realmente tentar
clicar com o botão direito do mouse. E lá vai você,
melhores amigos para sempre. Agora, como você pode ver,
está sentado direito. Então, geralmente, o que
eu faço é apenas envolvê-lo em alguns quarteirões aqui apenas
para garantir que ele diga realmente,
não diz sentar
que é a entidade real. Fique aí, mas parece
muito bom, certo? Eu também posso me
afastar um pouco. Ele deve ficar lá.
E mais uma vez, posso clicar com o botão direito do mouse e
agora não está mais sentado. Agora, a animação mudou, e agora ela também deve começar a
se mover sozinha ou
eu, na verdade, não
coloquei em um vazio, segui o objetivo do proprietário, então ele deve
fazê-lo sozinho. Lá vai você. Agora ele está ampliando
em um Eu posso clicar
com o botão direito do mouse novamente e depois está sentado novamente e deve estar
funcionando totalmente bem. Mas, na verdade, é
assim que é fácil adicionar a habilidade da equipe também. Então isso é muito legal. Você pode ver que é
o quão fácil pode ser. E quero dizer, é, você sabe, é
muito legal. Quero dizer, isso também é com
as animações do
cliente, certo? Você pode fazer uma animação
sentada personalizada. Você pode fazer todo tipo de coisas. Quero dizer, isso é simplesmente incrível. Isso já é para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
108. (tópicos adicionais) Adicione entidades de rentável: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar uma entidade que seja
tabela e gravável. Isso é uma
coisa muito interessante porque, claro, é muito semelhante
ao cavalo mais uma vez. Mas neste caso, na verdade,
queremos uma entidade gravável. E eu
diria que, você sabe, algumas coisas que você basicamente precisa ter em mente. E para isso, vamos
basicamente fazer tigre. Agora isso é muito legal também. Então, vamos começar e como
iríamos sobre isso? Bem, antes de tudo,
é claro que
iríamos e tornaríamos a
classe da entidade tigre aqui. Então eu vou, na verdade, mais
uma vez, é claro, como muitas vezes copiando
sobre um monte de coisas aqui. Agora, para o tigre real, vou copiar
praticamente toda a classe. Agora, importante é que,
claro, tudo aqui
disponível como sempre
no repositório do GitHub em ajuste
individual também. Porque isso também é
um pouco tão tão leve comigo aqui pois basicamente copio tudo, incluindo
as coisas que se estendem. Então vamos ver que
você pode ver 270 linhas e então eu acredito que preciso
ter um suporte de fechamento lá. Lá vai você. E agora tudo
deve estar funcionando aqui, então não devemos ter erros. Agora, a primeira coisa que
existe realmente o ID do tipo,
na verdade, não precisamos disso,
na verdade, isso é muito interessante provavelmente ainda está
lá. Mas não se preocupe lá. Temos o resto aqui. Entidade de
tabela praticamente sensata. Já vimos isso antes. Atributos que o produto obtém para as diferentes animações
devem ser razoavelmente sensatos. Os objetivos aqui registram isso, ou isso é praticamente,
você sabe, compreensível. O T-Mobile é um
pouco diferente, principalmente o método Interact
mob aqui. Então aqui, por exemplo, o item T-Mobile é
o termo, é claro, o tigre
realmente não faz muito sentido, mas é apenas um exemplo
aqui, é claro. Você pode ver que
essa coisa toda aqui é um pouco
diferente. Então você pode ver que, se
um jogador está se esgueirando, então podemos realmente
fazê-lo sentar. E se o jogador real não
estiver se esgueirando,
começamos a escrever. Você pode ver mais tarde
começar a escrever isso. Então isso é muito interessante. Então isso é algo para ter em
mente também, que há basicamente uma
pequena diferença aqui. Quando os esgueiramos, tornamos capaz de
sentar a entidade. E então, se apenas clicarmos com o botão direito do mouse, então, se for domado,
começaremos a escrevê-lo. E também você pode ver que
temos isso aqui. Portanto, temos a possibilidade de realmente tê-lo
atribuído aleatoriamente aos proprietários. Então, há o que dizemos, há uma chance de vinte e cinco
por cento, creio eu, de realmente ser
domesticado aqui neste caso. E então essas
entidades, status, isso estaria gerando
os corações e isso
passaria pequeno e eu não
quero ser seu amigo. Basicamente. Partículas diferentes aqui. Mais uma vez, sentar aqui, tanto com a configuração SETT
quanto com a variável de detract
sentado aqui. Essa também é a mesma palavra que muda a saúde ali mesmo, a equipe real e
isso, e depois o init. E então aqui vem
a parte rideable. A parte montável,
praticamente tudo isso foi
tirada da entidade espacial do
cavalo, bem
como da entidade de cavalos. Isso é praticamente
tudo o que há para ele. Posso mais uma vez dizer que
você pode ser como, Como você descobriu isso? Como literalmente, acabei de dar
uma olhada na potência, entidade base
do cavalo, a entidade do cavalo copiada
sobre tudo. Copiei o método
por método até que ele funcionasse. Isso é praticamente
tudo o
que há e depois mudou
um pouco, acredito no método de viagem, havia algumas coisas
com a velocidade de salto, que eu realmente não
tenho aqui. Portanto, a entidade tigre
que você realmente não pode pular é apenas um exemplo aqui. Mais uma vez, altamente recomendado. Basta conferir a
entidade do espaço do cavalo e a entidade horse se você quiser alguma funcionalidade mais
basicamente aqui. E então temos apenas
dois métodos interessantes, que é o
passageiro de atualização para desmontar e os locais salvaram
essa posição de montagem,
que estão
realmente acostumados , Ei, onde o jogador pode agora
ir atrás da montagem em disco? Isso é tudo o que há para isso. Então, esses parecem muito complicados,
completamente copiados. Não precisamos
entrar muito neles porque o nome
praticamente já diz o que ele faz e não
precisamos entender cada pequeno
detalhe no máximo, digamos o máximo, a resolução mais alta possível. Isso não é necessariamente o que você sempre quer ter. É como tudo bem, localize a posição salva, desmantelando,
sabe o que isso faz? É como, ok, apenas
localiza uma posição no mundo onde podemos gerar o jogador após essa montagem a partir
dessa entidade gravável. Isso é tudo o que há para isso. Normalmente, isso deve
ser muito bom. E, no geral, como eu disse, você sempre pode dar uma olhada em algumas outras montarias aqui. Então, se eu pressionar Control H aqui, você pode ver uma entidade
de cavalos, uma entidade de cavalo,
altamente recomendável. Dê uma olhada nisso. Quero dizer, tudo está aqui. Não sei
mais o que dizer a você. Basicamente, neste ponto,
o material real de baunilha é. É muito prevalente e é uma coisa muito boa
basicamente dar uma olhada. Agora vamos adicionar o renderizador
e o modelo também. Então, haverá
o modelo tigre. É claro que também o renderizador de
tigre. Vá. E mais uma vez, as coisas
aqui serão copiadas, mas é bastante
simples. Tudo considerado,
você pode ver apenas um modelo de vídeo animado da entidade
tigre e
, em seguida, apenas apontando para os três métodos
aqui mais uma vez. Na verdade, vamos adicionar isso
também. Lá vai você. E então, para o
renderizador, quero dizer, isso vai ser ainda
mais engraçado. Basicamente. Isso é ainda menor,
como você pode ver. É só mais uma vez
o contexto aqui, o local
real da textura. E isso é praticamente isso. Desta vez, não teremos variantes
diferentes aqui. Mas é claro que isso é algo que você pode adicionar também. Usamos visto, como funciona com os guaxinins,
então não se preocupe lá. Em seguida, vamos criar um
novo tipo de entidade aqui. Mais uma vez, praticamente a
mesma coisa que o guaxinim, apenas tigre qualquer nível
direcionado aqui. Neste caso, estou realmente
tendo uma criatura também, apenas tornando-a um
nome diferente aqui, é claro. E então, apenas tendo um pouco de uma
dimensão diferente aqui também. E isso é
praticamente todos os autores colocam. Agora, isso é
quase tudo o que precisamos fazer agora
no cliente aqui. Vamos apenas duplicar esse
Controle D e depois dizer tigre. E então aqui este
será o tigre ou renderizador. Isso seria praticamente o quê? Quero dizer, isso é
praticamente tudo o que há para ele. Agora também precisamos
adicionar os arquivos JSON. Temos, é claro, o modelo de tigre real também. Então, vai estar bem aqui. Também temos este
modelo de tigre, que é claro que está
disponível para você mais uma vez com algumas das diferentes
animações aqui. Portanto, tudo isso também está disponível
para você, incluindo os arquivos JSON. Vamos apenas pegar a animação de
tigre aqui. Vá. E então também precisamos da broca, é
claro, e depois da textura. Último, mas momento, vamos
pegar o geo aqui. Lá vai você. Em seguida, a textura deve
estar em entidade
e, em seguida, um novo
diretório chamado tiger. E então, dentro de lá, vamos adicionar
o tigre PNG. Curiosamente, isso é realmente tudo o que há para ele. Agora, é claro, mais
uma vez, muita coisa aqui foi copiada. Tudo isso está
disponível no
repositório do GitHub e, também, geralmente muitas coisas, a maior parte disso é bastante simples, tudo
considerado. Eu acho que a maior
parte disso é a
mesma que o guaxinim com uma
capacidade especialmente. E também quando
se trata da habilidade certa, como eu disse, aulas de baunilha, essa é a melhor coisa que
você pode dar uma olhada. Agora não vamos esquecer de
adicionar também os registros aqui. Então, esses serão os
atributos aqui. Então isso é bom para o Tiger. E então esta será
a entidade tigre. Eles atrás. E isso deve ser praticamente tudo o que precisamos para
a entidade tigre. Então, como eu disse, quero dizer, eu não sei quantas vezes
tenho que dizer isso, mas o material de baunilha está tudo
lá para você olhar. Se for meio
difícil de entender. Mais uma vez, você só precisa de um pouco
mais de Java e falha, a introdução do trabalho, experimentando algumas coisas e esteja aberto
à experimentação. Apenas experimente. Veja até onde
você pode chegar sem apenas, você sabe, apenas experimentar coisas. Quero dizer, no final do dia
você sempre tem controle Z. Você sempre pode voltar. Se você tiver uma configuração de
repositório do
GitHub, certifique-se de que você e
envie suas alterações com frequência, você sempre pode reverter
se algo quebrar completamente, isso também é algo
para ter em mente. Mas, por enquanto, isso é realmente tudo o que precisamos. Então, acho que vamos ver se funciona ou onde
nos encontramos de volta no Minecraft. Então, havia, é claro,
uma coisa que eu realmente esqueci
e que está adicionando o desova real, o ovo de desova. Mas não se preocupe, podemos apenas alguns dos tigre como este eles atrás e depois vamos
ver, então funciona. As animações também
funcionam imediatamente. Vamos ver, clique com o botão direito.
Na verdade, tive muita sorte aqui. Agora posso clicar com
o botão direito do mouse e eles vão, agora estou escrevendo sobre ele
e é muito rápido. Agora, o que é muito
importante aqui é que eu realmente não posso
subir as escadas como você pode ver, porque o
problema é que, eu não posso realmente
pular com o Tigre. o que eu
disse, onde esta é a forma como ela está
configurada no momento. E então se eu simplesmente mudar o turno para a
direita ou
Kraut, e isso funciona. E então, se eu puder basicamente
mudar o botão direito do mouse, então ele não fica mais sentado. E agora ele também deve se mover sobre como ele normalmente funciona. Vamos ver, deixe-me esperar um segundo e
provavelmente vai embora, acho que a cauda realmente se
mexe um pouco. É muito estranho
. Mas lá vai você. Agora ele começa a andar. E eles atrás, há um pouco de estranheza,
claro, acontecendo. E como sempre escreva
com as entidades. Quero dizer, é apenas
sobre refino. A velocidade real aqui com a
qual você vai é que ela pode
ser um pouco alta demais. Acho que isso é algo
que você também pode mudar. Mas, no geral, é muito legal e isso é realmente o
quão fácil é adicionar uma entidade gravável ao Minecraft escrevendo apenas
para fins de conclusão, vamos também adicionar o
outro ECG de spawn aqui, porque isso só faz
muito sentido. Lá vai você. O mais
importante são
as duas cores aqui. Caso contrário, será o ovo de
tigre, tigre. E, claro, aqui também, a geração de tigre, por exemplo,
de tigre, eles atrás. E então só
precisamos do arquivo JSON, mas podemos simplesmente copiar sobre o outro arquivo JSON
Porque é claro, como eu disse esta
manhã, Jason Hall é como a coisa mais fácil de sempre. Vai ser o
alto e nojento Baunach. E podemos realmente
manter isso como está. Só precisamos da tradução. A desova de tigre, então aqui também, a desova de tigre. Mas agora temos tudo
aqui configurado também. Mas isso vai
ser totalmente bom. Mas sim, isso é
praticamente tudo o que há para ele. Como eu disse, qualquer modificação, você é livre para fazer qualquer
modificação aqui, apenas experimente um monte de coisas. A velocidade de movimento,
como você pode ver aqui, é bastante avançada aqui. Então, é quando é domado, na verdade tem uma velocidade de movimento bastante
alta. Você também pode dar
uma olhada em alguns
dos outros objetivos também. Mais uma vez, tudo
aqui está disponível para você no repositório do GitHub em cópias
individuais,
bem como cópias de over, experimente um monte de coisas,
veja alguns exemplos de baunilha, e então eu tenho certeza de
que esperamos que você chegue
à
entidade dos seus sonhos. Eu também posso, é claro,
sempre recomendar alguns
dos repositórios
do GitHub de outros modos populares onde você também pode dar uma
olhada no código deles e isso também
é sempre muito,
muito valioso. Normalmente agora, você precisará de um
pouco de conhecimento Java, pelo
menos intermediário
a avançado. Caso contrário, às vezes você
não vai passar por isso porque outras pessoas podem ter maneiras
diferentes de, digamos, codificar e programar em Java, então você faz isso
às vezes você precisará se acostumar com lendo o código de
outras pessoas. É diferente de ler
o seu próprio definitivamente. Mas quero dizer, seja qual for
o caso, é
isso para esta
palestra aqui. E isso também
conclui o tipo de excursão de entidade que
fizemos aqui para as palestras. Mas ainda 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, verei
você na próxima palestra.
109. (tópicos adicionais) como adicionar a geração de um mundo de entidades: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos
olhar para a geração mundial de entidades. O que isso significa? Bem,
basicamente queremos adicionar nossas entidades personalizadas
à geração mundial para
que elas
surjam em biomas particulares. Agora isso é incrivelmente fácil de
fazer, como genuinamente. Em nosso pacote gen, vamos
criar uma nova classe Java com o formulário de entidades mod. Aqui, vamos fazer um vazio estático público
chamado adicionar entidades telefone. Quanto mais vou fazer é
copiar as duas coisas
que precisamos, mas é incrivelmente
fácil porque você pode ver muito fácil por
modificações que adicionam telefone. Deixe-me apenas mais uma vez, ele precisa alguns seletores de bioma aqui. Neste caso,
vamos fazer com que
os guaxinins apareçam no bioma
das planícies e os tigres para surgir no
bioma da selva. Mais alguma coisa aqui? O grupo de spawn
só precisa corresponder ao grupo real
da entidade aqui, o peso determina com que
frequência eles geram. Se você aumentar isso, eles vão
aparecer com mais frequência. Mas esteja ciente de que outras
multidões geram menos. E o tamanho mínimo do grupo, o tamanho
máximo do grupo deve ser bastante
autoexplicativo. Agora, onde chamamos isso? Bem, em nosso
mundo moderno e Jen, aula de
matemática aqui no método de geração de mundo de
modo gerado, vamos dizer mais
entidades em Add, entidade, spawn. É isso. Terminamos. Isso é literalmente tudo o
que precisamos fazer. Agora, as entidades
reais serão adicionadas ao
jogo nas palmas das mãos. Quero dizer, vamos
ver se funciona. Na verdade, fui a
um avião por ele para encontrar alguns guaxinins aqui, como você pode ver,
porque eles eram um pouco mais fáceis de encontrar como os tigres na
selva realmente eram. Bem, quero dizer, muito esparso. Pode ser por causa
das grandes árvores e da densidade
das árvores onde é
difícil para elas desovar. Mas, independentemente disso
, vamos dar uma
olhada em mais uma coisa no código. Agora, é isso que também é
importante ou IDE. Então, mais uma coisa que
basicamente queremos adicionar tanto para o guaxinim quanto para o tigre
ou para as restrições de desova. Embora eu possa realmente te
mostrar isso. Na verdade, vamos adicionar isso
ao tigre também. Lá vai você. A ideia geral é por que
gostaríamos de adicioná-los? Bem, se realmente dermos uma
olhada nessas restrições de
resposta aqui, você pode ver que
existem alguns locais que basicamente queríamos dizer:
Ei, onde esses animais
ou essas entidades podem ser gerados. E você pode ver que a maioria deles só pode
detectar no chão, o que na verdade é
um pouco importante. Então, se você fosse, por exemplo, adicionar um, digamos um
zumbi personalizado ao jogo. E você não adicionaria essa restrição de
spawn aqui. Ele também pode surgir
no ar e, em seguida, simplesmente cair quem é surdo e
então seria isso. Então, na verdade,
é importante adicionar isso. Você pode ver que isso é,
na verdade, o animal é uma geração natural válida. No entanto, também existem
diferentes que você veria. Husk chamada entidade, entidade
hostil pode
surgir e escurecer. Portanto, há algumas coisas aqui são altamente
recomendáveis verificar a
classe de restrição de spawn aqui mesmo em uma entidade de microfone de rede ou mais algumas
informações sobre isso. Mas, caso contrário, isso é
praticamente tudo o que você precisa para as
entidades surgem aqui. Como eu disse, o
peso às vezes é um pouco instável, preciso. Basicamente,
dependendo do bioma aqui, você pode querer fazer isso
bem alto ou bastante baixo. Basta brincar com
os números como sempre. Mas, caso contrário, isso seria para esta palestra aqui. Espero que você tenha achado útil
e governantes do novo. Vejo você na
próxima palestra. Sim.
110. (tópicos adicionais) Adicione negociações personalizadas aos aldeões: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. Nesta palestra,
vamos adicionar negócios personalizados aos aldeões. Agora, esta é mais uma vez uma daquelas
coisas muito interessantes que é realmente muito
mais fácil do que você poderia esperar. Então, por favor, note
que não vamos adicionar aldeões personalizados. Esta não é essa palestra. Isso pode acontecer no futuro, entanto, sem promessas
no momento, porque isso é
definitivamente um pouco mais complicado do que o que
vamos fazer agora. Basicamente,
vamos adicionar negócios
personalizados à aldeia de profissões já
existente. E para isso vamos
entrar em nosso pacote util, registros
modernos e
anotá-lo aqui,
vamos fazer um
vazio privado, um vazio estático. Na verdade, eles usam vazio estático. Este é o método de negociação
do cliente registrado. Você realmente
ficará surpreso com a
facilidade com que esse método inteiro parece. Eu vou mais uma vez, é
claro que copiado, mas tudo isso está
disponível para você
no passado ou para um
indivíduo também. E é isso. Essas são duas ofertas
comerciais diferentes que são adicionadas. Vamos, na verdade, imediatamente
chamar isso aqui antes de esquecermos. E então vamos passar pelo
que está acontecendo aqui. Temos este ajudante de
oferta direta onde estamos registrando ofertas
de aldeão. Você pode ver as ofertas do
aldeão de registro. E então você pode ver com uma profissão
selecionada. Então você pode ver que esses são
os profissionais que você tem apenas em baunilha. E vamos
escolher o fazendeiro aqui. Você escolhe o nível em que as
coisas específicas que você está prestes a adicionar basicamente
devem ser apenas uma lâmina. Então, este é o nível um. Então, o agricultor normal no
nível um tem essa atitude. Você pode ver que há
uma fábrica e então você
tem esses suportes encaracolados aqui. Você pode adicionar vários trade-offs
ou sérios, você pode ver, eu também posso adicionar
outra pessoa como sementes de nabo. De repente, você sabe,
talvez aqueles para seis ou 24 ou
algo assim. E você pode adicionar
vários para o mesmo nível. Se você quiser outro
nível, você só precisa adicionar este livro inteiro novamente. Mas, no geral, isso deve ser
bastante autoexplicativo. A primeira pilha de itens aqui é
exatamente o que você precisa pagar. Então você não precisa
necessariamente colocar esmeraldas, você poderia colocar qualquer outra coisa. O segundo aqui é basicamente
o que você ganha com isso. Eu acredito no trade
off ou você também pode adicionar, se você adicionar três
itens diferentes textos aqui você pode ver, então você realmente
tem dois itens que você precisa pagar com
que também funciona. É claro que isso é algo que é implementado, por exemplo,
na canalização de
coisas onde você dá em um tipo, por exemplo, e então eu não sei,
como 60 milhas ou estou pronto para esmeraldas e então você
ganha uma espada encantada. Isso também funciona. Assim, você pode adicionar uma
terceira pilha de itens e isso também funcionaria. Os próximos usos são
quantas vezes você pode usar isso basicamente factível, a experiência do comerciante deve ser bastante
autoexplicativa. É a quantidade de experiência que
o comerciante recebe quando você realmente
negocia essa oferta. Ou alguns exemplos que acredito que
você pode dar uma olhada, sim, Você pode dar uma olhada
nas ofertas reais aqui. Então, a experiência
aqui, vamos ver. Então esta é a verdadeira fábrica de
guisados suspeitos. Isso é algo diferente. Vamos ver, talvez possamos
encontrar outra pessoa aqui. Não tenho 100% de certeza de onde estão as ofertas
comerciais normais reais, sejam elas ou não, elas
são outras nesta criação aqui, essa experiência. Vamos ver. Lá vai você,
ok, lá estão eles. Ele pode ver que há uma
parte da experiência. Lá vai você. Na verdade, eles estão na classe de
ofertas comerciais este ano. E eles realmente usam
isso por um para esmeralda. E você pode ver aqui a
experiência para dois. Então, essa é, na verdade, uma experiência
bastante baixa. River tem uma experiência, cinco experientes
e a experiência com 6120 pode ser realmente
um pouco alta demais, mas você pode simplesmente brincar
com isso, é claro, também. O multiplicador de preços é apenas a
multiplicação do preço. E isso é
praticamente tudo o que há para o
imposto de itens normais aqui você pode fornecer a contagem e isso praticamente tudo o que há para ela. Aqui temos um
para o mito das ferramentas, onde são seis esmeraldas
para o oráculo vêm Paxil. No nível três. Isso é
literalmente tudo o que há dois são altamente recomendáveis apenas
brincar com isso, como sempre estar aberto
à experimentação. Dê uma olhada em ambas as ofertas
comerciais nas classes de
ofertas comerciais para ver
alguns exemplos de baunilha. E para o bem de conclusão,
vamos ver se funciona. Ou influenciadores de volta ao
Minecraft e eu já preparamos algumas cabines
comerciais de aldeões, digamos que não, mas aqui você pode ver o fazendeiro já tem
os nabos aqui, para que possamos apenas negociar com ele. E você pode ver, lá vai você. Isso é muito legal. E então aqui Vamos apenas trocar
algumas ferramentas aqui. E também vamos pegar
alguns dois pontos lá. E vamos ver que
podemos negociar com ele até que ele atinja um nível três. Basicamente, eles vão
pegar alguns sinos aqui, pegam um pouco
deste. Talvez um pouco
de ferro também. Nivele-os também. Vá um pouco disso, pegue um pouco mais disso. Isso é um pouco
mais de carvão e então
devemos ser capazes de
levá-los ao nível três. Aí está, lá o solo compacto
oracle está, bem, lá vai você. Isso é muito legal,
realmente incrível. E bem, isso é
realmente o quão fácil é, como você pode ver também. Bem, basicamente adicione algumas características
personalizadas aos aldeões. Isso já foi para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
111. (1.18.2) Atualização de tecido para 1.18.2: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos atualizar nosso MOD ou um projeto
para 118 para fazer isso. Ou, claro,
precisaremos alterar as coisas no arquivo de
propriedades Gradle. Na verdade, não vamos
verificar este site em particular. O que vamos verificar
é, na verdade, o site de
desenvolvimento da rede de malha porque isso também tem as
coisas mais recentes aqui. Basta copiar isso e
basicamente colá-lo aqui. E então
vou fazer com
que tudo esteja
formatado corretamente. Mas não se preocupe lá. Eles atrás. Então, vamos
mudar tudo isso. E depois mais uma coisa
que queremos mudar, é claro, antes de tudo,
acertar a versão mod. Vamos apresentar alguns termos como 19 ou talvez até
todos Vamos fazer 21. Sim, isso é incrível. Em seguida, também no arquivo
construído ou Gradle, queremos alterar a
versão Looom de dez para 11. E depois de ter mudado isso, o que podemos fazer é
carregar as alterações do Gradle. Agora isso deve ser
praticamente tudo o que precisamos. Apenas deixe isso
passar como sempre, seja paciente até que isso seja feito. E lá vamos nós, 22 segundos. Pode demorar um pouco
mais para você, dependendo da sua conexão com a
internet e coisas assim. O que também queremos fazer
apenas no caso é atualizado para
a versão mais recente
aqui para gecko lip. Então, isso é aqui, 035 apenas por precaução, porque
mesmo que as outras
versões funcionem , eu me sinto um
pouco melhor se
tivermos a versão mais recente também. Mas você pode realmente fazer
isso antes de recarregar as alterações e, em seguida, você pode recarregar todas elas ao
mesmo tempo. Então, vamos deixar isso
passar novamente. E então lá vai você. Na verdade, apenas sete segundos. Isso é ainda melhor,
mas isso deve ser praticamente tudo o que
precisamos fazer aqui. Agora, no entanto, vamos nos
deparar com alguns problemas. Ou seja, o que mudou foi a
geração mundial e as tags. Então, se entrarmos na classe fiscal de
argamassa, você pode ver todos os tipos de vermelho, mas não se preocupe,
vamos consertar isso. Então, o que mudou é que
não temos mais o
TAC identificado. Isso agora é chamado de tecla Tab. Então eu vou colocar em
brega e vamos pressionar Alt e Enter
para alterá-lo. E o que nós basicamente
queremos fazer é mudar toda a etiqueta identificada
para essa aderência que ele, então o que eu vou
fazer é eu vou eleger a imprensa Control R, e então vamos substituir
todas elas por chaves TAC. Vamos também nos livrar
das importações
aqui , porque não precisamos
mais delas. Porque isso aqui agora
será, na verdade, tag E ponto o f. E então precisamos passar no primeiro parâmetro, a chave de sublinhado
do
bloco de dados do registro. E temos que fazer isso para
esta corrida aqui também. Vamos fazer a mesma coisa. E então aqui embaixo
vamos apenas copiá-lo para o momento. E então vamos mudar
isso para, é claro que seja. E então vamos mudar
isso para a chave do item. Eles atrás, o mesmo aqui, mantenha o item. E então devemos ficar bem. Isso deve ser praticamente
tudo o que precisamos fazer aqui. Agora, é claro, também
precisamos mudar isso
na classe de
item de haste de dowsing personalizado aqui. Então, há algumas
maneiras de fazer isso. Há uma, há
uma maneira que é muito complicada e só
exige que mudemos isso. E então há uma maneira um pouco mais complicada
de que realmente usamos
o estado de bloco aqui. E eu vou fazer
o modo do estado do bloco porque acho
que isso é melhor. Então, podemos simplesmente dizer que o ponto de
bloco está dentro e, em seguida, mod ataca blocos pontos
que dowsing rod ou blocos
detectáveis. Claro, o problema aqui
é que estamos realmente passando o
bloco real e o estado do bloco, o
que, claro,
não está certo. Então o que precisamos fazer
é, vamos fazer, é
duplicar isso pressionando Control D. E este agora
vai ser o estado abaixo. E vamos mudar isso de um bloco, o estado do bloco. E então, simplesmente não chamando
o bloco get aqui. Você pode ver agora
que temos o estado, agora
podemos fazer é em vez
de esfriar tudo isso, podemos usar o estado
para obter os blocos. Então podemos dizer que
podemos dizer que o estado abaixo é bloqueado
por obter o bloco. E então aqui temos
o estado abaixo e depois passamos para o estado do bloco
em vez de apenas o bloco. Isso é praticamente
tudo isso que precisamos mudar aqui. E isso agora ainda
detectará todas as
coisas para as tags. O item Paxil deve funcionar. Na verdade, não precisamos
fazer nada aqui
porque na verdade está
esperando uma chave de tag. Como você pode ver lá você vai. Também é muito importante porque acabei de ver como fontes. O que vamos fazer é
voltar para o terminal, colocar na barra de pontos, Gradle w, fontes Jen e deixar
isso passar também. Pode levar um minuto ou dois
para gerar essas fontes. Mais uma vez,
dependendo do seu PC e também dependendo da conexão com a
Internet. Ou apenas seja paciente e espere até obter uma construção
bem-sucedida aqui. Lá você vai
exatamente um minuto. E agora devemos
ser capazes de fazer é quando obtemos a
linha azul aqui, podemos escolher
fontes e escolher
a fonte de nome mesclado
aqui, diga Ok. E depois que isso for recarregado, agora deve nos mostrar a classe adequada com as fontes
adequadas lá. Mas isso também é uma
coisa que devemos fazer. E agora o verdadeiro
doozy será a geração mundial porque isso
mudou significativamente. Bem, o que mudou
é realmente a sintaxe? O que vamos fazer é
entrar
na classe de recursos configurados de modo e você pode ver
muito vermelho aqui. Claro, todas as alterações, todas as coisas
estão disponíveis para você no repositório do GitHub, no indivíduo,
uh, também. Eu recomendo
verificar isso porque há muitas
coisas que mudaram. E vamos analisar o básico de como posso
basicamente mudar isso. Então, antes de tudo, agora temos uma entrada de registro
aqui , em vez de apenas
um recurso configurado. E o que vamos fazer é que isso agora será em vez de chamar o configurado aqui neste recurso de árvore, o que fazemos é
excluir o configurado e o ponto, substitua-o por uma vírgula e, em seguida, exclua os parênteses aqui. Em seguida, em vez de usar
o método de registro, usaremos o método a
seguir. Vamos usar os recursos
configurados. Este em
recursos configurados que registram o método. Livre-se de tudo isso e agora tudo ainda está funcionando. Então, como você viu, temos que mudar isso para a entrada do registro no ponto trich de ponto do recurso configurado apenas para
a árvore de recursos. E então basicamente passando
o resto da mesma forma que normalmente. Agora, em vez de ir do recurso
configurado para configurar o
recurso para colocar o recurso, agora, na verdade, temos que colocar um recurso de lugar no meio. Agora, o que vou fazer
é copiar o recurso
de lugar e
o recurso configurado. Agora vou fazer isso e manter as
coisas já existentes aqui. Você pode ver que isso é muito parecido com o que
já ouvimos, metade. Então você pode ver que esse é o conflito futuro
aleatório. Isso é a mesma coisa. E então aqui estão
os bosques sobrevividos. Agora é apenas o
cheque real aqui. Então, a floresta sobrevive agora acontece neste
recurso de lugar aqui. E você pode ver que o resto é
praticamente o mesmo. É um pouco diferente, mas no geral não é tão louco. Eu recomendo mais uma vez, assim como na geração
normal do mundo, palestras que fizemos, basta conferir, por exemplo, o seletor aleatório ou o
breve recurso aqui, meio
clique no botão do mouse neste minimalista, clique aqui. E você pode basicamente ver todas as coisas
que eles estão fazendo. Você pode ver que o pântano é
antigo, por exemplo. Você pode ver o
recurso de lugar do pântano, OK, e assim por diante e assim por diante. Assim como passamos nas palestras originais da geração mundial. Eu recomendo fazer isso. Quando se trata da rosa rosa, vou fazer a mesma coisa. Então, vou
apenas copiar isso
e ver que estamos usando
o recurso Configurar, esse método de registro de vez em quando novamente,
passando a flor aqui, o conflito de recurso de patch
aleatório é bastante a mesma coisa
porque estamos usando a mesma coisa aqui embaixo. O que realmente
podemos fazer é excluir esses
dois métodos
porque
não vamos mais usá-los. E veja que estamos usando o método de
registro de recursos configurado e o patch de criação aqui. Vamos
fazer isso na fila, então isso vai ficar bem também. Então a lista real aqui
das auras pode permanecer a mesma. E então este é
o mais fácil de mudar. O que fazemos é mais uma vez, livrar-se do
configurado aqui e do parêntese de fechamento e
abertura. Queremos mudar isso para uma entrada de
registro aqui, eles atrás e, em seguida,
este é realmente de recursos
configurados
que registram eles atrás. E agora há mais uma
coisa que precisamos
fazer e que é pegar esse ou conflito
futuro e mudar o primeiro ponto de interrogação para
esse ou conflito de recursos. Agora esta aula realmente fez os problemas que vamos
resolver em apenas um momento. Esses são, naturalmente, problemas com recursos
substituídos e coisas
assim e também com a árvore. Então, se entrarmos no gerador de
mudas e C, isso também não é
mais uma retórica válida aqui é apenas para excluir
o método real, passar o mouse sobre este
Implement Methods, então tudo aqui
está escrito corretamente. E então podemos apenas
dizer
recursos configurados mod que a árvore de
cerejeira. Lá vai você. E então imediatamente
deve funcionar. Não
são necessárias mais modificações. Vamos passar para o
MOD ou recursos. Agora, você vê muito vermelho aqui. Isso é só porque a classe
real se moveu. Então, o que queremos
fazer é importá-los novamente. Então clique neles Alt e
Enter para importar isso. Você pode ver lá você vai
no modificador de posicionamento, meu pai também. Lá vai você. Isso deve ser praticamente
tudo o que precisamos fazer aqui. Agora o resto está nos recursos do
mercado. Então, a primeira coisa que é
muito legal é que não
precisamos mais das chaves
do registro. Então, isso vai ser só
tirar isso daqui. Também não
precisamos mais desses métodos. Podemos fazer é que
vamos usar o
método de registro de dados de recurso colocado que realmente
já usamos aqui, por favor, registre pontos, então vou copiar
isso para o novo lista, aqui, bem aqui, e
aqui mesmo, e depois aqui. Mais uma vez, não queremos
chamar o posicionamento
no real, no recurso
configurado real. O que queremos fazer é passar os recursos
configurados. Então isso deve ser uma
vírgula e então esse deve ser o desova. E então vamos nos livrar disso e disso, e
isso não é um recurso de lugar sobre
uma entrada de registro, mais
uma
vez, de um recurso de lugar e, em seguida, ele deve
funcionar totalmente bem. Então você pode ver que eles estão
funcionando totalmente bem. Vamos apenas adicionar a entrada
do registro aqui para ambos também. E então, mais uma vez,
alterá-lo para liderar o posicionamento da largura
e o ponto também. Lá vai você. Precisamos importá-los. Eles acabaram de mudar. Lá vai você. Já está trabalhando. E então o mesmo aqui com o
posicionamento será excluído, substituído por uma
vírgula aqui. E então isso também
vai ser reimportá-lo. E então todas as outras entradas
que não são mais válidas, vamos nos livrar. E eles atrás, isso
é literalmente em, isso é praticamente todas as
coisas que precisamos fazer. É quase muito louco, mas não é muito quando
você realmente pensa nisso. Como olhar para tudo o que aqui está, é bastante simples. Todas as coisas consideradas. Mais algumas coisas
na geração, mas isso
também é bastante trivial. Então, é apenas a forma como você escreve basicamente
que mudou a funcionalidade subjacente
permanece praticamente a mesma nas classes de geração
que colocamos na chave aqui. O que podemos fazer agora
é que podemos apenas tomar a geração de flores. Então, queremos este, ponto, ponto, ponto, e então é isso. Então, só queremos substituir
isso pelo ponto, obter todas as coisas
diferentes aqui. Então este vai ser o ponto de
reclamações da Oracle, ponto get. E então o mesmo com uma árvore aqui. Esta é a flor de cerejeira
colocada, mas pegue ky.gov. E é isso que deve praticamente tudo o
que precisamos mudar. Isso pode ser como algumas
outras coisas em algum lugar. Mas acredito que é isso. O que é realmente engraçado
também é que as tags e o mundo são
como as grandes coisas que mudam também mudariam por qualquer
motivo que seja o real. Enquanto no util
na tela de título, não
sei por quê,
mas a tela de título não funciona mais corretamente. Na verdade, eu estou, quero dizer, eu não diria furioso, mas estou um pouco zangado com isso porque eu tinha esse tipo de classe
quase completamente
personalizada que eu tirei um pouco de forragem
e refiz um pouco e, em seguida, funcionou totalmente bem. E agora, por qualquer motivo, eles
mudaram para mudar a tela de
título novamente, e eu não sei por quê, mas é o que é. Às vezes, essas
coisas acontecem. Nós só temos que
lidar com isso e você vai ver mais. Quero dizer, em apenas um
momento em que realmente fazemos isso, deixe-me realmente
verificar o conflito. E nós desligamos isso. Sim,
nós desativamos isso, então vamos apenas ativar isso
para que possamos realmente ver qual
é a diferença para a tela de título. Você vai ver que
atualmente não funciona realmente. Portanto, essa também é uma
das outras razões pelas quais algo como um conflito para a tela de título realmente
é importante. Vamos realmente
começar isso e ver se estamos recebendo algum erro. Não tenho 100% de certeza de que não
devemos obter nada. Pode ser como
uma ou duas coisas que talvez fossem uma
importação estão faltando, mas parece, meio
que parece bom no momento. Então, vamos ver,
deixe-o passar por
isso, é claro, nossa seta normal que
sempre obtemos quando
começamos o Minecraft. E acredito
que deve estar tudo bem. Começando no
outro monitor. Vamos apenas trazê-lo aqui. E então nós também,
você pode ver que o problema aqui, é claro, é que não há nenhum título de splash aqui e, em seguida,
que também no canto inferior esquerdo, a versão real e outras coisas também estão ausente. Não sei por que
esse é o caso. Eles mudaram de alguma forma
no back-end em seu código. Mas seja qual for o caso, é 1, 1000th 2. E o que podemos fazer é simplesmente criar um novo mundo e vamos criar um novo
mundo e vamos realmente, tudo ainda
estar funcionando totalmente bem. Então isso vai
das entidades
até as entidades de bloco, até a
não desova de árvores e tudo no meio ainda
deve funcionar totalmente bem. Então isso é muito legal
e vamos conferir. O spawn
praticamente fazendo exatamente. Quero dizer, isso é ótimo. Esse também é um local muito
interessante aqui. Mas sim, as árvores ainda
estão de luto, as flores reais
ainda estão desovando também. Isso vai ser muito legal. E vamos dar uma olhada em todas as
coisas do nosso curso aqui. Então, vamos acabar com isso
e ver o tigre ainda funcionando como os guaxinins ainda
funcionam com variância também. Então, tudo ainda está
completamente bem. E, na verdade, também vamos
testar os registros de dowsing. Isso foi algo que mudou. E vamos ver quando
encontrarmos algo que eles
encontraram minério de ferro, então tudo completamente
bem, ainda funcionando. Não se preocupe lá. Sim, isso é
praticamente o quão fácil é atualizar
a partir da década de 1820. Há algumas coisas que você tem que ter em mente, mas no geral não é
tão ruim, certo? Então, obviamente, todos os tópicos adicionais que
virão depois disso
serão para 182,
altamente recomendável, é claro que
agora atualize para isso, você provavelmente deve
passar neste momento. E então podemos continuar com alguns
tópicos adicionais em 118 para, mas isso seria para
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra.
112. (1.18.2) Estruturas personalizadas (REpo de exemplo de tutorial): Ou eu dou as boas-vindas de volta ao cavalo de
tecido para 118. Nesta palestra,
vamos adicionar estruturas
personalizadas ao Minecraft. Agora, a maneira como isso
vai funcionar é essa palestra e as duas
palestras a
seguir serão sobre estruturas. Agora, nesta primeira palestra, recomendo vivamente que você
continue comigo através desta palestra porque depois de
basicamente implementarmos estruturas uma vez, adicionar mais estruturas a
ela é incrivelmente fácil. Você só precisa copiar alguns arquivos JSON e basicamente
construir sua estrutura, salvá-la e, em seguida, é isso. É muito, muito direto. Mas essa palestra, como você
provavelmente poderá contar, é bastante longa. E a razão para isso é
porque vamos
passar por esse
repositório aqui. Este é o repositório de mod
tutorial
estruturado por um grunhido telepático. É provavelmente o recurso
número um para estruturas personalizadas. É incrivelmente ótimo
, é muito bom. Ele tem muitos
comentários diferentes em cada arquivo. E é só que isso torna isso
muito, muito simples. Agora 1, 1000th 2 realmente
introduz uma maneira de criar estruturas que
literalmente não requerem nenhum código. Agora isso é
realmente incrível, mas também veremos uma estrutura específica que realmente existirá com código. E nós vamos
basicamente passar por isso. Então, vou explicar como eu
percorro esse repositório
em particular. Vamos passar por
isso na íntegra. Vamos implementar ambas
as estruturas que são
basicamente dadas a nós aqui. E da maneira como
passamos por isso à medida que
entramos na
pasta de origem aqui, vamos abrir o código e os recursos separadamente. Então, antes de tudo,
queremos basicamente
olhar para todas as diferentes
classes que temos. Veremos que
há um misto na aula, há uma classe de estrutura, havia as estruturas de St
e a classe principal. Então, temos quatro classes
diferentes. E você pode ver, no geral,
eles são bastante longos, mas você pode ver também que
há muitos
comentários diferentes aqui. Recomendo
em seu próprio tempo. Percorra os comentários, veja o que cada parte significa, porque algumas coisas são
muito diretas, outras não são
tão diretas. Eu só recomendo isso. Então você pode ver em geral o nasdaq louco quando
você pensa sobre isso. Mas, basicamente,
é aqui que começamos. Então, estamos começando com o código. Primeiro de tudo, este será o acessório do recurso de estrutura. Vou copiar isso
e vamos começar imediatamente aqui
no pacote de mixagem. Agora, você também pode
obter todo o código e os arquivos JSON no repositório
do GitHub
do curso e os
riscos também. Mas eu
recomendo passar por isso uma vez, basicamente trabalhando com o código tutorial real
de grunhidos telepáticos, repositório do GitHub
tutorial Eu
recomendo altamente ou seja qual for o caso pode estar no pacote misto e, vamos fazer um recurso de estrutura
V excesso ou com terça atrás. E devemos ser capazes de colar
isso e, em seguida, importar todas
as coisas importantes aqui. A etapa de geração também. Lá vai você. E isso deve ser que agora, é claro, indo para o curso MC mixin Jason e adicionando isso como um
misto aqui também. Isso deve ser praticamente
o que precisamos fazer aqui. E então vamos voltar
para o tutorial GitHub
aqui nós
vamos, vamos fechar a
guia e depois
vamos passar
para o próximo. Estas serão
as estruturas do céu. Vou
copiar tudo incluindo as importações aqui. E isso vai
para o pacote mundial, em um novo pacote
chamado rupturas. E então, em vez de lá,
vamos fazer uma nova classe chamada módulo. Estas são as estruturas do céu. Lá vai você. E
então vamos colar isso em movimento. Precisamos mudá-lo este
ano para MC core smart, um madeireiro, e então esta não
é uma casa degradada, mas esta é a fratura do céu. E então, aqui em cima, só
precisamos mudar é este. E então não há
mais erros aqui. Então, tudo deve estar funcionando. No geral, como você pode ver, embora pareça muito, eles são, na verdade, apenas uma esfera comum diferente. E tudo é basicamente explicado nesses comentários que
eu recomendo vivamente, como eu disse, passar por
isso no seu próprio tempo. Você pode ver, por
exemplo, este
aqui determina a posição Y. Isso é colocado coisas assim. Eu recomendo
olhar para isso e apenas garantir que você entenda
um pouco disso. Você não precisa
entender tudo aqui, especialmente se você quiser, digamos, uma
estrutura normal para gerar, então isso vai
ficar totalmente bem. Se você quer algo
mais extenso como um reduto personalizado. Quero dizer, nesse ponto
vai ser muito, muito difícil realmente fazer isso. Isso vai exigir
muito mais trabalho. Isso é muito só para alguns, digamos básico para estruturas
intermediárias. Agora temos a classe de
estruturas desses caras. Então, vamos fechar
isso também. E então podemos ver que precisamos
ter esta st estruturas aqui. Agora vou renomear isso para estruturas
mod porque essa é
a nomenclatura que eu vou com. E vamos apenas ir com estruturas
modais. Lá vai você. E eu só vou
colar isso, mudar isso de volta para rupturas mod e você não deveria que
realmente escrevamos isso corretamente. Lá vai você. Importando o recurso de estrutura aqui, acessório futuro retrô. Este vai ser o
curso de MSC mod esse modelo ID. Então este é o
passo de geração mais uma vez como eles atrás. E então você pode ver
mais uma vez que é tudo
o que há para ele. Agora só precisamos chamar esse método aqui mesmo
em nosso curso MC, mais classe e o
construtor aqui. Portanto, as estruturas modais não registram
recursos de uma estrutura e é isso. E depois há também a
última coisa aqui. Você pode ver, lá vai
você, Nicole, isso, e isso é feito e feito. Agora, todo o código,
na verdade, já foi criado. E agora o resto acontece
na pasta Recursos e,
nomeadamente, na pasta de dados. Aqui, há
muitas coisas aqui. Vamos descobrir, na verdade é apenas um monte de coisas que você
pode ver, em primeiro lugar, uma tag. Vou explicar
isso em apenas um momento. E então temos
a pasta de dados para este tutorial aqui você pode
ver que temos estruturas, temos mais algumas tags e,
em seguida, também o mundo novamente. Essa tag é, na verdade algo
que vamos ignorar um pouco. Mas este é o dos mapas do explorador do
oceano. Isso é algo
que você pode adicionar. Você pode ver que o micróbio tem algumas tags de recursos de
estrutura configuradas que podem adicionar determinado comportamento. E neste caso,
você pode realmente adicionar a estrutura aos
cartógrafos,
aldeões, mapa do oceano, mapas de monumentos. E basicamente isso é o que
essa tag em particular faz. Você não precisa adicionar isso. Não vou
adicioná-lo. Isso é apenas adicionar um recurso extra que
pode ser muito legal. Então isso é algo que
basicamente também
podemos ignorar. Também vamos fechar
isso e agora só
temos a pasta de dados para
o tutorial de estrutura. É claro que esse é o ID do modelo. Então, para nós, esta seria
a pasta do curso MC de dados. E você pode ver que
existem algumas pastas aqui. Então, vamos abrir os dois primeiros porque este
vai ser mais extenso. Então as estruturas se dobram, só tem os dados NVT para
as estruturas extras. Então, a ideia é que você
construa estruturas
no mundo e, em seguida, você
pode usar certos blocos. Esses são chamados de bloco
estrutural para salvar esse
edifício específico em dados NVT. E vamos
ver como fazer isso realmente nesta
palestra também, porque precisamos mudar
algumas dessas coisas nesses arquivos NVT também. E então também
veremos isso
na próxima palestra e na palestra depois disso com uma
única estrutura personalizada. E também
veremos as estruturas de quebra-cabeças também
na última palestra deste tipo de
três séries de palestras
para estruturas. Mas, por enquanto,
vamos pegar essas estruturas que eu
recomendo, mais
uma vez, passando por
esse tutorial, não mude muito. Certifique-se de que tudo isso funcione. Se você fez tudo isso
e tudo aqui funciona, você obtém a casa degradada,
você tem o fã do céu. Adicionar uma nova estrutura é uma
coisa de cinco minutos no máximo. É muito, muito direto. E então, claro, você
ainda tinha que construí-lo. Mas o código real ou os arquivos JSON que o
alteram é muito simples. Então faça com que isso funcione uma vez com
um tutorial mod estruturado. Então você pode adicionar
suas próprias estruturas realmente altamente recomendadas. É apenas a melhor maneira de fazer isso. Basicamente, queremos baixar
tudo isso em arquivos VT. Agora, eu já
fiz então o que você pode fazer é abrir e baixar aqui e eles se foram. Então você tem esse arquivo NVT. Você pode ver, na verdade, quatro que já
baixei algumas vezes. Então você pode ver que
está praticamente lá. Então, basta baixar todos
os quatro e você também pode obtê-los no
repositório do GitHub também que eu tenho. O que vamos fazer é
entrar no curso MC
da pasta de dados, e vamos
criar um novo diretório chamado estruturas. E então, dentro de lá,
vamos precisar dos seguintes arquivos NVT. Todos os quatro. Lá vai você. Então, vamos precisar
da casa degradada, esquerda, lado
direito, lado direito, Golden e os fãs do céu. Então aqueles quatro que precisamos
nessas estruturas pasta, pasta dados no ID do
modelo aqui. E isso seria bom. Então, depois de termos feito isso, podemos fechar isso também. E então você pode ver
que temos as tags aqui. Então, isso estará sob
seus dados por mais uma vez, tags que os biomas belgas
possuem estrutura. Essas tags são muito interessantes porque
elas realmente
determinarão em quais biomas sua estrutura personalizada
pode gerar. Muito simples
entender o que isso faz e o que
vamos fazer é abrir os dois. E eu vou primeiro
criar a
estrutura real aqui. Então, nas tags mais antigas à direita, sob o ID do seu modelo,
vamos criar um novo diretório
chamado World Jen. E então, dentro de
lá, queremos criar um novo diretório chamado bioma. E então, dentro de lá, vamos fazer um novo diretório chamado tem estrutura de sublinhado, certificando-se de que
escrevemos isso corretamente. E então, dentro daqui, precisamos de dois novos arquivos. Então, eu vou fazer, na verdade é porque esses são nomes
muito longos. Na verdade, vou copiar
esse nome aqui. E vou clicar
com o botão direito do mouse
em novo arquivo, colar esse nome. Lá vai você. E então eu vou voltar, colar o conteúdo
deste ponto aqui novamente, e vamos dar uma
olhada nisso em um momento. Na verdade, também vamos
criar o outro arquivo também. Então, este é o
único biomas domésticos adjacentes. Então esta única casa do G Jason que vamos gerar uma
estrutura que fizemos, a estrutura do céu para a qual
criamos o código, e
a casa vai gerar completamente apenas com arquivos JSON é
realmente incrível. E eu estou, na
verdade,
estou muito surpreso com o quão fácil é quando
você começa a ver, especialmente nas próximas palestras, depois de
passarmos por isso, uma vez, você está vai ver
como é fácil adicionar várias novas estruturas, é realmente simples uma vez você passa por isso, uma vez, eu não posso recomendar isso o suficiente, enquanto é um
pouco de tempo para configurá-lo para cima e passar
e explicar tudo. Vai valer muito,
muito a pena, certo? Então, temos os biomas do céu. Biomas para o fã do céu, você pode ver montanhas é
oceano e oceanos profundos. Você pode ver que essas são
tags como você pode ver. E então também adicionamos isso
ao pântano ou à única casa que você pode ver, estamos adicionando a todas as coisas que é um tigre,
selva, floresta e, em
seguida, também desertos, planícies e outros
biomas também. Então aqui você pode
usar os biomas. Em especificar em uma palavra um biomas, sua estrutura
personalizada será gerada. Então, isso é muito legal. Então podemos fechar isso, vamos
fechar tudo isso. Lá vai você. E então
podemos prosseguir mais uma vez. Podemos fechar isso, fechar
isso e fechar isso. E agora estamos de volta aqui que fizemos as estruturas e fizemos a tag tem estruturas e agora
indo para o mundo. E então eu posso realmente abrir isso nesta guia e você pode ver há mais quatro diretórios
diferentes aqui. E podemos basicamente
abrir ou quatro deles. E você vai
ver, vamos
abrir os três primeiros porque isso vai ser especial. E você pode ver que o
primeiro só tem mais
uma vez para arquivos JSON nele. Estes são recursos de
estrutura reconfigurados. Então o que vou fazer é
copiar o nome
aqui só para não
perder o tipo de nada. E isso vale, e isso
é incrivelmente importante. Por favor, note aqui. Agora isso vai para
a pasta world gen, não nesta pasta world gen. Em seu curso MC de dados
ou em sua foto MOD ID, você precisa criar uma
nova pasta world gen. Olhe para isso. Olhe. Esta pasta world gen é
diferente desta. Isso aqui é em vez
da pasta de impostos, você pode ver, lá vai você. Se eu abrir isso, você pode ver
que essas são pastas diferentes. Isso é incrivelmente importante. Por favor, não cometa
o erro de colocar tudo em sua pasta de impostos. Então, por favor, esteja ciente disso. Esta é uma pasta diferente. Vou manter isso aberto
e você pode ver núcleos MC, Jen
rural, você vai lá, tudo entra
e nós vamos ter um novo diretório aqui, que será
chamado de configurado recurso
sublinhado estrutura sublinhado. Na verdade, vamos criar o
resto dos outros também. A outra é a lista de sublinhados
do processador. E então vamos arrastar
isso para a mesma pasta segurando o controle para
duplicar isso. E este é o conjunto de
sublinhados da estrutura. E então o
último será
o pool de sublinhado do modelo. Lá vai você. Esses são os quatro diretórios
ou pastas
diferentes que precisamos nos mundos e
seguimos mais uma vez, certificando-se de que isso está
na pasta correta, mundo de núcleos MC de
dados. Jen, este não é o
mundo das tags e cheio de muito, muito importante que você tenha essa ordem interna correta, certo? Depois de se certificar de que
esta é a pasta correta, você vai aqui
e vamos
abrir esses dois raios e arquivos. Então, mais uma vez, vou copiar o nome aqui primeiro consistir apenas
torna um pouco mais fácil para mim, para que eu
não tenha que digitar isso. Então, o que vamos
clicar com o botão direito
do mouse em novo arquivo, é claro que eles atrás, e então vamos
obter o conteúdo aqui. Então, vamos apenas copiar isso
. Lá vai você. E então vamos
entrar aqui. Aí está ele. Vamos mudar essas
coisas em apenas um momento. Na verdade, vamos criar o
outro arquivo adjacente, bem como a
única casa adjacente mais uma vez. E vamos clicar com
o botão direito do mouse novo arquivo, colar apenas casa. E depois vamos, e depois vamos
aqui. Lá vai você. Mais uma vez, o conteúdo do qual ele sobre N,
lá o temos. Mas antes de tudo, você pode
ignorar as setas aqui para os comentários reais. Isso vai ficar bem,
então não se preocupe lá. E agora você pode ver que
esse arquivo JSON específico é basicamente o recurso de
estrutura ou o recurso que
vamos adicionar, a configuração dele.
O que isso significa? Bem, antes de tudo, você pode
ver que isso realmente volta e aponta para sua tag que
criamos aqui. Então você pode ver que essa
é a estrutura. Tem estrutura, sim. E então a estrutura de código
sky fã de biomas, que é exatamente esse
Jason of Alright, aqui precisamos mudar esse ID do
modelo para o nosso modelo. Muito importante. Também queremos alterá-lo
esse ID inteligente para o nosso ID mod. E só para
ter certeza absoluta de que tudo funciona, queremos também
alterar esse ID do modelo. Então, em todos os lugares onde diz a modalidade tutorial de estrutura, basicamente
queremos
mudar para o nosso ID do modelo. Agora isso deve ser
bastante autoexplicativo. Como eu disse, isso aponta para esse firewall
JSON em particular aqui, a tag do bioma,
que é basicamente responsável por dizer, ok, esse recurso de
estrutura em particular ou esse particular
estrutura só pode ser gerada nos biomas
que estão dentro
desta tag deve ser
bastante autoexplicativa. Nada de loucura
acontecendo bem ali. Eles começam o pool é algo que
vamos adicionar
em apenas um momento. Isso será adicionado à pasta
do pool de modelos. E vamos ver
isso em apenas um momento. Esta é basicamente a profunda, uma
das peças centrais da geração disso. E então podemos ver que também temos algumas substituições de desova aqui, onde alguns Volcker e
fantasmas podem surgir aqui. Então você pode ver que isso
é o que os
esfregões podem gerar horas extras
nessa estrutura. Então, isso é algo
que você também pode
brincar com altamente
aconselhar isso também. Além disso, a
única casa adjacente é muito semelhante. Você pode ver que a estrutura base aqui é realmente
completamente diferente. Esta é, na verdade,
uma aldeia ou não 100% certa onde
isso faz sentido. Você pode ver que isso basicamente
faz uma verificação extra de terreno. Então eu acho que
isso significa que isso basicamente gera
semelhante a uma aldeia. Então, ele vai verificar se há um terreno
plano, coisas assim. E isso vai fazer
algumas coisas assim. Não tenho 100% de certeza, mas esse parece ser o caso. Agora, mais uma vez, o tutorial de
estrutura, mudando isso para o nosso ID do modelo. Mais uma vez curso MC, curso MC. E esta é a piscina de tipo
casa degradada. E isso mais uma vez aponta
para os biomas adjacentes apenas. Então este arquivo aqui, para ser bastante autoexplicativo,
o barulho adulto, você pode ver que
há um ótimo comentário aqui o que isso basicamente faz se verdadeira terra ao redor dele
estará em torno do parte inferior
da estrutura. Então isso vai mudar a estrutura real
da terra em torno de sua estrutura
real. E então, uma vez que ele
possa abranger substituições, também
podemos adicionar
algumas criaturas que ouvem sons de pais podem
surgir aqui também. Então lá vai você. Agora eles
configuraram o recurso de estrutura está pronto e, em seguida,
podemos seguir em frente para que possamos. Aqueles, este,
este e este. E então podemos ver
a lista de processadores. Agora este é um arquivo Jason especial que na verdade não é necessário. Isso é algo personalizado. Esta é a
quebra de pedra aleatória e é realmente incrível. E vou explicar
o que isso faz também. Vamos criar
isso em nosso processo,
nossa lista mais antiga
aqui e meu tijolo de pedra. E então vamos voltar
para aqui e vamos colocar toda essa
loucura aqui. E isso basicamente faz está
no gist geral aqui é c lista de processos
executará um processador para cada bloco colocado eu
edito o arquivo NVT. Quando criamos nossas estruturas
personalizadas. É claro que tudo é salvo
na NBA em um arquivo MVT. E, basicamente, para
cada bloco que é colocado neste processador
passa por ele. E você pode ver,
isso é muito legal. Você pode basicamente especificar
certas regras aqui. E a regra aqui é
que, por exemplo, se encontrarmos um tijolo de pedra, então ele tem 50% de chance de ser substituído por um tijolo de pedra
infestado. Isso é realmente incrível
e isso é muito legal. Você pode ver aqui, alguns tijolos de
pedra também podem ser substituídos por esmeralda
ou algum cobalto. ardósia profunda pode ser substituída por uma guerra de restaurantes em
estado profundo. Isso é muito legal e
isso pode ser, você pode basicamente
adicionar mais variabilidade às suas
estruturas personalizadas com isso, com essas regras aqui. Portanto, não tenho 100% de certeza
de todas as regras que existem. É claro que este é apenas um exemplo em que
você pode basicamente mudar um bloco para
oito outro bloco. Mas é muito legal
e isso pode ser uma coisa
muito legal basicamente adicionar a algumas
de suas estruturas. Mas, mais uma vez, isso não
é necessário. Isso é completamente opcional. Então você vai ver
que isso vai ser usado na
estrutura do céu aqui, mas não na casa. Na verdade, a casa
não vai usar isso. Então é isso que estou dizendo. Isso não precisa ser adicionado, mas ainda é bom. E eu recomendo vivamente
para os propósitos desta palestra e do tutorial
estruturado, recomendo também
adicionar isso. Tudo bem, para que possamos
fechar isso também. E então estamos no conjunto de estrutura trans
mundial. Mas, mais uma vez,
podemos abrir os dois arquivos do Jason e eu
vou fazer a mesma coisa. Vou copiar
o nome aqui, e vamos fazer um
novo arquivo. Lá vai você. Então, mais uma vez,
vamos aqui e apenas obter o conteúdo do qual você pode
ver, na verdade, não tanto tempo. E mais uma vez,
vamos realmente criar um dos
dois arquivos
primeiro e depois
vamos analisar o conteúdo
e o que esses realmente significam. Eles não são tão loucos. No geral, cada parte
individual aqui
não é tão complicada,
tudo considerado. É que às vezes pode ser um pouco assustador
porque há tanta coisa, mas quando você
realmente olha para ele, as partes individuais
ou não tão loucas. Então, antes de tudo, é claro,
mais uma vez , a estrutura aqui, isso não é 100% seguro, mas acredito que isso aponta para o
recurso de estrutura configurada aqui. Então, este, podemos
simplesmente mudar isso para o curso
MC e, em seguida, ele irá
apontar para este
arquivo JSON aqui. E então o posicionamento
é muito importante. A colocação aqui,
você basicamente quer ter certeza de que
seu sal aqui você pode ver nos torna
únicos e garante que ele não corresponda a
nenhum outro conjunto de sal. Agora, a razão para isso
é porque, caso contrário as estruturas reais
seriam colocadas no mesmo local, o
que, claro, é
algo que você definitivamente não quer fazer, porque isso
seria muito estranho. Às vezes, ainda
acontece que eles vão se cruzar, mas isso é apenas a aleatoriedade. Isso geralmente não deveria acontecer, especialmente se você fizer
a separação aqui. Então, o espaçamento, esta é
a distância média à
distância e esta é a distância
mínima à distância. E então, claro, isso deve ser sempre menor do que isso.
Faz sentido, certo? Se a distância média for menor que a distância
mínima não faz nenhum sentido. Então lá vai você, apenas certifique-se. E eu acredito que isso
definitivamente seria valores depurados porque 166 você vai ver quando realmente
entrarmos no mundo, que isso não é
incrivelmente raro. Isso é incrivelmente
comum nesta mistura, nossa, nossas diferentes
estruturas insanamente comuns. Portanto, tenha isso em mente, mas eu recomendo manter esses
números por enquanto. mesmo aqui com a casa única do
Jason. Vamos mudá-lo,
este aqui, curso MC. Então também podemos ver
este
aponta novamente para essa
estrutura aqui. Agora, o que você vai descobrir é
que isso é, naturalmente, uma lista. Então, em teoria, poderíamos adicionar
outra estrutura aqui. Assim, você pode, mesmo em teoria, na estrutura Skype e onde quer que você possa atribuir
as diferentes taxas aqui. Podemos ver neste
comentário que ele basicamente tenta e escolhe
uma dessas estruturas. Se dois ou mais analistas de
estruturas puderem surgir em um bioma em um local, um aleatório será escolhido
com base nos pesos. Esta é a ideia geral aqui. Assim, você também pode fazer
uma lista de muitas estruturas e
basicamente ter uma delas gerada em um
determinado lugar. Então isso também funcionaria. Então este é o
conjunto de estrutura basicamente apontando volta para o recurso de
estrutura configurada, a preocupação, o recurso
de estrutura aqui, é claro, apontando para
o imposto aqui
e, em seguida, também apontando
para o pool de modelos, que é a última coisa
que agora precisamos adicionar. Então, vamos voltar ao repositório
do GitHub
aqui, e vamos fechar
tudo isso e, em seguida, abrir
o pool de modelos
porque isso é como eu disse, um pouco
mais complicado. Vou pegar o fã do céu e, em seguida, também a casa
degradada. Então, vamos
fazer assim. Vamos pegar o fã
do céu primeiro. Na verdade, isso vai
ser um pouco mais fácil. Então este é apenas
o céu sublinhado base de
fãs e o arquivo
dentro daqui. Então, vamos fazer um
novo arquivo. Lá vai você. E, mais uma vez, copiar
sobre o conteúdo disso também não
muito tempo que você possa ver, isso, neste caso, o que
queremos fazer muda este aqui é
o ID real mais. Não acho que isso seja
totalmente necessário. Você também pode ver que isso realmente aponta para a
piscina lateral aqui. Isso realmente não faz sentido porque esse não deveria
ser o caso. Na verdade, esse deve
ser seu próprio nome. Portanto, esse deve ser o Skype. E acredito que
isso na verdade
não é tão importante para
o nome real aqui. E então você pode ver este é
claro, também, curso MC. E você pode ver este como você pode ver o caminho final aqui, estrutura de dados de
recursos para rolar. Isso seria
estruturas de curso MC executadas na casa esquerda nota que aponta para o
céu e jurou fã e VT. Então esse nome aqui tem que
ser o mesmo nome que este. Portanto, a localização aqui
aponta para o arquivo MDT
na pasta de estruturas dentro da pasta do curso MC
neste caso, porque
fizemos isso. Agora você pode ver
que também temos os processadores
randomizados pedra, tijolo. Também é necessário
mudar para o curso MC, certo? Então, o mesmo aqui, curso MC. Isso então procura a lista de processadores, tijolo de pedra
randomizado, e então vamos
aleatorizar um tijolo de pedra para cada um dos diferentes, basicamente vai
passar por exatamente essa regra que Eu mostrei a você alguns
minutos atrás, basicamente. Sim, e isso é
praticamente o fã do céu feito. O que agora queremos
fazer é também o lado e a piscina armazenada para
a casa degradada. Então vamos fazer uma nova
pasta aqui chamada Run underscore down
underscore house. E então, dentro de lá, vamos fazer
dois arquivos JSON armazenados Pools Fool e sites ou clicar com o botão direito do mouse em novo arquivo armazenado pool
sublinhado ponto json. E então também queremos o ponto de piscina de
sublinhado lateral Jason. E vamos copiar
o conteúdo. Este é o pool de armazenamento. Vamos apenas copiar isso sobre a meta e depois
vamos por último, mas não menos importante, copiar sobre o tolo lateral e depois temos
tudo copiado. Então nós basicamente precisamos, esse é o único para começar a piscina. E antes de tudo, mais uma vez, a nova lista para o curso MC, mudando isso para o curso MC. E isso é tudo o que precisamos. Então você pode ver a casa degradada
deixada para isso mais uma vez, esta aqui mesmo,
este NVT to File. E então aqui
temos o pool do site. Isso vai ser
muito interessante. Isso é necessário para o
bloco de quebra-cabeças e o material de quebra-cabeça. Então, vamos ver basicamente o que isso significa e o que
isso faz em apenas um momento. Vamos mudar
todos os locais aqui. Vá para o curso MC. E a ideia geral
aqui é que você tem um, você tem a piscina de armazenamento, que será o lado
esquerdo da casa. E então você tem
um bloco de quebra-cabeças em ambos os lados da casa e do lado esquerdo e
direito da casa. E eles estão conectados uns
com os outros. E então ele basicamente chama o pool do site e, em seguida gera o lado
direito House, normal ou dourado. Essa é
a ideia geral. Mas vamos ver isso em um pouco mais de detalhes
na palestra de quebra-cabeças também, onde realmente fazemos uma nova estrutura
personalizada
completamente personalizada
com nossos próprios blocos de serra de vaivém personalizados e coisas assim também. Portanto, não se preocupe lá. Vamos entrar em
um pouco mais detalhes nisso no futuro. Mas agora, na verdade, tudo aqui foi adicionado e deve funcionar. Se essa coisa que
não deve funcionar é na verdade a esquerda
e o lado
direito dentro desses
arquivos MVT no bloco de quebra-cabeças, há um
ID de modelo errado associado a ele. Portanto, o ID do modelo
ainda é o tutorial
sublinhado da estrutura e
na verdade precisamos mudar isso. Agora, o que deve surgir já é nosso fã do céu e do lado
esquerdo da casa. Então, o que vamos fazer é
fazer um novo mundo. E vamos fazer
o que vamos fazer é realmente entrar no Minecraft,
fazer um novo mundo. E então, quando vejo que
o fã do céu realmente possuía, e então também a casa
degradada. Vamos ver se funciona. Muito importante notar,
você chegará a este mundo usando configurações
experimentais. Depois de adicionar
suas estruturas personalizadas, é exatamente o que é. Você não pode se
livrar disso facilmente. Há, eu acho que há um mod que você pode adicionar ou basicamente para obter
isso como um misto, mas você só vai
ter que lidar com isso. Basta clicar em Continuar e
permitir que o mundo gere. E se você se juntar a um mundo
já existente vai dizer algo como, Oh, ele está usando configurações
experimentais. Apenas diga, sim, eu
sei o que estou fazendo. Entre no mundo e você
ficará totalmente bem. Não se preocupe que eles sejam de todo. Tudo bem, então
nos encontramos no Minecraft e geralmente as estruturas
devem ser bastante prevalentes. Lá vamos nós. Na verdade, há 1,5 da casa
já existente. Então vamos descer
aqui e você pode ver que é só
meia casa, certo? Então, o bloco de quebra-cabeças real
é colocado aqui. E então deve
haver outro lado
da casa que vamos
consertar em apenas um momento. Mas você também pode ver alguns exemplos
muito legais e legais de mais algumas coisas aqui. Basicamente TreasureChest como você pode adicionar algumas inclusões também. Então, eu recomendo
verificar isso também. E então vamos,
na verdade, também ir slash localizar o código do curso MC
apenas estruturas Chi Fan. E então também devemos ser
capazes de descobrir isso, digamos que meus dois phi up. Agora lá está. Ok, podemos ver que você vai e nós
também devemos ser capazes de ver quebras de
pedra e, em seguida, alguns
deles são
tijolos de pedra infestados e em vez de terem
sido substituídos por esmeraldas. E, em seguida, aqui estão algumas delas
que foram
substituídas pelas diferentes ORS. Muito legal tudo funcionando exatamente como você
esperaria. E agora precisamos
consertar a casa. Então, como consertamos a casa? Bem, o que precisamos fazer é precisamos obter um certo bloco e esse será
o, esse bloco aqui. Então, vamos apenas nos dar o, este é o bloco estrutural. Lá vai você. Vamos fazer é que vamos defini-lo e, em
seguida, clique com o botão direito do mouse nisso. E o que precisamos fazer é que precisamos obter o nome da estrutura. Há um curso de MSC dois pontos, e isso é sublinhado
para baixo sublinhado casa, sublinhado lado sublinhado esquerdo. Acho que
é isso. Vamos carregar e, em seguida, você iria
realmente carregá-lo. Vamos, vamos selecionar esse controle um
controle C para copiá-lo
e, em seguida, clicar em carregar novamente
para carregar a estrutura. E você pode ver essa
estrutura carrega em largura uma rocha aqui. Esta é a bebida tão bloco. E você pode ver que isso leva o tutorial
sublinhado da estrutura, uma casa degradada ao lado da piscina. É por isso que não
funciona e nós realmente queremos fazer a mesma coisa aqui. Vamos apenas ir um
pouco mais longe. E, em seguida, vamos clicar com o botão direito do mouse,
copiar isso e colar isso. E então vamos
fazer um lado
direito, aqui, lado direito, carregar. Ele também deve carregar.
Vamos sair disso. Lá vai você, carregue isso
. E então vamos fazer a mesma coisa mais uma
vez com os lados dourados. Então isso vai ser um
direito, vou sublinhar o ouro. Então, esses são todos os nossos
diferentes arquivos NVT. Vamos carregar isso também. Lá vai você. E agora temos todos
esses blocos diferentes. Como você pode ver, vamos
começar com a casa esquerda. Então, o que precisamos é necessário mudar isso, é
claro, para o curso MC. Então, curso MC, agora ele vai olhar
para o nosso arquivo JSON do
pool de sites. Então o que vamos fazer
aqui é o lado direito. Não
precisamos necessariamente mudar isso, mas eu gostaria de mudar isso
também . Este é o nome do alvo. Vou selecionar isso novamente, controlar a, controlar C para copiá-lo. E então vamos dizer que acabou. Agora esse nome
aqui, o nome do alvo tem que corresponder ao
nome aqui. Então, se eu clicar com o botão direito do mouse neste, você pode ver que isso tem
um nome específico e aqueles têm que corresponder. Na verdade, é
verificar isso duas vezes. Sim. Este é o Steve. Eu sabia que tinha um w lá porque meio que me movo
um pouco cedo demais. E lá vamos nós,
este também feito. Agora, o que queremos
fazer é salvar esses dados MVT novamente. Como fazemos isso? Bem, mais uma vez, em
nosso bloco de estrutura, vamos
para o modo de segurança, e vamos
salvar isso com o mesmo nome, seguro. Lá vai você, pronto. E o mesmo aqui, vá para o modo Salvar seguro. E depois indo aqui
para o modo de segurança seguro. Então, se isso foi um pouco rápido, não se preocupe, como eu disse, próxima palestra e especialmente
a palestra depois disso, vamos discutir
os blocos
de quebra-cabeças um pouco mais de
detalhes quando na verdade, construindo uma estrutura personalizada
própria e como você pode salvar isso
facilmente. Então, se isso foi um pouco, não
tenho 100% de certeza de
que tudo funciona. Você é, não se preocupe com isso. Vamos ver isso
em apenas um pouco nas próximas palestras também. Mas agora essas estruturas
diferentes foram salvas e agora a
única coisa que precisamos fazer é trocar os dados NVT que
já temos com nossos dados acabados de salvar em VT. Então, vamos mudar para a inteligência e
ver como isso funciona. Tudo bem, então
encontramos um suspeito
na inteligência e
queremos ir para a
pasta de execução para seus cofres. E então você quer entrar
no mundo que acabou criar onde você realmente
tem essas estruturas. Deve haver uma pasta
gerada
aqui com exatamente esses dados NVT. Mas isso é exatamente
o que queríamos. Vamos pegar isso
e vamos
movê-lo todo o caminho até as
estruturas aqui. E diremos que substitua
tudo. E é isso. Agora, a
casa degradada funcionará corretamente porque
agora basicamente
vai procurar
o pool adequado do site porque tivemos que especificar isso
na casa esquerda e
também vai trabalhe com
o lado direito adequado. Então, isso deve ser
praticamente tudo o que precisamos fazer. Então, vamos criar um novo mundo e vamos ver se a casa
agora aparece corretamente. Tudo bem, encontramos no Minecraft e você pode
ver, lá vai você. Na verdade, existem dois
deles. Como eu disse, eles são muito, muito comuns. Então você definitivamente
quer mudar os números se quisermos torná-los
um pouco mais raros. Mas, como você pode ver, lá está. E vamos ver,
tive sorte. Lá vai você, 50% de chance de
conseguir o ouro aqui. Agora, o lado direito
também aparece. E podemos realmente ver,
vamos entrar aqui e ver se
este é ou não os outros. Então eles puderam ver que
existem variantes diferentes. Lá vai você. Este é o
único que sem o ouro. Então isso é realmente incrível e muito legal e todas as coisas
não são tão loucas. Mais uma vez, é
tudo sobre fazer isso rolar, porque eu prometo a você a próxima palestra quando realmente fizermos
nossa própria estrutura, você ficará
surpreso com o quão fácil é adicionar isso depois
de passar por isso, entenda todas
as diferentes
partes e como você pode, basicamente , mudá-lo para o que
quiser que sua estrutura seja. Então, é assim que pode ser fácil. Mais uma vez, para resumir rapidamente o que a aberração vem
acontecendo aqui, certo? Isso foi um pouco. Basicamente, temos um pool de armazenamento que começa a gerar
sua estrutura. Isso examina um arquivo MDT na
pasta de estruturas aqui
e, em seguida, gera esse arquivo MVT
específico. Agora, como ele sabe
onde gerar isso? Bem, ele vai usar
essa tag aqui. Assim, neste caso,
por exemplo, os
biomas domésticos adjacentes apenas marcam e dizem:
Ok, se estivermos em qualquer um
desses
113. (1.18.2) Estruturas personalizadas (única peça): Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos
fazer uma estrutura personalizada. Já nos encontramos no Minecraft e já
criei uma
estrutura personalizada aqui. Assim, você pode baixar
o arquivo NVT para isso. No entanto, eu realmente
recomendo o que você faz é criar
sua própria estrutura personalizada. Não precisa ser grande, não precisa
ser complicado. Definitivamente tem que estar
abaixo de 48 por 48 por 48. Eu diria que você pode simplesmente
pausar o vídeo, criar sua própria estrutura
e, em seguida, continuaremos. Espero que você tenha construído
uma estrutura que é, ela tem, pode ser semelhante
a isso ou o que quer que seja. Mas, basicamente, agora queremos
o bloco de estrutura real. Então, se você não
tem isso, você pode simplesmente dar isso a si mesmo. Basta dar ao seu próprio jogador aqui, o bloco de estrutura,
este aqui. Você pode ver, lá vai você. Este é o bloco de estrutura. E o que queremos
fazer é
colocar isso praticamente fora
de toda a estrutura. Então, queremos
colocá-lo aqui para que tudo dentro
dele vá,
Bem, basicamente ele
os salvou mais tarde e então queremos
o outro aqui. Então, queremos aqueles nesses
dois cantos e, em seguida, os outros dois blocos devem ir para os
outros dois cantos. Mas eles basicamente formam um, formam um cubo em torno disso. Nesse caso, só vou
colocar isso aqui. Lá vai você. Então
vamos começar aqui. O nome da estrutura deve
ser dois pontos do curso MC, e eu vou chamar isso de casa sublinhada
do tapete. E vou copiar esse nome. Então, uma vez que você possa controlar
a para selecionar tudo, controle C para colá-lo. E então estamos mudando para o modo de
canto e dizemos Concluído, vou
aqui, colá-lo no modo de canto de
controle V pronto. Por aqui, eles se sentam
em hormônios feitos. E então nosso
último aqui, nós realmente queremos
ir para o Modo de Segurança, colar isso e dizer detectar, e então ele deve detectar toda
a estrutura para que você possa ver e
garantir que tudo que você quer está dentro
das linhas reais aqui
e tudo parece ótimo. Agora, o que podemos fazer
é dizer seguro. Agora o arquivo, o arquivo NVT,
na verdade, foi salvo. Isso é realmente o quão
fácil isso por um tempo, uma estrutura de peça única
a ser salva neste caso, é
claro, construí-la. Isso é, claro, uma outra
coisa. Quando se trata
dos blocos de quebra-cabeças, isso é algo que vamos
ver na próxima palestra. Mas, por enquanto, vamos
voltar para o IntelliJ. E vamos dar uma
olhada no que podemos basicamente
vê-lo ali mesmo. Então, na inteligência,
vamos entrar na pasta
R1, salva. Isso foi no
mundo das estruturas que eu acredito que gerado lá é a casa da cabine
e nós vamos
apenas copiar isso sobre o controle C. E então eu vou
colá-lo em minhas estruturas. Siga aqui.
Hothouse NVT eles atrás, este agora é o meu acostume. Como é que eu construí? E agora, é claro, precisamos adicionar algumas coisas que já
fizemos antes. Então, agora o que vamos
fazer é
abrir a pasta de origem com todos os diferentes Jason
final CR, o mesmo com o imposto. E agora basicamente a
ideia é que uma vez que você passou por
isso é por isso que eu disse na última palestra, uma vez que você
passou por isso, uma vez, adicionar novas estruturas
é incrivelmente fácil. Porque o que
vamos fazer é levar a casa única do JSON. Você vai fazer essa estrutura única
adjacente. Nesse caso,
vamos pegar cada um
desses arquivos e
apenas duplicá-lo. Então, vamos
arrastá-lo para a mesma pasta que está no controle de
retenção da bile. Então isso vai duplicá-lo. Vamos chamar essa
empresa sublinhada de casa. E vou selecionar
todo o nome aqui, controlar C para copiá-lo porque
vamos usar isso
algumas vezes com
os outros arquivos JSON. E esses biomas são
realmente totalmente divertidos, então vamos mantê-los. É claro que, mais uma vez, é
apenas o arquivo JSON que especifica em quais biomas nossa estrutura personalizada
pode gerar. E ele configurou o recurso de
estrutura. Vamos copiar
isso também. E, mais uma vez, basta copiar e colar o nome aqui. Aqui queremos alterar esse nome para cobrir
a
casa sublinhada, a piscina da loja. Vamos criar
isso em apenas um momento. E então este é, claro, a meia estrutura
de carbono casa Jason, que aponta para aqui. Então, talvez o que
realmente não
queremos, não queremos nenhum monstro aqui. Então, vamos apenas fazer este. Vamos ter uma criatura gerada,
talvez um papagaio. Isso deve ser bom no geral, o resto aqui está bom. Não precisamos de nenhuma
lista de processadores neste caso, não
quero que nada
seja substituído aleatoriamente. Você poderia, claro,
ainda fazer isso. Vimos isso,
a última palestra, a lista de processos foi bem
legal, mas não queremos isso. E então temos um conjunto
estruturado, mais uma
vez , também cobrimos a casa
sublinhada. Aqui ele aponta para a casa
de sublinhado de carbono e muito importante, isso é incrivelmente
importante para tornar a colocação aqui
no Salt única. Tem que ser único. E então também
vamos mudar o espaçamento um pouco. Não vamos ficar muito
loucos ano mais uma vez, 166 ainda são muito, muito pequenos. Isso definitivamente deve
ser maior quando você está realmente implementando
algo no jogo. E, claro, você
viu como era
a distância geral para a
estrutura anterior também. Em outra última coisa que precisamos
são os pools de modelos. Vamos pegar toda a pasta
da casa resumida aqui. Vamos renomear
isso para lidar e abrigar. E então vou abrir
o do site
e o pool da loja. Eles começam a piscina aqui, discípulo, podemos realmente excluir,
isso é ainda melhor. Então, vamos apenas
fazer sim, excluí-lo. E então o pool de armazenamento aqui, certificando-se de que temos esta
casa de piscina inicial aqui. E então aqui vamos
dizer em vez da casa
degradada à esquerda, isso é claro,
apontando para o arquivo NVT. Vamos apontar para
o arquivo NVT da casa comum. É isso. Agora você vai
dizer que não pode ser tudo. Isso é, na verdade,
tudo o que precisamos. 1234 arquivos JSON e nossos arquivos NVT e um
total deles,
dependendo de quão
complicado seja o seu compilado, pode levar muito tempo para realmente salvar o arquivo NVT, mas isso é bastante muito
tudo o que você precisa fazer. Agora, é claro, você
ainda pode mudar algumas
coisas por aqui, bem nesses arquivos Jason, configurar alguns
elementos diferentes lá. Mas, no geral, isso é
praticamente tudo o que você precisa. Então, para o bem da conclusão, o que vamos fazer é fazer um novo mundo, entrar e ver se conseguimos
encontrar nossa casa de carbono. Eles são muito curiosamente
o suficiente aqui, eu realmente tenho uma
flecha aqui.
114. (1.18.2) Estruturas personalizadas (Estruturas de (1.18.2): Tudo bem, bem-vindo de volta
ao curso de tecido por 100
mil vistos nesta palestra, vamos criar
uma estrutura de quebra-cabeças. Você pode ver que eu já
preparei esse lex na verdade, esses dois
blocos aqui. E vamos realmente criar
isso do zero. Então eu já construí a
estrutura aqui. E o que vamos fazer
é economizar 1,5. Tão praticamente com o, com a separação aqui. Uma vez arquivo NVT e , em seguida, a outra parte
em outro arquivo NVT. E então o que vou
fazer é
fazer uma variação de três diferentes. Um com ferro aqui, um com
esmeraldas e diamantes de uma largura. No mundo, essa plataforma
de armazenamento pode surgir com a Oracle
vindo de um lado
e, em seguida, o outro lado será determinado aleatoriamente. Então, antes de tudo, o que vamos fazer é
precisamos dos blocos estruturais. Então, mais uma vez, vamos
fazer é que vamos dar
a nós mesmos este bloco. Então vamos apenas dizer Give e depois procurar o bloco de
estrutura aqui. Também vamos precisar
do bloco de quebra-cabeças. Então, vamos dar isso a um eu imediatamente para
que o tenhamos. E então o que vamos
fazer é, primeiro lugar, pegar a estrutura
principal aqui. Este curso deve
estar aqui. Acho que isso
deve ser bom. E então o que precisamos é,
claro, no topo também, vamos nos certificar de que
estamos altos o suficiente. Isso deve ser bom. E depois mais um ou
eles atrás, tudo bem. E então aqui, você precisa estar abaixo de um. Então, bem ali. E então, mais uma vez, mas subiu todo o caminho
pela mesma altura. Acredito que isso deve ser bom. Agora isso foi claro
aqui, lá vai você. Isso deve estar tudo bem. Mas vamos ver
em apenas um segundo, então vamos entrar aqui,
ir para o modo canto, e isso vai
ser dois pontos do curso MC. Vamos chamar isso de plataforma de
sublinhado de armazenamento. Lá vai você. E eu vou, é como
tudo isso com o Controle a, Controle C para copiá-lo, feito. E vamos
com este ou controle
remoto V
para colar o nome no controle V para colar o Neyman e, claro, também
mudou o modo de canto. Muito importante. E
então aqui, vamos para o Modo de Segurança, colar o nome, e então
vamos dizer detectar. E lá vamos nós. Então, temos toda a
estrutura aqui, então isso é exatamente certo. Agora, o que também queremos definir
é o bloco de quebra-cabeças. Agora, como funcionam os blocos de quebra-cabeças? Bem, a ideia geral é que a forma como a seta aponta. Então, basicamente, queremos duas setas sempre apontando uma para a outra. Então o que vamos
fazer é encontrar o meio aqui. Vamos apenas pegar este. E então a seta aponta
nessa direção. E então também queremos que
o outro bloco
de quebra-cabeças aponte na mesma direção. Então você vê que eles se formam, eles formam esse tipo de linha e as
setas apontam umas para as outras. É assim que o outro
será colocado. É por isso que eu já
o construí bem ao lado do outro. Vamos rapidamente
fazer isso direito. Lá vai você. Você pode ver que este está dentro da primeira
estrutura, certo? Então este está dentro
dessa estrutura e o outro estará dentro da segunda estrutura, o que
faremos em um minuto. O que isso faz é que este
aqui tem um nome definido. Então, esta será apenas plataforma de sublinhado do lado dos dois pontos do curso
MC, por exemplo. Vamos selecionar isso e copiar
esse nome aqui. Esta é a única coisa
que precisamos fazer
no bloco de quebra-cabeças secundário. No bloco de quebra-cabeças primário, queremos colocar isso sob o nome do alvo e,
em seguida, no pool de destino. E isso é incrivelmente
importante e
queremos fazer o curso MC. E então isso será isso,
digamos
que o conjunto de sublinhado do site de barra da
plataforma de
sublinhado de armazenamento . Então, aqui, ele aponta para o arquivo adjacente dentro de nossas pastas de dados. Se eu abrir rapidamente, você é para que você possa ver isso
para a casa degradada, esta piscina lateral aqui. Isso é isso. É claro que ainda não criamos
a plataforma
de armazenamento , mas essa é a ideia. Portanto, temos esse arquivo JSON de
pool lateral, que define diferentes variantes desse particular,
deste site específico. E, na verdade, coloque a ironia aqui, mas isso vai ficar bem. Eu só vou ter
a geração de ferro e então esta será
a plataforma lateral. Quero dizer, não
importa de que maneira você faz isso. E sim, então basicamente
a plataforma do site, esse nome e esse
nome têm que corresponder. Essa é a única coisa. E
então, para os principais, então este é o principal. Esta é a estrutura
que vai surgir quando você usar
a estrutura, a plataforma de armazenamento,
esta aqui, que será a principal onde temos esse pool lateral. Portanto, este é o arquivo JSON. Este é apenas o nome
do outro quebra-cabeça nascido. E também o que
podemos definir aqui é o que o
bloco de quebra-cabeças se transforma. Vamos apenas
excluí-los e deixá-los se transformar em ar. Mas você poderia, em teoria,
também mudar isso. O que vamos fazer é
também pegar o segundo aqui só para
que tenhamos. Então, isso seria aqui. Isso deve ser eu acho que não, acho que isso deve ser bom. Então, devemos ter
tudo lá dentro. E então aqui, também vai colocar o
bloco de estrutura aqui. E então o outro bloco de
estrutura para escrever seu eu acho
que deveria ser isso. E isso agora vai ser o que vamos chamar isso, não a forma de plano
do site disso será a plataforma de sublinhado de armazenamento de
sublinhado de renda da Oracle . Vá, vou selecioná-lo, pressione controle C para copiá-lo, modo
Warner, controle V para colar. Eles não estavam no modo de canto.
E então aqui também, eles se sentam no modo e claro,
este será o modo salvo novamente, eles se sentam, dizem detectam, e devemos ter
isso no dia deles atrás. Agora temos a plataforma de armazenamento de
cálcio oral, que também inclui este bloco de
quebra-cabeças aqui. O que é muito importante
nesse caso. Então o que vamos fazer
é pegar a plataforma de armazenamento
teria salvado isso. Vamos pegar a
plataforma Oracle, salvar isso
e, em seguida, múltiplos fazer é mudar isso para ser um tipo diferente de ordem e vamos salvar um
exemplo diferente disso também. Tudo bem, então eu mudei
tudo para esmeraldas neste caso que
vou fazer é agora vamos mudar o nome aqui. Vamos mudar o nome
para a plataforma de armazenamento Emerald. Vou selecionar tudo. Pressione o controle C para copiá-lo. E vamos mudar
todos os nomes aqui. Isso é muito importante. Então, mais uma vez,
há controle a2 coletado ou controle V
para colar o novo nome. E isso deve ser bastante
autoexplicativo aqui. Vou fazer o mesmo
aqui e depois vamos detectá-lo mais uma vez. E você vai
ver, lá vai você. Esta é a
plataforma de armazenamento esmeralda, neste caso, certifique-se também quando você seleciona quando você coloca em um
novo bloco que você está, não esteja fora
dos limites aqui. E então vamos
salvar este também. Agora temos duas variantes
diferentes. Só por uma questão de argumento, vamos fazer
outra variante. Vamos também fazer a variante
de diamante. Vamos fazer isso rapidamente. Eu senti isso com um diamante. Então, mais uma vez, vamos
mudar os nomes aqui. Então esta será a plataforma de armazenamento de
diamantes. Mais uma vez, Controle
a para selecioná-lo, Controle C para copiá-lo. E depois
faremos a mesma coisa para todos os
cantos diferentes aqui. Lá vai você. E então este também. Lá vai você. E então vamos aqui mais uma vez para detectá-lo. E nós
detectamos com sucesso, e agora podemos salvá-lo também. Lá vai você. E agora salvamos três variantes
diferentes
dessa parte
da plataforma e basicamente
uma plataforma principal aqui. Esses são basicamente conectados através deste
bloco de quebra-cabeças aqui. Mas esta é a,
toda a ideia aqui. Vamos mudar para até um DJ e ver o que podemos ver em primeiro lugar, claro que precisamos
obter os dados NVT para é
claro que precisamos
obter os dados NVT para
este vai entrar
na pasta R1 nos cofres. Da mesma forma, você basicamente salva
isso e isso vai ser
todos os quatro. Vamos precisar
dessas plataformas de armazenamento e das três
diferentes lá. Vamos copiá-los para nossas estruturas, siga aqui. E então o que
vamos fazer é mais uma vez, vamos copiar os arquivos JSON
da casa do balcão. E você vai ver
que mais uma vez, mesmo com os blocos de quebra-cabeças, não
é tão louco. Vamos copiar sobre este
que será
a plataforma de sublinhado de armazenamento. Este será o nome
da própria estrutura geral e a lua fará assim que
você puder configurá-la. Recurso de estrutura,
também plataforma de armazenamento, mas só precisamos
alterar o nome aqui para a plataforma de armazenamento. E o nome dos
biomas aqui era apenas esse arquivo JSON
aqui, plataforma também. A mesma coisa de lista
na estrutura, defina. A estrutura de extinção de volta
ao recurso de
estrutura configurada. E então este só
vai
ser algo assim. Então, mais uma vez, um sal
e o espaçamento, quero dizer, podemos praticamente mantê-lo como está, apenas mudando
um pouco. Lá vai você. E
então é para a casa
do modelo,
os conjuntos de modelos. Então, vamos realmente
usar a casa degradada aqui. Quero mudar isso
para a plataforma STORD e temos os
dois Jason fantasier, o pool do site e
o pool de lojas. Vamos começar com o pool
histórico aqui, mudando isso para nossa plataforma
de armazenamento, pool
estrela número um
e, em seguida, este para
a plataforma de armazenamento. Esta será a citação principal sem
aspas no arquivo
VT para a qual ela aponta. Então, isso vai apontar para
este arquivo NVT aqui. E então a piscina lateral
vai ser interessante. Isso vai ser, é
claro, mais uma vez, mudar o nome
aqui e a ferida é em vez de apontar
para o lado direito da casa, nós realmente queríamos apontar
para o, por exemplo, diamante
plataforma de armazenamento sublinhado. Sim. E então também
queremos que os outros dois vamos excluir
este aqui. Nós também vamos excluir os comentários por uma
questão de argumento. Vou fazer isso e
depois copiar isso duas vezes. E também podemos mudar o
peso aqui. Então, digamos, por
exemplo, que
tenhamos trinta e três por cento
de chance de gerar qualquer um
deles, digamos. E então este não
será o momento em um,
mas o item de Orange County sublinha a plataforma de armazenamento
e então esta
será a plataforma spot de
armazenamento esmeralda Emerald. Mais uma vez, esses locais
aqui apontam para os arquivos NVT. E vai levar
um desses arquivos NVT e vai gerar isso
com pesos diferentes aqui. Se tivermos
os pesos dos três, então
será praticamente um sobre três. E também poderíamos dizer,
bem, talvez você saiba o que,
Na verdade, isso é
duas vezes mais provável. Talvez seja cinco anos. Então, isso vai
surgir 50% do tempo. Isso vai
subir 20% das vezes. Nesses 10% das
vezes, são apenas os pesos
basicamente sobre como ele é gerado. E isso é literalmente
tudo o que você precisa fazer. Já terminamos
de configurar isso. Mais uma vez, quando temos os arquivos JSON já preparados
depois de copiá-los, você está feito como se fosse
muito, muito simples. E sim, é claro, se
você tem idéias mais loucas, se você
tiver um
múltiplo, vários blocos de quebra-cabeças
e coisas
assim, é claro que vai
ficar cada vez mais complicado. Mas digamos um ótimo começo. E eu recomendo estar
aberto à experimentação, especialmente e apenas
experimentar coisas e ver o que você pode
basicamente inventar. Então, pela última vez
para as estruturas, vamos ao Minecraft, criar um novo mundo
e vamos ver se nossa nova
plataforma de armazenamento aponta ou
uma fantasia Minecraft e eu
já espionamos algo aqui, e este é provavelmente o
pior cenário. Você pode ver que apenas metade
do esporte, isso é
muito interessante. Então provavelmente haverá um erro de digitação em algum lugar, o que é muito estranho, mas vamos
ver esperar um segundo. Vamos apenas que o problema
é muito engraçado porque acabei de mudar os nomes
da casa degradada uma vez. Então você pode ver
na casa degradada, eu mudei as coisas reais
para a plataforma de armazenamento. E a plataforma de armazenamento tem essas coisas na casa
degradada. Então isso não é bem o que
eu tinha em mente aqui. Vamos fazer isso assim. Vamos apenas copiar isso. E então vamos fazer é que este só vai ser excluído. Então, vamos tirar
o nome disso,
é esse nome de volta
à casa degradada. E então esta será
a planta de sublinhado de armazenamento. Mas agora isso deve
estar funcionando bem. Então, vamos ver. Este é o lado da
plataforma de
armazenamento de inicialização da plataforma de armazenamento
por enquanto, devemos ficar bem. Então, o problema aqui foi
que eu acidentalmente alterei os arquivos JSON da
casa resumida em vez da plataforma de armazenamento. Os arquivos Jason podem acontecer a qualquer momento, então não se preocupe lá. Mas ele realmente viu que às vezes você não
consegue encontrá-lo. Então você teria que
passar pela sentença. Você vê que você pode realmente encontrar
algo no terminal. Não estava nada aqui. Era apenas uma flecha aqui nos arquivos, mas
não se preocupe. Então, agora vamos
realmente dar uma
olhada se é ou não
gerado corretamente. Tudo bem, se
responder na Microsoft mais
uma vez e vamos ver, eu nem sei se isso
aparece neste bioma real. Então, vamos apenas localizar a plataforma
de armazenamento do curso MC e vamos ver se isso funciona.
N está lá vamos nós. Finalmente funciona. Então você não pode ver nenhuma
preocupação. Sempre pode acontecer que
haja um erro de digitação em algum lugar. Mas, no geral, você viu que não
era nada de um ano louco. Foi muito, muito
simples de corrigir. Vamos ver se eu não consigo
voar e realmente encontrar outra
dessas plataformas de armazenamento, talvez com
outra coisa, então já o
cálcio
parece que também é um cálculo. Na verdade. E é de fato, vamos apenas tp para algum lugar
muito, muito distante. Vamos apenas ir como,
eu não sei, 20 K. E vamos ver se consigo
localizar outro. Vamos localizar a plataforma de
espada dele e ver se esta tem algo
diferente do que calculamos. Claro que não, porque
isso seria muito fácil. Vamos ver o P1 da última vez e
vamos ver talvez
possamos encontrar algo. Vamos para menos 20, K a K, tudo bem. E então vamos localizar o curso
MC em direção à
plataforma Mais uma vez. Vamos ver se
isso vai funcionar. Acho que estamos realmente abaixo dele. Aí está. E, na verdade, encontramos
alguma diferença. Então aqui podemos ver aquele
com as esmeraldas também. Então, tudo funciona totalmente como você esperaria. E realmente incrível. Então, tudo funciona
muito bem e sim, é praticamente o
quão fácil é para algumas estruturas de quebra-cabeças
serem adicionadas ao Minecraft. Mas isso seria praticamente para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Todos os arquivos JSON
nas fontes NVT
também estão disponíveis para download
no repositório do GitHub, um indivíduo também. Mas, de outra forma, verei
você na próxima palestra.
115. (1.18.2) Modelos de armadura 3D personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos adicionar um
modelo de armadura 3D personalizado ao Minecraft. Vamos transformar
nossa
armadura Oracle come em um modelo de armadura
3D personalizado. E para isso,
vamos mais uma vez usar um banco de blocos. Como você pode ver, eu
já preparei o oráculo vem
armadura aqui. Mas isso é, na verdade,
bastante simples. Então, vamos usar o
eco lip mais uma vez. E a maneira como isso
funciona é se você fizer um novo modelo
animado ao vivo aqui, podemos apenas fazer uma armadura de
teste aqui. Então o que você pode fazer
é ir Configurações do modelo labial do
arquivo gecko. Você pode simplesmente transformar isso em
armadura e, em seguida, ele vai
gerar o
jogador do Minecraft aqui. Você pode ver que
não toca nisso. Então, basicamente, esses
blocos diferentes não devem ser tocados. Então tudo o resto que
você deseja adicionar sob a cabeça da armadura, corpo de
armadura e assim por
diante e assim por diante. Faça, por exemplo, você pode
clicar neste Add Cube e, em seguida você pode começar a adicionar sua armadura
personalizada aqui, Z, basta dimensioná-la. E, no entanto, você era basicamente
como sua armadura para olhar. Você pode duplicá-lo,
Control D. Lá vai você. E então você pode simplesmente adicionar coisas a ele e você pode,
claro, torná-lo
tão personalizado quanto quiser. Agora o que eu descobri é que fazer a armadura é
realmente muito difícil. Como fazer com que pareça
bom não é tão fácil. Então isto é, na verdade
não parece tão bom, especialmente quando você
realmente pega, por exemplo, o braço aqui por uma questão de argumento, podemos
girá-lo ao redor. Você pode realmente ver se eu
rodar um pouco, que ele realmente falta
aqui e coisas assim. Portanto, não é, não é tão interessante, não
é tão louco. É apenas um exemplo
de um pedaço de armadura. E o que você pode fazer aqui também
é o seguinte. Quando você criou tudo, o que você pode fazer é excluir essa textura
no momento. E então você pode ter
algo assim. O que você pode fazer é pressionar Control a, e então isso selecionará
cada parte da coisa diferente
que você tem aqui. E então podemos fazer é que você pode fazer uma nova textura com isso. Então, vamos manter essa textura e então você pode
vê-la basicamente substitui
tudo nessa textura. Agora, se você salvar essa textura, eu vou fazer isso. Você já preparou
algumas coisas aqui. Pior do que eu posso fazer
é que eu serei capaz, bem, é assim
que parece, certo? Quando eu o abro, você pode
vê-lo basicamente lhe dá uma tese da armadura onde você realmente
quer desenhar isso. Então, o que podemos fazer
é apenas adicionar isso aqui diretamente à textura.
Vamos apenas abri-la. O que você pode fazer então
é que podemos entrar aqui e depois
mudar algumas coisas. Por exemplo, aqui,
acredito que deveria ser como a parte de trás da cabeça
ou algo assim. Podemos simplesmente desenhar tudo
isso e depois salvá-lo. E se eu entrar no banco de blocos
novamente, clique com o botão direito do mouse em atualizar, então você pode ver agora que
isso mudou e na parte de trás da
cabeça, você veria lá, e eu vou ter essa cor, colorir e fazer a
textura muito difícil, como se não fosse
tão fácil de fazer. Você também pode clicar
nas fases individuais e ver onde isso está. Então você pode ver que a barra
na parte superior da cabeça
é realmente isso. Então eu posso dizer, Ok,
este aqui, eu acredito, ou não enganado. Então eu posso dizer, oh, faça isso azul e
depois salvá-lo novamente. Mais uma vez, vá aqui, atualize. E você pode ver agora no
topo da cabeça é azul. Então, isso é definitivamente uma coisa
que vai demorar algum tempo. Eu só quero mostrar como
você pode basicamente adicionar. Então eu já
preparei a textura. Vamos apenas pegar a textura do
resultado do oracle aqui. E também o que eu fiz foi acrescentar esse preto
aqui , porque o que
eu queria fazer na cabeça e outras coisas, eu queria movê-los para o fundo para que fosse
um pouco mais fácil basicamente, veja a
distinção entre minha armadura real e o jogador. Então eu posso fazer isso
aqui também. Lá vai você. E então a outra perna também. Então, basicamente, todos
os Não toque uma vez. Acabei de me mudar para a armadura preta
aqui, só para que eu possa
basicamente ter um contraste menos lá
para que eu possa ver, ok, enquanto isso,
o que estou fazendo aqui? Este
modelo de pinça de bloco, é claro também estará disponível para download. E o que você faz é simplesmente
ir para File Export,
Export , gecko lip model. Este vai ser um
modelo geográfico uma vez não mais uma vez, eu já tenho isso, é claro, então vamos
substituir isso. E o que você pode fazer
então é entrar em tecido aqui e depois
continuar de forma inteligente, vamos continuar e
realmente adicionar isso. Do que vamos
precisar? O que vamos precisar de três coisas diferentes. Um deles é um item personalizado. Então, no pacote de itens personalizados, faremos com que a
conta venha o item de blindagem. E isso vai fazer isso. Vamos estender
o item de blindagem mod, na verdade que ele tem
a mesma funcionalidade. Vamos criar um
construtor combinando super. E então também vamos fazer, o que é muito importante
é que, na verdade,
houve um problema
no item de blindagem de resultados ou no item mais
blindado. Neste
método de armadura aqui, normalmente vou fazer
é que eu realmente tenho o método correto aqui. Você pode ver,
basicamente, apenas verificando lançamos isso
para o item de armadura, se ele realmente
é ou não um item de armadura aqui, A razão para fazer
isso é de outra forma, quando você tem um elétron e o resto das
armaduras preenchidas, e uma delas é
o item mais armadura, então o jogo realmente
vai falhar porque você não
pode
lançar o elétron em itens de armadura. Portanto, tenha isso em
mente, mas isso é praticamente tudo o que
precisamos fazer aqui. E então, para o item de armadura de
cálcio, o que realmente queremos
são algumas coisas. Então, na verdade, queríamos adicionar os implementos que eu
animável também. Passe o mouse sobre este Implement
Methods implementará o método de controladores de registro , bem
como o método de
fábrica GET. Mas você também pode fazer é
pressionar Shift duas vezes e olhar para o item colocar a armadura de
batata aqui. Este é um exemplo. Então,
isso também é ótimo. Você pode basicamente, em teoria,
simplesmente copiar tudo. Então, o item de
armadura de batata e batata é praticamente o exemplo dado
do lábio de gecko aqui. Então você também pode dar
uma olhada nisso. Vamos
continuar. Então, é claro, precisamos do eu animo toda a fábrica de
animação. Isso é algo
que vimos com as entidades personalizadas também. Vamos basicamente
devolver a fábrica aqui. E então, para o predicado, o que vamos fazer é
praticamente o que você poderia,
em teoria, fazer, como eu disse, literalmente apenas
pegue todo esse método aqui, o predicado, porque esse é o coisa
que vamos precisar. E podemos simplesmente
assumi-lo e copiá-lo porque praticamente será sempre o mesmo. A única coisa que vamos mudar, a animação aqui será
chamada de ociosa neste caso. E então aqui em baixo, nós realmente queremos que isso seja um
pouco diferente. Portanto, não há, eu sou registros. Isso vai ser
itens mod, cabines de início, e então
vamos passar por mais e mais itens,
começar leggings. Nós vamos buscar quanto mais itens
começarem a ser jogados e
,
por último, mas não menos importante, quanto mais itens iniciarem
capacetes eles atrás. E isso deve
ser praticamente tudo o que precisamos aqui. Então, é claro, o
predicado para ser bastante autoexplicativo aqui,
vamos usar isso
no método de registro aqui. Certo, vamos
renomear isso para dados. Lá vai você. Deveria ser isso. Todo
o código também está disponível para você no repositório
do GitHub, um indivíduo também, mas isso deve
ser praticamente tudo o que precisamos. Você também tem alguns bons
comentários aqui, o que é realmente útil. Isso também é muito legal, logo após ter adicionado
como este item de armadura, agora
precisamos mudar todas as
quatro peças de armadura para isso, ou pode se tornar um item de armadura Isso é realmente muito
necessário aqui. E então podemos usar isso
no modelo e no renderizador. Então, eles entrarão pacote do cliente da
minha entidade aqui sob um novo
pacote chamado armor. Você também pode movê-los para qualquer lugar do item,
cliente, seja o que for. Então eles não precisam ir aqui, mas vou
colocá-los lá. E haverá o
Oracle vem braço ou modelo. E o outro vai ser o resultado
da armadura Oracle
renderização, eles estão atrás? O modal vai estender
o modelo real animado do
tipo ou um item de armadura de cálcio. E então
vamos passar o mouse sobre isso, implementar os métodos. Então, esses
serão os três métodos que retornam identificadores. Agora eu já preparei isso. Só vou
copiar isso, mas deve ser bastante
autoexplicativo. Isso aponta para o arquivo JSON
modelo que exportamos da bancada de blocos. Este é apenas o nosso arquivo de textura
e essas são as animações. E eu preparei as animações. É quase um arquivo Jason em
branco. Não é bem, mas é
bastante autoexplicativo. Então, vamos adicionar
os arquivos JSON aqui. A animação
também está disponível. E isso eu praticamente usei para todas as
diferentes texturas, para todas as diferentes armaduras. Se você não tiver
animações específicas associadas a ela. E você pode simplesmente fazer
essa animação que não
tem nada nela. E então o que vamos
fazer é pegar a armadura GO e também conseguir
isso aqui, eles atrás. Claro,
modelo real neste caso. E então a textura que você pode ver isso deve passar
por texturas, armadura
modelo ou textura de
armadura de cálcio. Então, haverá uma
nova pasta aqui,
modelos e, em seguida, um novo
diretório chamado armadura. E então vamos acabar com a
textura também. Este vai ser
este aqui. Lá vai você. Apenas para
fins de teste, é claro, ou textura de armadura de renda.
Isso está correto. Lá vai você. Então,
isso deve ser bom. E então o modelo está pronto. Em seguida, podemos continuar adicionando
coisas ao renderizador. renderizador vai estender o renderizador de blindagem geográfica mais
uma vez do tipo já
contará o item de armadura. Vamos passar o
mouse sobre isso e criar um super
combinando construtor. E na verdade não queremos que
nada entre aqui e aqui queremos o novo modelo
Oracle Cloud Armor. Isso é bastante autoexplicativo. E então o que vamos
fazer é que queremos definir isso, então queremos definir o osso da cabeça, o osso festa e assim por diante e
assim por diante para os nomes. E esses nomes serão os nomes aqui. Podemos ver que esta é a cabeça de
armadura aqui. Estamos colocando o
osso da cabeça na cabeça de armadura. Este tem que ser o caso. Também podemos dar uma
olhada mais uma vez, o renderizador de armadura de batata. Acredito que se eu realmente der uma
olhada nisso, o renderizador aqui, ver
que eles também fazem a mesma coisa. Isso é só, você só
precisa definir isso. E foi muito
interessante e não
sei por que esse é o caso, mas você tem que colocar
o osso da perna esquerda para
a armadura perna direita no osso da
perna direita para a armadura esquerda. Como se eu não
soubesse por que esse é o caso. Pelo menos isso é
o que eu achei que funciona. Não sei por que ele
mudou por aqui. Não posso dizer o porquê,
mas foi exatamente o que eu encontrei. É uma correção muito fácil.
Então isso não é um erro de digitação, é
assim
que você precisa fazer isso, pelo
menos foi para mim. E depois de adicionar isso agora, podemos realmente usar isso em nossa classe de cliente do curso MC. Então, haverá aqui. Queremos fazer é, queremos fazer, é claro, no método
do cliente
não inicializado, queremos dizer GU
armor renderer.org, armadura registro nos renderizar com um novo ou o renderizador de blindagem de
cálcio. E então queremos
passar todos os nossos itens que temos. Mais uma vez, queremos passar as botas e depois os itens de modo. Não. Estas serão as leggings. E então temos
itens mod, comece a dividir. Não, isso definitivamente não. Há
sinal de flor de cerejeira e, em seguida, temos mais itens, esse elemento. Lá vai você. E isso deve ser bom. Sem erros. Deve ser presidente aqui. E acredito que todas
as coisas consideradas, isso deve ser praticamente
tudo o que precisamos. Há mais uma coisa
que eu só quero acrescentar, só para que a tenhamos aqui. Vamos apenas adicioná-lo também. Podemos chamar gecko
LEP dot initialize. Não tenho 100% de certeza se isso é
ou não necessário. No entanto, é insanamente
apenas uma boa ideia adicionar isso apenas
para que tenhamos em nosso próprio método
inicializado. Não tenho 100% de certeza de que o testei. Se ele basicamente
quebra ou não o mod, não, se você não adicioná-lo,
apenas com certeza, vamos adicionar isso também. E caso contrário, acho que isso deve ser praticamente
tudo o que precisamos. Quero dizer, se algo
não funcionar,
então, é claro,
será capaz ver isso
imediatamente
no jogo também. Vamos apenas entrar no Minecraft
e ver se ele funciona. Conselhos em Minecraft. E vamos apenas pegar a armadura aqui e
vamos ver se ela funciona. E, de fato, sim. E é claro que ainda temos nosso
efeito de armadura de clientes aqui. E parece incrível. A coisa também funciona, como eu disse, fazendo a armadura
parecer muito, muito legal. Isso é uma
coisa muito difícil, como adicionar o ARMA como você viu, certo? São apenas algumas aulas que mudam as
coisas um pouco. E então você tem a armadura, a exportação, os
arquivos JSON e coisas assim. É bastante
simples, mas depois faz com que pareça muito
legal, tendo uma textura legal, legal, um
modelo legal que é
definitivamente muito difícil, mas quero dizer,
é assim que é
fácil adicione a armadura ao
Minecraft, certo? Isso conclui esta
palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
na próxima palestra. Sim.
116. (1.18.2): Ou eu dou as boas-vindas de volta ao cavalo de
tecido para 118. E nesta palestra
vamos adicionar um aldeão personalizado ao Minecraft. Sim, este agora vai
ser um aldeão personalizado. Em vez de apenas
adicionar alguns negócios aos aldeões já existentes, vamos adicionar um aldeão de
clientes, mas isso é realmente muito
mais direto do que eu pensava no pacote de cursos
MC. Vamos fazer um novo
pacote chamado aldeão. Em vez de lá,
vamos fazer uma nova classe Java chamada
de aldeões de modo. Agora isso vai conter
tanto o ponto de interesse quanto o profissional ou o conteúdo desta classe
que vou copiar, mas vou explicar
tudo à medida que avançarmos. E também, é claro, tudo
está disponível para você
no passado ou
indivíduo do GitHub também. Você pode ver se você
tem um ponto de interesse e um profissional
aldeão, eles estão, naturalmente,
relacionados entre si. Um ponto de interesse
é onde um aldeão recebe sua profissão
do profissional. Então, é claro que é
apenas o profissional. Então, vamos antes de
tudo dar uma olhada
no ponto de interesse real. Você pode ver que o que estamos
fazendo aqui é basicamente registrar um tipo
de ponto de interesse logo abaixo do ID do modelo. E nosso nome deve ser
bastante autoexplicativo. E você pode ver o que estamos
fazendo aqui é que estamos chamando esse acessor porque senão temos que chamar essa
interface, essa mixagem. Caso contrário, não
vai funcionar. Mas a ideia geral é que
estamos basicamente criando um ponto de interesse com o
nome que nos é dado aqui. E, em seguida, um bloco de
um determinado estado. Embora a ideia seja que, se um bloco que estamos
colocando aqui, quando chamamos esse método de ponto de
registro, então o oracle vem
blaster e todos os seus estados diferentes
são basicamente vai ser registrado
como um ponto de interesse. Essa é a blastopore,
essa é a ideia. E depois de
registrarmos o ponto, registramos a profissão. E você pode ver aqui mais
uma vez com um nome dado e, em seguida,
o tipo de
ponto de interesse específico da idade que estamos passando para o relatório de explosão aqui e dentro da criação da profissão
real. Então este é o nome, este
é o
tipo de ponto de interesse cada dois
conjuntos imutáveis aqui. Podemos realmente fazer é que
podemos do meio do mouse, clicar no lado
profissional aqui, e devemos ser
capazes de ver isso. Portanto, esses são os itens coletores e os locais de trabalho secundários. Acabei de
colocá-los em apenas conjuntos
imutáveis vazios porque isso vai ser
mais fácil por enquanto. Você sempre pode dar uma
olhada na aldeia
ou na profissão e
outros que estão sendo usados. Então, podemos realmente dar uma
olhada neste aqui. Acho que o método de registro, por exemplo, o
fazendeiro aqui. Você pode ver que tem ervas daninhas, sementes de
ervas daninhas,
assentos de beterraba excelentes, pode realmente pegar. E também
há uma terra agrícola como um local de trabalho, por assim dizer. Mas vamos
mantê-lo assim. Não quero que isso
seja muito complicado. Você sempre tem à
disposição todas as aulas de baunilha para dar
uma olhada em como elas funcionam. E isso deve ser
praticamente o que você
vai precisar. Então, esse
método de configuração de meninos aqui, na verdade, precisamos chamar
a configuração para cada ponto. Então, se você tiver outro ponto, basta adicionar isso também. Adicione sua pesquisa aqui e, em seguida
, tudo ficará bem. E isso precisa ser frio dentro do seu curso
de MC inicializado, vamos chamá-lo aqui. Estes serão
os aldeões MOD que configuram meninos atrás, e isso deve ser
praticamente todo o
código que precisamos. Agora, na verdade, vamos
fazer mais duas coisas. Então, mais uma coisa no código, ou nós vamos fazer é
, na verdade adicionar
ou pelo menos uma ou duas negociações
diferentes, porque as características que realmente vamos
adicionar da mesma maneira que adicionamos esses traços com algo como
duplicar isso. E então, em vez de escolher
aldeia ou profissões, vamos escolher
aldeões motorizados, não um mestre de explosão. E, em seguida, basta adicionar um aqui. E vamos apenas dizer algo
assim, como nove esmeraldas. E então vamos
adicionar um segundo. Talvez para a conta possa
escolher machado. Lá vai você. E, em seguida, basta adicionar um terceiro, que será o nível dois. E isso
talvez seja a pá ou uma quantidade diferente
de ar que você vai, isso vai ser
cinco, tudo bem. Então, é assim que você adiciona as diferentes ofertas
comerciais também. Pode haver uma
maneira diferente de fazer isso aqui, mas achei que isso era
absolutamente, totalmente bom. Há também trabalhos e depois há uma
coisa que é muito estranha e que será
a textura ou as texturas. Vamos apenas ir para as bibliotecas
externas até aqui,
o nome mesclado
do projeto
e assim por diante e assim por diante para
a pasta Assets, texturas
Minecraft. Isso deve estar sob
entidade de não confundir uma entidade e, em seguida até um aldeão aqui, e depois as profissões. Então, temos as profissões
aqui e o
aldeão bem aqui. Então, na verdade, vamos
precisar do aldeão, bem
como da nossa profissão personalizada. Agora acabei de pegar o
profissional de armadura aqui, a imagem e apenas a fiz
azul porque estou fazendo uma roupa de aldeão personalizada
é na verdade muito, muito, quero dizer,
não é tão fácil, certo? Então é como,
é, é bastante. Então o que vamos
fazer é
ir e copiar isso. Portanto, a
estrutura estará sob o namespace do curso da EMC. Então isso vai ser,
vai estar sob ativos MC texturas grosseiras. Já temos a
entidade aqui, e então precisamos do
aldeão aqui. Um aldeão vai e
então vamos
precisar da profissão também. Eu realmente vou copiá-lo
aqui para que você possa ver que temos a
profissão aqui, o mestre da explosão,
bem como o aldeão. Não sei por que
precisamos da aldeia ou pelo menos nos meus testes, eu precisava do aldeão, um PNG. Não sei por que esse é o
caso, mas é o que é. E então a
massa de explosão aqui, nós temos, como você pode ver, apenas a tornou azul basicamente, porque estou fazendo um visual completamente personalizado para um aldeão. Na verdade, muito difícil.
Portanto, é semelhante à armadura 3D personalizada. Então, sim, isso é
praticamente uma coisa. E então a última
coisa que vamos precisar é a tradução para o nome da profissão. E isso vai
para o ENR nos
parafusar o arquivo adjacente. E isso vai
ser o seguinte. Então, vamos aqui. E vai ser uma micro
aldeia de entidade ou um mestre explosivo. E lá vai você. O
mestre da explosão será o que diz quando abrirmos o inventário para negociar
com o aldeão. E isso vai
ser praticamente isso. Agora, esses são os passos. Mais uma vez, é claro,
tudo disponível para você
na postura do GitHub em
indivíduos também. E isso é praticamente tudo o que você precisa para um aldeão personalizado. Então, vamos ver se funciona ou se nos encontra no Minecraft. Então, vamos responder a um aldeão
e definir o blaster. E lá vai você, funciona totalmente bem. Agora temos um
mestre explosivo que negocia exatamente os traços que basicamente
demos aqui. Então, vamos pegar algumas
esmeraldas e vamos levá-las para o
próximo nível aqui. Vamos ver,
uma vez que o nível subir nos níveis
literais das coisas, vamos ver, e lá vamos nós. E agora, como você pode ver, agora podemos obter a
pá também para esses níveis dois. E também
é aprendiz. Isso é realmente incrível. E, na verdade, como é
fácil adicionar um aldeão personalizado ao Minecraft. E então isso seria
praticamente para esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. Como sempre, todo o código está disponível no repositório do
GitHub, um indivíduo também. E te vejo
na próxima palestra.
117. (1.18.2): Bem-vindo de volta ao cavalo
de tecido para 118. E nesta palestra,
vamos adicionar entidades
de bebê personalizadas
ao nosso tigre. Agora isso é realmente muito mais fácil do que eu
pensava que vou pai, isso foi muito mais complicado, mas na verdade não é
a única necessidade de mudar coisas na entidade,
bem como no renderizador. E vamos começar
na própria entidade, o que estamos realmente
entrando em algumas coisas. A primeira coisa
será os objetivos da carne animal. O que vamos fazer é
duplicar a pista
ou o objetivo aqui. E vamos
chamar isso de,
este é o objetivo de
companheiro animal aqui com isso e depois
também passando em um. D vai ser o trans aqui e a prioridade três
deve ficar bem. Normalmente, isso vai ficar tudo bem. Isso é muito
importante que adicionemos isso e, em seguida,
também queríamos adicionar o
método do item de leitura aqui. E então aqui podemos
basicamente filtrar se um
determinado item com o qual
clicamos com o botão direito nessa entidade irá
fazê-lo para que possamos
classificar a criação, por assim dizer. E para o nosso caso,
vamos usar
itens de carne escura neste caso, se clicarmos com
o botão direito do mouse no tigre com carne bovina, então ele basicamente
entra no modo de reunião. Essa é a
ideia geral que você tem. E então, é claro,
a última coisa aqui é a criança criada. Mas isso vai exigir que
façamos entidades mod, não criar pontos de tigre e depois passar o parâmetro
world aqui, e é isso. Agora, em teoria, os bebês já
surgiram. No entanto, eles teriam o
mesmo tamanho que o tigre, o
que, claro
, não é exatamente o que você tinha em mente, eu acho. E para isso, vamos
entrar no renderizador e
vamos apenas
substituir os esforços do tipo get
render. Então este vai ser
este aqui. E o que queremos fazer é
só queremos manter isso sozinho. Vamos
modificar isso um
pouco lá, ele vai ler
um pouco melhor. Nós só queremos fazer
é uma declaração if para ponto animável é bebê, e depois fazer outra coisa. Vamos fazer outra coisa. O que queremos fazer
é que só queríamos pegar
a pilha e escalá-la. Então esta será a
escala do animal. 111 é claro que vai ser
a mesma escala que era antes. E então, no bebê, se
passarmos isso aqui, queremos, por exemplo, fazer esse kernel 0.4 para que
faremos o bebê cerca de 40% do tamanho
do adulto normal. E é isso. Isso é tudo o que precisamos. Mais uma vez, muito facilmente
factível, mutável. Você pode simplesmente alterar este aqui
para um item diferente. Se você não quer carne bovina, se
quiser outra coisa, há algumas coisas
que você pode querer fazer. Você pode pensar, mas se você clicar com o botão direito do mouse no tigre
com um, com a carne, você
pode querer fazer outra verificação e seu método
Interact mob aqui mesmo que você
não começa a escrevê-lo. E também pode ser
que você não possa escrever um bebê porque no momento podemos realmente escrever um bebê. Essas devem ser coisas que
são bastante autoexplicativas. Neste ponto, estou
realmente muito confiante que você deve ser capaz de
fazer isso sozinho facilmente. Mas seja qual for o caso, esta é a criança. Então, vamos ver se
adicionamos crianças ao Minecraft ou fósseis
no Minecraft. Então, vamos apenas chegar aos tigres e vamos pegar um
pouco de carne aqui. E vamos apenas ver,
clique com o botão direito, clique com o botão direito E então vamos ver. Eu não recebo nenhuma partícula
no momento porque eu realmente
desliguei partículas, mas você já pode
ver que isso funciona. Então, vamos configurações de vídeo
sob partículas. Vamos apenas pegar todas as
partículas aqui. A menos que você veja Há
mais uma vez, lá vai você. Também obtemos as partículas
e lá está. Vamos ver, lá
está o animal bebê em uma versão
menor do que as grandes. Na verdade, é totalmente bom funcionar completamente como
você esperaria. Também podemos clicar com o botão direito do mouse
sobre
ele e, em seguida , ele também deve
gerar um animal bebê. Isso também é outra coisa que
você pode fazer. Lá vai você. Eles vão realmente
crescer a propósito, é só demora um bom tempo. Eu posso realmente mostrar
se está na classe de animais. Bem, mas é assim que é
fácil adicionar alguns animais de bebê aos micróbios. Se descermos a árvore aqui, há dez entidades
capazes de obter, entidade
animal na classe de entidade
animal. Aqui a reprodução esfriar, talvez esteja dentro, em
algum lugar aqui. Acho que pode estar
ainda mais abaixo. Talvez h lá esteja,
na entidade passiva,
menos 24 mil. Então isso deve ser de 24
mil tomadas, creio eu, até criar um
adulto basicamente. Então você poderia, em teoria,
também mudar isso. Talvez eu não tenha certeza se é um arquivo, então talvez isso não possa ser alterado, mas há basicamente
onde ele está. E isso é praticamente
o quão fácil é adicionar algumas entidades personalizadas à sua
entidade, à sua entidade. E isso concluiria
esta palestra aqui. Espero que você tenha achado útil e aprenda algo novo. E te vejo
nas próximas palestras.
118. (1.18.2) geodos personalizados: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos adicionar um geode personalizado ao Minecraft. Portanto, o rendimento acostumado é, na verdade ,
bastante simples,
tudo considerado. Então, vamos ver como isso
funciona no pacote mundial, pacote recursos na classe de recursos
configurados R, vou copiar sobre a loucura real da
configuração do recurso geode. E parecerá muito. Mas não se preocupe,
passaremos por quase todas as linhas
e veremos o que elas significam. Então este é o oráculo
vem geode aqui. Vamos apenas formatar é um
pouco diferente, talvez, para que eles possam ver
tudo o que há. E a ideia geral
é que temos um conflito de feição geode
com alguns conflitos de camada. Aqui. Os conflitos de camada são realmente a coisa realmente interessante
porque aqui podemos definir, você pode ver 12345 blocos
diferentes e, em seguida, também uma lista de blocos ou blocos
estados neste caso, mas praticamente a mesma ideia. Se entrarmos no conflito da camada
G0, podemos realmente ver quais são esses diferentes estados de blocos. Assim, podemos ver que há uma camada interna do provedor de
preenchimento. Há um intercalar
ampliado alternativo. Há uma
camada intermediária uma hora depois e um bloco interno que ela
não pode substituir
e, em seguida, também uma tag de
blocos inválida também. Então, o que todas
essas coisas malucas significam? Bem, vamos falar sobre
os blocos internos primeiro. Os blocos internos são basicamente, no caso da baunilha, são a ametista brotante. Então, se nós o botão do meio do mouse, clique nisso e podemos ver a
classe de recursos
configurados subterrâneos aqui e ver os
clusters de geode ametistas entrarem aqui e ver o ar
é o primeiro um. Então, este é apenas o bloco mais interno
absoluto. E, claro, geralmente
o que você
gostaria é que seu DEUS
fosse cheio de ar. É por isso que isso é
ar neste caso. E o bloco emesis é o, vamos ver, estes são os provedores da camada
interna. Então, esta é basicamente a primeira camada
interna. E então temos um provedor de estado de
bloco de uma camada interna alternativa. Agora essas são a
ametista em ascensão. Então, esses são os blocos onde a Terra está realmente
crescendo. Também temos uma calcita aqui. Portanto, esse seria o provedor da camada
intermediária. E então também temos o, deixe-me realmente verificar isso aqui, os músculos lisos
e que seria o provedor da camada externa. Então, temos uma
camada intermediária e uma hora depois, você verá
em nosso exemplo aqui, se eu voltar para isso, podemos ver que o erro é a mesma coisa que
temos uma ardósia
profunda o maquiagem geral
da camada interna. O oráculo vem ou será nossa ametista brotante, por assim dizer, uma camada externa de sujeira. E então a
nossa camada completa será
o bloco Esmeralda, enquanto o recalc e o
bloco bem aqui, onde esta lista é basicamente, esta será
nossa ametista crescente. Então, na lista aqui,
você pode ver que esses são os botões de MFAs que podem surgir. E no nosso caso,
estes serão nossos blocos de cálcio apenas por causa de um
exemplo aqui, certo? A espessura deve ser
bastante autoexplicativa. Basta definir a espessura aqui. Uma configuração de craqueamento basicamente
determina tamanho de algumas aberturas nesse geodo. E então você tem algumas coisas que você pode basicamente
mudar a distribuição, multiplicador de
ruído e
algum deslocamento de geração, altamente recomendável,
como sempre, brincar com os
números aqui. Isso é como a melhor
coisa que você pode fazer. Também
brinque com os blocos aqui. Você verá em apenas um
momento em que realmente geramos isso em um novo mundo, como
isso realmente parece. E você entenderá
muito facilmente
como isso funciona. Portanto, não se preocupe lá. E essa é basicamente
a ideia geral. Brinque com isso.
Agora, é claro, tudo disponível para você
em um repositório do GitHub e individual
também. Portanto, não se preocupe lá. Vamos prosseguir para a classe de recursos do
mercado. Então, vou copiar
isso também. Mas isso também não será muito louco. Na verdade, faça algo assim. Talvez você possa ler isso. Lá vai você. Há o oráculo que se
tornou real e você pode
ver que estamos apenas fazendo uma colocação de raridade
aqui de 42 porque por que não? E então precisamos do recurso de posicionamento
quadrado, modificador de posicionamento quadrado desligado. E então temos a
altura uniforme de seis a 50. Acabei de escolher
isso porque vai ficar bem uma vez, uh, mais uma vez, é claro,
brincar com isso, certo? Escolha, escolha
deslocamentos diferentes, certo? Você pode usar o fixo
abaixo, tudo isso. Basta experimentar um monte de
coisas aqui e depois ver o que você pode encontrar com os
diferentes valores aqui. E para gerar isso, bem, é bastante simples. Nós só queremos entrar em
nossa geração aqui. Vamos apenas duplicar este e
queremos mudar isso
para o oráculo que vem ou colocado para o oracle vem,
GO TO colocado. Também certificando-se de que o recurso
Configurar
aqui é o geode. E então aqui
também estamos referenciando o geode e é isso que deve pequeno nicho,
você está em um novo mundo. Vamos criar um novo mundo
e ver se ele funciona. Ou na França ou em Minecraft. E lá já temos
um exemplo. Então encontramos um, um geodo
e você pode ver, é claro, a camada mais interna
basicamente é o ar aqui. E então você pode ver que essas
são as diferentes camadas. Você pode ver que isso é profundamente
a sujeira aqui. Em seguida, temos a substituição de
ametista em brotamento para r ors. E então, em alguns
deles, o Oracle pode bloquear o spawn e esses
seriam os lugares de onde os
clusters reais surgiriam. O bloco Esmeralda em si, você pode ver, na verdade, está
muito fora dele. Então você pode ver que
é aqui que o geodo já começa
e é bastante. Então você pode ver aqui
, então tudo isso é sujeira e, em algum momento, você basicamente começa
a
encontrar alguns dos diferentes blocos
aqui também. E então, em algum momento
depois de cavar muito, então você pode ver que
é bastante. Então você realmente chegou ao outro
lado de fora novamente. Podemos ter que ir por esse caminho. E então, em
algum momento, vamos ver. Nós poderemos encontrar
o GO real lá dentro também. Então, isso é praticamente o quão fácil pode ser adicionar
alguns campos personalizados. Mais uma vez,
brincando com os números, brincando com os blocos. Tudo depende de
você. Mas, no geral, é muito simples tê-lo, gerá-lo. E, como sempre, como eu disse, o código está disponível
no repositório do GitHub e no indivíduo também, mas seria 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.
119. (1.18.2) bloco que interaja com o Redstone: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra,
vamos dar uma
olhada em como você pode implementar o Redstone
em seu bloco de clientes. Então, o que isso significa? Bem, vamos fazer com que
o oráculo se torne uma lâmpada, um bloco que, em vez de clicar com o
botão direito do mouse para ligá-lo e desligar, vamos fazê-lo funcionar com minério
redstone isso, certo? Temos um exemplo e esse
é o bloco de lâmpadas redstone. Como sempre o
código-fonte de micróbios é seu melhor amigo. Vamos apenas pressionar
Shift duas vezes e vamos procurar o bloco de
lâmpadas redstone aqui. E você pode ver que temos o método de atualização vizinho,
bem como esses métodos programados
para tomar. Então, esses são os dois
métodos que precisamos. Vamos apenas
copiá-los,
selecioná-los e copiá-los
sobre o controle C, controlar V para colá-lo. E então só precisamos trocar
a tampa aqui para coletar em todos os lugares
onde diz LET, você só quer dizer
o mesmo aqui também, e gostou também. E então podemos tornar isso um
pouco mais fácil de ler. Então, em vez do valor booleano, nós só queríamos gostar disso. E então o elenco aqui também, não precisa
acontecer agora a questão é o que
está acontecendo aqui? Bem, o método de
atualização dos vizinhos é chamado quando um vizinho dessas
atualizações de estado de bloco
específico no mundo não
deve ser muito louco para as ideias gerais que
queremos saber se isso
bloco específico está ativado. Se estiver em n,
não está recebendo energia, queremos desligá-lo
e ao contrário. Se estiver, se estiver
desligado e está recebendo energia do que
queremos ligá-lo. Essa é a ideia geral. Agora isso é um pouco mais complicado em minha mente
do que tem que ser, mas vamos ficar
bem porque é praticamente assim que a
baunilha faz isso também. E então estamos agendando um tiquetaque basicamente é
feito aqui. Então você pode ver que isso
é chamado quando um carrapato
programado é
bem executado basicamente. E estamos basicamente apenas
definindo o estado
nessa posição específica
para o ciclo de estado de flick. O que é ciclo significa? Bem, estamos basicamente
apenas invertendo qualquer que seja o valor
booleano real. Então, ciclo, apenas
percorra todos os valores. É muito difícil de
ver neste caso. Mas a ideia geral é que ele apenas
percorre todos os valores diferentes
dessa propriedade de
estado de bloco em particular porque é um booleano, existem apenas dois
valores possíveis que ela pode ter. Portanto, ele só vai
transformar uma dobra em um verdadeiro e um verdadeiro em um falso. E isso é
tudo o que precisamos. Então você pode ver que está recebendo o poder
Redstone nesta posição
específica, e isso é tudo o que
precisamos, certo? Então este é apenas um
método booleano aqui que pergunta:
Ei, esse bloco está
recebendo poder? E isso é tudo o que você
precisa para verificar se a energia é aplicada ou não
a esse bloco. E então só para que
tenhamos isso que é realmente comentar isso aqui. E vamos apenas criar
um sistema para fora
da linha de impressão e
vamos dizer alimentado por. E então
vamos dizer
isso ao mundo e temos um pouco de poder. Bem, as coisas aqui você pode ver que há um poder emissor, ler algum poder e
receber energia, ser emitido. Redstone está recebendo
Redstone e, em seguida, o mais forte, vamos apenas produzir
o poder mais forte. Então isso vai retornar
um número inteiro neste caso, e será qualquer coisa de 0 a 15 porque,
claro, poder Redstone, o máximo é 15 e o
menor seria 0, que não seria nenhum poder. Isso será
exibido no console
aqui dentro da inteligência
quando clicarmos com o botão direito do mouse
neste bloco específico. Agora isso é realmente
tudo o que precisamos fazer, maior parte da baunilha. Agora, como sempre, é claro, todo o código aqui
estará disponível para você em uma descrição no repositório do
GitHub e individual também. Agora vamos entrar em um mundo
e vamos ver se ele funciona. Tudo bem, amigos
no Minecraft novamente, e eu já defini o laboratório de ícones
oracle aqui. Então, vamos pegar uma
alavanca e vamos ver. E então nós vamos, ele liga
e depois desliga quando eu, mas a alavanca desliga novamente. E então o que podemos
fazer tão bem quanto
podemos com isso. Então lá vai você. E isso também funciona. Se eu agora clicar com o botão
direito do mouse e dar
uma olhada aqui
na inclinação, devemos ver o poder por 14. Então, é claro que este é o caso porque isso seria 15 e , em seguida, mais um junto com a linha Redstone
aqui, isso seria 14. Se eu também ligar
a alavanca aqui e clicar com o
botão direito do mouse novamente, então você pode ver que
ainda estamos recebendo 14. Curiosamente,
isso deve ser 15. Na minha mente, isso é
muito interessante. Vamos ver se podemos
fazer isso assim. Esse é esse trabalho. Agora
ele funciona com 15. Tudo bem, então a alavanca, na
verdade não funcionou bem. Eu acho. Isso é muito
interessante para mim. Na verdade, eu esperaria
esse trabalho, mas justo o suficiente. Então, essa agora é basicamente a maneira como
isso funciona e é assim que
pode ser fácil adicionar um bloco que funcionará com
Redstone, Minecraft. Obviamente, qualquer
funcionalidade adicional que você queira adicionar quando
o restaurante for aplicado, claro que
você
precisa adicionar
no bloco ou se esta
for uma entidade de livro, você também pode claro,
faça isso também e , em seguida, mude-o por
lá também. Mas isso é claro,
algo que você pode fazer sozinho. E espero que você possa fazer isso e adicionar alguma
funcionalidade a ele também, mas será 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.
120. (1.18.2) Renderer de entidade com bloco personalizado: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos adicionar um
renderizador de entidade de bloco de clientes ao Minecraft. Então, o que é um renderizador de
entidade de bloco? Bem,
basicamente, será uma certa renderização extra que adicionamos a uma entidade de bloco de
clientes. E qual
será nossa entidade de bloco? Bem, vamos ter um modelo de bloco personalizado que se
parece com isso, mas vai ser um pedestal. E então, quando clicamos com
o botão direito do mouse com um item e o item vai passar o mouse
sobre esse pedestal em particular. Essa é a ideia geral. Nada muito louco,
mas ainda é muito legal olhar para esse firewall de bancada
de
blocos em particular , é claro, também estar
disponível para download. E então podemos ir
para Exportação de Arquivos,
Exportar , modelo de item de bloco,
o pedestal adjacente. Agora eu já tenho isso, então vamos ficar bem e vamos
adicionar isso em
pouco tempo como um modelo de
bloco adjacente. Mas primeiro vamos começar
adicionando o bloco. Então, em nosso livro, em nosso pacote de blocos personalizados, clique com o botão direito do mouse em nova classe Java
chamada pedestal. Olhe. Agora estarei vindo sobre a
maior parte disso, mas não se preocupe. Tudo isso está
disponível para você em um repositório do GitHub em
indivíduos também. Agora vamos ter uma flecha
aqui e
mais algumas setas aqui. Mas não se preocupe,
poderemos corrigi-los em apenas um momento depois de adicionarmos a classe de entidade de bloco também. Agora, o que está acontecendo aqui? Bem, no geral, o mais
importante aqui é,
claro , que estende o
bloco com classe de entidade e também que temos o tipo get renderizado sobrescrito
pelo modelo. Isso é extremamente importante. Se você não fizer isso,
seu bloco personalizado
ficará invisível, pois realmente
vai para o fundo. Então, esses são três métodos
auxiliares. Também temos o
estado substituído. Isso simplesmente derruba basicamente todos
os itens que estão
dentro do inventário. Nada muito louco. E
então temos o não utilizado. claro que esse método é chamado quando você clica com o botão direito do mouse
neste bloco específico. E o que acontece aqui é
que, se
o item em vez do pedestal estiver vazio e nós realmente estamos
segurando um item, então vamos colocar este item que o
jogador está
segurando neste inventário e exclusão do item posterior em sua mão. Se realmente
não houver item dentro desse pedestal em particular, então estamos apenas gerando
para o jogador e, em seguida, estamos excluindo o item do
pedestal bem aqui. Então, isso é
tudo o que realmente estamos fazendo no método não utilizado. Recomendo verificar
isso também. Não é tão complicado,
todas as coisas consideradas. E um de nós,
temos esse bloco. Na verdade, vamos entrar
no pacote de entidades e
criar as entidades personalizadas. Então esta será a entidade do bloco de
pedestal e há algo
esgueirado aqui, e isso vai ser um erro de digitação. Então lá vai você. Entidade de bloco. Lá vamos nós. E mais uma vez, copiarei sobre os continentes. Isso é, na verdade,
acho que isso é ainda menor do que o bloco real. Curiosamente. Há apenas 67 linhas de comprimento. Não é tão louco. E você pode ver isso, é claro, estende a entidade de bloco e ela implementa o inventário
implementado que adicionamos
na palestra de
entidades de bloco de clientes também. Temos a
lista padrão de itens pilha que é apenas o inventário não
deve ser nada louco. E então também temos
uma falha aqui, que é a rotação. Mas precisamos das
rotações neste caso, porque elas precisam ser salvas na própria entidade do bloco. Porque não podemos
realmente salvar isso
no renderizador de entidade de bloco porque eles já existem apenas um renderizador de entidade de
bloco enquanto a própria entidade do livro. Se o guardarmos nisso,
isso não interferirá. Porque quando você
o salva no bloco e no renderizador D, o que acontece é que
cada vez que você se senta uma nova entidade de bloco de pedestal, a coisa fica
cada vez mais rápida. E isso, claro, não
é exatamente algo que queremos. Portanto, é por isso que a rotação será a
rotação do item. Então é por isso que
salvamos aqui. Nós também temos o direito em um método de leitura e beleza não
deve ser nada
louco, certo? Estes são apenas para salvar o inventário quando
saímos do mundo, certo? Quando salvamos o mundo. E também incrivelmente
importante é que queremos
atualizar o método de pacote sobrescrito
pela entidade de bloco, atualizar para servidor para
cliente para ver o pacote e criá-lo
com isso e, em seguida, também para dados iniciais do
bloco e b t. Queremos que isso se pareça com isso. Então esses dois são
incrivelmente importantes. Caso contrário, haverá uma sincronização em D entre o servidor
e o cliente. Portanto, tenha isso em mente que esses também
precisam ser adicionados. Como já mencionei. Tudo isso está
disponível para você
no processo ou para um
indivíduo também. Podemos copiá-lo de
lá, então vamos para
a classe de entidades de bloco e vamos apenas copiar
sobre o pedestal. Então, antes de tudo,
vamos copiar isso. Então, vamos
duplicar isso e fazer com que a entidade
de bloco de pedestal seja
chamada de pedestal. E então vamos
apenas duplicar este selecionado e
pressionar Control D. Este vai ser o pedestal. É claro que isso é igual a, primeiro lugar, o
nome aqui, pedestal. E então aqui
queremos mudar isso
para uma entidade de bloco de pedestal. E então aqui queremos
usar o pedestal. Agora,
é claro que isso
ainda não foi implementado , mas não se preocupe. Vamos apenas
adicionar isso também. Então, as entidades de bloqueio de modo azul, agora
podemos ir para a entidade
pedestal rock. O erro aqui deve
desaparecer e
não deve haver mais erros presentes
do que no bloco. Agora podemos importar a classe de entidade do livro de
pedestal e todos os erros aqui também
devem desaparecer. E é ótimo. E então, para nos
livrar desse erro, só
temos que registrar
o bloco real. Então, vamos
fazer isso também. Vamos apenas copiar sobre
a janela de inverno. Isso vai ficar bem. E este vai ser
o cavalo pedestal, mesmo com o nome
aqui no assalto. E este
será o bloco de pedestal. Agora não vamos
copiar vidro. Vamos realmente fazer
de pedra material. Acho que isso faz
mais sentido, não opaco. Na verdade, não precisamos disso. Força três,
vai ficar bem. E, claro,
em nosso grupo de itens, em nosso grupo de itens personalizados aqui. E isso deve ser bom. Agora essa seta também
deve desaparecer, e agora todos os
erros desapareceram. Agora ainda precisamos
do renderizador personalizado. Portanto, no pacote de entidades, vamos clicar com o botão direito do mouse em
novo pacote chamado cliente. E então
lá dentro faremos uma nova classe chamada renderizador de entidade Volokh de
pedestal. Você vai e isso é realmente
bastante simples, mas isso implementará o renderizador de entidade de bloco Renderizador, renderizador aqui do tipo. entidade de bloco de pedestal passará o mouse sobre esses Métodos de
Implemento. Este é o
método render aqui, e isso é praticamente
tudo o que precisamos fazer. Faça. Então, podemos fazer um renderizador de entidade de
bloco de pedestal público. Em vez de aqui, queremos chamar
a entidade do livro renderizar nosso contexto de ponto de fábrica, contexto e meta. Então, queremos apenas o
construtor padrão basicamente aqui com esse parâmetro
específico e o método de renderização também, o conteúdo do método
aleatório que eu realmente
copiarei. Você pode ver que estamos basicamente recebendo a
renderização do item aqui
e, em seguida, também estamos
recebendo a pilha de itens. Agora, o que estamos
fazendo com as matrizes aqui, a pilha de matrizes
basicamente é que somos, tudo
isso apenas determina
a tradução. Então, onde está nossa pilha de
itens em particular, escala determina o tamanho dela
e, em seguida, multiplique aqui, apenas gira o item
real em erupção. Isso é o que esses
três resfriados fazem do que o item Renderizador
do item renderiza apenas o item. Então temos que estourar essa pilha de matrizes em
particular
e, em seguida, estamos adicionando a
rotação a ela também. Então isso é praticamente tudo
o que estamos fazendo aqui. Tão legal,
tudo considerado. E eu
recomendo apenas dar
uma olhada nisso e estou
tentando entendê-lo. Não deve ser tão louco. Mas também direi que a renderização definitivamente não
é meu forte. Eu gosto especialmente disso. É, pode ser muito louco, mas tudo considerado,
deve estar bem, certo? Uma coisa minúscula,
vamos realmente chamar o não opaco aqui. Só para que tenhamos isso. Faz sentido,
acredito porque o, porque é
menor que um bloco. Então, vamos chamar isso. E então, como registramos esse renderizador de
entidade de bloco específico? Bem, este bloco é que seu Hendra está realmente registrado de forma bastante direta
na classe de
cliente do curso MC mais uma vez, é
claro, agora isso
exigirá o seguinte. Queremos chamá-lo de registro do renderizador de
entidade do livro. Este aqui,
não registrado. Mais entidades de bloco,
pedestal de ponto e, em seguida, a entidade
pedestal de rocha
Renoir colon, dois pontos novos. Também queremos chamar a instância de ponto
do mapa da
camada de renderização de blocos instância de ponto
do mapa da
camada que coloca o pedestal de ponto de
blocos ou blocos. E, em seguida, defina a camada do renderizador para ser cortada que você obteve. E isso deve realmente ser todas as coisas
que precisamos. Agora, é claro, também
precisamos dos arquivos adjacentes, mas esses devem ser bastante
autoexplicativos, certo? Então, esses não devem ser muito loucos. Mas, mais uma vez,
no estado de bloco está Jason na pasta Block
States, à direita, Vamos começar adicionando
o arquivo
JSON de status do bloco para o pedestal
real. Eles vão, este é apenas um arquivo normal do
Bloc declara Jason. Nada de louco acontecendo aqui também adicionou
a tradução. Temos um bloco, porém
, esse nome pedestal. Então, vamos adicionar isso. Neste ponto, isso deve
ser praticamente rotineiro, não
deve ser nada
louco por aqui. Agora, este
será o arquivo exportado, então haverá pedestal
adjacente aqui. E aqui. É claro que mais uma vez
precisamos mudar isso para a pedra lisa do bloco
de dois pontos do
Minecraft. Porque, de outra forma, não
vai encontrar uma pedra lisa. Então, essa é uma das coisas
que você precisa alterar
do arquivo json exportado e, em
seguida, do arquivo JSON do item também. Praticamente a mesma
coisa que já
vimos muitas vezes antes. Isso se refere
ao arquivo
JSON do modelo de bloco e, em seguida, nenhuma
textura é necessária. Então, essas são, na verdade, todas
as coisas que precisamos. Bloquear estados, tradução, bloco, um modelo de item, arquivo JSON e deve ser ele. Então, isso deve ser tudo o
que precisamos. Agora. Vamos entrar no
jogo e ver se ele funciona. Tudo bem, então nos encontramos no Minecraft e, como você pode ver, o pedestal foi adicionado. Então, vamos configurá-lo
e vamos tentar clicar com o
botão direito do mouse com o erro
bruto cálcio. E lá vai você.
Está sentado. E também podemos adicionar um
pouco mais aqui. E você pode ver,
basicamente,
todos eles são apenas coisas para cima e para baixo
e se registrando aqui. Então eu posso clicar com o botão direito do mouse e
tirá-los dele novamente. E posso clicar com o botão direito do mouse
e colocá-los. E você pode ver que estou sempre perdendo um ou cálcio basicamente. E então eu também posso tirá-lo. Então, exatamente como
esperaríamos que funcionasse. Na verdade, funciona, e isso é muito legal. E esse é um exemplo de um renderizador de
entidade de bloco de clientes. Mas, como eu disse, o
código está disponível no repositório do GitHub em
indivíduos também. 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.
121. (1.18.2) Chests loot em estruturas personalizadas: Tudo bem, bem-vindo de volta o curso de
tecido para um ATP. Nesta palestra, veremos como você pode adicionar baús de saque
personalizados às
suas estruturas personalizadas. Então isso é algo com o qual
algumas pessoas lutaram,
mesmo
que com o qual
algumas pessoas lutaram, a estrutura personalizada
do solo
telepático aqui tivesse isso muito
bem explicado aqui. Mas algumas pessoas ainda
precisavam de alguns exemplos, então vamos
aplicá-los com esse exemplo. Vamos ver o que
temos que fazer. Que o que temos que
fazer é que podemos gerar um baú aqui. E novamente ele nasce com
esse comando em particular. Então defina o bloco na
posição que estamos em pé, um baú do Minecraft, eles ignoram. Então, ele vai enfrentar
a mesma direção
que estamos investigando. E então a
mesa de saque vamos
definir para bungees simples no peito. Então, vamos fazer isso. E você pode ver agora que
a confiança surgiu. Agora, se eu abrir, certo, e então vamos
entrar e salvar isso. Então, se eles vivem,
este é o Davidson. Se eu pedi agora
salvar essa estrutura, então cada estrutura teria esse
conteúdo específico desse baú. Esse é um dos problemas
que algumas pessoas enfrentaram porque o que você precisa fazer é quando você realmente o gera. Então, vamos dividi-lo novamente, aqui com mais uma vez, a mesa de saque, simples masmorra. Você também pode adicionar suas
próprias tabelas Lu e também
pode fazer diferentes tabelas de
rotas aqui, mas certifique-se de
ter basicamente uma tabela
especificamente para xadrez. E depois de
mostrar o baú, não abra o baú. Você pode abrir o baú porque assim que
você abre o baú, você
solidifica o que está dentro dele. Você quer que isso não seja
aberto depois de engoli-lo
e, em seguida, você deseja salvar
sua estrutura personalizada. Mas agora vamos
salvar a estrutura. E agora podemos
substituir os dados NVT que já temos. E então esse baú em particular
sempre terá carga
diferente
quando a estrutura é
gerada no mundo. Agora vamos para inteligente e alterar o arquivo MPT, certo? Portanto, o arquivo NVT está, claro, mais
uma vez sob o cofre. Agora este deve ser
o, outro dia, outra estrutura, se
eu me lembro corretamente, Lá vai você, o mouse de contagem. Vamos copiar isso. Vamos para a pasta Dados, estruturas do curso
MC, e
vamos colá-lo aqui, conta mhos MVT,
vamos substituí-la. Tudo bem. E agora isso
é tudo o que precisamos fazer. Agora vamos criar um novo mundo
e ver se ele funciona. Tudo bem, então nos encontramos
no Minecraft novamente. Então, vamos voar
para a primeira contagem, minha casa aqui
que surgiu e
acredito que há
outra nessa direção. Bem, antes de tudo, encontraremos o baú dentro daqui. E se eu clicar com o botão direito do mouse, você pode ver que essa é a carga específica. Então, temos armadura de cavalo de ferro
e três carne podre. Então, vamos salvar isso em
nosso cérebro e vamos ver. Ok, então havia uma
armadura de cavalo e três carne podre, e vamos ver se
conseguimos encontrar outra. Outra conta minha
casa, quer este seja ou não também o caso. Tudo bem, então finalmente vamos, finalmente achei que outro mouse de
conta seria muito
difícil encontrá-los. Lembre-se, havia três, carne
podre e uma armadura de cavalo, e podemos ver que isso é
completamente diferente. Agora temos disco de música. Ainda temos uma
armadura de cavalo, mas nenhuma carne podre. Mas você pode ver que
cada estrutura tem um loop diferente
dentro delas. Então, isso é praticamente o
quão fácil é
adicionar um baú de saque personalizado, suas estruturas personalizadas, 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.
122. (1.18.2) ATUALIZAÇÃO PARA 1.19: Tudo bem, bem-vindo de volta
ao curso de tecido para 118. E nesta palestra
vamos atualizar nosso projeto para 119. Agora, isso
realmente vai ser um
processo bastante simples, tudo considerado. Felizmente, as mudanças
entre 11819 e tecido não são tão loucas. Então, vamos começar. Primeiro de tudo,
vamos começar com o arquivo adjacente mod de tecido, onde temos que mudar
essas dependências ou aqui. Agora queremos mudar esses dois. Carregador de tecido sendo 14,6. Quero alterar a versão do
Minecraft para ser a linha squiggly
aqui, tilda 1.19. Claro, isso deve ser bom. Em nosso curso MC
misturando o arquivo Tracer, queremos alterar
o Java, java 17
e, em seguida, podemos
continuar com o arquivo Gradle de compilação, onde antes de tudo,
queremos alterar a versão
do Looom de malha aqui para 12 . E então, é claro,
também queríamos mudar
a implementação do lábio da gecko aqui. A força de equilíbrio
tem que ser atualizada. Então, este seria um
tecido em 22,1. E então, no arquivo de
propriedades maiores, é
aqui que temos que
mudar a maioria dessas coisas. Queremos mudar a versão
micro para 1 nono, mapeamentos de
fios ou 119, construir um carregador de tecido. A versão inferior aqui é 14,6. Podemos então, é
claro, também mudar nossa própria versão mod aqui. E então isso
será 55.11.19. E isso deve ser
praticamente todas as coisas que
precisamos mudar aqui. E então podemos carregar
as alterações do Gradle. Agora, mais uma vez, isso pode
levar de alguns segundos
a talvez até dois minutos,
três minutos, dependendo da
rapidez com que seu computador seja, dependendo da rapidez com que sua conexão com a
Internet seja, tudo isso loucura. Vamos deixar isso
passar e ser paciente. E então veremos uma vez que isso tenha chegado como uma
construção bem-sucedida, tudo bem, aqui estamos 32 segundos. Se você entrar, por exemplo,
para sua
classe mod principal e algumas
das classes estiverem marcadas como taxas
vermelhas em que
inicializador poderia, por
exemplo, ser
Margaret, não se preocupe, espere um segundo
até que tudo tenha construído e, em seguida, ele deve se
fixar em teoria. Então, isso é praticamente
tudo o que precisamos fazer. Agora, é claro, vêm
as mudanças de código, que são, eu não diria
numerosas necessariamente, mas existem
algumas delas. Então, vamos antes de tudo começar
no topo de nossas aulas. Então, o primeiro em que precisamos
mudar algumas coisas é, acredito que não é
a classe de pedestal, deve ser o bloco rápido. Agora, curiosamente, a coisa que realmente
precisamos mudar aqui é o texto aqui. Portanto, a classe de textos literais
não existe mais, mas, felizmente, é muito
fácil mudar isso. Só precisamos chamar literal de ponto de
texto. E isso é praticamente tudo o que precisamos
fazer mais uma vez aqui, texto ponto literal, e agora temos um erro nas importações. Você conserta isso, podemos apenas
pressionar control alt e O. E isso deve
corrigir isso também. Agora você pode ver que
a tela Aleatória também não
está funcionando. Agora, por que isso poderia ser?
Bem, a razão é que a classe aleatória também
mudou. Atualmente, estamos usando
Java util random. Vamos apenas excluir essa importação. E se importarmos
a classe aleatória novamente, você pode ver que ela realmente quer
importar o Minecraft net, bela matemática aleatória, aleatória. Na verdade, temos uma
nova classe aleatória. Isso agora, é claro, tem algumas funcionalidades
diferentes. Então, na verdade, temos que fazer
o seguinte no duplo. Então, aqui no nosso próximo duplo, nós simplesmente não vamos passar
em nada neste caso. E isso também deve
ser nesse caso. Lá vai você. Isso deve estar tudo bem. Então, se você tem um método em
que aleatório é um parâmetro, provavelmente é o
motivo pelo qual ele não está funcionando. Se ainda estiver usando a classe Java util aleatória,
é um pouco, não
é a melhor
convenção de nomenclatura aqui para
nomeá-la da mesma forma que a Java util one, mas isso
vai ficar tudo bem. Mas essa é a
classe aleatória lá e esse é o bloco rápido e
isso deve ser bom. Agora, uma das grandes
mudanças vai
estar em nossas coisas high-end. Então este deve
estar bem. Mais entidades de bloco
devem estar bem. Você pode, claro,
passar por isso. Aqui. Acabamos de ter um texto. Mais uma vez, serão textos
tão literais e depois Alt, Control e O, e então nenhum
erro deve estar presente. Então, tudo isso é ótimo. Você pode ver que a maioria
dessas coisas vai ficar
muito bem. A classe mais blocos
também está correta. Isso é ótimo. A ciência também é boa. Então, os blocos estão todos feitos. Algumas mudanças
aconteceram nos comandos. Vamos ver
isso em um momento. O método de cancelamento de registro
também mudou , mas tudo bem. Vamos apenas
mudar os textos tão literais por enquanto. E então, mais uma vez,
Controlar Alt O. E então, para este
comando em casa, a mesma coisa. Vamos dizer, texto literal dia atrás e depois
Controlar Alt O novamente. E lá vamos nós. Os comandos são alterados
por enquanto. E o que é muito
importante aqui também é que tudo, é
claro, está
mais uma vez disponível para você
na descrição abaixo
no repositório do GitHub e
individual também. Agora, os conflitos mod não
devem mudar porque esses são
todos basicamente novos. Selecione classes personalizadas
mais ou menos os efeitos, elas não alteram
os Encantamentos, elas não alteram as entidades. Então, algo mudou
no lábio de gecko e esses são os nomes desses métodos
específicos. Então, o que
podemos fazer é simplesmente fazer o seguinte. Podemos simplesmente selecionar
isso. Então, vou copiar
o nome aqui. Vou para minha conta pequeno pacote de imprensa Control, Shift R e colar isso. E eu quero mudar
isso em todos os poços em todos os lugares em que
estamos basicamente surge e esse nome aqui
muda para o recurso modelo. Em suma, escrevemos
isso corretamente lá você receberá
mais recursos. Nós só vamos substituir todos. E então isso
será corrigido em todas as nossas classes de modelos personalizados. Como sei que
essa é a mudança? Bem, se nós apenas o botão do
meio do mouse, clique na massa
modal GO animada aqui, podemos basicamente ver as
diferentes coisas são, isso é realmente no provedor
do modelo. Acredito que eles vão modelar
recursos, recursos de textura. E o outro são
os resorts de animação. Então, isso é praticamente
o que ele muda também. Então, mais uma vez,
vamos fazer a mesma coisa, Control Shift R no pacote
do calendário. Agora vamos alterar
o local da textura para o recurso de textura. Está tudo bem. Mas vamos
substituir todo o ego. Isso vai ficar tudo bem. E, em seguida, a
localização do arquivo de animação também é a mesma coisa. Substituindo isso pelo recurso de animação o
coloca, substituí-lo. Agora, não há mais erros
presentes em nenhum dos
nossos arquivos de modelo. Isso também é bom e você pode
ver isso também tudo mudado, mas também tudo ainda está funcionando. Então, exatamente como você iria querer para as entidades
reais. Não há
alterações nas entidades. Há uma mudança aqui. O que é isso? Este é o fim, ser controlado por escritores. Então, vamos realmente dar
uma olhada no que é isso. Bem, eu não tenho 100% de
certeza por que o gravável aqui não tem mais o
pode ser controlado pelo escritor. Mas, honestamente,
vamos remover a
substituição de adição e
esperamos que ela ainda funcione. Essa provavelmente
será a melhor ideia aqui. E então, quando
se trata do resto aqui, tudo ainda deve
estar funcionando totalmente bem. Portanto, as entidades também são feitas. Os eventos também devem estar bem neste
caso, isso é ótimo. Os fluidos também são totalmente bons. E então chegamos ao item. O item é o primeiro. Somos algumas
mudanças que aconteceram, mas também não tão loucas. Embora a maioria das mudanças
no item tenha acontecido
no tablet de dados e
na haste de dowsing. Porque mais uma vez,
temos alguns textos, textos tão facilmente que literais aqui
controlam Alt O, e então o mesmo no item
da vara de dowsing aqui
temos textos traduzíveis, então isso vai ser
textos traduzíveis. E então aqui também, temos em vez de novos textos
traduzíveis,
temos textos traduzíveis e, em seguida mesmos aqui, textos traduzíveis. Então aqui, mais
uma vez, temos textos literais de textos, controle literal de
dados, Alt O, controle literal de
dados, Alt O,
e então nenhum erro
deve estar presente. Além disso, o resto
dos itens está tudo bem. Pode haver algo
na classe mais itens. Não há nada
na classe mais itens. Então, tudo aqui
funciona também. O mixer deve estar bem, exceto por esses
recursos estruturais mixin, podemos realmente excluir
isso aqui. E também muito importante, exclua isso do curso MC
ou da corrida mista também, que não é mais necessário. Agora as pinturas têm
a pintura estranha? Sim, as pinturas
realmente mudaram. É uma loucura, eu sei, mas é o caso agora. Não é mais chamado
de motivo de pintura. Agora é chamado de
pintura, uma variante. Mas o que podemos fazer é basicamente selecionar esta pressão Control R e seguida, mudar isso para a
variante de pintura e, em seguida, basta dizer Substituir tudo, e então
deve ficar bem. E então aqui queremos
mudar isso para uma pintura, uma variante, e então ela
deve funcionar também. As poções não mudaram, e acredito que as receitas
também não mudaram. Então, tudo aqui
ainda está funcionando. Ótimo. As telas estão bem, os
sons estão bem, e então você até agora, em Utah há realmente quem muda. Um deles é o modificador
de mesa de saque. Então, esses mudaram
um pouco. Então, agora não usamos mais o evento de
retorno de chamada de carregamento da tabela de saque. Agora estamos usando os dados de eventos da
tabela de saque modificam esse registro, mas essa é a mudança que
temos que fazer aqui. E então a mudança
aqui é que não
usamos mais o construtor de pool
lascivo de tecido. Agora estamos usando o construtor de dados do pool
loot pool. E aqui estamos usando o construtor de dados
de pool de saque e, em seguida, criando um novo
edifício aqui. Isso chamará
o método de aplicação e isso o chamará de método pool. E então podemos simplesmente copiar
sobre a primeira linha aqui e, em seguida, apenas substituir
este Diego e depois o mesmo aqui. Isso é aplicado e, em seguida, o
pool de largura é chamado de Pool. Mais uma vez com funções chamadas Apply e esta é chamada, bem, agora isso deve
funcionar totalmente bem. Mais uma vez, as importações, vamos
pressionar Control Alt O, e isso deve ser bom. Vamos continuar com o
Model Registry é onde
realmente temos um problema
com o evento aqui. Agora, o evento, na verdade, podemos
importar isso novamente, mas você pode ver nossos métodos de registro não
estão mais funcionando. Então, o método
de registro mudou um pouco. Então, vou copiar os novos parâmetros
do
método de registro. Então, agora temos três parâmetros. Como você pode ver,
o despachante agora é o dispatcher fonte de
comando do servidor. Portanto, isso é tudo o que precisamos
fazer mais uma vez, é claro, isso está disponível para você
no repositório do GitHub e
individual também. Então você pode basicamente, bem, nós somos facilmente dar uma
olhada nisso lá. Então, vamos apenas copiar os parâmetros
mais uma vez aqui. Você entra neles. Estamos pegando este
e apenas mudando. E agora pista de pouso normal esteja
presente, Controle Alt O. E então os
registros mod também estão bem. Mas depois há
algumas mudanças malucas
nos aldeões aqui. Agora, a mudança aqui
em baixo será que, em vez de um ponto de
interesse tipo acessor, estamos apenas fazendo um novo ponto, novos interesses aqui. Então você pode ver que estamos
apenas criando isso. Também não precisamos mais chamar
a configuração do método poise. E então aqui nas profissões de
registro, enquanto queremos fazer é
realmente chamar o registro construtor de profissão de
aldeão que cria. Esse ID com um novo identificador como visto em nosso ID de
mod de curso MC e o nome. E, em seguida, chamando a estação de trabalho
passando o tipo. Também temos que mudar
isso em um momento. E então também queremos chamar os eventos sonoros de casca, essa entidade funciona
Amara, que constroem, posando com
parênteses e eles vão e isso deve ser
praticamente o que precisamos fazer aqui. Para o tipo de ponto de interesse, queremos alterar isso
para um registro E do tipo, tipo de
ponto de interesse. Lá vai você. E então aqui, em vez
de passar isso, queremos ver uma chave de registro, ponto da chave registro do ponto de
interesse dos dados
do registro para digitar uma chave
com um novo identificador. Mais uma vez, claro
MC, curso Mod modelo ID. E então a explosão ou ponto
eram importantes para isso. O blastopore aqui
é o mesmo que este nome aqui
ou o ponto de gesso. Agora também queremos dizer Control Alt O para
se livrar das importações. E então, em nossa aula de mod de
curso MC, queríamos remover a chamada de equilíbrio de configuração e
isso deve ser bom. Os aldeões
agora devem trabalhar também. E agora, por último, mas não
menos importante, é claro, geração
mundial, o que
mudou aqui? Bem, na verdade, não muito louco. No gerador de mudas, mais uma vez
temos a classe aleatória
diferente. Então, se apenas removermos a
importação aleatória e a importarmos novamente, então aqui tudo
deve funcionar bem. Então, isso é ótimo.
Nada mudou nas outras classes de recursos. E então as mudanças estão apenas
na classe gen porque
agora temos uma
maneira diferente de selecioná-la. Então, o seletor é, na verdade,
agora incluir por chave todos os outros encontrados em N. Então, há uma
pequena diferença aqui, mas podemos dizer isso
e, por exemplo, dizer ponto de teclas de bioma aviões. E então aqui
devemos ser capazes dizer incluir por bioma chave, selva de pontos de
chaves, por exemplo. Então, isso agora também deve funcionar. A mesma coisa
acontece aqui, certo? Os aviões,
digamos chaves do bioma, aviões para as
flores aqui, e depois para a árvore, a
mesma coisa, carregam aqui. Planos de ponto de teclas de bioma. E isso deve ser bom. A ração de origem não mudou e a
origem moderna do mundo também. A mesma coisa. Agora, as estruturas
mudaram novamente porque, claro, é por isso que não podemos ter coisas
boas por assim dizer. Mas isso vai ficar
bem, não se preocupe lá. Então, vamos começar com as estruturas do céu aqui. Essas estruturas caras,
vou copiar mais uma vez o conteúdo sobre isso e
vamos apenas ver isso brevemente. Então, agora temos um codec. O que faz o codec? A coisa mais simples de
explicar isso, pois basicamente é uma maneira de ler uma classe de um
arquivo JSON que é
praticamente a maneira mais fácil de
dar uma olhada nisso. Agora, mais uma vez, isso estará disponível, e isso também foi feito por terra
telepática mais uma vez. Então, podemos basicamente agradecê-los por basicamente atualizarem
isso muito, muito rápido. E eu recomendo
verificar os grunhidos alopáticos, fazer pausa para mais uma vez e verificar todos
os novos comentários que são adicionados lá que
provavelmente devem ajudá-lo também. Agora, as estruturas mod
se parecem com isso. Agora, na verdade, eles podem
ser mais um problema aqui. Agora, isso deve estar tudo bem. E então estruturas íntimas, basicamente uma das seguintes. Então, agora queremos um tipo de
estrutura aqui. Então, vamos adicionar isso. Então, queremos isso, este
é um método de registro. O método de registro,
parece assim. O curso MOD ou este
é MC é igual a MOD Diego. E, em seguida, basta excluir todas as
entradas que
não estão mais funcionando e isso
deve estar bem. Você pode ver que
as mudanças de código não são tão loucas, mas também há
mudanças Jason que podemos, eu acredito que já abordamos porque isso deve ser tudo o que
precisamos mudar aqui. Sim. Basicamente, podemos entrar
nos arquivos adjacentes e dar
uma olhada neles também. Então, esse
será, claro, os traços
do curso MC
e arquivos da geração mundial. A primeira coisa que fazemos é que
precisamos renomear esse recurso estrutural
configurado de pasta
específica agora é chamado de estrutura. Estrutura. Agora, o conteúdo disso mudou um pouco também. Então, vamos dar uma olhada nisso. Mas antes de tudo,
queremos remover o conflito aqui para que ele tenha apenas o
pool de armazenamento e o tamanho em linha. E então também queremos adicionar a
distância máxima do centro. Então, este aqui, você também quer adicionar mais três coisas. E isso será, basicamente,
substituímos o ruído de
adição com a altura absoluta
das estruturas de superfície. Agora, na verdade, também podemos definir
dentro do arquivo JSON, começando a mapear a altura
deste aqui. Agora precisamos fazer a mesma coisa para todos os arquivos adjacentes. E o importante é que,
para a única casa adjacente, nós realmente queríamos
mudar esta aqui para quebra-cabeça, isso é
muito importante. Em seguida, remova
os conflitos mais uma vez, AMA na linha esta distância do centro aqui abaixo do tamanho. E agora queremos adicionar
quatro coisas diferentes, mudando o ruído adepto. E esse será o hack de
expansão dos EUA aqui também. Isso é muito importante
disso é basicamente necessário para quando você usa
o quebra-cabeça aqui. A mesma coisa aqui. Apenas
mudando isso. Você vai, não se esqueça de
adicionar a vírgula aqui. Eles são. Lá vai você. Vamos substituir o ruído
de adição aqui. E, claro, mais uma vez, a distância máxima do centro. E isso também deve ser bom. Então, por último, mas não menos importante,
a plataforma de armazenamento
também ou
a plataforma mudando o tipo para quebra-cabeças, livrando-se da
configuração aqui, distância do centro e, em seguida colocando o
ruído do anúncio aqui . Lá vai você. E isso deve ser
praticamente tudo o que precisamos fazer no
traço estruturado de nós. As estruturas de chumbo
agora devem funcionar totalmente bem. E acredito que, olhando para
isso, isso deve ser como grandes mudanças. Há mais uma mudança
que é muito irritante, e isso é, na verdade, com
os arquivos recentes aqui. Há uma mudança para a porta. Então, temos uma porta de flor de cerejeira aqui e esta
aqui. E eles também mudaram. Portanto, tanto o arquivo JSON de
estados de bloco quanto os arquivos
JSON do modelo de bloco para as
portas foram alterados. Tínhamos quatro deles, dois para
baixo, dois para o topo. E agora,
na verdade, há quatro para cada. Portanto, há quatro de baixo
e para os de cima. Então, o que podemos fazer
é ir para as bibliotecas externas até
este aqui mesmo, micro projetos de
rede, assim por diante e assim por diante. Sob os ativos Minecraft, podemos antes de tudo ir
para os estados de bloco e copiar sobre a porta da acácia, neste caso R1. Então, vamos fazer isso. Lá vai você. Vamos voltar para baixo novamente e vamos para o bloco de modelos. E você pode ver
aqui porta de acácia, de
repente
há oito deles. Na verdade, é insano. Não sei por que eles
mudaram, mas tudo bem. Então, copie esses também. E então podemos
mudá-los um por um. Então, este aqui, a porta de acácia, basicamente, tudo o que precisamos fazer é apenas mudar um microfone aqui para o
curso MST, Substituir Tudo, e depois selecionar acácia
e mudar isso a flor sublinhada da cereja. Substitua tudo. Lá vai você. E então podemos excluir a porta da flor de
cerejeira aqui. Pressione Shift F6 mais uma vez para renomear a porta de
sublinhado de flor de cerejeira. E então o bloco
afirma que um é alterado, mas é claro que vem a coisa real e esse
é o arquivo do modelo. Agora, o que podemos fazer é
clicar na pasta do blog, pressionar Shift Control R
e, em seguida, mudar não flor de
cerejeira, mas na verdade acácia
para flor de cerejeira. Você pode dizer que ele substituiu tudo. Sim, por favor. E então podemos fazer
a mesma coisa. Vá para bloquear novamente,
Control Shift R
e, em seguida, queremos alterar
um curso Minecraft MC. Agora temos que ter muito
cuidado para não apenas substituir tudo porque ele vai substituir os
pais também. E não queremos isso. Só queremos
mudar a parte inferior e superior. Você pode ver o fundo. Posso substituir o topo. Substitua. Agora
temos um pai não. Parte inferior. Sim. Para cima. Sim. Mais uma vez, os pais não. Parte inferior. Sim, top. Sim. Por favor, certifique-se de
fazer isso corretamente. Caso contrário, você
terá um erro lá ou ele não será
exibido corretamente. Mas, por favor, tome cuidado ao
substituí-lo assim, para cima e depois de baixo
e de cima novamente. E agora
só temos pais, então agora terminamos. E agora só precisamos
mudar os nomes aqui. Mais uma vez, Shift
F6 para renomeá-los
e, em seguida, sempre mudando a
acácia para flor de cerejeira. E então eu acredito que
devemos ficar bem aqui. Depois que fizermos isso. Agora, como você pode ver, há
um pequeno loop tedioso. Espero que você não tenha adicionado como 20 portas diferentes. Caso contrário. Quero dizer, sinto muito. É o que é. Provavelmente vai ser apenas uma
tarde muito chata para você, em seguida renomear tudo
isso
porque meu Deus é isso irritante,
mas é o que é. As portas mudaram e
isso vai ficar tudo bem. Mas agora podemos remover os arquivos
antigos do Jason da porta. E com isso, finalmente
terminamos. Por enquanto. Vamos abrir o jogo
e ver se ele funciona. Ou temos outro carrapato
aleatório aqui. Isso é claro que mais uma vez por causa do aleatório, certo, basta remover a importação
Alt e Enter sobre isso, e então tudo
deve funcionar bem. Vamos ver e vamos continuar. Vamos ver se há
outras setas. Pode haver outro tick
agendado mais uma vez, o mesmo erro aqui,
sem preocupações. Vamos apenas remover esse
Alton enter aleatório, e então vamos continuar e agora acho que
devemos ficar bem. Tudo bem, então o tecido começou. Então, vamos entrar e ver
se podemos criar um novo mundo. E isso parece ótimo. Então, se chegarmos a este,
tudo ficará bem. E vamos fazer um
novo mundo e vamos ver. Tudo bem, então aqui estamos
no Minecraft mais uma vez. Então, vamos antes de tudo dar uma
olhada e lá temos isso. Tudo ainda está disponível. Então, vamos dar uma
olhada se algumas
dessas coisas ainda funcionam ou não da
maneira que esperaríamos. Vamos pegar uma vara de dowsing. Vamos pegar um
tablet de dados aqui. Vamos ver se
ainda conseguimos encontrar alguns minérios. E lá temos isso. Encontramos alguns minérios e ele foi salvo
no tablet de dados. Então isso parece
estar funcionando bem. Vamos gerar as entidades. Eles também ainda estão bem. Eles parecem estar
respondendo muito bem. Vamos então dar uma olhada
no recalc e no blaster. Isso é sempre uma coisa que é um pouco
interessante, certo? Entidades do bloco D se
elas ainda funcionarem. Vamos ficar um pouco legal. Vamos pegar um machado picareta aqui. E então, por último, mas não menos importante, vamos ter um lingote de cálcio preocupado e vamos ver se isso
também funciona. E, de fato, ainda funciona. Achei o coelho. Acho que você tem um
pequeno problema aqui. Tudo bem, lá vai você. O Oracle pode escolher
x também ainda funciona. Então, isso também funciona bem. Então vamos realmente dar
uma olhada se conseguirmos localizar um
bioma de links e y-naught. E vamos ver se isso
produz algumas coisas para nós. Então, devemos descobrir
que esse não é o caminho certo. Queremos ir com o
espectador mais. Lá vai você. Podemos encontrar algumas
das árvores aqui. E talvez também possamos
encontrar algumas de nossas flores. E, de fato, podemos,
lá temos isso. Então, apenas algumas de nossas
flores, curiosamente, resistem a
isso como um modelo de empreendimento. Eventual mais. Lá vai você. E então temos rosas cor-de-rosa. Então, tudo aqui
parece ainda estar funcionando exatamente
como você esperaria. Na verdade, também vamos localizar uma estrutura apenas para
que tenhamos isso. Então, este deve ser o curso MC. Vamos ver, contando
casa e há uma contagem de Mao disponível
e lá temos isso. Então, tudo ainda está
funcionando totalmente bem, mesmo com nosso loop
personalizado aqui, que é exatamente o que
você quer ver. Então, sim, isso é
praticamente o quão
fácil pode ser atualizar o
tecido para 119. Tudo bem, e isso
praticamente conclui o curso. Muito obrigado por assistir. Espero que você tenha achado útil e aprenda
algo novo se você o fez, apreciaria muito
uma avaliação sua. Caso contrário, espero vê-lo em possíveis palestras futuras agora, não
há mais nada
planejado atualmente, mas quem sabe, pode haver uma ou duas coisas extras
que possam surgir. Caso contrário, espero
vê-lo em qualquer outro lugar, talvez em cursos futuros também. Então, sim.