fix backface not generating if art is missing

This commit is contained in:
Anthony Calosa
2023-08-01 19:24:24 +08:00
parent 5384d26fce
commit afb5307502

View File

@@ -203,39 +203,55 @@ public class RewardActor extends Actor implements Disposable, ImageFetcher.Callb
} }
ImageCache.updateSynqCount(frontFace, count); ImageCache.updateSynqCount(frontFace, count);
//preload card back for performance //preload card back for performance
if (hasbackface && ImageCache.imageKeyFileExists(reward.getCard().getImageKey(true))) { if (hasbackface) {
PaperCard cardBack = ImageUtil.getPaperCardFromImageKey(reward.getCard().getImageKey(true)); if (ImageCache.imageKeyFileExists(reward.getCard().getImageKey(true))) {
File backFace = ImageKeys.getImageFile(cardBack.getCardAltImageKey()); PaperCard cardBack = ImageUtil.getPaperCardFromImageKey(reward.getCard().getImageKey(true));
if (backFace != null) { File backFace = ImageKeys.getImageFile(cardBack.getCardAltImageKey());
try { if (backFace != null) {
Texture back = Forge.getAssets().manager().get(backFace.getPath(), Texture.class, false); try {
if (back == null) { Texture back = Forge.getAssets().manager().get(backFace.getPath(), Texture.class, false);
Forge.getAssets().manager().load(backFace.getPath(), Texture.class, Forge.getAssets().getTextureFilter()); if (back == null) {
Forge.getAssets().manager().finishLoadingAsset(backFace.getPath()); Forge.getAssets().manager().load(backFace.getPath(), Texture.class, Forge.getAssets().getTextureFilter());
back = Forge.getAssets().manager().get(backFace.getPath(), Texture.class, false); Forge.getAssets().manager().finishLoadingAsset(backFace.getPath());
} back = Forge.getAssets().manager().get(backFace.getPath(), Texture.class, false);
if (back != null) { }
ImageCache.updateSynqCount(backFace, 1); if (back != null) {
if (holdTooltip != null) { ImageCache.updateSynqCount(backFace, 1);
if (holdTooltip.tooltip_actor.getChildren().size <= 2) { if (holdTooltip != null) {
holdTooltip.tooltip_actor.altcImage = new RewardImage(processDrawable(back)); if (holdTooltip.tooltip_actor.getChildren().size <= 2) {
holdTooltip.tooltip_actor.addActorAt(2, holdTooltip.tooltip_actor.altcImage); holdTooltip.tooltip_actor.altcImage = new RewardImage(processDrawable(back));
holdTooltip.tooltip_actor.swapActor(holdTooltip.tooltip_actor.altcImage, holdTooltip.tooltip_actor.cImage); holdTooltip.tooltip_actor.addActorAt(2, holdTooltip.tooltip_actor.altcImage);
holdTooltip.tooltip_actor.swapActor(holdTooltip.tooltip_actor.altcImage, holdTooltip.tooltip_actor.cImage);
}
}
} else {
if (holdTooltip != null) {
if (Talt == null)
Talt = renderPlaceholder(new Graphics(), reward.getCard(), true);
if (holdTooltip.tooltip_actor.getChildren().size <= 2) {
holdTooltip.tooltip_actor.altcImage = new RewardImage(processDrawable(Talt));
holdTooltip.tooltip_actor.addActorAt(2, holdTooltip.tooltip_actor.altcImage);
holdTooltip.tooltip_actor.swapActor(holdTooltip.tooltip_actor.altcImage, holdTooltip.tooltip_actor.cImage);
}
} }
} }
} else { } catch (Exception e) {
if (holdTooltip != null) { System.err.println("Failed to load image: " + backFace.getPath());
if (Talt == null) }
Talt = renderPlaceholder(new Graphics(), reward.getCard(), true); }
if (holdTooltip.tooltip_actor.getChildren().size <= 2) { } else {
holdTooltip.tooltip_actor.altcImage = new RewardImage(processDrawable(Talt)); try {
holdTooltip.tooltip_actor.addActorAt(2, holdTooltip.tooltip_actor.altcImage); if (holdTooltip != null) {
holdTooltip.tooltip_actor.swapActor(holdTooltip.tooltip_actor.altcImage, holdTooltip.tooltip_actor.cImage); if (Talt == null)
} Talt = renderPlaceholder(new Graphics(), reward.getCard(), true);
if (holdTooltip.tooltip_actor.getChildren().size <= 2) {
holdTooltip.tooltip_actor.altcImage = new RewardImage(processDrawable(Talt));
holdTooltip.tooltip_actor.addActorAt(2, holdTooltip.tooltip_actor.altcImage);
holdTooltip.tooltip_actor.swapActor(holdTooltip.tooltip_actor.altcImage, holdTooltip.tooltip_actor.cImage);
} }
} }
} catch (Exception e) { } catch (Exception e) {
System.err.println("Failed to load image: " + backFace.getPath()); System.err.println("Failed to load alternate image: " + reward.getCard());
} }
} }
} }