Massive amount of bug/crash fixes, wave saving
This commit is contained in:
@@ -26,6 +26,8 @@ public class Minimap extends Table {
|
||||
Image image = new Image(new TextureRegionDrawable(new TextureRegion())){
|
||||
@Override
|
||||
public void draw(Batch batch, float parentAlpha) {
|
||||
if(renderer.minimap().getRegion() == null) return;
|
||||
|
||||
TextureRegionDrawable draw = (TextureRegionDrawable)getDrawable();
|
||||
draw.getRegion().setRegion(renderer.minimap().getRegion());
|
||||
super.draw(batch, parentAlpha);
|
||||
|
||||
@@ -3,17 +3,11 @@ package io.anuke.mindustry.ui.dialogs;
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.graphics.Color;
|
||||
import com.badlogic.gdx.graphics.g2d.TextureRegion;
|
||||
import com.badlogic.gdx.utils.ObjectMap;
|
||||
import io.anuke.mindustry.game.Difficulty;
|
||||
import io.anuke.mindustry.game.GameMode;
|
||||
import io.anuke.mindustry.io.Map;
|
||||
import io.anuke.mindustry.io.MapMeta;
|
||||
import io.anuke.mindustry.io.MapTileData;
|
||||
import io.anuke.mindustry.world.Tile;
|
||||
import io.anuke.mindustry.world.mapgen.WorldGenerator;
|
||||
import io.anuke.ucore.core.Settings;
|
||||
import io.anuke.ucore.core.Timers;
|
||||
import io.anuke.ucore.entities.EntityPhysics;
|
||||
import io.anuke.ucore.scene.event.Touchable;
|
||||
import io.anuke.ucore.scene.ui.*;
|
||||
import io.anuke.ucore.scene.ui.layout.Stack;
|
||||
@@ -21,7 +15,6 @@ import io.anuke.ucore.scene.ui.layout.Table;
|
||||
import io.anuke.ucore.scene.utils.Cursors;
|
||||
import io.anuke.ucore.scene.utils.Elements;
|
||||
import io.anuke.ucore.util.Bundles;
|
||||
import io.anuke.ucore.util.Log;
|
||||
import io.anuke.ucore.util.Mathf;
|
||||
|
||||
import static io.anuke.mindustry.Vars.*;
|
||||
@@ -133,29 +126,8 @@ public class LevelDialog extends FloatingDialog{
|
||||
Timers.run(5f, () -> {
|
||||
Cursors.restoreCursor();
|
||||
threads.run(() -> {
|
||||
Timers.mark();
|
||||
MapTileData data = WorldGenerator.generate();
|
||||
Map map = new Map("generated-map", new MapMeta(0, new ObjectMap<>(), data.width(), data.height(), null), true, () -> null);
|
||||
|
||||
logic.reset();
|
||||
|
||||
world.beginMapLoad();
|
||||
world.setMap(map);
|
||||
|
||||
int width = map.meta.width, height = map.meta.height;
|
||||
|
||||
Tile[][] tiles = world.createTiles(data.width(), data.height());
|
||||
|
||||
EntityPhysics.resizeTree(0, 0, width * tilesize, height * tilesize);
|
||||
|
||||
WorldGenerator.generate(tiles, data, true, Mathf.random(9999999));
|
||||
|
||||
world.endMapLoad();
|
||||
|
||||
Log.info("Time to generate: {0}", Timers.elapsed());
|
||||
|
||||
world.loadProceduralMap();
|
||||
logic.play();
|
||||
|
||||
Gdx.app.postRunnable(ui.loadfrag::hide);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -64,7 +64,7 @@ public class BlocksFragment implements Fragment{
|
||||
aright();
|
||||
|
||||
//make it only be shown when needed.
|
||||
visible(() -> !state.is(State.menu) && shown);
|
||||
visible(() -> !state.is(State.menu));
|
||||
|
||||
//create the main blocks table
|
||||
mainTable = new table(){{
|
||||
@@ -99,7 +99,7 @@ public class BlocksFragment implements Fragment{
|
||||
|
||||
}}.right().bottom().end().get();
|
||||
|
||||
visible(() -> !state.is(State.menu) && shown);
|
||||
visible(() -> !state.is(State.menu));
|
||||
|
||||
}}.end().get();
|
||||
|
||||
@@ -278,8 +278,9 @@ public class BlocksFragment implements Fragment{
|
||||
}
|
||||
|
||||
void toggle(boolean show, float t, Interpolation ip){
|
||||
if(!show){
|
||||
mainTable.actions(Actions.translateBy(0, -mainTable.getHeight() - descTable.getHeight(), t, ip), Actions.call(() -> shown = false));
|
||||
if(shown){
|
||||
shown = false;
|
||||
mainTable.actions(Actions.translateBy(0, mainTable.getTranslation().y + (-mainTable.getHeight() - descTable.getHeight()), t, ip));
|
||||
}else{
|
||||
shown = true;
|
||||
mainTable.actions(Actions.translateBy(0, -mainTable.getTranslation().y, t, ip));
|
||||
|
||||
@@ -38,7 +38,7 @@ public class HudFragment implements Fragment{
|
||||
private Label infolabel;
|
||||
private Table lastUnlockTable;
|
||||
private Table lastUnlockLayout;
|
||||
private boolean shown = true;
|
||||
private boolean shown = true, done = true;
|
||||
private float dsize = 58;
|
||||
private float isize = 40;
|
||||
|
||||
@@ -103,7 +103,6 @@ public class HudFragment implements Fragment{
|
||||
|
||||
new table() {{
|
||||
touchable(Touchable.enabled);
|
||||
visible(() -> shown);
|
||||
addWaveTable();
|
||||
}}.fillX().end();
|
||||
|
||||
@@ -262,7 +261,8 @@ public class HudFragment implements Fragment{
|
||||
}
|
||||
|
||||
private void toggleMenus(){
|
||||
if (wavetable.getActions().size != 0) return;
|
||||
wavetable.clearActions();
|
||||
infolabel.clearActions();
|
||||
|
||||
float dur = 0.3f;
|
||||
Interpolation in = Interpolation.pow3Out;
|
||||
@@ -270,9 +270,10 @@ public class HudFragment implements Fragment{
|
||||
flip.getStyle().imageUp = Core.skin.getDrawable(shown ? "icon-arrow-down" : "icon-arrow-up");
|
||||
|
||||
if (shown) {
|
||||
shown = false;
|
||||
blockfrag.toggle(false, dur, in);
|
||||
wavetable.actions(Actions.translateBy(0, wavetable.getHeight() + dsize, dur, in), Actions.call(() -> shown = false));
|
||||
infolabel.actions(Actions.translateBy(0, wavetable.getHeight(), dur, in), Actions.call(() -> shown = false));
|
||||
wavetable.actions(Actions.translateBy(0, (wavetable.getHeight() + dsize) - wavetable.getTranslation().y, dur, in));
|
||||
infolabel.actions(Actions.translateBy(0, (wavetable.getHeight()) - wavetable.getTranslation().y, dur, in));
|
||||
} else {
|
||||
shown = true;
|
||||
blockfrag.toggle(true, dur, in);
|
||||
|
||||
Reference in New Issue
Block a user