Laid groundwork for tutorial, changed map storage

This commit is contained in:
Anuken
2017-10-13 20:28:25 -04:00
parent c167e117c0
commit ba345b4421
17 changed files with 161 additions and 171 deletions
+19 -30
View File
@@ -1,60 +1,48 @@
package io.anuke.mindustry.ui;
import static io.anuke.mindustry.Vars.maps;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.Map;
import io.anuke.mindustry.world.World;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Unit;
public class LevelDialog extends Dialog{
Label[] scores = new Label[maps.length];
private int selectedMap;
private Map selectedMap = Map.delta;
public LevelDialog(){
super("Level Select");
setup();
shown(()->{
for(int i = 0; i < maps.length; i ++)
scores[i].setText("High Score: [lime]" + Settings.getInt("hiscore"+maps[i]));
});
}
void setup(){
addCloseButton();
getButtonTable().addButton("Play", ()->{
hide();
Vars.ui.showLoading();
Timers.run(16, ()->{
Vars.control.reset();
World.loadMap(selectedMap);
Vars.control.play();
});
Timers.run(18, ()->{
Vars.ui.hideLoading();
});
Vars.control.playMap(selectedMap);
}).pad(3).size(180, 44).units(Unit.dp);
ButtonGroup<ImageButton> mapgroup = new ButtonGroup<>();
for(int i = 0; i < maps.length; i ++){
content().add(maps[i]);
for(Map map : Map.values()){
if(!map.visible) continue;
content().add(map.name());
}
content().row();
for(int i = 0; i < maps.length; i ++){
int index = i;
ImageButton image = new ImageButton(new TextureRegion(World.getTexture(i)), "togglemap");
for(Map map : Map.values()){
if(!map.visible) continue;
ImageButton image = new ImageButton(new TextureRegion(World.getTexture(map)), "togglemap");
mapgroup.add(image);
image.clicked(()->{
selectedMap = index;
selectedMap = map;
});
image.getImageCell().size(Unit.dp.inPixels(164));
content().add(image).size(Unit.dp.inPixels(180));
@@ -62,9 +50,10 @@ public class LevelDialog extends Dialog{
content().row();
for(int i = 0; i < maps.length; i ++){
scores[i] = new Label("");
content().add(scores[i]);
for(Map map : Map.values()){
if(!map.visible) continue;
content().add(()->"High Score: [lime]" + Settings.getInt("hiscore" + map.name()));
}
}
}
@@ -13,6 +13,7 @@ import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Unit;
//TODO unified save/load dialogs
public class LoadDialog extends Dialog{
public LoadDialog() {
@@ -11,6 +11,7 @@ import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Cell;
import io.anuke.ucore.scene.ui.layout.Unit;
//TODO unified save/load dialogs
public class SaveDialog extends Dialog{
public SaveDialog() {
@@ -6,7 +6,7 @@ import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.GameState;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.Inventory;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Weapon;
import io.anuke.ucore.core.Draw;
@@ -58,7 +58,7 @@ public class UpgradeDialog extends Dialog{
if(control.hasWeapon(weapon)){
button.setDisabled(true);
button.setColor(Color.GRAY);
}else if(!Inventory.hasItems(weapon.requirements)){
}else if(!Vars.control.hasItems(weapon.requirements)){
button.setDisabled(true);
}else{
button.setDisabled(false);
@@ -92,7 +92,7 @@ public class UpgradeDialog extends Dialog{
ItemStack[] req = weapon.requirements;
for(ItemStack s : req){
int amount = Math.min(Inventory.getAmount(s.item), s.amount);
int amount = Math.min(Vars.control.getAmount(s.item), s.amount);
reqtable.addImage(Draw.region("icon-" + s.item.name())).padRight(3).size(8*2);
reqtable.add(
(amount >= s.amount ? "" : "[RED]")
@@ -123,7 +123,7 @@ public class UpgradeDialog extends Dialog{
button.clicked(()->{
if(button.isDisabled()) return;
Inventory.removeItems(weapon.requirements);
Vars.control.removeItems(weapon.requirements);
control.addWeapon(weapon);
ui.updateWeapons();
run.listen();