Files
Mindustry/core/src/mindustry/ui/dialogs/ContentInfoDialog.java
2022-04-29 12:10:49 -04:00

97 lines
2.7 KiB
Java

package mindustry.ui.dialogs;
import arc.*;
import arc.scene.ui.*;
import arc.scene.ui.layout.*;
import arc.struct.*;
import arc.util.*;
import mindustry.ctype.*;
import mindustry.gen.*;
import mindustry.graphics.*;
import mindustry.world.meta.*;
import static mindustry.Vars.*;
public class ContentInfoDialog extends BaseDialog{
public ContentInfoDialog(){
super("@info.title");
addCloseButton();
}
public void show(UnlockableContent content){
cont.clear();
Table table = new Table();
table.margin(10);
//initialize stats if they haven't been yet
content.checkStats();
table.table(title1 -> {
title1.image(content.uiIcon).size(iconXLarge).scaling(Scaling.fit);
title1.add("[accent]" + content.localizedName + (enableConsole ? "\n[gray]" + content.name : "")).padLeft(5);
});
table.row();
if(content.description != null){
var any = content.stats.toMap().size > 0;
if(any){
table.add("@category.purpose").color(Pal.accent).fillX().padTop(10);
table.row();
}
table.add("[lightgray]" + content.displayDescription()).wrap().fillX().padLeft(any ? 10 : 0).width(500f).padTop(any ? 0 : 10).left();
table.row();
if(!content.stats.useCategories && any){
table.add("@category.general").fillX().color(Pal.accent);
table.row();
}
}
Stats stats = content.stats;
for(StatCat cat : stats.toMap().keys()){
OrderedMap<Stat, Seq<StatValue>> map = stats.toMap().get(cat);
if(map.size == 0) continue;
if(stats.useCategories){
table.add("@category." + cat.name).color(Pal.accent).fillX();
table.row();
}
for(Stat stat : map.keys()){
table.table(inset -> {
inset.left();
inset.add("[lightgray]" + stat.localized() + ":[] ").left().top();
Seq<StatValue> arr = map.get(stat);
for(StatValue value : arr){
value.display(inset);
inset.add().size(10f);
}
}).fillX().padLeft(10);
table.row();
}
}
if(content.details != null){
table.add("[gray]" + (content.unlocked() || !content.hideDetails ? content.details : Iconc.lock + " " + Core.bundle.get("unlock.incampaign"))).pad(6).padTop(20).width(400f).wrap().fillX();
table.row();
}
content.displayExtra(table);
ScrollPane pane = new ScrollPane(table);
cont.add(pane);
show();
}
}