Certa Vez alguém disse que tentar algo sem o estar pronto causa frustação e desistência, mas como saber se está pronto ? sem se testar de vez em quando ?
Hora de refazer umas coisas, esse inventario esta me dando dor de cabeça, então vou tentar refazer ele todo :(
OBS: fiz um backup no Google drive antes... vai que cago tudo ainda mais
Replanejar aqui:
Classes
InventarioVisualizer
responsável pela exibição e atualização da exibição do inventário
Inventario
vai guardar uma lista com todos itens do inventario
Slot
fica no slot, objeto pai do obj com o itemholder
vai armazenar algumas restrições. e vai avisar o inventário de mudanças de item no slot.
ItemHolder
armazena o obj item
monobehavior
é um button
Item
Guarda as info do item
é um ScriptableObject
- - - - - - - -
Quando o item for pego, vai continuar como está. quando ele for dropado. a troca vai envolver apenas a classe Slot, para verificar se a troca é possível.
e essa Classe Slot vai reportar ao Inventário. no caso da parte de equipamentos vai funcionar diferente. um outro script vai procurar as mudanças sempre que o inventario for fechado.
A troca tem que envolver uma classe, "unica" pq ela precisa armazenar as variáveis de origem e destino da troca. então vai continuar como estava, e vai ser o InventarioVisualizer. mas ele não vai se comunicar com o Inventario durante a troca, apenas com o Slot que vai fazer verificacoes e vai se comunicar com o visualizer e o inventario
- - - - - - - -
Ao fazer uma troca a primeira etapa vai ser excluir os dois itens de seus lugares no inventario, os métodos de exclusão retornaram uma bool informando se a exclusão foi um sucesso.
se foi, a troca é feita, senão não é feita.
- - - - - - - -
Se o item for nulo, não tem problema. a troca ocorre do mesmo jeito, e itens nulos passam direto na verificação de restrições do slot.
OBS: esse itemholder não é o que está sendo arrastado, sim o que você esta soltando o outro encima.
esse inventarioVisualizer.Drop vai cuidar de guiar as devidas verificações e realizar as trocas.
ele vai fazer isso usando o Slot.
os métodos de verificações e troca contido no slot e inventario sempre vão retornar uma bollean, para informar se está ok prosseguir com a troca.
- - - - - - - -
Slot - Classe
Verifica se o objeto pode entrar no slot ou não, conferindo se ele obedece as restrições do slot.
como um slot de só armas e escudos
ou só calçados e por ai vai
comunica o inventario da troca
remove o objeto antigo
e adiciona o novo
e age caso os métodos de add e remove retornarem false.
- - - - - - - -
CONCLUINDO: Refiz, tá funcionando mas não esta salvando direito, na troca apenas um item está sendo salvo corretamente .-. o que simplesmente não faz sentido...
Eu até descobri onde fica o bug, mas não entendo por que ? na hora que chamo os slots para adicionar os itens, apenas um deles realmente adiciona o item na List Se eu altero a ordem, eu altero o que adiciona na List :( enfim...
Eu realmente queria terminar isso hoje, mas minha cabeça não aguenta mais, então ficará para amanhã.
PS: eu resolvi o probleminha do vídeo na hora de equipar os itens nas mãos...
PS²: acho que dessa vez, dando uma pequena planejada antes, sinto que a coisa fluiu melhor
Comentários
Postar um comentário