Advertisement
Zunesha

Função para organizar 2 arrays interligados Godot 4

Dec 5th, 2023 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Função para organizar 2 arrays interligados Godot 4.
  2.  
  3. Essa função expecifica para um sistema de inventário que criei que possuim 2 arrays ( 1 - de itens e 2- de quantidade) onde eu quero ordenar o array itens e quero que após fazer isso o array quantidade fique ordenado com relação ao array de itens. exemplo :
  4.  
  5. var itens = [3, 1, 2]
  6. var quant = [2, 1, 4]
  7.  
  8. quando o meu array itens for ordenado ele ficará assim :
  9. [1, 2, 3] e consequentemente , quero que meu array quant fique assim : [1, 4, 2]. Então seria facilmente obtido o resultado chamando a função abaixo :
  10.  
  11. organizar_inventario(itens,quant)
  12.  
  13. segue a função abaixo :
  14.  
  15. func organizar_inventario(itens:Array,quant:Array) -> void:
  16.     # Criar uma lista de dicionários associando itens a quantidades
  17.     var item_quant_list = []
  18.     for i in range(itens.size()):
  19.         item_quant_list.append({"item": itens[i], "quant": quant[i]})
  20.  
  21.     # Ordenar a lista de dicionários com base nos itens
  22.     item_quant_list.sort_custom(_compare_items)
  23.  
  24.     # Atualizar os arrays de itens e quantidades de acordo com a nova ordem
  25.     for i in range(itens.size()):
  26.         itens[i] = item_quant_list[i]["item"]
  27.         quant[i] = item_quant_list[i]["quant"]
  28.  
  29.     # Exemplo de impressão para verificar os resultados
  30.     #print("itens:", itens)
  31.     #print("quant:", quant)
  32.  
  33.     var Itens_inv_organizar:Array = itens
  34.     Itens_inv = [0,0,0,0,0,0,0,0,0,0]
  35.    
  36.     var Quantidade_organizar:Array = quant
  37.     Quantidade = [0,0,0,0,0,0,0,0,0,0]
  38.    
  39.     for item in Itens_inv.size():
  40.         adicionar_item(Itens_inv_organizar[item],Quantidade_organizar[item])
  41.  
  42. # Função de comparação personalizada para ordenar a lista de dicionários
  43. func _compare_items(a, b):
  44.     return a["item"] < b["item"]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement