From 480fca4f020457fc0421c482e4069b0ba973c8d4 Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Sun, 9 Jun 2024 16:00:14 +0500 Subject: feat: sort pets by their price --- core/src/kz/ilotterytea/maxon/pets/PetManager.java | 22 +++++++++++++++++----- .../maxon/screens/game/shop/ShopUI.java | 2 +- 2 files changed, 18 insertions(+), 6 deletions(-) (limited to 'core/src/kz/ilotterytea') 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 pets; + private final ArrayList 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 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 getPets() { + public ArrayList 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 pets = MaxonGame.getInstance().getPetManager().getPets(); + ArrayList pets = MaxonGame.getInstance().getPetManager().getPets(); for (Pet pet : pets) { PetWidget widget = new PetWidget(this.skin, pet, this.atlas); -- cgit v1.2.3