diff options
| author | ilotterytea <iltsu@alright.party> | 2024-06-09 16:00:14 +0500 |
|---|---|---|
| committer | ilotterytea <iltsu@alright.party> | 2024-06-09 19:27:40 +0500 |
| commit | 480fca4f020457fc0421c482e4069b0ba973c8d4 (patch) | |
| tree | c500d3fc70dd61ef531da3a2fe4affc1cb99a084 | |
| parent | 8a9452ca51c2c4863da351d3e28965b6ac1334b4 (diff) | |
feat: sort pets by their price
| -rw-r--r-- | core/src/kz/ilotterytea/maxon/pets/PetManager.java | 22 | ||||
| -rw-r--r-- | core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java | 2 |
2 files changed, 18 insertions, 6 deletions
diff --git a/core/src/kz/ilotterytea/maxon/pets/PetManager.java b/core/src/kz/ilotterytea/maxon/pets/PetManager.java index 4f8f228..b313704 100644 --- a/core/src/kz/ilotterytea/maxon/pets/PetManager.java +++ b/core/src/kz/ilotterytea/maxon/pets/PetManager.java @@ -7,16 +7,16 @@ import kz.ilotterytea.maxon.assets.loaders.Text; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.HashSet; -import java.util.Optional; +import java.util.*; +import java.util.stream.Collectors; public class PetManager { - private final HashSet<Pet> pets; + private final ArrayList<Pet> pets; private final AssetManager assetManager; private final Logger logger = LoggerFactory.getLogger(PetManager.class); public PetManager(final AssetManager assetManager) { - this.pets = new HashSet<>(); + this.pets = new ArrayList<>(); this.assetManager = assetManager; } @@ -26,6 +26,8 @@ public class PetManager { String data = assetManager.get("data/pets.json", Text.class).getString(); JsonValue root = new JsonReader().parse(data); + List<Pet> pets = new ArrayList<>(); + for (JsonValue child : root.iterator()) { String id = child.getString("id"); double price = child.getDouble("price"); @@ -39,6 +41,16 @@ public class PetManager { pets.add(pet); } + pets = pets.stream().sorted((pet, t1) -> { + if (pet.getPrice() > t1.getPrice()) { + return 1; + } else if (pet.getPrice() < t1.getPrice()) { + return -1; + } + return 0; + }).collect(Collectors.toList()); + + this.pets.addAll(pets); logger.info("Loaded {} pets", pets.size()); } @@ -46,7 +58,7 @@ public class PetManager { return pets.stream().filter(x -> x.getId().equals(id)).findFirst(); } - public HashSet<Pet> getPets() { + public ArrayList<Pet> getPets() { return pets; } } diff --git a/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java b/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java index e4e3694..3bf2d79 100644 --- a/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java +++ b/core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java @@ -171,7 +171,7 @@ public class ShopUI { public void createShopListUI() { Table table = new Table(this.skin); - HashSet<Pet> pets = MaxonGame.getInstance().getPetManager().getPets(); + ArrayList<Pet> pets = MaxonGame.getInstance().getPetManager().getPets(); for (Pet pet : pets) { PetWidget widget = new PetWidget(this.skin, pet, this.atlas); |
