🔥🔥🔥🔥🔥🔥maximum breakage

This commit is contained in:
Anuken
2018-12-20 12:38:27 -05:00
parent cabcfc7136
commit 94908bc599
309 changed files with 1883 additions and 1951 deletions

View File

@@ -1,20 +1,28 @@
package io.anuke.mindustry;
import io.anuke.arc.ApplicationListener;
import io.anuke.arc.Core;
import io.anuke.arc.Events;
import io.anuke.arc.Settings;
import io.anuke.arc.utils.Log;
import io.anuke.arc.utils.Time;
import io.anuke.arc.utils.TimeUtils;
import io.anuke.mindustry.core.*;
import io.anuke.mindustry.game.EventType.GameLoadEvent;
import io.anuke.mindustry.io.BundleLoader;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.modules.ModuleCore;
import io.anuke.ucore.util.Log;
import static io.anuke.mindustry.Vars.*;
public class Mindustry extends ModuleCore{
public class Mindustry implements ApplicationListener{
private long lastFrameTime;
@Override
public void init(){
Timers.mark();
public Mindustry(){
Time.setDeltaProvider(() -> {
float result = Core.graphics.getDeltaTime() * 60f;
return Float.isNaN(result) || Float.isInfinite(result) ? 1f : Math.min(result, 60f / 10f);
});
Time.mark();
Vars.init();
@@ -22,26 +30,40 @@ public class Mindustry extends ModuleCore{
BundleLoader.load();
content.load();
module(logic = new Logic());
module(world = new World());
module(control = new Control());
module(renderer = new Renderer());
module(ui = new UI());
module(netServer = new NetServer());
module(netClient = new NetClient());
Core.app.addListener(logic = new Logic());
Core.app.addListener(world = new World());
Core.app.addListener(control = new Control());
Core.app.addListener(renderer = new Renderer());
Core.app.addListener(ui = new UI());
Core.app.addListener(netServer = new NetServer());
Core.app.addListener(netClient = new NetClient());
}
@Override
public void postInit(){
Log.info("Time to load [total]: {0}", Timers.elapsed());
public void init(){
Log.info("Time to load [total]: {0}", Time.elapsed());
Events.fire(new GameLoadEvent());
}
@Override
public void render(){
threads.handleBeginRender();
super.render();
threads.handleEndRender();
public void update(){
lastFrameTime = TimeUtils.millis();
//TODO ??render it all??
int fpsCap = Core.settings.getInt("fpscap", 125);
if(fpsCap <= 120){
long target = 1000/fpsCap;
long elapsed = TimeUtils.timeSinceMillis(lastFrameTime);
if(elapsed < target){
try{
Thread.sleep(target - elapsed);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
}

View File

@@ -17,13 +17,13 @@ import io.anuke.mindustry.game.Version;
import io.anuke.mindustry.gen.Serialization;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.EffectEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.core.Settings;
import io.anuke.arc.entities.Entities;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Translator;
import java.util.Arrays;
import java.util.Locale;
@@ -173,7 +173,7 @@ public class Vars{
ios = Core.app.getType() == ApplicationType.iOS;
android = Core.app.getType() == ApplicationType.Android;
dataDirectory = Settings.getDataDirectory(appName);
dataDirectory = Core.settings.getDataDirectory(appName);
screenshotDirectory = dataDirectory.child("screenshots/");
customMapDirectory = dataDirectory.child("maps/");
saveDirectory = dataDirectory.child("saves/");

View File

@@ -11,12 +11,12 @@ import io.anuke.mindustry.game.Teams.TeamData;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.function.Predicate;
import io.anuke.ucore.util.EnumSet;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.ThreadArray;
import io.anuke.arc.core.Events;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.util.EnumSet;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.ThreadArray;
import static io.anuke.mindustry.Vars.*;

View File

@@ -11,10 +11,10 @@ import io.anuke.mindustry.game.Teams.TeamData;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Structs;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Structs;
import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world;
@@ -168,7 +168,7 @@ public class Pathfinder{
}
private void clear(){
Timers.mark();
Time.mark();
paths = new PathData[Team.all.length];
blocked.clear();

View File

@@ -9,10 +9,10 @@ import io.anuke.mindustry.game.SpawnGroup;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.game.Waves;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.util.GridBits;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Structs;
import io.anuke.arc.core.Events;
import io.anuke.arc.util.GridBits;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Structs;
import java.io.DataInput;
import java.io.DataOutput;

View File

@@ -17,12 +17,12 @@ import io.anuke.mindustry.maps.TutorialSector;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.Mech;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.unitGroups;
@@ -100,7 +100,7 @@ public class Mechs implements ContentList{
Effects.shake(1f, 1f, player);
Effects.effect(UnitFx.landShock, player);
for(int i = 0; i < 8; i++){
Timers.run(Mathf.random(8f), () -> Lightning.create(player.getTeam(), Palette.lancerLaser, 17f, player.x, player.y, Mathf.random(360f), 14));
Time.run(Mathf.random(8f), () -> Lightning.create(player.getTeam(), Palette.lancerLaser, 17f, player.x, player.y, Mathf.random(360f), 14));
}
}
}
@@ -205,7 +205,7 @@ public class Mechs implements ContentList{
float alpha = Core.batch.getColor().a;
Shaders.build.progress = player.shootHeat;
Shaders.build.region = armorRegion;
Shaders.build.time = Timers.time() / 10f;
Shaders.build.time = Time.time() / 10f;
Shaders.build.color.set(Palette.accent).a = player.shootHeat;
Graphics.shader(Shaders.build);
Draw.alpha(1f);
@@ -257,7 +257,7 @@ public class Mechs implements ContentList{
@Override
public void updateAlt(Player player){
float scl = scld(player);
if(Mathf.chance(Timers.delta() * (0.15*scl))){
if(Mathf.chance(Time.delta() * (0.15*scl))){
Effects.effect(BulletFx.hitLancer, Palette.lancerLaser, player.x, player.y);
Lightning.create(player.getTeam(), Palette.lancerLaser, 10f,
player.x + player.getVelocity().x, player.y + player.getVelocity().y, player.rotation, 14);

View File

@@ -6,9 +6,9 @@ import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.StatusEffect;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Mathf;
public class StatusEffects implements ContentList{
public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked;
@@ -38,7 +38,7 @@ public class StatusEffects implements ContentList{
public void update(Unit unit, float time){
unit.damagePeriodic(0.04f);
if(Mathf.chance(Timers.delta() * 0.2f)){
if(Mathf.chance(Time.delta() * 0.2f)){
Effects.effect(EnvironmentFx.burning, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
}
}
@@ -54,7 +54,7 @@ public class StatusEffects implements ContentList{
@Override
public void update(Unit unit, float time){
if(Mathf.chance(Timers.delta() * 0.15f)){
if(Mathf.chance(Time.delta() * 0.15f)){
Effects.effect(EnvironmentFx.freezing, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
}
}
@@ -79,7 +79,7 @@ public class StatusEffects implements ContentList{
@Override
public void update(Unit unit, float time){
if(Mathf.chance(Timers.delta() * 0.15f)){
if(Mathf.chance(Time.delta() * 0.15f)){
Effects.effect(EnvironmentFx.wet, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
}
}
@@ -105,7 +105,7 @@ public class StatusEffects implements ContentList{
public void update(Unit unit, float time){
unit.damagePeriodic(0.3f);
if(Mathf.chance(Timers.delta() * 0.2f)){
if(Mathf.chance(Time.delta() * 0.2f)){
Effects.effect(EnvironmentFx.melting, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
}
}
@@ -118,7 +118,7 @@ public class StatusEffects implements ContentList{
@Override
public void update(Unit unit, float time){
if(Mathf.chance(Timers.delta() * 0.15f)){
if(Mathf.chance(Time.delta() * 0.15f)){
Effects.effect(EnvironmentFx.oily, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f));
}
}
@@ -143,9 +143,9 @@ public class StatusEffects implements ContentList{
@Override
public void update(Unit unit, float time){
//idle regen boosted
unit.health += 0.01f * Timers.delta();
unit.health += 0.01f * Time.delta();
if(Mathf.chance(Timers.delta() * 0.25f)){
if(Mathf.chance(Time.delta() * 0.25f)){
Effects.effect(EnvironmentFx.overdriven, unit.x + Mathf.range(unit.getSize() / 2f), unit.y + Mathf.range(unit.getSize() / 2f), 0f, unit);
}
}

View File

@@ -10,10 +10,10 @@ import io.anuke.mindustry.type.ItemStack;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.*;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Mathf;
public class Blocks extends BlockList implements ContentList{
public static Block air, blockpart, spawn, space, metalfloor, deepwater, water, lava, tar, stone,
@@ -41,7 +41,7 @@ public class Blocks extends BlockList implements ContentList{
public void draw(Tile tile){
Draw.color(Color.SCARLET);
Lines.circle(tile.worldx(), tile.worldy(), 4f +Mathf.absin(Timers.time(), 6f, 6f));
Lines.circle(tile.worldx(), tile.worldy(), 4f +Mathf.absin(Time.time(), 6f, 6f));
Draw.color();
}
};

View File

@@ -17,10 +17,10 @@ import io.anuke.mindustry.world.blocks.PowerBlock;
import io.anuke.mindustry.world.blocks.distribution.Sorter;
import io.anuke.mindustry.world.blocks.power.PowerNode;
import io.anuke.mindustry.world.meta.BlockStat;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.arc.scene.ui.layout.Table;
import java.io.DataInput;
import java.io.DataOutput;

View File

@@ -8,9 +8,9 @@ import io.anuke.mindustry.type.AmmoType;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.defense.turrets.*;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class TurretBlocks extends BlockList implements ContentList{
public static Block duo, /*scatter,*/

View File

@@ -7,7 +7,7 @@ import io.anuke.mindustry.entities.bullet.FlakBulletType;
import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.util.Mathf;
public class FlakBullets extends BulletList implements ContentList{
public static BulletType plastic, explosive, surge;

View File

@@ -8,8 +8,8 @@ import io.anuke.mindustry.entities.bullet.MissileBulletType;
import io.anuke.mindustry.entities.effect.Lightning;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Mathf;
public class MissileBullets extends BulletList implements ContentList{
public static BulletType explosive, incindiary, surge, javelin, swarm;
@@ -92,7 +92,7 @@ public class MissileBullets extends BulletList implements ContentList{
@Override
public void update(Bullet b){
super.update(b);
b.getVelocity().rotate(Mathf.sin(Timers.time() + b.id * 4422, 8f, 2f));
b.getVelocity().rotate(Mathf.sin(Time.time() + b.id * 4422, 8f, 2f));
}
};
@@ -117,7 +117,7 @@ public class MissileBullets extends BulletList implements ContentList{
@Override
public void update(Bullet b){
super.update(b);
b.getVelocity().rotate(Mathf.sin(Timers.time() + b.id * 4422, 8f, 2f));
b.getVelocity().rotate(Mathf.sin(Time.time() + b.id * 4422, 8f, 2f));
}
};
}

View File

@@ -18,11 +18,11 @@ import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.BuildBlock;
import io.anuke.mindustry.world.blocks.distribution.MassDriver.DriverBulletData;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.*;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.*;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.world;
@@ -105,18 +105,18 @@ public class TurretBullets extends BulletList implements ContentList{
@Override
public void update(Bullet b){
if(Mathf.chance(0.04 * Timers.delta())){
if(Mathf.chance(0.04 * Time.delta())){
Tile tile = world.tileWorld(b.x, b.y);
if(tile != null){
Fire.create(tile);
}
}
if(Mathf.chance(0.1 * Timers.delta())){
if(Mathf.chance(0.1 * Time.delta())){
Effects.effect(EnvironmentFx.fireballsmoke, b.x, b.y);
}
if(Mathf.chance(0.1 * Timers.delta())){
if(Mathf.chance(0.1 * Time.delta())){
Effects.effect(EnvironmentFx.ballfire, b.x, b.y);
}
}
@@ -213,10 +213,10 @@ public class TurretBullets extends BulletList implements ContentList{
Lines.lineAngle(b.x, b.y, b.angle(), baseLen);
for(int s = 0; s < colors.length; s++){
Draw.color(tmpColor.set(colors[s]).mul(1f + Mathf.absin(Timers.time(), 1f, 0.1f)));
Draw.color(tmpColor.set(colors[s]).mul(1f + Mathf.absin(Time.time(), 1f, 0.1f)));
for(int i = 0; i < tscales.length; i++){
vector.trns(b.angle() + 180f, (lenscales[i] - 1f) * 35f);
Lines.stroke((9f + Mathf.absin(Timers.time(), 0.8f, 1.5f)) * b.fout() * strokes[s] * tscales[i]);
Lines.stroke((9f + Mathf.absin(Time.time(), 0.8f, 1.5f)) * b.fout() * strokes[s] * tscales[i]);
Lines.lineAngle(b.x + vector.x, b.y + vector.y, b.angle(), baseLen * lenscales[i], CapStyle.none);
}
}

View File

@@ -12,7 +12,7 @@ import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Puddle;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.world;

View File

@@ -4,14 +4,14 @@ import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Hue;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Tmp;
import static io.anuke.mindustry.Vars.tilesize;

View File

@@ -3,12 +3,12 @@ package io.anuke.mindustry.content.fx;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class BulletFx extends FxList implements ContentList{
public static Effect hitBulletSmall, hitFuse, hitBulletBig, hitFlameSmall, hitLiquid, hitLaser, hitLancer, hitMeltdown, despawn, flakExplosion, blastExplosion, plasticExplosion,

View File

@@ -5,11 +5,11 @@ import io.anuke.mindustry.content.Liquids;
import io.anuke.mindustry.game.ContentList;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class EnvironmentFx extends FxList implements ContentList{
public static Effect burning, fire, smoke, steam, fireballsmoke, ballfire, freezing, melting, wet, oily, overdriven, dropItem;

View File

@@ -3,12 +3,12 @@ package io.anuke.mindustry.content.fx;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class ExplosionFx extends FxList implements ContentList{
public static Effect shockwave, bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke;

View File

@@ -3,11 +3,11 @@ package io.anuke.mindustry.content.fx;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Angles;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Angles;
import static io.anuke.mindustry.Vars.tilesize;

View File

@@ -4,13 +4,13 @@ import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.graphics.Shapes;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.graphics.Shapes;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class ShootFx extends FxList implements ContentList{
public static Effect shootSmall, shootHeal, shootSmallSmoke, shootBig, shootBig2, shootBigSmoke, shootBigSmoke2, shootSmallFlame, shootLiquid, shellEjectSmall, shellEjectMedium, shellEjectBig, lancerLaserShoot, lancerLaserShootSmoke, lancerLaserCharge, lancerLaserChargeBegin, lightningCharge, lightningShoot;

View File

@@ -3,12 +3,12 @@ package io.anuke.mindustry.content.fx;
import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
public class UnitFx extends FxList implements ContentList{
public static Effect vtolHover, unitDrop, unitPickup, unitLand, pickup, healWave, heal, landShock;

View File

@@ -1,8 +1,10 @@
package io.anuke.mindustry.core;
import io.anuke.arc.utils.Array;
import io.anuke.arc.utils.ObjectMap;
import io.anuke.arc.utils.ObjectSet;
import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.ObjectMap;
import io.anuke.arc.collection.ObjectSet;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.utils.Log;
import io.anuke.mindustry.content.*;
import io.anuke.mindustry.content.blocks.*;
import io.anuke.mindustry.content.bullets.*;
@@ -24,9 +26,6 @@ import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.ColorMapper;
import io.anuke.mindustry.world.LegacyColorMapper;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.ThreadArray;
/**
* Loads all game content.
@@ -114,7 +113,7 @@ public class ContentLoader{
registerTypes();
for(ContentType type : ContentType.values()){
contentMap[type.ordinal()] = new ThreadArray<>();
contentMap[type.ordinal()] = new Array<>();
contentNameMap[type.ordinal()] = new ObjectMap<>();
}

View File

@@ -1,7 +1,17 @@
package io.anuke.mindustry.core;
import io.anuke.arc.ApplicationListener;
import io.anuke.arc.Core;
import io.anuke.arc.Events;
import io.anuke.arc.Settings;
import io.anuke.arc.entities.Effects;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.TextureAtlas;
import io.anuke.arc.input.KeyCode;
import io.anuke.arc.utils.Interval;
import io.anuke.arc.utils.Strings;
import io.anuke.arc.utils.Time;
import io.anuke.mindustry.content.Mechs;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player;
@@ -11,7 +21,7 @@ import io.anuke.mindustry.game.EventType.*;
import io.anuke.mindustry.game.Saves;
import io.anuke.mindustry.game.Unlocks;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.input.DefaultKeybinds;
import io.anuke.mindustry.input.Binding;
import io.anuke.mindustry.input.DesktopInput;
import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.input.MobileInput;
@@ -20,16 +30,10 @@ import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.*;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.modules.Module;
import io.anuke.ucore.util.Atlas;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Strings;
import io.anuke.ucore.util.Timer;
import java.io.IOException;
import static io.anuke.arc.Core.scene;
import static io.anuke.mindustry.Vars.*;
/**
@@ -38,11 +42,11 @@ import static io.anuke.mindustry.Vars.*;
* Should <i>not</i> handle any logic-critical state.
* This class is not created in the headless server.
*/
public class Control extends Module{
public class Control implements ApplicationListener{
public final Saves saves;
public final Unlocks unlocks;
private Timer timerRPC = new Timer(), timerUnlock = new Timer();
private Interval timerRPC = new Interval(), timerUnlock = new Interval();
private boolean hiscore = false;
private boolean wasPaused = false;
private InputHandler[] inputs = {};
@@ -52,22 +56,18 @@ public class Control extends Module{
saves = new Saves();
unlocks = new Unlocks();
Inputs.useControllers(true);
Core.input.setCatchBackKey(true);
Core.input.setCatch(KeyCode.BACK, true);
Effects.setShakeFalloff(10000f);
content.initialize(Content::init);
Core.atlas = new Atlas("sprites.atlas");
Core.atlas.setErrorRegion("error");
Core.atlas = new TextureAtlas("sprites.atlas");
content.initialize(Content::load);
unlocks.load();
DefaultKeybinds.load();
Settings.defaultList(
Core.settings.setAppName(appName);
Core.settings.defaults(
"ip", "localhost",
"color-0", Color.rgba8888(playerColors[8]),
"color-1", Color.rgba8888(playerColors[11]),
@@ -77,15 +77,13 @@ public class Control extends Module{
"lastBuild", 0
);
KeyBinds.load();
addPlayer(0);
saves.load();
Events.on(StateChangeEvent.class, event -> {
if((event.from == State.playing && event.to == State.menu) || (event.from == State.menu && event.to != State.menu)){
Timers.runTask(5f, Platform.instance::updateRPC);
Time.runTask(5f, Platform.instance::updateRPC);
}
});
@@ -99,7 +97,7 @@ public class Control extends Module{
Events.on(WorldLoadGraphicsEvent.class, event -> {
if(mobile){
Core.app.postRunnable(() -> Core.camera.position.set(players[0].x, players[0].y, 0));
Core.app.post(() -> Core.camera.position.set(players[0]));
}
});
@@ -115,11 +113,11 @@ public class Control extends Module{
Events.on(WaveEvent.class, event -> {
int last = Settings.getInt("hiscore" + world.getMap().name, 0);
int last = Core.settings.getInt("hiscore" + world.getMap().name, 0);
if(state.wave > last && !state.mode.infiniteResources && !state.mode.disableWaveTimer && world.getSector() == null){
Settings.putInt("hiscore" + world.getMap().name, state.wave);
Settings.save();
Core.settings.put("hiscore" + world.getMap().name, state.wave);
Core.settings.save();
hiscore = true;
}
@@ -131,12 +129,9 @@ public class Control extends Module{
if(world.getSector() != null && world.getSector().hasSave()){
world.getSector().getSave().delete();
}
threads.runGraphics(() -> {
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
//the restart dialog can show info for any number of scenarios
Call.onGameOver(event.winner);
});
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
//the restart dialog can show info for any number of scenarios
Call.onGameOver(event.winner);
});
//autohost for pvp sectors
@@ -146,8 +141,8 @@ public class Control extends Module{
Net.host(port);
players[0].isAdmin = true;
}catch(IOException e){
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false)));
threads.runDelay(() -> state.set(State.menu));
ui.showError(Core.bundle.format("text.server.error", Strings.parseException(e, false)));
Core.app.post(() -> state.set(State.menu));
}
}
});
@@ -171,9 +166,9 @@ public class Control extends Module{
Player setTo = (index == 0 ? null : players[0]);
Player player = new Player();
player.name = Settings.getString("name");
player.name = Core.settings.getString("name");
player.mech = mobile ? Mechs.starterMobile : Mechs.starterDesktop;
player.color.set(Settings.getInt("color-" + index));
player.color.set(Core.settings.getInt("color-" + index));
player.isLocal = true;
player.playerIndex = index;
player.isMobile = mobile;
@@ -196,7 +191,7 @@ public class Control extends Module{
}
inputs[index] = input;
Inputs.addProcessor(input);
Core.input.addInputProcessor(input);
}
public void removePlayer(){
@@ -287,14 +282,14 @@ public class Control extends Module{
Platform.instance.updateRPC();
if(!Settings.getBool("4.0-warning-2", false)){
if(!Core.settings.getBool("4.0-warning-2", false)){
Timers.run(5f, () -> {
Time.run(5f, () -> {
FloatingDialog dialog = new FloatingDialog("[accent]WARNING![]");
dialog.buttons().addButton("$text.ok", () -> {
dialog.hide();
Settings.putBool("4.0-warning-2", true);
Settings.save();
Core.settings.put("4.0-warning-2", true);
Core.settings.save();
}).size(100f, 60f);
dialog.content().add("Reminder: The beta version you are about to play is very unstable, and is [accent]not representative of the final 4.0 release.[]\n\n " +
"\nThere is currently[scarlet] no sound implemented[]; this is intentional.\n" +
@@ -344,26 +339,26 @@ public class Control extends Module{
}
}
if(Inputs.keyTap("pause") && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
if(Core.input.keyTap(Binding.pause) && !ui.restart.isShown() && (state.is(State.paused) || state.is(State.playing))){
state.set(state.is(State.playing) ? State.paused : State.playing);
}
if(Inputs.keyTap("menu") && !ui.restart.isShown()){
if(Core.input.keyTap(Binding.menu) && !ui.restart.isShown()){
if(ui.chatfrag.chatOpen()){
ui.chatfrag.hide();
}else if(!ui.paused.isShown() && !ui.hasDialog()){
}else if(!ui.paused.isShown() && !scene.hasDialog()){
ui.paused.show();
state.set(State.paused);
}
}
if(!mobile && Inputs.keyTap("screenshot") && !ui.chatfrag.chatOpen()){
if(!mobile && Core.input.keyTap(Binding.screenshot) && !ui.chatfrag.chatOpen()){
renderer.takeMapScreenshot();
}
}else{
if(!state.isPaused()){
Timers.update();
Time.update();
}
}
}

View File

@@ -5,7 +5,7 @@ import io.anuke.mindustry.game.EventType.StateChangeEvent;
import io.anuke.mindustry.game.GameMode;
import io.anuke.mindustry.game.Teams;
import io.anuke.mindustry.net.Net;
import io.anuke.ucore.core.Events;
import io.anuke.arc.core.Events;
import static io.anuke.mindustry.Vars.unitGroups;
import static io.anuke.mindustry.Vars.waveTeam;

View File

@@ -16,12 +16,12 @@ import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.ItemStack;
import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.modules.Module;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.Entities;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.modules.Module;
import static io.anuke.mindustry.Vars.*;
@@ -85,7 +85,7 @@ public class Logic extends Module{
state.gameOver = false;
state.teams = new Teams();
Timers.clear();
Time.clear();
Entities.clear();
TileEntity.sleepingEntities = 0;
@@ -179,10 +179,10 @@ public class Logic extends Module{
if(!state.is(State.menu)){
if(!state.isPaused()){
Timers.update();
Time.update();
if(!state.mode.disableWaveTimer && !state.mode.disableWaves && !state.gameOver){
state.wavetime -= Timers.delta();
state.wavetime -= Time.delta();
}
if(!Net.client() && state.wavetime <= 0 && !state.mode.disableWaves){

View File

@@ -25,16 +25,16 @@ import io.anuke.mindustry.net.Packets.*;
import io.anuke.mindustry.net.ValidateException;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.modules.ItemModule;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.io.ReusableByteArrayInputStream;
import io.anuke.ucore.modules.Module;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Timer;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Settings;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.Entities;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.io.ReusableByteArrayInputStream;
import io.anuke.arc.modules.Module;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Timer;
import java.io.DataInputStream;
import java.io.IOException;
@@ -114,7 +114,7 @@ public class NetClient extends Module{
Net.handleClient(Disconnect.class, packet -> {
if(quiet) return;
Timers.runTask(3f, ui.loadfrag::hide);
Time.runTask(3f, ui.loadfrag::hide);
state.set(State.menu);
@@ -347,7 +347,7 @@ public class NetClient extends Module{
}else if(!connecting){
Net.disconnect();
}else{ //...must be connecting
timeoutTime += Timers.delta();
timeoutTime += Time.delta();
if(timeoutTime > dataTimeout){
Log.err("Failed to load data!");
ui.loadfrag.hide();
@@ -369,8 +369,8 @@ public class NetClient extends Module{
ui.loadfrag.hide();
ui.join.hide();
Net.setClientLoaded(true);
Core.app.postRunnable(Call::connectConfirm);
Timers.runTask(40f, Platform.instance::updateRPC);
Core.app.post(Call::connectConfirm);
Time.runTask(40f, Platform.instance::updateRPC);
}
private void reset(){
@@ -437,14 +437,14 @@ public class NetClient extends Module{
}
String getUsid(String ip){
if(Settings.getString("usid-" + ip, null) != null){
return Settings.getString("usid-" + ip, null);
if(Core.settings.getString("usid-" + ip, null) != null){
return Core.settings.getString("usid-" + ip, null);
}else{
byte[] bytes = new byte[8];
new Random().nextBytes(bytes);
String result = new String(Base64Coder.encode(bytes));
Settings.putString("usid-" + ip, result);
Settings.save();
Core.settings.putString("usid-" + ip, result);
Core.settings.save();
return result;
}
}

View File

@@ -25,18 +25,18 @@ import io.anuke.mindustry.net.*;
import io.anuke.mindustry.net.Administration.PlayerInfo;
import io.anuke.mindustry.net.Packets.*;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.Entities;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.io.ByteBufferOutput;
import io.anuke.ucore.io.CountableByteArrayOutputStream;
import io.anuke.ucore.modules.Module;
import io.anuke.ucore.util.Structs;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.Entities;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.entities.trait.Entity;
import io.anuke.arc.io.ByteBufferOutput;
import io.anuke.arc.io.CountableByteArrayOutputStream;
import io.anuke.arc.modules.Module;
import io.anuke.arc.util.Structs;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Mathf;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
@@ -256,7 +256,7 @@ public class NetServer extends Module{
private static void scheduleSnapshot(Runnable r){
if(debugSnapshots){
if(!Mathf.chance(snapshotDropchance)){
Timers.run(maxSnapshotDelay / 1000f * 60f, r);
Time.run(maxSnapshotDelay / 1000f * 60f, r);
}
}else{
r.run();
@@ -437,7 +437,7 @@ public class NetServer extends Module{
if(!headless && !closing && Net.server() && state.is(State.menu)){
closing = true;
threads.runGraphics(() -> ui.loadfrag.show("$text.server.closing"));
Timers.runTask(5f, () -> {
Time.runTask(5f, () -> {
Net.closeServer();
ui.loadfrag.hide();
closing = false;
@@ -474,7 +474,7 @@ public class NetServer extends Module{
Call.onKick(connection, reason);
Timers.runTask(2f, con::close);
Time.runTask(2f, con::close);
admins.save();
}
@@ -618,7 +618,7 @@ public class NetServer extends Module{
if(!player.timer.get(Player.timerSync, serverSyncTime) || !connection.hasConnected) continue;
//reset stream to begin writing
Timers.mark();
Time.mark();
syncStream.reset();
writeSnapshot(player, dataStream);

View File

@@ -4,12 +4,12 @@ import io.anuke.arc.Core;
import io.anuke.arc.Input.Keys;
import io.anuke.arc.files.FileHandle;
import io.anuke.arc.utils.Base64Coder;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Settings;
import io.anuke.arc.core.Timers;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.scene.ui.Dialog;
import io.anuke.arc.scene.ui.TextField;
import java.util.Random;
@@ -57,7 +57,7 @@ public abstract class Platform {
}).width(90f).name("okb");
dialog.show();
Timers.runTask(1f, () -> {
Time.runTask(1f, () -> {
to.setCursorPosition(to.getText().length());
Core.scene.setKeyboardFocus(to);
Core.input.setOnscreenKeyboardVisible(true);
@@ -76,13 +76,13 @@ public abstract class Platform {
}
/**Must be a base64 string 8 bytes in length.*/
public String getUUID(){
String uuid = Settings.getString("uuid", "");
String uuid = Core.settings.getString("uuid", "");
if(uuid.isEmpty()){
byte[] result = new byte[8];
new Random().nextBytes(result);
uuid = new String(Base64Coder.encode(result));
Settings.putString("uuid", uuid);
Settings.save();
Core.settings.putString("uuid", uuid);
Core.settings.save();
return uuid;
}
return uuid;

View File

@@ -23,30 +23,30 @@ import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.entities.EntityDraw;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.EffectEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.function.Predicate;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.graphics.Surface;
import io.anuke.ucore.modules.RendererModule;
import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Settings;
import io.anuke.arc.entities.EntityDraw;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.entities.trait.Entity;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.graphics.Surface;
import io.anuke.arc.modules.RendererModule;
import io.anuke.arc.scene.utils.Cursors;
import io.anuke.arc.util.Bundles;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Pooling;
import io.anuke.arc.util.Translator;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.batch;
import static io.anuke.ucore.core.Core.camera;
import static io.anuke.arc.core.Core.batch;
import static io.anuke.arc.core.Core.camera;
public class Renderer extends RendererModule{
public final Surface effectSurface;
@@ -69,7 +69,7 @@ public class Renderer extends RendererModule{
Core.cameraScale = baseCameraScale;
Effects.setEffectProvider((effect, color, x, y, rotation, data) -> {
if(effect == Fx.none) return;
if(Settings.getBool("effects")){
if(Core.settings.getBool("effects")){
Rectangle view = rect.setSize(camera.viewportWidth, camera.viewportHeight)
.setCenter(camera.position.x, camera.position.y);
Rectangle pos = rect2.setSize(effect.size).setCenter(x, y);
@@ -381,7 +381,7 @@ public class Renderer extends RendererModule{
}
public void clampScale(){
float s = io.anuke.ucore.scene.ui.layout.Unit.dp.scl(1f);
float s = io.anuke.arc.scene.ui.layout.Unit.dp.scl(1f);
targetscale = Mathf.clamp(targetscale, Math.round(s * 2), Math.round(s * 5));
}
@@ -422,7 +422,7 @@ public class Renderer extends RendererModule{
pixelSurface.setSize(pw, ph, false);
Graphics.getEffectSurface().setSize(pw, ph, false);
ui.showInfoFade(Bundles.format("text.screenshot", file.toString()));
ui.showInfoFade(Core.bundle.format("text.screenshot", file.toString()));
}
}

View File

@@ -1,54 +0,0 @@
package io.anuke.mindustry.core;
import io.anuke.arc.Core;
import io.anuke.arc.utils.TimeUtils;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
public class ThreadHandler{
private long lastFrameTime;
public ThreadHandler(){
Timers.setDeltaProvider(() -> {
float result = Core.graphics.getDeltaTime() * 60f;
return Float.isNaN(result) || Float.isInfinite(result) ? 1f : Math.min(result, 60f / 10f);
});
}
public void run(Runnable r){
r.run();
}
public void runGraphics(Runnable r){
r.run();
}
public void runDelay(Runnable r){
Core.app.postRunnable(r);
}
public long getFrameID(){
return Core.graphics.getFrameId();
}
public void handleBeginRender(){
lastFrameTime = TimeUtils.millis();
}
public void handleEndRender(){
int fpsCap = Settings.getInt("fpscap", 125);
if(fpsCap <= 120){
long target = 1000/fpsCap;
long elapsed = TimeUtils.timeSinceMillis(lastFrameTime);
if(elapsed < target){
try{
Thread.sleep(target - elapsed);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
}

View File

@@ -15,23 +15,23 @@ import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.ui.dialogs.*;
import io.anuke.mindustry.ui.fragments.*;
import io.anuke.ucore.core.*;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.modules.SceneModule;
import io.anuke.ucore.scene.Group;
import io.anuke.ucore.scene.Skin;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.scene.ui.TextField.TextFieldFilter;
import io.anuke.ucore.scene.ui.TooltipManager;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.core.*;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.modules.SceneModule;
import io.anuke.arc.scene.Group;
import io.anuke.arc.scene.Skin;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.ui.Dialog;
import io.anuke.arc.scene.ui.TextField;
import io.anuke.arc.scene.ui.TextField.TextFieldFilter;
import io.anuke.arc.scene.ui.TooltipManager;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Strings;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.scene.actions.Actions.*;
import static io.anuke.arc.scene.actions.Actions.*;
public class UI extends SceneModule{
private FreeTypeFontGenerator generator;
@@ -87,7 +87,7 @@ public class UI extends SceneModule{
TooltipManager.getInstance().animations = false;
Settings.setErrorHandler(() -> Timers.run(1f, () -> showError("[crimson]Failed to access local storage.\nSettings will not be saved.")));
Core.settings.setErrorHandler(() -> Time.run(1f, () -> showError("[crimson]Failed to access local storage.\nSettings will not be saved.")));
Dialog.closePadR = -1;
Dialog.closePadT = 5;
@@ -202,7 +202,7 @@ public class UI extends SceneModule{
public void loadGraphics(String text, Runnable call){
loadfrag.show(text);
Timers.runTask(7f, () -> {
Time.runTask(7f, () -> {
call.run();
loadfrag.hide();
});
@@ -214,7 +214,7 @@ public class UI extends SceneModule{
public void loadLogic(String text, Runnable call){
loadfrag.show(text);
Timers.runTask(7f, () ->
Time.runTask(7f, () ->
threads.run(() -> {
call.run();
threads.runGraphics(loadfrag::hide);

View File

@@ -18,11 +18,11 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Pos;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.OreBlock;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.modules.Module;
import io.anuke.ucore.util.*;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.modules.Module;
import io.anuke.arc.util.*;
import static io.anuke.mindustry.Vars.*;
@@ -209,8 +209,8 @@ public class World extends Module{
currentSector = sector;
state.difficulty = sectors.getDifficulty(sector);
state.mode = sector.currentMission().getMode();
Timers.mark();
Timers.mark();
Time.mark();
Time.mark();
logic.reset();
@@ -247,7 +247,7 @@ public class World extends Module{
Log.err(e);
if(!headless){
ui.showError("$text.map.invalid");
threads.runDelay(() -> state.set(State.menu));
Core.app.post(() -> state.set(State.menu));
invalidMap = true;
}
generating = false;
@@ -277,13 +277,13 @@ public class World extends Module{
invalidMap = false;
}
if(invalidMap) threads.runDelay(() -> state.set(State.menu));
if(invalidMap) Core.app.post(() -> state.set(State.menu));
}
public void notifyChanged(Tile tile){
if(!generating){
threads.runDelay(() -> Events.fire(new TileChangeEvent(tile)));
Core.app.post(() -> Events.fire(new TileChangeEvent(tile)));
}
}

View File

@@ -4,7 +4,7 @@ import io.anuke.arc.utils.Array;
import io.anuke.arc.utils.IntSet;
import io.anuke.mindustry.maps.MapTileData;
import io.anuke.mindustry.maps.MapTileData.TileDataMarker;
import io.anuke.ucore.util.Bits;
import io.anuke.arc.util.Bits;
public class DrawOperation{
/**

View File

@@ -7,9 +7,9 @@ import io.anuke.mindustry.maps.MapTileData.DataPosition;
import io.anuke.mindustry.maps.MapTileData.TileDataMarker;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.function.IntPositionConsumer;
import io.anuke.ucore.util.Structs;
import io.anuke.ucore.util.Bits;
import io.anuke.arc.function.IntPositionConsumer;
import io.anuke.arc.util.Structs;
import io.anuke.arc.util.Bits;
import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.ui;

View File

@@ -10,9 +10,9 @@ import io.anuke.mindustry.maps.MapTileData.DataPosition;
import io.anuke.mindustry.maps.MapTileData.TileDataMarker;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.util.Structs;
import io.anuke.ucore.util.Bits;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.util.Structs;
import io.anuke.arc.util.Bits;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.content;
public class MapEditor{
public static final int[] brushSizes = {1, 2, 3, 4, 5, 9, 15};

View File

@@ -21,23 +21,23 @@ import io.anuke.mindustry.maps.MapTileData;
import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.mindustry.world.Block;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.input.Input;
import io.anuke.ucore.scene.actions.Actions;
import io.anuke.ucore.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Stack;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.UIUtils;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Inputs;
import io.anuke.arc.core.Timers;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.input.Input;
import io.anuke.arc.scene.actions.Actions;
import io.anuke.arc.scene.ui.*;
import io.anuke.arc.scene.ui.layout.Stack;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.arc.util.Bundles;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Strings;
import java.io.DataInputStream;
import java.io.InputStream;
@@ -106,7 +106,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, meta.tags, false);
view.clearStack();
}catch(Exception e){
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errorimageload", Strings.parseException(e, false)));
Log.err(e);
}
}), true, mapExtension),
@@ -120,7 +120,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, editor.getTags(), false);
view.clearStack();
}catch (Exception e){
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errorimageload", Strings.parseException(e, false)));
Log.err(e);
}
}), true, "png")
@@ -139,7 +139,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
}
MapIO.writeMap(result.write(false), editor.getTags(), editor.getMap());
}catch(Exception e){
ui.showError(Bundles.format("text.editor.errorimagesave", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errorimagesave", Strings.parseException(e, false)));
Log.err(e);
}
});
@@ -175,7 +175,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, meta.tags, false);
view.clearStack();
}catch(Exception e){
ui.showError(Bundles.format("text.editor.errormapload", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errormapload", Strings.parseException(e, false)));
Log.err(e);
}
}));
@@ -214,7 +214,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
}
shownWithMap = false;
Timers.runTask(10f, Platform.instance::updateRPC);
Time.runTask(10f, Platform.instance::updateRPC);
});
hidden(() -> {
@@ -311,7 +311,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
show();
}catch(Exception e){
Log.err(e);
ui.showError(Bundles.format("text.editor.errorimageload", Strings.parseException(e, false)));
ui.showError(Core.bundle.format("text.editor.errorimageload", Strings.parseException(e, false)));
}
});
}

View File

@@ -3,9 +3,9 @@ package io.anuke.mindustry.editor;
import io.anuke.arc.utils.ObjectMap;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.scene.ui.TextArea;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.arc.core.Settings;
import io.anuke.arc.scene.ui.TextArea;
import io.anuke.arc.scene.ui.TextField;
public class MapInfoDialog extends FloatingDialog{
private final MapEditor editor;
@@ -53,10 +53,10 @@ public class MapInfoDialog extends FloatingDialog{
content().add("$text.editor.author").padRight(8).left();
author = content().addField(tags.get("author", Settings.getString("mapAuthor", "")), text -> {
author = content().addField(tags.get("author", Core.settings.getString("mapAuthor", "")), text -> {
tags.put("author", text);
Settings.putString("mapAuthor", text);
Settings.save();
Core.settings.putString("mapAuthor", text);
Core.settings.save();
}).size(400, 55f).get();
author.setMessageText("$text.unknown");

View File

@@ -4,11 +4,11 @@ import io.anuke.arc.utils.Scaling;
import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.ui.BorderImage;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.world;

View File

@@ -9,13 +9,13 @@ import io.anuke.arc.utils.IntSet.IntSetIterator;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.maps.MapTileData.DataPosition;
import io.anuke.mindustry.world.Block;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.IndexedRenderer;
import io.anuke.ucore.util.Structs;
import io.anuke.ucore.util.Bits;
import io.anuke.ucore.util.Geometry;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.IndexedRenderer;
import io.anuke.arc.util.Structs;
import io.anuke.arc.util.Bits;
import io.anuke.arc.util.Geometry;
import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.tilesize;

View File

@@ -2,11 +2,11 @@ package io.anuke.mindustry.editor;
import io.anuke.mindustry.maps.MapTileData;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.BiConsumer;
import io.anuke.ucore.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.function.BiConsumer;
import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Mathf;
public class MapResizeDialog extends FloatingDialog{
int[] validMapSizes = {200, 300, 400, 500};

View File

@@ -3,9 +3,9 @@ package io.anuke.mindustry.editor;
import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.scene.ui.TextButton;
import io.anuke.arc.scene.ui.TextField;
import static io.anuke.mindustry.Vars.ui;
import static io.anuke.mindustry.Vars.world;

View File

@@ -13,20 +13,20 @@ import io.anuke.arc.utils.Array;
import io.anuke.mindustry.editor.DrawOperation.TileOperation;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.ui.GridImage;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Inputs;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.scene.Element;
import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.event.Touchable;
import io.anuke.ucore.scene.ui.TextField;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Inputs;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.scene.Element;
import io.anuke.arc.scene.event.InputEvent;
import io.anuke.arc.scene.event.InputListener;
import io.anuke.arc.scene.event.Touchable;
import io.anuke.arc.scene.ui.TextField;
import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Tmp;
import static io.anuke.mindustry.Vars.mobile;
import static io.anuke.mindustry.Vars.ui;
@@ -214,7 +214,7 @@ public class MapView extends Element implements GestureListener{
super.act(delta);
if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) &&
!Inputs.keyDown(io.anuke.ucore.input.Input.CONTROL_LEFT)){
!Inputs.keyDown(io.anuke.arc.input.Input.CONTROL_LEFT)){
float ax = Inputs.getAxis("move_x");
float ay = Inputs.getAxis("move_y");
offsetx -= ax * 15f / zoom;

View File

@@ -13,14 +13,14 @@ import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.function.Predicate;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Physics;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.core.Timers;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Physics;
import io.anuke.arc.util.Translator;
import static io.anuke.mindustry.Vars.*;
@@ -34,19 +34,19 @@ public class Damage{
public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){
for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){
int branches = 5 + Mathf.clamp((int) (power / 30), 1, 20);
Timers.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.none, Palette.power, 3,
Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.none, Palette.power, 3,
x, y, Mathf.random(360f), branches + Mathf.range(2)));
}
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){
Timers.run(i / 2f, () -> Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)));
Time.run(i / 2f, () -> Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f)));
}
int waves = Mathf.clamp((int) (explosiveness / 4), 0, 30);
for(int i = 0; i < waves; i++){
int f = i;
Timers.run(i * 2f, () -> {
Time.run(i * 2f, () -> {
threads.run(() -> Damage.damage(x, y, Mathf.clamp(radius + explosiveness, 0, 50f) * ((f + 1f) / waves), explosiveness / 2f));
Effects.effect(ExplosionFx.blockExplosionSmoke, x + Mathf.range(radius), y + Mathf.range(radius));
});

View File

@@ -24,13 +24,13 @@ import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.mindustry.world.blocks.storage.CoreBlock.CoreEntity;
import io.anuke.ucore.core.*;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.*;
import io.anuke.arc.core.*;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Hue;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.*;
import java.io.DataInput;
import java.io.DataOutput;
@@ -150,7 +150,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
}
if(interpolator.target.dst(interpolator.last) > 1f){
walktime += Timers.delta();
walktime += Time.delta();
}
}
@@ -365,7 +365,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
public void drawStats(){
float x = snappedX(), y = snappedY();
Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Timers.time(), healthf() * 5f, 1f - healthf()));
Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), healthf() * 5f, 1f - healthf()));
Draw.alpha(hitTime / hitDuration);
Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90);
Draw.color();
@@ -400,7 +400,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
boolean ints = Core.font.usesIntegerPositions();
Core.font.setUseIntegerPositions(false);
Draw.tscl(0.25f / io.anuke.ucore.scene.ui.layout.Unit.dp.scl(1f));
Draw.tscl(0.25f / io.anuke.arc.scene.ui.layout.Unit.dp.scl(1f));
layout.setText(Core.font, name);
Draw.color(0f, 0f, 0f, 0.3f);
Draw.rect("blank", x, y + 8 - layout.height / 2, layout.width + 2, layout.height + 3);
@@ -435,7 +435,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
Draw.color(Palette.removeBack);
float rad = Mathf.absin(Timers.time(), 7f, 1f) + block.size * tilesize / 2f - 1;
float rad = Mathf.absin(Time.time(), 7f, 1f) + block.size * tilesize / 2f - 1;
Lines.square(
request.x * tilesize + block.offset(),
@@ -454,7 +454,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
Draw.color(Palette.accentBack);
float rad = Mathf.absin(Timers.time(), 7f, 1f) - 2f + request.recipe.result.size * tilesize / 2f;
float rad = Mathf.absin(Time.time(), 7f, 1f) - 2f + request.recipe.result.size * tilesize / 2f;
Lines.square(
request.x * tilesize + request.recipe.result.offset(),
@@ -479,7 +479,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
@Override
public void update(){
hitTime -= Timers.delta();
hitTime -= Time.delta();
if(Float.isNaN(x) || Float.isNaN(y)){
velocity.set(0f, 0f);
@@ -611,7 +611,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
pointerY = vec.y;
updateShooting();
movement.limit(speed).scl(Timers.delta());
movement.limit(speed).scl(Time.delta());
if(getCarrier() == null){
if(!ui.chatfrag.chatOpen()){
@@ -701,10 +701,10 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
isBoosting = EntityQuery.collisions().overlapsTile(rect) || distanceTo(targetX, targetY) > 85f;
velocity.add(movement.scl(Timers.delta()));
velocity.add(movement.scl(Time.delta()));
if(velocity.len() <= 0.2f && mech.flying){
rotation += Mathf.sin(Timers.time() + id * 99, 10f, 1f);
rotation += Mathf.sin(Time.time() + id * 99, 10f, 1f);
}else if(target == null){
rotation = Mathf.slerpDelta(rotation, velocity.angle(), velocity.len() / 10f);
}
@@ -715,8 +715,8 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
if(mech.flying){
//hovering effect
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f);
y += Mathf.cos(Timers.time() + id * 999, 25f, 0.08f);
x += Mathf.sin(Time.time() + id * 999, 25f, 0.08f);
y += Mathf.cos(Time.time() + id * 999, 25f, 0.08f);
}
//update shooting if not building, not mining and there's ammo left
@@ -726,7 +726,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
if(mobile){
if(target == null){
isShooting = false;
if(Settings.getBool("autotarget")){
if(Core.settings.getBool("autotarget")){
target = Units.getClosestTarget(team, x, y, getWeapon().getAmmo().getRange());
if(mech.canHeal && target == null){

View File

@@ -2,7 +2,7 @@ package io.anuke.mindustry.entities;
import io.anuke.arc.math.Vector2;
import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.util.Mathf;
/**
* Class for predicting shoot angles based on velocities of targets.

View File

@@ -6,10 +6,10 @@ import io.anuke.mindustry.content.StatusEffects;
import io.anuke.mindustry.entities.traits.Saveable;
import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.StatusEffect;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Pooling;
import io.anuke.ucore.util.ThreadArray;
import io.anuke.ucore.util.Tmp;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Pooling;
import io.anuke.arc.util.ThreadArray;
import io.anuke.arc.util.Tmp;
import java.io.DataInput;
import java.io.DataOutput;
@@ -88,7 +88,7 @@ public class StatusController implements Saveable{
removals.clear();
for(StatusEntry entry : statuses){
entry.time = Math.max(entry.time - Timers.delta(), 0);
entry.time = Math.max(entry.time - Time.delta(), 0);
if(entry.time <= 0){
Pooling.free(entry);

View File

@@ -20,13 +20,13 @@ import io.anuke.mindustry.world.modules.ConsumeModule;
import io.anuke.mindustry.world.modules.ItemModule;
import io.anuke.mindustry.world.modules.LiquidModule;
import io.anuke.mindustry.world.modules.PowerModule;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.BaseEntity;
import io.anuke.ucore.entities.trait.HealthTrait;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Timer;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.BaseEntity;
import io.anuke.arc.entities.trait.HealthTrait;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Timer;
import java.io.DataInput;
import java.io.DataOutput;
@@ -89,12 +89,12 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
/**Scaled delta.*/
public float delta(){
return Timers.delta() * timeScale;
return Time.delta() * timeScale;
}
/**Call when nothing is happening to the entity. This increments the internal sleep timer.*/
public void sleep(){
sleepTime += Timers.delta();
sleepTime += Time.delta();
if(!sleeping && sleepTime >= timeToSleep){
remove();
sleeping = true;
@@ -265,12 +265,12 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
public void update(){
//TODO better smoke effect, this one is awful
if(health != 0 && health < tile.block().health && !(tile.block() instanceof Wall) &&
Mathf.chance(0.009f * Timers.delta() * (1f - health / tile.block().health))){
Mathf.chance(0.009f * Time.delta() * (1f - health / tile.block().health))){
Effects.effect(Fx.smoke, x + Mathf.range(4), y + Mathf.range(4));
}
timeScaleDuration -= Timers.delta();
timeScaleDuration -= Time.delta();
if(timeScaleDuration <= 0f || !tile.block().canOverdrive){
timeScale = 1f;
}

View File

@@ -15,16 +15,16 @@ import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.world.Pos;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.impl.DestructibleEntity;
import io.anuke.ucore.entities.trait.DamageTrait;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.impl.DestructibleEntity;
import io.anuke.arc.entities.trait.DamageTrait;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.entities.trait.SolidTrait;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import java.io.DataInput;
import java.io.DataOutput;
@@ -235,11 +235,11 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
status.update(this);
velocity.limit(getMaxVelocity()).scl(1f + (status.getSpeedMultiplier()-1f) * Timers.delta());
velocity.limit(getMaxVelocity()).scl(1f + (status.getSpeedMultiplier()-1f) * Time.delta());
if(isFlying()){
x += velocity.x * Timers.delta();
y += velocity.y * Timers.delta();
x += velocity.x * Time.delta();
y += velocity.y * Time.delta();
}else{
boolean onLiquid = floor.isLiquid;
@@ -255,7 +255,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
}
if(onLiquid && velocity.len() > 0.4f && Mathf.chance((velocity.len() * floor.speedMultiplier) * 0.06f * Timers.delta())){
if(onLiquid && velocity.len() > 0.4f && Mathf.chance((velocity.len() * floor.speedMultiplier) * 0.06f * Time.delta())){
Effects.effect(floor.walkEffect, floor.liquidColor, x, y);
}
@@ -268,8 +268,8 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
if(onLiquid && floor.drownTime > 0){
drownTime += Timers.delta() * 1f / floor.drownTime;
if(Mathf.chance(Timers.delta() * 0.05f)){
drownTime += Time.delta() * 1f / floor.drownTime;
if(Mathf.chance(Time.delta() * 0.05f)){
Effects.effect(floor.drownUpdateEffect, floor.liquidColor, x, y);
}
}else{
@@ -283,12 +283,12 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
float px = x, py = y;
move(velocity.x * floor.speedMultiplier * Timers.delta(), velocity.y * floor.speedMultiplier * Timers.delta());
move(velocity.x * floor.speedMultiplier * Time.delta(), velocity.y * floor.speedMultiplier * Time.delta());
if(Math.abs(px - x) <= 0.0001f) velocity.x = 0f;
if(Math.abs(py - y) <= 0.0001f) velocity.y = 0f;
}
velocity.scl(Mathf.clamp(1f - getDrag() * (isFlying() ? 1f : floor.dragMultiplier) * Timers.delta()));
velocity.scl(Mathf.clamp(1f - getDrag() * (isFlying() ? 1f : floor.dragMultiplier) * Time.delta()));
}
public void applyEffect(StatusEffect effect, float intensity){
@@ -297,7 +297,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
public void damagePeriodic(float amount){
damage(amount * Timers.delta(), hitTime <= -20 + hitDuration);
damage(amount * Time.delta(), hitTime <= -20 + hitDuration);
}
public void damage(float amount, boolean withEffect){
@@ -317,7 +317,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
}
public void drawStats(){
Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Timers.time(), healthf()*5f, 1f - healthf()));
Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), healthf()*5f, 1f - healthf()));
Draw.alpha(hitTime);
Draw.rect(getPowerCellRegion(), x, y, rotation - 90);
Draw.color();

View File

@@ -7,12 +7,12 @@ import io.anuke.mindustry.entities.units.BaseUnit;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery;
import io.anuke.ucore.function.Consumer;
import io.anuke.ucore.function.Predicate;
import io.anuke.ucore.util.EnumSet;
import io.anuke.ucore.util.Geometry;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.EntityQuery;
import io.anuke.arc.function.Consumer;
import io.anuke.arc.function.Predicate;
import io.anuke.arc.util.EnumSet;
import io.anuke.arc.util.Geometry;
import static io.anuke.mindustry.Vars.*;

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.entities.bullet;
import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.graphics.Draw;
//TODO scale velocity depending on fslope()
public class ArtilleryBulletType extends BasicBulletType{

View File

@@ -6,11 +6,11 @@ import io.anuke.mindustry.entities.Damage;
import io.anuke.mindustry.entities.Units;
import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
/**
* A BulletType for most ammo-based bullets shot from turrets and units.
@@ -69,7 +69,7 @@ public class BasicBulletType extends BulletType{
if(homingPower > 0.0001f){
TargetTrait target = Units.getClosestTarget(b.getTeam(), b.x, b.y, homingRange);
if(target != null){
b.getVelocity().setAngle(Angles.moveToward(b.getVelocity().angle(), b.angleTo(target), homingPower * Timers.delta()));
b.getVelocity().setAngle(Angles.moveToward(b.getVelocity().angle(), b.angleTo(target), homingPower * Time.delta()));
}
}
}

View File

@@ -10,15 +10,15 @@ import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.entities.traits.TeamTrait;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.BulletEntity;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.ucore.entities.trait.VelocityTrait;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import io.anuke.ucore.util.Timer;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.BulletEntity;
import io.anuke.arc.entities.trait.Entity;
import io.anuke.arc.entities.trait.SolidTrait;
import io.anuke.arc.entities.trait.VelocityTrait;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Pooling;
import io.anuke.arc.util.Timer;
import java.io.DataInput;
import java.io.DataOutput;
@@ -69,7 +69,7 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
bullet.type = type;
bullet.lifeScl = lifetimeScl;
bullet.set(x - bullet.velocity.x * Timers.delta(), y - bullet.velocity.y * Timers.delta());
bullet.set(x - bullet.velocity.x * Time.delta(), y - bullet.velocity.y * Time.delta());
bullet.add();
return bullet;
@@ -236,7 +236,7 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
@Override
protected void updateLife(){
time += Timers.delta() * 1f/(lifeScl);
time += Time.delta() * 1f/(lifeScl);
time = Mathf.clamp(time, 0, type.lifetime());
if(time >= type.lifetime){

View File

@@ -6,10 +6,10 @@ import io.anuke.mindustry.game.Content;
import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.StatusEffect;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.entities.impl.BaseBulletType;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.entities.impl.BaseBulletType;
import io.anuke.arc.util.Translator;
public abstract class BulletType extends Content implements BaseBulletType<Bullet>{
public float lifetime;

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.entities.bullet;
import io.anuke.arc.math.Rectangle;
import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.entities.Units;
import io.anuke.ucore.core.Timers;
import io.anuke.arc.core.Timers;
public abstract class FlakBulletType extends BasicBulletType{
protected static Rectangle rect = new Rectangle();
@@ -29,7 +29,7 @@ public abstract class FlakBulletType extends BasicBulletType{
if(unit.distanceTo(b) < explodeRange){
b.setData(0);
Timers.run(5f, () -> {
Time.run(5f, () -> {
if(b.getData() instanceof Integer){
b.time(b.lifetime());
}

View File

@@ -8,11 +8,11 @@ import io.anuke.mindustry.entities.effect.Fire;
import io.anuke.mindustry.entities.effect.Puddle;
import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world;

View File

@@ -3,9 +3,9 @@ package io.anuke.mindustry.entities.bullet;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Mathf;
public class MissileBulletType extends BasicBulletType{
protected Color trailColor = Palette.missileYellowBack;
@@ -21,7 +21,7 @@ public class MissileBulletType extends BasicBulletType{
public void update(Bullet b){
super.update(b);
if(Mathf.chance(Timers.delta() * 0.2)){
if(Mathf.chance(Time.delta() * 0.2)){
Effects.effect(BulletFx.missileTrail, trailColor, b.x, b.y, 2f);
}
}

View File

@@ -2,11 +2,11 @@ package io.anuke.mindustry.entities.effect;
import io.anuke.arc.graphics.Color;
import io.anuke.mindustry.entities.traits.BelowLiquidTrait;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.groundEffectGroup;

View File

@@ -16,14 +16,14 @@ import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity;
import io.anuke.ucore.util.Structs;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.arc.util.Structs;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Pooling;
import java.io.DataInput;
import java.io.DataOutput;
@@ -76,7 +76,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
*/
public static void extinguish(Tile tile, float intensity){
if(tile != null && map.containsKey(tile.pos())){
map.get(tile.pos()).time += intensity * Timers.delta();
map.get(tile.pos()).time += intensity * Time.delta();
}
}
@@ -92,11 +92,11 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
@Override
public void update(){
if(Mathf.chance(0.1 * Timers.delta())){
if(Mathf.chance(0.1 * Time.delta())){
Effects.effect(EnvironmentFx.fire, x + Mathf.range(4f), y + Mathf.range(4f));
}
if(Mathf.chance(0.05 * Timers.delta())){
if(Mathf.chance(0.05 * Time.delta())){
Effects.effect(EnvironmentFx.smoke, x + Mathf.range(4f), y + Mathf.range(4f));
}
@@ -104,7 +104,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
return;
}
time = Mathf.clamp(time + Timers.delta(), 0, lifetime());
time = Mathf.clamp(time + Time.delta(), 0, lifetime());
if(time >= lifetime() || tile == null){
Call.onFireRemoved(getID());
@@ -118,7 +118,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
float flammability = baseFlammability + puddleFlammability;
if(!damage && flammability <= 0){
time += Timers.delta() * 8;
time += Time.delta() * 8;
}
if(baseFlammability < 0 || block != tile.block()){
@@ -127,20 +127,20 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
}
if(damage){
lifetime += Mathf.clamp(flammability / 8f, 0f, 0.6f) * Timers.delta();
lifetime += Mathf.clamp(flammability / 8f, 0f, 0.6f) * Time.delta();
}
if(flammability > 1f && Mathf.chance(spreadChance * Timers.delta() * Mathf.clamp(flammability / 5f, 0.3f, 2f))){
if(flammability > 1f && Mathf.chance(spreadChance * Time.delta() * Mathf.clamp(flammability / 5f, 0.3f, 2f))){
GridPoint2 p = Mathf.select(Geometry.d4);
Tile other = world.tile(tile.x + p.x, tile.y + p.y);
create(other);
if(Mathf.chance(fireballChance * Timers.delta() * Mathf.clamp(flammability / 10.0))){
if(Mathf.chance(fireballChance * Time.delta() * Mathf.clamp(flammability / 10.0))){
Call.createBullet(TurretBullets.fireball, x, y, Mathf.random(360f));
}
}
if(Mathf.chance(0.1 * Timers.delta())){
if(Mathf.chance(0.1 * Time.delta())){
Puddle p = Puddle.getPuddle(tile);
if(p != null){
puddleFlammability = p.getFlammability() / 3f;

View File

@@ -2,12 +2,12 @@ package io.anuke.mindustry.entities.effect;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Effects.Effect;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.impl.EffectEntity;
import io.anuke.ucore.core.Effects.EffectRenderer;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Effects.Effect;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.arc.core.Effects.EffectRenderer;
import io.anuke.arc.util.Mathf;
/**
* A ground effect contains an effect that is rendered on the ground layer as opposed to the top layer.
@@ -20,7 +20,7 @@ public class GroundEffectEntity extends EffectEntity{
GroundEffect effect = (GroundEffect) this.effect;
if(effect.isStatic){
time += Timers.delta();
time += Time.delta();
time = Mathf.clamp(time, 0, effect.staticLife);

View File

@@ -1,23 +1,23 @@
package io.anuke.mindustry.entities.effect;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.Vector2;
import io.anuke.annotations.Annotations.Loc;
import io.anuke.annotations.Annotations.Remote;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.entities.trait.PosTrait;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.math.Interpolation;
import io.anuke.arc.math.Vector2;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Pooling;
import io.anuke.arc.utils.Time;
import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.PosTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import static io.anuke.mindustry.Vars.effectGroup;
import static io.anuke.mindustry.Vars.threads;
@@ -51,7 +51,7 @@ public class ItemTransfer extends TimedEntity implements DrawTrait{
public static void transferItemTo(Item item, int amount, float x, float y, Tile tile){
if(tile == null || tile.entity == null || tile.entity.items == null) return;
for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){
Timers.run(i * 3, () -> create(item, x, y, tile, () -> {
Time.run(i * 3, () -> create(item, x, y, tile, () -> {
}));
}
tile.entity.items.add(item, amount);

View File

@@ -14,14 +14,14 @@ import io.anuke.mindustry.entities.traits.SyncTrait;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.PosTrait;
import io.anuke.ucore.entities.trait.TimeTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.*;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.entities.trait.PosTrait;
import io.anuke.arc.entities.trait.TimeTrait;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.*;
import java.io.DataInput;
import java.io.DataOutput;

View File

@@ -19,18 +19,18 @@ import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.entities.impl.SolidEntity;
import io.anuke.ucore.entities.trait.DrawTrait;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Hue;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Pooling;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.entities.impl.SolidEntity;
import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Hue;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Pooling;
import java.io.DataInput;
import java.io.DataOutput;
@@ -85,10 +85,10 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
Puddle p = map.get(tile.pos());
if(generation == 0 && p != null && p.lastRipple <= Timers.time() - 40f){
if(generation == 0 && p != null && p.lastRipple <= Time.time() - 40f){
Effects.effect(BlockFx.ripple, tile.floor().liquidDrop.color,
(tile.worldx() + source.worldx()) / 2f, (tile.worldy() + source.worldy()) / 2f);
p.lastRipple = Timers.time();
p.lastRipple = Time.time();
}
return;
}
@@ -108,9 +108,9 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
}else if(p.liquid == liquid){
p.accepting = Math.max(amount, p.accepting);
if(generation == 0 && p.lastRipple <= Timers.time() - 40f && p.amount >= maxLiquid / 2f){
if(generation == 0 && p.lastRipple <= Time.time() - 40f && p.amount >= maxLiquid / 2f){
Effects.effect(BlockFx.ripple, p.liquid.color, (tile.worldx() + source.worldx()) / 2f, (tile.worldy() + source.worldy()) / 2f);
p.lastRipple = Timers.time();
p.lastRipple = Time.time();
}
}else{
p.amount += reactPuddle(p.liquid, liquid, amount, p.tile, p.x, p.y);
@@ -176,13 +176,13 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
//update code
float addSpeed = accepting > 0 ? 3f : 0f;
amount -= Timers.delta() * (1f - liquid.viscosity) / (5f + addSpeed);
amount -= Time.delta() * (1f - liquid.viscosity) / (5f + addSpeed);
amount += accepting;
accepting = 0f;
if(amount >= maxLiquid / 1.5f && generation < maxGeneration){
float deposited = Math.min((amount - maxLiquid / 1.5f) / 4f, 0.3f) * Timers.delta();
float deposited = Math.min((amount - maxLiquid / 1.5f) / 4f, 0.3f) * Time.delta();
for(GridPoint2 point : Geometry.d4){
Tile other = world.tile(tile.x + point.x, tile.y + point.y);
if(other != null && other.block() == Blocks.air && !other.hasCliffs()){
@@ -214,14 +214,14 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
}
});
if(liquid.temperature > 0.7f && tile.entity != null && Mathf.chance(0.3 * Timers.delta())){
if(liquid.temperature > 0.7f && tile.entity != null && Mathf.chance(0.3 * Time.delta())){
Fire.create(tile);
}
updateTime = 20f;
}
updateTime -= Timers.delta();
updateTime -= Time.delta();
}
@Override
@@ -233,10 +233,10 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
float sscl = 20f;
Draw.color(Hue.shift(tmp.set(liquid.color), 2, -0.05f));
Fill.circle(x + Mathf.sin(Timers.time() + seeds * 532, sscl, smag), y + Mathf.sin(Timers.time() + seeds * 53, sscl, smag), f * 8f);
Fill.circle(x + Mathf.sin(Time.time() + seeds * 532, sscl, smag), y + Mathf.sin(Time.time() + seeds * 53, sscl, smag), f * 8f);
Angles.randLenVectors(id, 3, f * 6f, (ex, ey) -> {
Fill.circle(x + ex + Mathf.sin(Timers.time() + seeds * 532, sscl, smag),
y + ey + Mathf.sin(Timers.time() + seeds * 53, sscl, smag), f * 5f);
Fill.circle(x + ex + Mathf.sin(Time.time() + seeds * 532, sscl, smag),
y + ey + Mathf.sin(Time.time() + seeds * 53, sscl, smag), f * 5f);
seeds++;
});
Draw.color();

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.effect;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Mathf;
public class RubbleDecal extends Decal{
private int size;

View File

@@ -2,9 +2,9 @@ package io.anuke.mindustry.entities.effect;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.world;

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.ucore.entities.trait.DamageTrait;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.arc.entities.trait.DamageTrait;
import io.anuke.arc.entities.trait.Entity;
public interface AbsorbTrait extends Entity, TeamTrait, DamageTrait{
void absorb();

View File

@@ -21,16 +21,16 @@ import io.anuke.mindustry.world.Pos;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.BuildBlock;
import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.graphics.Shapes;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.trait.Entity;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.graphics.Shapes;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
import java.io.DataInput;
import java.io.DataOutput;
@@ -240,9 +240,9 @@ public interface BuilderTrait extends Entity{
if(!Net.client()){
//deconstructing is 2x as fast
if(current.breaking){
entity.deconstruct(unit, core, 2f / entity.buildCost * Timers.delta() * getBuildPower(tile));
entity.deconstruct(unit, core, 2f / entity.buildCost * Time.delta() * getBuildPower(tile));
}else{
entity.construct(unit, core, 1f / entity.buildCost * Timers.delta() * getBuildPower(tile));
entity.construct(unit, core, 1f / entity.buildCost * Time.delta() * getBuildPower(tile));
}
current.progress = entity.progress();
@@ -251,7 +251,7 @@ public interface BuilderTrait extends Entity{
}
if(!current.initialized){
Core.app.postRunnable(() -> Events.fire(new BuildSelectEvent(tile, unit.getTeam(), this, current.breaking)));
Core.app.post(() -> Events.fire(new BuildSelectEvent(tile, unit.getTeam(), this, current.breaking)));
current.initialized = true;
}
}
@@ -268,7 +268,7 @@ public interface BuilderTrait extends Entity{
Item item = tile.floor().drops.item;
unit.rotation = Mathf.slerpDelta(unit.rotation, unit.angleTo(tile.worldx(), tile.worldy()), 0.4f);
if(Mathf.chance(Timers.delta() * (0.06 - item.hardness * 0.01) * getMinePower())){
if(Mathf.chance(Time.delta() * (0.06 - item.hardness * 0.01) * getMinePower())){
if(unit.distanceTo(core) < mineTransferRange && core.tile.block().acceptStack(item, 1, core.tile, unit) == 1){
Call.transferItemTo(item, 1,
@@ -282,7 +282,7 @@ public interface BuilderTrait extends Entity{
}
}
if(Mathf.chance(0.06 * Timers.delta())){
if(Mathf.chance(0.06 * Time.delta())){
Effects.effect(BlockFx.pulverizeSmall,
tile.worldx() + Mathf.range(tilesize / 2f),
tile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color);
@@ -309,7 +309,7 @@ public interface BuilderTrait extends Entity{
}
Draw.color(Palette.accent);
float focusLen = 3.8f + Mathf.absin(Timers.time(), 1.1f, 0.6f);
float focusLen = 3.8f + Mathf.absin(Time.time(), 1.1f, 0.6f);
float px = unit.x + Angles.trnsx(unit.rotation, focusLen);
float py = unit.y + Angles.trnsy(unit.rotation, focusLen);
@@ -332,7 +332,7 @@ public interface BuilderTrait extends Entity{
Lines.line(px, py, x1, y1);
Lines.line(px, py, x3, y3);
Fill.circle(px, py, 1.6f + Mathf.absin(Timers.time(), 0.8f, 1.5f));
Fill.circle(px, py, 1.6f + Mathf.absin(Time.time(), 0.8f, 1.5f));
Draw.color();
}
@@ -343,22 +343,22 @@ public interface BuilderTrait extends Entity{
if(tile == null) return;
float focusLen = 4f + Mathf.absin(Timers.time(), 1.1f, 0.5f);
float focusLen = 4f + Mathf.absin(Time.time(), 1.1f, 0.5f);
float swingScl = 12f, swingMag = tilesize / 8f;
float flashScl = 0.3f;
float px = unit.x + Angles.trnsx(unit.rotation, focusLen);
float py = unit.y + Angles.trnsy(unit.rotation, focusLen);
float ex = tile.worldx() + Mathf.sin(Timers.time() + 48, swingScl, swingMag);
float ey = tile.worldy() + Mathf.sin(Timers.time() + 48, swingScl + 2f, swingMag);
float ex = tile.worldx() + Mathf.sin(Time.time() + 48, swingScl, swingMag);
float ey = tile.worldy() + Mathf.sin(Time.time() + 48, swingScl + 2f, swingMag);
Draw.color(Color.LIGHT_GRAY, Color.WHITE, 1f - flashScl + Mathf.absin(Timers.time(), 0.5f, flashScl));
Draw.color(Color.LIGHT_GRAY, Color.WHITE, 1f - flashScl + Mathf.absin(Time.time(), 0.5f, flashScl));
Shapes.laser("minelaser", "minelaser-end", px, py, ex, ey);
if(unit instanceof Player && ((Player) unit).isLocal){
Draw.color(Palette.accent);
Lines.poly(tile.worldx(), tile.worldy(), 4, tilesize / 2f * Mathf.sqrt2, Timers.time());
Lines.poly(tile.worldx(), tile.worldy(), 4, tilesize / 2f * Mathf.sqrt2, Time.time());
}
Draw.color();

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.arc.entities.trait.SolidTrait;
public interface CarriableTrait extends TeamTrait, TargetTrait, SolidTrait{

View File

@@ -5,8 +5,8 @@ import io.anuke.annotations.Annotations.Remote;
import io.anuke.mindustry.content.fx.UnitFx;
import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.gen.Call;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.arc.core.Effects;
import io.anuke.arc.entities.trait.SolidTrait;
public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.arc.entities.trait.Entity;
/**
* Marks an entity as serializable.

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.type.Weapon;
import io.anuke.ucore.entities.trait.VelocityTrait;
import io.anuke.ucore.util.Timer;
import io.anuke.arc.entities.trait.VelocityTrait;
import io.anuke.arc.util.Timer;
public interface ShooterTrait extends VelocityTrait, TeamTrait, InventoryTrait{

View File

@@ -2,9 +2,9 @@ package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.core.NetClient;
import io.anuke.mindustry.net.Interpolator;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.ucore.util.Tmp;
import io.anuke.arc.core.Core;
import io.anuke.arc.entities.trait.Entity;
import io.anuke.arc.util.Tmp;
import java.io.DataInput;
import java.io.DataOutput;

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.game.Team;
import io.anuke.ucore.entities.trait.PosTrait;
import io.anuke.ucore.entities.trait.SolidTrait;
import io.anuke.ucore.entities.trait.VelocityTrait;
import io.anuke.arc.entities.trait.PosTrait;
import io.anuke.arc.entities.trait.SolidTrait;
import io.anuke.arc.entities.trait.VelocityTrait;
/**
* Base interface for targetable entities.

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.game.Team;
import io.anuke.ucore.entities.trait.Entity;
import io.anuke.arc.entities.trait.Entity;
public interface TeamTrait extends Entity{
Team getTeam();

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.entities.traits;
import io.anuke.arc.utils.Array;
import io.anuke.arc.utils.ObjectIntMap;
import io.anuke.ucore.function.Supplier;
import io.anuke.arc.collection.Array;
import io.anuke.arc.collection.ObjectIntMap;
import io.anuke.arc.function.Supplier;
public interface TypeTrait{
int[] lastRegisteredID = {0};

View File

@@ -24,11 +24,11 @@ import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.units.CommandCenter.CommandCenterEntity;
import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.*;
import io.anuke.arc.core.Effects;
import io.anuke.arc.core.Timers;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.*;
import java.io.DataInput;
import java.io.DataOutput;
@@ -77,7 +77,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
Effects.shake(2f, 2f, unit);
//must run afterwards so the unit's group is not null when sending the removal packet
threads.runDelay(unit::remove);
Core.app.post(unit::remove);
}
@Override
@@ -282,7 +282,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override
public void update(){
hitTime -= Timers.delta();
hitTime -= Time.delta();
if(isDead()){
updateRespawning();

View File

@@ -10,9 +10,9 @@ import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.AmmoType;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.*;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.*;
import static io.anuke.mindustry.Vars.world;
@@ -99,7 +99,7 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
});
if(target != null){
circle(60f + Mathf.absin(Timers.time() + id * 23525, 70f, 1200f));
circle(60f + Mathf.absin(Time.time() + id * 23525, 70f, 1200f));
}
}
},
@@ -200,11 +200,11 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
protected void wobble(){
if(Net.client()) return;
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f)*Timers.delta();
y += Mathf.cos(Timers.time() + id * 999, 25f, 0.08f)*Timers.delta();
x += Mathf.sin(Time.time() + id * 999, 25f, 0.08f)*Time.delta();
y += Mathf.cos(Time.time() + id * 999, 25f, 0.08f)*Time.delta();
if(velocity.len() <= 0.05f){
rotation += Mathf.sin(Timers.time() + id * 99, 10f, 2.5f)*Timers.delta();
rotation += Mathf.sin(Time.time() + id * 99, 10f, 2.5f)*Time.delta();
}
}
@@ -225,7 +225,7 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
vec.rotate((circleLength - vec.len()) / circleLength * 180f);
}
vec.setLength(speed * Timers.delta());
vec.setLength(speed * Time.delta());
velocity.add(vec);
}
@@ -237,7 +237,7 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
float length = circleLength <= 0.001f ? 1f : Mathf.clamp((distanceTo(target) - circleLength) / 100f, -1f, 1f);
vec.setLength(type.speed * Timers.delta() * length);
vec.setLength(type.speed * Time.delta() * length);
if(length < 0) vec.rotate(180f);
velocity.add(vec);
@@ -255,7 +255,7 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
vec.setAngle(Mathf.slerpDelta(velocity.angle(), vec.angle(), 0.44f));
}
vec.setLength(type.speed * Timers.delta());
vec.setLength(type.speed * Time.delta());
velocity.add(vec);
}

View File

@@ -12,11 +12,11 @@ import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.util.Angles;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.util.Angles;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Translator;
import java.io.DataInput;
import java.io.DataOutput;
@@ -119,14 +119,14 @@ public abstract class GroundUnit extends BaseUnit{
public void update(){
super.update();
stuckTime = !vec.set(x, y).sub(lastPosition()).isZero(0.0001f) ? 0f : stuckTime + Timers.delta();
stuckTime = !vec.set(x, y).sub(lastPosition()).isZero(0.0001f) ? 0f : stuckTime + Time.delta();
if(!velocity.isZero()){
baseRotation = Mathf.slerpDelta(baseRotation, velocity.angle(), 0.05f);
}
if(stuckTime < 1f){
walkTime += Timers.delta();
walkTime += Time.delta();
}
}
@@ -238,12 +238,12 @@ public abstract class GroundUnit extends BaseUnit{
}
protected void patrol(){
vec.trns(baseRotation, type.speed * Timers.delta());
vec.trns(baseRotation, type.speed * Time.delta());
velocity.add(vec.x, vec.y);
vec.trns(baseRotation, type.hitsizeTile);
Tile tile = world.tileWorld(x + vec.x, y + vec.y);
if((tile == null || tile.solid() || tile.floor().drownTime > 0) || stuckTime > 10f){
baseRotation += Mathf.sign(id % 2 - 0.5f) * Timers.delta() * 3f;
baseRotation += Mathf.sign(id % 2 - 0.5f) * Time.delta() * 3f;
}
rotation = Mathf.slerpDelta(rotation, velocity.angle(), type.rotatespeed);
@@ -258,7 +258,7 @@ public abstract class GroundUnit extends BaseUnit{
vec.rotate((circleLength - vec.len()) / circleLength * 180f);
}
vec.setLength(type.speed * Timers.delta());
vec.setLength(type.speed * Time.delta());
velocity.add(vec);
}
@@ -272,7 +272,7 @@ public abstract class GroundUnit extends BaseUnit{
float angle = angleTo(targetTile);
velocity.add(vec.trns(angleTo(targetTile), type.speed*Timers.delta()));
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
}
@@ -296,7 +296,7 @@ public abstract class GroundUnit extends BaseUnit{
float angle = angleTo(targetTile);
velocity.add(vec.trns(angleTo(targetTile), type.speed*Timers.delta()));
velocity.add(vec.trns(angleTo(targetTile), type.speed*Time.delta()));
rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
}
}

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.units;
import io.anuke.arc.math.Vector2;
import io.anuke.ucore.util.Translator;
import io.anuke.arc.util.Translator;
import static io.anuke.mindustry.Vars.threads;

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.units;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.util.Bundles;
public enum UnitCommand{
attack, retreat, patrol;
@@ -8,7 +8,7 @@ public enum UnitCommand{
private final String localized;
UnitCommand(){
localized = Bundles.get("command." + name());
localized = Core.bundle.get("command." + name());
}
public String localized(){

View File

@@ -5,7 +5,7 @@ import io.anuke.mindustry.content.Items;
import io.anuke.mindustry.entities.TileEntity;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.type.Item;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.util.Mathf;
public class UnitDrops{
private static Item[] dropTable;

View File

@@ -12,12 +12,12 @@ import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.ui.ContentDisplay;
import io.anuke.ucore.function.Supplier;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.function.Supplier;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.arc.util.Bundles;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Strings;
public class UnitType extends UnlockableContent{
protected final Supplier<? extends BaseUnit> constructor;
@@ -51,11 +51,11 @@ public class UnitType extends UnlockableContent{
public <T extends BaseUnit> UnitType(String name, Class<T> type, Supplier<T> mainConstructor){
this.name = name;
this.constructor = mainConstructor;
this.description = Bundles.getOrNull("unit." + name + ".description");
this.description = Core.bundle.getOrNull("unit." + name + ".description");
TypeTrait.registerType(type, mainConstructor);
if(!Bundles.has("unit." + this.name + ".name")){
if(!Core.bundle.has("unit." + this.name + ".name")){
Log.err("Warning: unit '" + name + "' is missing a localized name. Add the follow to bundle.properties:");
Log.err("unit." + this.name + ".name=" + Strings.capitalize(name.replace('-', '_')));
}
@@ -68,7 +68,7 @@ public class UnitType extends UnlockableContent{
@Override
public String localizedName(){
return Bundles.get("unit." + name + ".name");
return Core.bundle.get("unit." + name + ".name");
}
@Override

View File

@@ -15,8 +15,8 @@ import io.anuke.mindustry.entities.units.UnitState;
import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.AmmoType;
import io.anuke.ucore.core.Effects;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Effects;
import io.anuke.arc.util.Mathf;
import java.io.DataInput;
import java.io.DataOutput;
@@ -72,7 +72,7 @@ public class AlphaDrone extends FlyingUnit {
if(drone == null) return;
Effects.effect(UnitFx.pickup, drone);
//must run afterwards so the unit's group is not null when sending the removal packet
threads.runDelay(drone::remove);
Core.app.post(drone::remove);
}
@Override

View File

@@ -20,11 +20,11 @@ import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.BuildBlock;
import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity;
import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.entities.EntityGroup;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Structs;
import io.anuke.arc.core.Events;
import io.anuke.arc.entities.EntityGroup;
import io.anuke.arc.util.Geometry;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Structs;
import java.io.DataInput;
import java.io.DataOutput;

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.game;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.util.Bundles;
public enum Difficulty{
training(3f, 3f),
@@ -24,7 +24,7 @@ public enum Difficulty{
@Override
public String toString(){
if(value == null){
value = Bundles.get("setting.difficulty." + name());
value = Core.bundle.get("setting.difficulty." + name());
}
return value;
}

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.game;
import io.anuke.arc.Events.Event;
import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.traits.BuilderTrait;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events.Event;
public class EventType{

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.game;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.util.Bundles;
public enum GameMode{
waves,
@@ -33,12 +33,12 @@ public enum GameMode{
public float respawnTime = 60 * 4;
public String description(){
return Bundles.get("mode." + name() + ".description");
return Core.bundle.get("mode." + name() + ".description");
}
@Override
public String toString(){
return Bundles.get("mode." + name() + ".name");
return Core.bundle.get("mode." + name() + ".name");
}
}

View File

@@ -10,11 +10,11 @@ import io.anuke.mindustry.game.EventType.StateChangeEvent;
import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.io.SaveMeta;
import io.anuke.mindustry.maps.Map;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.util.Strings;
import io.anuke.ucore.util.ThreadArray;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Settings;
import io.anuke.arc.core.Timers;
import io.anuke.arc.util.Strings;
import io.anuke.arc.util.ThreadArray;
import java.io.IOException;
import java.text.SimpleDateFormat;
@@ -47,7 +47,7 @@ public class Saves{
public void load(){
saves.clear();
IntArray slots = Settings.getObject("save-slots", IntArray.class, IntArray::new);
IntArray slots = Core.settings.getObject("save-slots", IntArray.class, IntArray::new);
for(int i = 0; i < slots.size; i ++){
int index = slots.get(i);
@@ -77,11 +77,11 @@ public class Saves{
}
if(!state.is(State.menu) && !state.gameOver && current != null && current.isAutosave()){
time += Timers.delta();
if(time > Settings.getInt("saveinterval") * 60){
time += Time.delta();
if(time > Core.settings.getInt("saveinterval") * 60){
saving = true;
Timers.runTask(2f, () -> {
Time.runTask(2f, () -> {
try{
current.save();
}catch(Exception e){
@@ -146,8 +146,8 @@ public class Saves{
IntArray result = new IntArray(saves.size);
for(int i = 0; i < saves.size; i++) result.add(saves.get(i).index);
Settings.putObject("save-slots", result);
Settings.save();
Core.settings.putObject("save-slots", result);
Core.settings.save();
}
public class SaveSlot{
@@ -201,12 +201,12 @@ public class Saves{
}
public String getName(){
return Settings.getString("save-" + index + "-name", "untittled");
return Core.settings.getString("save-" + index + "-name", "untittled");
}
public void setName(String name){
Settings.putString("save-" + index + "-name", name);
Settings.save();
Core.settings.putString("save-" + index + "-name", name);
Core.settings.save();
}
public int getBuild(){
@@ -226,12 +226,12 @@ public class Saves{
}
public boolean isAutosave(){
return Settings.getBool("save-" + index + "-autosave", true);
return Core.settings.getBool("save-" + index + "-autosave", true);
}
public void setAutosave(boolean save){
Settings.putBool("save-" + index + "-autosave", save);
Settings.save();
Core.settings.putBool("save-" + index + "-autosave", save);
Core.settings.save();
}
public void importFile(FileHandle file) throws IOException{

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.game;
import io.anuke.arc.graphics.Color;
import io.anuke.ucore.util.Bundles;
import io.anuke.arc.util.Bundles;
public enum Team{
none(Color.valueOf("4d4e58")),
@@ -21,6 +21,6 @@ public enum Team{
}
public String localized(){
return Bundles.get("team." + name() + ".name");
return Core.bundle.get("team." + name() + ".name");
}
}

View File

@@ -3,8 +3,8 @@ package io.anuke.mindustry.game;
import io.anuke.arc.utils.ObjectSet;
import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.util.EnumSet;
import io.anuke.ucore.util.ThreadSet;
import io.anuke.arc.util.EnumSet;
import io.anuke.arc.util.ThreadSet;
/**
* Class for various team-based utilities.

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.game;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.ucore.scene.ui.layout.Table;
import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.control;

View File

@@ -4,8 +4,8 @@ import io.anuke.arc.utils.ObjectMap;
import io.anuke.arc.utils.ObjectSet;
import io.anuke.mindustry.game.EventType.UnlockEvent;
import io.anuke.mindustry.type.ContentType;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Settings;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Settings;
/**Stores player unlocks. Clientside only.*/
public class Unlocks{
@@ -13,7 +13,7 @@ public class Unlocks{
private boolean dirty;
static{
Settings.setSerializer(ContentType.class, (stream, t) -> stream.writeInt(t.ordinal()), stream -> ContentType.values()[stream.readInt()]);
Core.settings.setSerializer(ContentType.class, (stream, t) -> stream.writeInt(t.ordinal()), stream -> ContentType.values()[stream.readInt()]);
}
/** Returns whether or not this piece of content is unlocked yet.*/
@@ -67,12 +67,12 @@ public class Unlocks{
@SuppressWarnings("unchecked")
public void load(){
unlocked = Settings.getObject("unlockset", ObjectMap.class, ObjectMap::new);
unlocked = Core.settings.getObject("unlockset", ObjectMap.class, ObjectMap::new);
}
public void save(){
Settings.putObject("unlockset", unlocked);
Settings.save();
Core.settings.putObject("unlockset", unlocked);
Core.settings.save();
}
}

View File

@@ -4,7 +4,7 @@ import io.anuke.arc.Core;
import io.anuke.arc.files.FileHandle;
import io.anuke.arc.utils.ObjectMap;
import io.anuke.arc.utils.PropertiesUtils;
import io.anuke.ucore.util.Strings;
import io.anuke.arc.util.Strings;
import java.io.IOException;

View File

@@ -9,15 +9,15 @@ import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Surface;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Surface;
import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.camera;
import static io.anuke.arc.core.Core.camera;
public class BlockRenderer{
private final static int initialRequests = 32 * 32;

View File

@@ -1,10 +1,10 @@
package io.anuke.mindustry.graphics;
import io.anuke.arc.graphics.Color;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Shader;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Shader;
import static io.anuke.mindustry.Vars.renderer;

View File

@@ -12,16 +12,16 @@ import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.maps.Sector;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.CacheBatch;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.util.Log;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Structs;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.CacheBatch;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.util.Log;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Structs;
import java.util.Arrays;
@@ -214,7 +214,7 @@ public class FloorRenderer{
cache = new Chunk[chunksx][chunksy];
cbatch = new CacheBatch(world.width() * world.height() * 4 * 4);
Timers.mark();
Time.mark();
for(int x = 0; x < chunksx; x++){
for(int y = 0; y < chunksy; y++){
@@ -225,7 +225,7 @@ public class FloorRenderer{
}
}
Log.info("Time to cache: {0}", Timers.elapsed());
Log.info("Time to cache: {0}", Time.elapsed());
}
private class Chunk{

View File

@@ -13,12 +13,12 @@ import io.anuke.mindustry.entities.Unit;
import io.anuke.mindustry.game.EventType.TileChangeEvent;
import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.entities.EntityDraw;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.entities.EntityDraw;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import java.nio.ByteBuffer;

View File

@@ -14,13 +14,13 @@ import io.anuke.mindustry.game.EventType.TileChangeEvent;
import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.world.ColorMapper;
import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Events;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Pixmaps;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.ThreadArray;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Events;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Pixmaps;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.ThreadArray;
import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world;
@@ -41,7 +41,7 @@ public class MinimapRenderer implements Disposable{
});
//make sure to call on the graphics thread
Events.on(TileChangeEvent.class, event -> Core.app.postRunnable(() -> update(event.tile)));
Events.on(TileChangeEvent.class, event -> Core.app.post(() -> update(event.tile)));
}
public Texture getTexture(){

View File

@@ -13,15 +13,15 @@ import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockBar;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Graphics;
import io.anuke.ucore.core.Settings;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import io.anuke.ucore.util.Tmp;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Graphics;
import io.anuke.arc.core.Settings;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Mathf;
import io.anuke.arc.util.Tmp;
import static io.anuke.mindustry.Vars.*;
@@ -52,7 +52,7 @@ public class OverlayRenderer{
public void drawTop(){
for(Player player : playerGroup.all()){
if(Settings.getBool("indicators") && player != players[0] && player.getTeam() == players[0].getTeam()){
if(Core.settings.getBool("indicators") && player != players[0] && player.getTeam() == players[0].getTeam()){
if(!rect.setSize(Core.camera.viewportWidth * Core.camera.zoom * 0.9f, Core.camera.viewportHeight * Core.camera.zoom * 0.9f)
.setCenter(Core.camera.position.x, Core.camera.position.y).contains(player.x, player.y)){
@@ -91,7 +91,7 @@ public class OverlayRenderer{
if(dst < state.mode.enemyCoreBuildRadius * 1.5f){
Draw.color(Color.DARK_GRAY);
Lines.poly(core.drawx(), core.drawy() - 2, 200, state.mode.enemyCoreBuildRadius);
Draw.color(Palette.accent, enemy.color, 0.5f + Mathf.absin(Timers.time(), 10f, 0.5f));
Draw.color(Palette.accent, enemy.color, 0.5f + Mathf.absin(Time.time(), 10f, 0.5f));
Lines.poly(core.drawx(), core.drawy(), 200, state.mode.enemyCoreBuildRadius);
}
}
@@ -185,14 +185,14 @@ public class OverlayRenderer{
float size = 8;
Draw.rect(player.inventory.getItem().item.region, v.x, v.y, size, size);
Draw.color(Palette.accent);
Lines.circle(v.x, v.y, 6 + Mathf.absin(Timers.time(), 5f, 1f));
Lines.circle(v.x, v.y, 6 + Mathf.absin(Time.time(), 5f, 1f));
Draw.reset();
Tile tile = world.tileWorld(v.x, v.y);
if(tile != null) tile = tile.target();
if(tile != null && tile.getTeam() == player.getTeam() && tile.block().acceptStack(player.inventory.getItem().item, player.inventory.getItem().amount, tile, player) > 0){
Draw.color(Palette.place);
Lines.square(tile.drawx(), tile.drawy(), tile.block().size * tilesize / 2f + 1 + Mathf.absin(Timers.time(), 5f, 1f));
Lines.square(tile.drawx(), tile.drawy(), tile.block().size * tilesize / 2f + 1 + Mathf.absin(Time.time(), 5f, 1f));
Draw.color();
}
}

View File

@@ -3,11 +3,11 @@ package io.anuke.mindustry.graphics;
import io.anuke.arc.Core;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.graphics.g2d.TextureRegion;
import io.anuke.ucore.core.Core;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Shader;
import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.arc.core.Core;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Shader;
import io.anuke.arc.scene.ui.layout.Unit;
import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world;
@@ -143,7 +143,7 @@ public class Shaders{
shader.setUniformf("u_color", color);
shader.setUniformf("u_uv", region.getU(), region.getV());
shader.setUniformf("u_uv2", region.getU2(), region.getV2());
shader.setUniformf("u_time", Timers.time());
shader.setUniformf("u_time", Time.time());
shader.setUniformf("u_texsize", region.getTexture().getWidth(), region.getTexture().getHeight());
}
}
@@ -173,7 +173,7 @@ public class Shaders{
@Override
public void apply(){
shader.setUniformf("u_dp", Unit.dp.scl(1f));
shader.setUniformf("u_time", Timers.time() / Unit.dp.scl(1f));
shader.setUniformf("u_time", Time.time() / Unit.dp.scl(1f));
shader.setUniformf("u_offset",
Core.camera.position.x - Core.camera.viewportWidth / 2 * Core.camera.zoom,
Core.camera.position.y - Core.camera.viewportHeight / 2 * Core.camera.zoom);
@@ -195,7 +195,7 @@ public class Shaders{
Core.camera.position.y - Core.camera.viewportHeight / 2 * Core.camera.zoom);
shader.setUniformf("screensize", Core.camera.viewportWidth* Core.camera.zoom,
Core.camera.viewportHeight * Core.camera.zoom);
shader.setUniformf("time", Timers.time());
shader.setUniformf("time", Time.time());
}
}
}

View File

@@ -3,11 +3,11 @@ package io.anuke.mindustry.graphics;
import io.anuke.arc.graphics.Color;
import io.anuke.arc.math.Vector2;
import io.anuke.arc.utils.FloatArray;
import io.anuke.ucore.core.Timers;
import io.anuke.ucore.graphics.Draw;
import io.anuke.ucore.graphics.Fill;
import io.anuke.ucore.graphics.Lines;
import io.anuke.ucore.util.Mathf;
import io.anuke.arc.core.Timers;
import io.anuke.arc.graphics.Draw;
import io.anuke.arc.graphics.Fill;
import io.anuke.arc.graphics.Lines;
import io.anuke.arc.util.Mathf;
/**
* Class that renders a colored trail.
@@ -29,7 +29,7 @@ public class Trail{
points.add(curx, cury);
while(points.size > (int)(length * 2 / Math.min(Timers.delta(), 1f))){
while(points.size > (int)(length * 2 / Math.min(Time.delta(), 1f))){
float[] items = points.items;
System.arraycopy(items, 2, items, 0, points.size - 2);
points.size -= 2;

Some files were not shown because too many files have changed in this diff Show More