More description changes, changed profiler, core refactoring

This commit is contained in:
Anuken
2017-11-21 22:07:36 -05:00
parent a71a82c10b
commit f0e5477346
41 changed files with 147 additions and 164 deletions

View File

@@ -79,7 +79,7 @@ project(":core") {
apply plugin: "java" apply plugin: "java"
dependencies { dependencies {
compile 'com.github.anuken:ucore:eb772dd77d' compile 'com.github.Anuken:ucore:9d84d75ee1'
compile "com.badlogicgames.gdx:gdx:$gdxVersion" compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-ai:1.8.1" compile "com.badlogicgames.gdx:gdx-ai:1.8.1"
} }

View File

@@ -1,20 +1,19 @@
package io.anuke.mindustry; package io.anuke.mindustry;
import static io.anuke.mindustry.Vars.profileTime;
import java.util.Date; import java.util.Date;
import com.badlogic.gdx.graphics.profiling.GLProfiler; import com.badlogic.gdx.graphics.profiling.GLProfiler;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.*;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.io.Formatter; import io.anuke.mindustry.io.Formatter;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.*; import io.anuke.mindustry.world.blocks.*;
import io.anuke.ucore.core.Inputs; import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers; import io.anuke.ucore.core.Timers;
import io.anuke.ucore.modules.ModuleCore; import io.anuke.ucore.modules.ModuleCore;
import io.anuke.ucore.util.Profiler;
public class Mindustry extends ModuleCore { public class Mindustry extends ModuleCore {
public static Array<String> args = new Array<>(); public static Array<String> args = new Array<>();
@@ -57,7 +56,7 @@ public class Mindustry extends ModuleCore {
@Override @Override
public void render(){ public void render(){
long time = TimeUtils.nanoTime(); Profiler.begin("total");
try{ try{
super.render(); super.render();
@@ -73,6 +72,6 @@ public class Mindustry extends ModuleCore {
Inputs.update(); Inputs.update();
if(Timers.get("profilet", profileTime)) Profiler.total = TimeUtils.timeSinceNanos(time); Profiler.end("total");
} }
} }

View File

@@ -1,9 +0,0 @@
package io.anuke.mindustry;
public class Profiler{
public static long total;
public static long draw;
public static long blockDraw;
public static long entityDraw;
public static long entityUpdate;
}

View File

@@ -2,7 +2,8 @@ package io.anuke.mindustry;
import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.math.GridPoint2;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.*;

View File

@@ -3,6 +3,9 @@ package io.anuke.mindustry;
import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Application.ApplicationType;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import io.anuke.mindustry.core.Control;
import io.anuke.mindustry.core.Renderer;
import io.anuke.mindustry.core.UI;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
@@ -41,8 +44,6 @@ public class Vars{
//TODO named save slots, possibly with a scroll dialog //TODO named save slots, possibly with a scroll dialog
public static final int saveSlots = 4; public static final int saveSlots = 4;
public static final int profileTime = 30;
//only if smoothCamera //only if smoothCamera
public static boolean snapCamera = true; public static boolean snapCamera = true;

View File

@@ -1,14 +1,13 @@
package io.anuke.mindustry.ai; package io.anuke.mindustry.ai;
import com.badlogic.gdx.ai.pfa.PathFinder; import com.badlogic.gdx.ai.pfa.PathFinder;
import com.badlogic.gdx.ai.pfa.PathFinderRequest;
import com.badlogic.gdx.ai.pfa.PathSmoother; import com.badlogic.gdx.ai.pfa.PathSmoother;
import com.badlogic.gdx.ai.pfa.indexed.IndexedAStarPathFinder; import com.badlogic.gdx.ai.pfa.indexed.IndexedAStarPathFinder;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;
@@ -68,11 +67,12 @@ public class Pathfind{
} }
} }
//TODO //TODO make this work?
/*
PathFinderRequest<Tile> request = new PathFinderRequest<Tile>(); PathFinderRequest<Tile> request = new PathFinderRequest<Tile>();
request.startNode = World.spawnpoints.get(0); request.startNode = World.spawnpoints.get(0);
request.endNode = World.core; request.endNode = World.core;
passpathfinder.search(request, 1000); passpathfinder.search(request, 1000); */
for(int i = 0; i < paths.size; i ++){ for(int i = 0; i < paths.size; i ++){
SmoothGraphPath path = paths.get(i); SmoothGraphPath path = paths.get(i);

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry; package io.anuke.mindustry.core;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
@@ -8,14 +8,17 @@ import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.input.GestureDetector; import com.badlogic.gdx.input.GestureDetector;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap;
import com.badlogic.gdx.utils.TimeUtils;
import com.badlogic.gdx.utils.reflect.ClassReflection; import com.badlogic.gdx.utils.reflect.ClassReflection;
import com.badlogic.gdx.utils.reflect.Constructor; import com.badlogic.gdx.utils.reflect.Constructor;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.Mindustry;
import io.anuke.mindustry.Tutorial;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.ai.Pathfind; import io.anuke.mindustry.ai.Pathfind;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.EnemySpawn; import io.anuke.mindustry.entities.EnemySpawn;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.*; import io.anuke.mindustry.entities.enemies.*;
import io.anuke.mindustry.input.AndroidInput; import io.anuke.mindustry.input.AndroidInput;
import io.anuke.mindustry.input.GestureHandler; import io.anuke.mindustry.input.GestureHandler;
@@ -31,6 +34,7 @@ import io.anuke.ucore.entities.Entity;
import io.anuke.ucore.graphics.Atlas; import io.anuke.ucore.graphics.Atlas;
import io.anuke.ucore.modules.Module; import io.anuke.ucore.modules.Module;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Profiler;
public class Control extends Module{ public class Control extends Module{
int targetscale = baseCameraScale; int targetscale = baseCameraScale;
@@ -230,7 +234,7 @@ public class Control extends Module{
this.extrawavetime = maxwavespace; this.extrawavetime = maxwavespace;
} }
void runWave(){ public void runWave(){
Sounds.play("spawn"); Sounds.play("spawn");
Pathfind.updatePath(); Pathfind.updatePath();
@@ -473,9 +477,11 @@ public class Control extends Module{
runWave(); runWave();
} }
long time = TimeUtils.nanoTime(); Profiler.begin("entityUpdate");
Entities.update(); Entities.update();
if(Timers.get("profileeu", profileTime)) Profiler.entityUpdate = TimeUtils.timeSinceNanos(time);
Profiler.end("entityUpdate");
} }
if(!android){ if(!android){

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry; package io.anuke.mindustry.core;
public class GameState{ public class GameState{
private static State state = State.menu; private static State state = State.menu;

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry; package io.anuke.mindustry.core;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.camera; import static io.anuke.ucore.core.Core.camera;
@@ -11,9 +11,10 @@ import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.graphics.profiling.GLProfiler; import com.badlogic.gdx.graphics.profiling.GLProfiler;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.TimeUtils;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.Shaders;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
@@ -34,9 +35,7 @@ import io.anuke.ucore.graphics.Caches;
import io.anuke.ucore.modules.RendererModule; import io.anuke.ucore.modules.RendererModule;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Cursors; import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.*;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
public class Renderer extends RendererModule{ public class Renderer extends RendererModule{
int targetscale = baseCameraScale; int targetscale = baseCameraScale;
@@ -124,10 +123,11 @@ public class Renderer extends RendererModule{
camera.position.add(-0.5f, 0, 0); camera.position.add(-0.5f, 0, 0);
} }
long time = TimeUtils.nanoTime(); Profiler.begin("draw");
drawDefault(); drawDefault();
if(Timers.get("profiled", profileTime))
Profiler.draw = TimeUtils.timeSinceNanos(time); Profiler.end("draw");
if(Vars.debug && Vars.debugGL && Timers.get("profile", 60)){ if(Vars.debug && Vars.debugGL && Timers.get("profile", 60)){
UCore.log("shaders: " + GLProfiler.shaderSwitches, "calls: " + GLProfiler.drawCalls, "bindings: " + GLProfiler.textureBindings, "vertices: " + GLProfiler.vertexCount.average); UCore.log("shaders: " + GLProfiler.shaderSwitches, "calls: " + GLProfiler.drawCalls, "bindings: " + GLProfiler.textureBindings, "vertices: " + GLProfiler.vertexCount.average);
@@ -146,15 +146,15 @@ public class Renderer extends RendererModule{
Graphics.surface("shield"); Graphics.surface("shield");
Graphics.surface(); Graphics.surface();
long time = TimeUtils.nanoTime(); Profiler.begin("blockDraw");
renderTiles();
if(Timers.get("profilebd", profileTime))
Profiler.blockDraw = TimeUtils.timeSinceNanos(time);
time = TimeUtils.nanoTime(); renderTiles();
Profiler.end("blockDraw");
Profiler.begin("entityDraw");
Entities.draw(); Entities.draw();
if(Timers.get("profileed", profileTime)) Profiler.end("entityDraw");
Profiler.entityDraw = TimeUtils.timeSinceNanos(time);
drawShield(); drawShield();

View File

@@ -1,4 +1,4 @@
package io.anuke.mindustry; package io.anuke.mindustry.core;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.scene.actions.Actions.*; import static io.anuke.ucore.scene.actions.Actions.*;
@@ -12,8 +12,8 @@ import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.ui.*; import io.anuke.mindustry.ui.*;
import io.anuke.mindustry.ui.fragments.*; import io.anuke.mindustry.ui.fragments.*;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
@@ -24,7 +24,6 @@ import io.anuke.ucore.function.VisibilityProvider;
import io.anuke.ucore.modules.SceneModule; import io.anuke.ucore.modules.SceneModule;
import io.anuke.ucore.scene.Element; import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.Skin; import io.anuke.ucore.scene.Skin;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.builders.build; import io.anuke.ucore.scene.builders.build;
import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.label;
import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.builders.table;
@@ -35,7 +34,7 @@ import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
public class UI extends SceneModule{ public class UI extends SceneModule{
Table itemtable, weapontable, loadingtable, desctable, respawntable, configtable; Table loadingtable, desctable, configtable;
MindustrySettingsDialog prefs; MindustrySettingsDialog prefs;
MindustryKeybindDialog keys; MindustryKeybindDialog keys;
Dialog about, restart, levels, upgrades, load, settingserror; Dialog about, restart, levels, upgrades, load, settingserror;
@@ -47,7 +46,6 @@ public class UI extends SceneModule{
private Fragment blockfrag = new BlocksFragment(), private Fragment blockfrag = new BlocksFragment(),
menufrag = new MenuFragment(), menufrag = new MenuFragment(),
profilefrag = new ProfilerFragment(),
toolfrag = new ToolFragment(), toolfrag = new ToolFragment(),
hudfrag = new HudFragment(), hudfrag = new HudFragment(),
placefrag = new PlacementFragment(), placefrag = new PlacementFragment(),
@@ -56,8 +54,6 @@ public class UI extends SceneModule{
VisibilityProvider play = () -> !GameState.is(State.menu); VisibilityProvider play = () -> !GameState.is(State.menu);
VisibilityProvider nplay = () -> GameState.is(State.menu); VisibilityProvider nplay = () -> GameState.is(State.menu);
private Array<Item> tempItems = new Array<>();
public UI() { public UI() {
Dialog.setShowAction(()-> sequence( Dialog.setShowAction(()-> sequence(
alpha(0f), alpha(0f),
@@ -258,8 +254,6 @@ public class UI extends SceneModule{
menufrag.build(); menufrag.build();
profilefrag.build();
placefrag.build(); placefrag.build();
loadingtable = new table("loadDim"){{ loadingtable = new table("loadDim"){{
@@ -289,7 +283,7 @@ public class UI extends SceneModule{
} }
public void fadeRespawn(boolean in){ public void fadeRespawn(boolean in){
respawntable.addAction(Actions.color(in ? new Color(0, 0, 0, 0.3f) : Color.CLEAR, 0.3f)); ((HudFragment)hudfrag).fadeRespawn(in);
} }
public void showConfig(Tile tile){ public void showConfig(Tile tile){
@@ -388,23 +382,7 @@ public class UI extends SceneModule{
} }
public void updateItems(){ public void updateItems(){
itemtable.clear(); ((HudFragment)hudfrag).updateItems();
itemtable.left();
tempItems.clear();
for(Item item : control.getItems().keys()){
tempItems.add(item);
}
tempItems.sort();
for(Item stack : tempItems){
Image image = new Image(Draw.region("icon-" + stack.name()));
Label label = new Label("" + Mindustry.formatter.format(control.getAmount(stack)));
label.setFontScale(fontscale*1.5f);
itemtable.add(image).size(8*3).units(Unit.dp);
itemtable.add(label).left();
itemtable.row();
}
} }
} }

View File

@@ -2,9 +2,9 @@ package io.anuke.mindustry.entities;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.entities.effect.DamageArea; import io.anuke.mindustry.entities.effect.DamageArea;
import io.anuke.mindustry.entities.effect.EMP; import io.anuke.mindustry.entities.effect.EMP;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;

View File

@@ -7,8 +7,8 @@ import com.badlogic.gdx.Input.Keys;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Recipe; import io.anuke.mindustry.resource.Recipe;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.ucore.core.*; import io.anuke.ucore.core.*;

View File

@@ -6,8 +6,8 @@ import java.io.IOException;
import com.badlogic.gdx.utils.ObjectMap; import com.badlogic.gdx.utils.ObjectMap;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;

View File

@@ -4,7 +4,6 @@ import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;

View File

@@ -1,7 +1,8 @@
package io.anuke.mindustry; package io.anuke.mindustry.entities.effect;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Vars;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Hue;

View File

@@ -5,7 +5,6 @@ import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.ObjectSet; import com.badlogic.gdx.utils.ObjectSet;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;

View File

@@ -5,13 +5,13 @@ import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import com.badlogic.gdx.utils.reflect.ClassReflection; import com.badlogic.gdx.utils.reflect.ClassReflection;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Shaders; import io.anuke.mindustry.Shaders;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.ai.Pathfind; import io.anuke.mindustry.ai.Pathfind;
import io.anuke.mindustry.entities.Bullet; import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;
import io.anuke.ucore.core.*; import io.anuke.ucore.core.*;

View File

@@ -4,11 +4,11 @@ import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.Bullet; import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.Entity;
import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Angles;

View File

@@ -4,9 +4,9 @@ import com.badlogic.gdx.utils.Align;
import com.badlogic.gdx.utils.Timer; import com.badlogic.gdx.utils.Timer;
import com.badlogic.gdx.utils.Timer.Task; import com.badlogic.gdx.utils.Timer.Task;
import io.anuke.mindustry.GameState;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.io.SaveIO;
import io.anuke.ucore.scene.ui.Label; import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.TextButton; import io.anuke.ucore.scene.ui.TextButton;

View File

@@ -5,9 +5,9 @@ import static io.anuke.mindustry.Vars.ui;
import com.badlogic.gdx.Application.ApplicationType; import com.badlogic.gdx.Application.ApplicationType;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import io.anuke.mindustry.GameState;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.ucore.scene.ui.ConfirmDialog; import io.anuke.ucore.scene.ui.ConfirmDialog;
import io.anuke.ucore.scene.ui.layout.Cell; import io.anuke.ucore.scene.ui.layout.Cell;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;

View File

@@ -4,9 +4,9 @@ import static io.anuke.mindustry.Vars.*;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.GameState;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;

View File

@@ -7,8 +7,8 @@ import com.badlogic.gdx.graphics.Colors;
import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Recipe; import io.anuke.mindustry.resource.Recipe;
import io.anuke.mindustry.resource.Section; import io.anuke.mindustry.resource.Section;

View File

@@ -4,22 +4,33 @@ import static io.anuke.mindustry.Vars.*;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.Mindustry;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.resource.Item;
import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Draw;
import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Settings;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.function.StringSupplier;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.builders.imagebutton; import io.anuke.ucore.scene.builders.imagebutton;
import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.label;
import io.anuke.ucore.scene.builders.table; import io.anuke.ucore.scene.builders.table;
import io.anuke.ucore.scene.ui.Image;
import io.anuke.ucore.scene.ui.Label; import io.anuke.ucore.scene.ui.Label;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Profiler;
public class HudFragment implements Fragment{ public class HudFragment implements Fragment{
private Table itemtable, respawntable; private Table itemtable, respawntable;
private Array<Item> tempItems = new Array<>();
public void build(){ public void build(){
//menu at top left
new table(){{ new table(){{
atop(); atop();
aleft(); aleft();
@@ -122,5 +133,50 @@ public class HudFragment implements Fragment{
}}.end(); }}.end();
}}.end(); }}.end();
//profiling table
if(debug){
new table(){{
abottom();
aleft();
new label((StringSupplier)()->"[purple]entities: " + Entities.amount()).left();
row();
new label("[red]DEBUG MODE").scale(0.5f).left();
}}.end();
new table(){{
atop();
new table("button"){{
defaults().left().growX();
atop();
aleft();
new label((StringSupplier)()->Profiler.formatDisplayTimes());
}}.width(400f).end();
}}.end();
}
}
public void updateItems(){
itemtable.clear();
itemtable.left();
tempItems.clear();
for(Item item : control.getItems().keys()){
tempItems.add(item);
}
tempItems.sort();
for(Item stack : tempItems){
Image image = new Image(Draw.region("icon-" + stack.name()));
Label label = new Label("" + Mindustry.formatter.format(control.getAmount(stack)));
label.setFontScale(fontscale*1.5f);
itemtable.add(image).size(8*3).units(Unit.dp);
itemtable.add(label).left();
itemtable.row();
}
}
public void fadeRespawn(boolean in){
respawntable.addAction(Actions.color(in ? new Color(0, 0, 0, 0.3f) : Color.CLEAR, 0.3f));
} }
} }

View File

@@ -4,8 +4,8 @@ import static io.anuke.mindustry.Vars.*;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.ui.MenuButton; import io.anuke.mindustry.ui.MenuButton;
import io.anuke.mindustry.world.Map; import io.anuke.mindustry.world.Map;
import io.anuke.ucore.scene.builders.imagebutton; import io.anuke.ucore.scene.builders.imagebutton;

View File

@@ -4,8 +4,8 @@ import static io.anuke.mindustry.Vars.*;
import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Align;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.input.AndroidInput; import io.anuke.mindustry.input.AndroidInput;
import io.anuke.mindustry.input.PlaceMode; import io.anuke.mindustry.input.PlaceMode;
import io.anuke.ucore.scene.builders.imagebutton; import io.anuke.ucore.scene.builders.imagebutton;

View File

@@ -1,48 +0,0 @@
package io.anuke.mindustry.ui.fragments;
import static io.anuke.mindustry.Vars.debug;
import io.anuke.mindustry.Profiler;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.function.StringSupplier;
import io.anuke.ucore.scene.builders.label;
import io.anuke.ucore.scene.builders.table;
public class ProfilerFragment implements Fragment{
public void build(){
if(debug){
new table(){{
abottom();
aleft();
new label((StringSupplier)()->"[purple]entities: " + Entities.amount()).left();
row();
new label("[red]DEBUG MODE").scale(0.5f).left();
}}.end();
new table(){{
atop();
new table("button"){{
defaults().left().growX();
atop();
aleft();
new label((StringSupplier)()->"[red]total: "
+ String.format("%.1f", (float)Profiler.total/Profiler.total*100f)+ "% - " + Profiler.total).left();
row();
new label((StringSupplier)()->"[yellow]draw: "
+ String.format("%.1f", (float)Profiler.draw/Profiler.total*100f)+ "% - " + Profiler.draw).left();
row();
new label((StringSupplier)()->"[green]blockDraw: "
+ String.format("%.1f", (float)Profiler.blockDraw/Profiler.total*100f)+ "% - " + Profiler.blockDraw).left();
row();
new label((StringSupplier)()->"[blue]entityDraw: "
+ String.format("%.1f", (float)Profiler.entityDraw/Profiler.total*100f)+ "% - " + Profiler.entityDraw).left();
row();
new label((StringSupplier)()->"[purple]entityUpdate: "
+ String.format("%.1f", (float)Profiler.entityUpdate/Profiler.total*100f)+ "% - " + Profiler.entityUpdate).left();
row();
}}.width(400f).end();
}}.end();
}
}
}

View File

@@ -5,8 +5,8 @@ import static io.anuke.mindustry.Vars.*;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.utils.Align; import com.badlogic.gdx.utils.Align;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.input.AndroidInput; import io.anuke.mindustry.input.AndroidInput;
import io.anuke.mindustry.input.PlaceMode; import io.anuke.mindustry.input.PlaceMode;
import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Core;

View File

@@ -2,8 +2,8 @@ package io.anuke.mindustry.ui.fragments;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.resource.Weapon;
import io.anuke.ucore.core.Core; import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;

View File

@@ -4,11 +4,11 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.GameState;
import io.anuke.mindustry.GameState.State;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;

View File

@@ -8,10 +8,10 @@ import com.badlogic.gdx.graphics.Texture;
import com.badlogic.gdx.math.*; import com.badlogic.gdx.math.*;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.ai.Pathfind; import io.anuke.mindustry.ai.Pathfind;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.world.blocks.*; import io.anuke.mindustry.world.blocks.*;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Sounds; import io.anuke.ucore.core.Sounds;

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.world.blocks; package io.anuke.mindustry.world.blocks;
import io.anuke.mindustry.Fx; import io.anuke.mindustry.core.GameState;
import io.anuke.mindustry.GameState; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.GameState.State; import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.ItemStack;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.world.blocks; package io.anuke.mindustry.world.blocks;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;

View File

@@ -3,9 +3,9 @@ package io.anuke.mindustry.world.blocks;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.effect.TeslaOrb; import io.anuke.mindustry.entities.effect.TeslaOrb;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.types.defense;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.MathUtils; import com.badlogic.gdx.math.MathUtils;
import io.anuke.mindustry.Fx; import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Draw; import io.anuke.ucore.core.Draw;

View File

@@ -8,11 +8,11 @@ import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.Bullet; import io.anuke.mindustry.entities.Bullet;
import io.anuke.mindustry.entities.BulletType; import io.anuke.mindustry.entities.BulletType;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.Enemy;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;

View File

@@ -4,7 +4,7 @@ import java.util.Arrays;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx; import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.world.blocks.types.production; package io.anuke.mindustry.world.blocks.types.production;
import io.anuke.mindustry.Fx; import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;

View File

@@ -5,8 +5,8 @@ import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.World; import io.anuke.mindustry.world.World;
import io.anuke.mindustry.world.blocks.types.PowerAcceptor; import io.anuke.mindustry.world.blocks.types.PowerAcceptor;

View File

@@ -2,9 +2,9 @@ package io.anuke.mindustry.world.blocks.types.production;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects;

View File

@@ -3,9 +3,9 @@ package io.anuke.mindustry.world.blocks.types.production;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Item;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;

View File

@@ -7,8 +7,8 @@ import java.io.IOException;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Array;
import io.anuke.mindustry.Fx;
import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.entities.effect.Fx;
import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.resource.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.types.LiquidAcceptor; import io.anuke.mindustry.world.blocks.types.LiquidAcceptor;