summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2024-06-09 16:00:14 +0500
committerilotterytea <iltsu@alright.party>2024-06-09 19:27:40 +0500
commit480fca4f020457fc0421c482e4069b0ba973c8d4 (patch)
treec500d3fc70dd61ef531da3a2fe4affc1cb99a084
parent8a9452ca51c2c4863da351d3e28965b6ac1334b4 (diff)
feat: sort pets by their price
-rw-r--r--core/src/kz/ilotterytea/maxon/pets/PetManager.java22
-rw-r--r--core/src/kz/ilotterytea/maxon/screens/game/shop/ShopUI.java2
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);