diff --git a/forge-gui-mobile/src/forge/adventure/data/ItemData.java b/forge-gui-mobile/src/forge/adventure/data/ItemData.java index e7fa777a746..e0c29941c46 100644 --- a/forge-gui-mobile/src/forge/adventure/data/ItemData.java +++ b/forge-gui-mobile/src/forge/adventure/data/ItemData.java @@ -2,14 +2,11 @@ package forge.adventure.data; import com.badlogic.gdx.files.FileHandle; import com.badlogic.gdx.graphics.g2d.Sprite; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; import forge.adventure.util.Config; import forge.adventure.util.Paths; -import static forge.adventure.util.Paths.ITEMS_ATLAS; - /** * Data class that will be used to read Json configuration files * ItemData @@ -49,16 +46,9 @@ public class ItemData { shardsNeeded = cpy.shardsNeeded; } - public Sprite sprite() - { - if(itemAtlas==null) - { - itemAtlas=Config.instance().getAtlas(ITEMS_ATLAS); - } - return itemAtlas.createSprite(iconName); + public Sprite sprite() { + return Config.instance().getItemSprite(iconName); } - - private static TextureAtlas itemAtlas; private static Array itemList; public static Array getAllItems() { if (itemList == null) { diff --git a/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java b/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java index 6f5bdc09f81..3c2e41281be 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/InventoryScene.java @@ -2,7 +2,6 @@ package forge.adventure.scene; import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Sprite; -import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.scenes.scene2d.ui.*; import com.badlogic.gdx.scenes.scene2d.utils.ChangeListener; @@ -24,8 +23,6 @@ import forge.deck.Deck; import java.util.HashMap; import java.util.Map; -import static forge.adventure.util.Paths.ITEMS_ATLAS; - public class InventoryScene extends UIScene { TextraButton leave; Button equipButton; @@ -350,8 +347,7 @@ public class InventoryScene extends UIScene { System.err.print("Can not add null / empty booster " + Current.player().getBoostersOwned().get(i) + "\n"); continue; } - TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS); - Sprite deckSprite = atlas.createSprite("Deck"); + Sprite deckSprite = Config.instance().getItemSprite("Deck"); Image img = new Image(deckSprite); img.setX((newActor.getWidth() - img.getWidth()) / 2); diff --git a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java index 811b95bdb91..8d9a047321e 100644 --- a/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java +++ b/forge-gui-mobile/src/forge/adventure/scene/RewardScene.java @@ -518,9 +518,9 @@ public class RewardScene extends UIScene { if (Type.Shop != type) return; if (collectionPool != null && Reward.Type.Card.equals(reward.getType())) - setText("[%75]" + price + " [+Gold]\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + collectionPool.count(reward.getCard())); + setText("[%75][+GoldCoin] " + price + "\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + collectionPool.count(reward.getCard())); else if (Reward.Type.Item.equals(reward.getType())) - setText("[%75]" + price + " [+Gold]\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + AdventurePlayer.current().countItem(reward.getItem().name)); + setText("[%75][+GoldCoin] " + price + "\n" + Forge.getLocalizer().getMessage("lblOwned") + ": " + AdventurePlayer.current().countItem(reward.getItem().name)); } public BuyButton(int id, int i, RewardActor actor, Reward reward, TextraButton style, float shopModifier) { @@ -536,7 +536,7 @@ public class RewardScene extends UIScene { price = CardUtil.getRewardPrice(actor.getReward()); price *= Current.player().goldModifier(); price *= shopModifier; - setText(price + " [+Gold]"); + setText("[+GoldCoin] " + price); updateOwned(); addListener(new ClickListener() { @Override diff --git a/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java b/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java index bf620db5f31..453361ac2f1 100644 --- a/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java +++ b/forge-gui-mobile/src/forge/adventure/stage/MapSprite.java @@ -6,12 +6,11 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.scenes.scene2d.Actor; import com.badlogic.gdx.utils.Array; -import com.github.tommyettinger.textra.TextraLabel; import forge.adventure.data.BiomeSpriteData; import forge.adventure.pointofintrest.PointOfInterest; import forge.adventure.pointofintrest.PointOfInterestChanges; import forge.adventure.scene.MapViewScene; -import forge.adventure.util.Controls; +import forge.adventure.util.Config; import forge.adventure.world.WorldSave; import org.apache.commons.lang3.tuple.Pair; @@ -25,8 +24,8 @@ public class MapSprite extends Actor { static public int BackgroundLayer = -1; static public int SpriteLayer = 0; TextureRegion texture; - TextraLabel searchPost = Controls.newTextraLabel("[%80][+SearchPost]"); - Sprite bookmark = Controls.getSprite("Star"); + Sprite bookmark = Config.instance().getItemSprite("Star"); + Sprite magnifier = Config.instance().getItemSprite("Magnifier"); boolean isCaveDungeon, isOldorVisited, isBookmarked; public MapSprite(Vector2 pos, TextureRegion sprite, PointOfInterest point) { if (point != null) { @@ -87,9 +86,10 @@ public class MapSprite extends Actor { if (texture == null) return; batch.draw(texture, getX(), getY()); - if (isCaveDungeon && !isOldorVisited) { - searchPost.setPosition(getX() - 7, getY() + 7); - searchPost.draw(batch, parentAlpha); + if (isCaveDungeon && !isOldorVisited && magnifier != null) { + magnifier.setScale(0.7f, 0.7f); + magnifier.setPosition(getX() - 7, getY() + 2); + magnifier.draw(batch, parentAlpha); } if (isBookmarked && bookmark != null) { bookmark.setScale(0.7f, 0.7f); diff --git a/forge-gui-mobile/src/forge/adventure/util/Config.java b/forge-gui-mobile/src/forge/adventure/util/Config.java index 9f7b4541239..acdf031e5a8 100644 --- a/forge-gui-mobile/src/forge/adventure/util/Config.java +++ b/forge-gui-mobile/src/forge/adventure/util/Config.java @@ -1,6 +1,7 @@ package forge.adventure.util; import com.badlogic.gdx.files.FileHandle; +import com.badlogic.gdx.graphics.g2d.Sprite; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Json; @@ -50,6 +51,7 @@ public class Config { private SettingData settingsData; private String Lang = "en-us"; private final String plane; + private ObjectMap itemSprites = new ObjectMap<>(); static public Config instance() { if (currentConfig == null) @@ -245,6 +247,15 @@ public class Config { return atlas; } + public Sprite getItemSprite(String itemName) { + Sprite sprite = itemSprites.get(itemName); + if (sprite == null) { + sprite = getAtlas(forge.adventure.util.Paths.ITEMS_ATLAS).createSprite(itemName); + if (sprite != null) + itemSprites.put(itemName, sprite); + } + return sprite; + } public SettingData getSettingData() { return settingsData; } diff --git a/forge-gui-mobile/src/forge/adventure/util/Controls.java b/forge-gui-mobile/src/forge/adventure/util/Controls.java index e65e721a12e..4f53cea2fe3 100644 --- a/forge-gui-mobile/src/forge/adventure/util/Controls.java +++ b/forge-gui-mobile/src/forge/adventure/util/Controls.java @@ -429,10 +429,6 @@ public class Controls { return Forge.getAssets().getTextraFont(name, getSkin().getFont(name), Config.instance().getAtlas(Paths.ITEMS_ATLAS)); } - static public Sprite getSprite(String itemSprite) { - return Config.instance().getAtlas(Paths.ITEMS_ATLAS).createSprite(itemSprite); - } - static public class AccountingLabel extends TextraLabel { private TextraLabel label; private final TextraLabel placeholder; diff --git a/forge-gui-mobile/src/forge/adventure/util/RewardActor.java b/forge-gui-mobile/src/forge/adventure/util/RewardActor.java index 9c2eb2be2cf..399db590ef9 100644 --- a/forge-gui-mobile/src/forge/adventure/util/RewardActor.java +++ b/forge-gui-mobile/src/forge/adventure/util/RewardActor.java @@ -50,8 +50,6 @@ import org.apache.commons.lang3.StringUtils; import java.io.File; -import static forge.adventure.util.Paths.ITEMS_ATLAS; - /** * Render the rewards as a card on the reward scene. */ @@ -296,8 +294,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb break; } case Item: { - TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS); - Sprite backSprite = atlas.createSprite("CardBack"); + Sprite backSprite = Config.instance().getItemSprite("CardBack"); if (reward.getItem() == null) { needsToBeDisposed = true; processSprite(backSprite, null, null, 0, 0, false); @@ -311,8 +308,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb break; } case CardPack: { - TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS); - Sprite backSprite = atlas.createSprite("CardBack"); + Sprite backSprite = Config.instance().getItemSprite("CardBack"); if (reward.getDeck() == null) { needsToBeDisposed = true; processSprite(backSprite, null, null, 0, 0, false); @@ -342,7 +338,7 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb item = new Sprite(new TextureRegion(t)); isBooster = true; } else { - item = atlas.createSprite("Deck"); + item = Config.instance().getItemSprite("Deck"); } setItemTooltips(item, backSprite, isBooster); @@ -356,9 +352,8 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb case Life: case Shards: case Gold: { - TextureAtlas atlas = Config.instance().getAtlas(ITEMS_ATLAS); - Sprite backSprite = atlas.createSprite("CardBack"); - Sprite item = atlas.createSprite(reward.type.toString()); + Sprite backSprite = Config.instance().getItemSprite("CardBack"); + Sprite item = Config.instance().getItemSprite(reward.type.toString()); setItemTooltips(item, backSprite, false); boolean isShop = RewardScene.Type.Shop.equals(type); processSprite(backSprite, item, isShop ? null : diff --git a/forge-gui/res/adventure/common/sprites/items.atlas b/forge-gui/res/adventure/common/sprites/items.atlas index 9d783a5bf55..345046947c5 100644 --- a/forge-gui/res/adventure/common/sprites/items.atlas +++ b/forge-gui/res/adventure/common/sprites/items.atlas @@ -444,6 +444,12 @@ GreenLeaf GreenLeaf2 xy: 112, 608 size: 16, 16 +GoldCoin + xy: 464, 63 + size: 16, 16 +Magnifier + xy: 448, 63 + size: 16, 16 Bookmark xy: 432, 63 size: 16, 16 @@ -465,6 +471,9 @@ GPS Star xy: 464, 16 size: 16, 16 +TreasureChest + xy: 464, 32 + size: 16, 16 UnderworldCookbook xy: 304, 960 size: 16, 16 diff --git a/forge-gui/res/adventure/common/sprites/items.png b/forge-gui/res/adventure/common/sprites/items.png index b69152f2cbd..347f50d2c70 100644 Binary files a/forge-gui/res/adventure/common/sprites/items.png and b/forge-gui/res/adventure/common/sprites/items.png differ