Various tweaks
This commit is contained in:
@@ -18,10 +18,8 @@ import static mindustry.Vars.*;
|
||||
/** Dialog for selecting loadout at sector launch. */
|
||||
public class LaunchLoadoutDialog extends BaseDialog{
|
||||
LoadoutDialog loadout = new LoadoutDialog();
|
||||
//total as a map
|
||||
ObjectIntMap<Item> totalMap = new ObjectIntMap<>();
|
||||
//total required items
|
||||
Seq<ItemStack> total = new Seq<>();
|
||||
ItemSeq total = new ItemSeq();
|
||||
//currently selected schematic
|
||||
Schematic selected;
|
||||
//validity of loadout items
|
||||
@@ -34,21 +32,14 @@ public class LaunchLoadoutDialog extends BaseDialog{
|
||||
public void show(CoreBlock core, Building build, Runnable confirm){
|
||||
cont.clear();
|
||||
buttons.clear();
|
||||
totalMap.clear();
|
||||
|
||||
Seq<ItemStack> stacks = universe.getLaunchResources();
|
||||
|
||||
addCloseButton();
|
||||
|
||||
//updates sum requirements
|
||||
Runnable update = () -> {
|
||||
totalMap.clear();
|
||||
total.clear();
|
||||
selected.requirements().each(i -> totalMap.increment(i.item, i.amount));
|
||||
universe.getLaunchResources().each(i -> totalMap.increment(i.item, i.amount));
|
||||
for(Item item : content.items()){
|
||||
if(totalMap.containsKey(item)) total.add(new ItemStack(item, totalMap.get(item)));
|
||||
}
|
||||
selected.requirements().each(total::add);
|
||||
universe.getLaunchResources().each(total::add);
|
||||
valid = build.items.has(total);
|
||||
};
|
||||
|
||||
@@ -56,10 +47,18 @@ public class LaunchLoadoutDialog extends BaseDialog{
|
||||
table.clearChildren();
|
||||
int i = 0;
|
||||
|
||||
ItemSeq schems = selected.requirements();
|
||||
ItemSeq launches = universe.getLaunchResources();
|
||||
|
||||
for(ItemStack s : total){
|
||||
table.image(s.item.icon(Cicon.small)).left();
|
||||
table.add((build.items.has(s.item, s.amount)) ? "[lightgray]" + s.amount + "" :
|
||||
"[scarlet]" + (Math.min(build.items.get(s.item), s.amount) + "[lightgray]/" + s.amount)).padLeft(2).left().padRight(4);
|
||||
int as = schems.get(s.item), al = launches.get(s.item);
|
||||
|
||||
String amountStr = "[lightgray]" + (al + " + [accent]" + as + "[lightgray]");
|
||||
|
||||
table.add(
|
||||
build.items.has(s.item, s.amount) ? amountStr :
|
||||
"[scarlet]" + (Math.min(build.items.get(s.item), s.amount) + "[lightgray]/" + amountStr)).padLeft(2).left().padRight(4);
|
||||
|
||||
if(++i % 4 == 0){
|
||||
table.row();
|
||||
@@ -72,8 +71,11 @@ public class LaunchLoadoutDialog extends BaseDialog{
|
||||
Runnable rebuildItems = () -> rebuild.get(items);
|
||||
|
||||
buttons.button("@resources", Icon.terrain, () -> {
|
||||
loadout.show(core.itemCapacity, stacks, UnlockableContent::unlocked, stacks::clear, () -> {}, () -> {
|
||||
universe.updateLaunchResources(stacks);
|
||||
ItemSeq stacks = universe.getLaunchResources();
|
||||
Seq<ItemStack> out = stacks.toSeq();
|
||||
|
||||
loadout.show(core.itemCapacity, out, UnlockableContent::unlocked, out::clear, () -> {}, () -> {
|
||||
universe.updateLaunchResources(new ItemSeq(out));
|
||||
update.run();
|
||||
rebuildItems.run();
|
||||
});
|
||||
|
||||
@@ -16,6 +16,7 @@ public class LoadoutDialog extends BaseDialog{
|
||||
private Runnable hider;
|
||||
private Runnable resetter;
|
||||
private Runnable updater;
|
||||
//TODO use itemseqs
|
||||
private Seq<ItemStack> stacks = new Seq<>();
|
||||
private Seq<ItemStack> originalStacks = new Seq<>();
|
||||
private Boolf<Item> validator = i -> true;
|
||||
|
||||
@@ -10,7 +10,6 @@ import arc.scene.ui.*;
|
||||
import arc.scene.ui.ImageButton.*;
|
||||
import arc.scene.ui.TextButton.*;
|
||||
import arc.scene.ui.layout.*;
|
||||
import arc.struct.*;
|
||||
import arc.util.*;
|
||||
import mindustry.game.*;
|
||||
import mindustry.gen.*;
|
||||
@@ -333,7 +332,7 @@ public class SchematicsDialog extends BaseDialog{
|
||||
cont.add(new SchematicImage(schem)).maxSize(800f);
|
||||
cont.row();
|
||||
|
||||
Seq<ItemStack> arr = schem.requirements();
|
||||
ItemSeq arr = schem.requirements();
|
||||
cont.table(r -> {
|
||||
int i = 0;
|
||||
for(ItemStack s : arr){
|
||||
|
||||
Reference in New Issue
Block a user