🔥🔥🔥🔥🔥🔥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

@@ -8,7 +8,7 @@ import android.content.pm.PackageManager;
import android.net.Uri; import android.net.Uri;
import android.os.Build; import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.provider.Settings.Secure; import android.provider.Core.settings.Secure;
import android.telephony.TelephonyManager; import android.telephony.TelephonyManager;
import android.util.Log; import android.util.Log;
import com.badlogic.gdx.Gdx; import com.badlogic.gdx.Gdx;
@@ -26,10 +26,10 @@ import io.anuke.mindustry.game.Saves.SaveSlot;
import io.anuke.mindustry.io.SaveIO; import io.anuke.mindustry.io.SaveIO;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.ui.dialogs.FileChooser; import io.anuke.mindustry.ui.dialogs.FileChooser;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
import io.anuke.ucore.util.Strings; import io.anuke.arc.util.Strings;
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
@@ -171,7 +171,7 @@ public class AndroidLauncher extends PatchedAndroidApplication{
SaveSlot slot = control.saves.importSave(file); SaveSlot slot = control.saves.importSave(file);
ui.load.runLoadSave(slot); ui.load.runLoadSave(slot);
}catch(IOException e){ }catch(IOException e){
ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false))); ui.showError(Core.bundle.format("text.save.import.fail", Strings.parseException(e, false)));
} }
}else{ }else{
ui.showError("$text.save.import.invalid"); ui.showError("$text.save.import.invalid");

View File

@@ -129,7 +129,7 @@ public class RemoteWriteGenerator{
method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")"); method.beginControlFlow("if(" + getCheckString(methodEntry.where) + ")");
//add statement to create packet from pool //add statement to create packet from pool
method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.ucore.util.Pooling"); method.addStatement("$1N packet = $2N.obtain($1N.class, $1N::new)", "io.anuke.mindustry.net.Packets.InvokePacket", "io.anuke.arc.util.Pooling");
//assign buffer //assign buffer
method.addStatement("packet.writeBuffer = TEMP_BUFFER"); method.addStatement("packet.writeBuffer = TEMP_BUFFER");
//assign priority //assign priority

View File

@@ -53,7 +53,7 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("") TypeSpec.Builder serializer = TypeSpec.anonymousClassBuilder("")
.addSuperinterface(ParameterizedTypeName.get( .addSuperinterface(ParameterizedTypeName.get(
ClassName.bestGuess("io.anuke.ucore.io.TypeSerializer"), type)); ClassName.bestGuess("io.anuke.arc.io.TypeSerializer"), type));
MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write") MethodSpec.Builder writeMethod = MethodSpec.methodBuilder("write")
.returns(void.class) .returns(void.class)
@@ -84,8 +84,8 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
writeMethod.addStatement("stream.write" + capName + "(object." + name + ")"); writeMethod.addStatement("stream.write" + capName + "(object." + name + ")");
readMethod.addStatement("object." + name + "= stream.read" + capName + "()"); readMethod.addStatement("object." + name + "= stream.read" + capName + "()");
}else{ }else{
writeMethod.addStatement("io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")"); writeMethod.addStatement("io.anuke.arc.core.Core.settings.getSerializer(" + typeName+ ".class).write(stream, object." + name + ")");
readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.ucore.core.Settings.getSerializer(" + typeName+ ".class).read(stream)"); readMethod.addStatement("object." + name + " = (" +typeName+")io.anuke.arc.core.Core.settings.getSerializer(" + typeName+ ".class).read(stream)");
} }
} }
@@ -94,7 +94,7 @@ public class SerializeAnnotationProcessor extends AbstractProcessor{
serializer.addMethod(writeMethod.build()); serializer.addMethod(writeMethod.build());
serializer.addMethod(readMethod.build()); serializer.addMethod(readMethod.build());
method.addStatement("io.anuke.ucore.core.Settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build()); method.addStatement("io.anuke.arc.core.Core.settings.setSerializer($N, $L)", Utils.elementUtils.getBinaryName(elem).toString().replace('$', '.') + ".class", serializer.build());
} }
classBuilder.addMethod(method.build()); classBuilder.addMethod(method.build());

View File

@@ -1,20 +1,28 @@
package io.anuke.mindustry; 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.core.*;
import io.anuke.mindustry.game.EventType.GameLoadEvent; import io.anuke.mindustry.game.EventType.GameLoadEvent;
import io.anuke.mindustry.io.BundleLoader; 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.*; import static io.anuke.mindustry.Vars.*;
public class Mindustry extends ModuleCore{ public class Mindustry implements ApplicationListener{
private long lastFrameTime;
@Override public Mindustry(){
public void init(){ Time.setDeltaProvider(() -> {
Timers.mark(); float result = Core.graphics.getDeltaTime() * 60f;
return Float.isNaN(result) || Float.isInfinite(result) ? 1f : Math.min(result, 60f / 10f);
});
Time.mark();
Vars.init(); Vars.init();
@@ -22,26 +30,40 @@ public class Mindustry extends ModuleCore{
BundleLoader.load(); BundleLoader.load();
content.load(); content.load();
module(logic = new Logic()); Core.app.addListener(logic = new Logic());
module(world = new World()); Core.app.addListener(world = new World());
module(control = new Control()); Core.app.addListener(control = new Control());
module(renderer = new Renderer()); Core.app.addListener(renderer = new Renderer());
module(ui = new UI()); Core.app.addListener(ui = new UI());
module(netServer = new NetServer()); Core.app.addListener(netServer = new NetServer());
module(netClient = new NetClient()); Core.app.addListener(netClient = new NetClient());
} }
@Override @Override
public void postInit(){ public void init(){
Log.info("Time to load [total]: {0}", Timers.elapsed()); Log.info("Time to load [total]: {0}", Time.elapsed());
Events.fire(new GameLoadEvent()); Events.fire(new GameLoadEvent());
} }
@Override @Override
public void render(){ public void update(){
threads.handleBeginRender(); lastFrameTime = TimeUtils.millis();
super.render();
threads.handleEndRender(); //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.gen.Serialization;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity; import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
import io.anuke.ucore.entities.Entities; import io.anuke.arc.entities.Entities;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.EffectEntity; import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.ucore.util.Translator; import io.anuke.arc.util.Translator;
import java.util.Arrays; import java.util.Arrays;
import java.util.Locale; import java.util.Locale;
@@ -173,7 +173,7 @@ public class Vars{
ios = Core.app.getType() == ApplicationType.iOS; ios = Core.app.getType() == ApplicationType.iOS;
android = Core.app.getType() == ApplicationType.Android; android = Core.app.getType() == ApplicationType.Android;
dataDirectory = Settings.getDataDirectory(appName); dataDirectory = Core.settings.getDataDirectory(appName);
screenshotDirectory = dataDirectory.child("screenshots/"); screenshotDirectory = dataDirectory.child("screenshots/");
customMapDirectory = dataDirectory.child("maps/"); customMapDirectory = dataDirectory.child("maps/");
saveDirectory = dataDirectory.child("saves/"); 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.type.Item;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.function.Predicate; import io.anuke.arc.function.Predicate;
import io.anuke.ucore.util.EnumSet; import io.anuke.arc.util.EnumSet;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.ThreadArray; import io.anuke.arc.util.ThreadArray;
import static io.anuke.mindustry.Vars.*; 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.net.Net;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import static io.anuke.mindustry.Vars.state; import static io.anuke.mindustry.Vars.state;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -168,7 +168,7 @@ public class Pathfinder{
} }
private void clear(){ private void clear(){
Timers.mark(); Time.mark();
paths = new PathData[Team.all.length]; paths = new PathData[Team.all.length];
blocked.clear(); 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.Team;
import io.anuke.mindustry.game.Waves; import io.anuke.mindustry.game.Waves;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.util.GridBits; import io.anuke.arc.util.GridBits;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; 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.net.Net;
import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.Mech; import io.anuke.mindustry.type.Mech;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.unitGroups; import static io.anuke.mindustry.Vars.unitGroups;
@@ -100,7 +100,7 @@ public class Mechs implements ContentList{
Effects.shake(1f, 1f, player); Effects.shake(1f, 1f, player);
Effects.effect(UnitFx.landShock, player); Effects.effect(UnitFx.landShock, player);
for(int i = 0; i < 8; i++){ 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; float alpha = Core.batch.getColor().a;
Shaders.build.progress = player.shootHeat; Shaders.build.progress = player.shootHeat;
Shaders.build.region = armorRegion; 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; Shaders.build.color.set(Palette.accent).a = player.shootHeat;
Graphics.shader(Shaders.build); Graphics.shader(Shaders.build);
Draw.alpha(1f); Draw.alpha(1f);
@@ -257,7 +257,7 @@ public class Mechs implements ContentList{
@Override @Override
public void updateAlt(Player player){ public void updateAlt(Player player){
float scl = scld(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); Effects.effect(BulletFx.hitLancer, Palette.lancerLaser, player.x, player.y);
Lightning.create(player.getTeam(), Palette.lancerLaser, 10f, Lightning.create(player.getTeam(), Palette.lancerLaser, 10f,
player.x + player.getVelocity().x, player.y + player.getVelocity().y, player.rotation, 14); 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.game.ContentList;
import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.type.StatusEffect;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class StatusEffects implements ContentList{ public class StatusEffects implements ContentList{
public static StatusEffect none, burning, freezing, wet, melting, tarred, overdrive, shielded, shocked; 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){ public void update(Unit unit, float time){
unit.damagePeriodic(0.04f); 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)); 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 @Override
public void update(Unit unit, float time){ 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)); 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 @Override
public void update(Unit unit, float time){ 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)); 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){ public void update(Unit unit, float time){
unit.damagePeriodic(0.3f); 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)); 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 @Override
public void update(Unit unit, float time){ 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)); 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 @Override
public void update(Unit unit, float time){ public void update(Unit unit, float time){
//idle regen boosted //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); 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.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.*; import io.anuke.mindustry.world.blocks.*;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class Blocks extends BlockList implements ContentList{ public class Blocks extends BlockList implements ContentList{
public static Block air, blockpart, spawn, space, metalfloor, deepwater, water, lava, tar, stone, 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){ public void draw(Tile tile){
Draw.color(Color.SCARLET); 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(); 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.distribution.Sorter;
import io.anuke.mindustry.world.blocks.power.PowerNode; import io.anuke.mindustry.world.blocks.power.PowerNode;
import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.mindustry.world.meta.BlockStat;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ImageButton; import io.anuke.arc.scene.ui.ImageButton;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; 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.game.ContentList;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.defense.turrets.*; import io.anuke.mindustry.world.blocks.defense.turrets.*;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class TurretBlocks extends BlockList implements ContentList{ public class TurretBlocks extends BlockList implements ContentList{
public static Block duo, /*scatter,*/ 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.entities.effect.Lightning;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; 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 class FlakBullets extends BulletList implements ContentList{
public static BulletType plastic, explosive, surge; 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.entities.effect.Lightning;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class MissileBullets extends BulletList implements ContentList{ public class MissileBullets extends BulletList implements ContentList{
public static BulletType explosive, incindiary, surge, javelin, swarm; public static BulletType explosive, incindiary, surge, javelin, swarm;
@@ -92,7 +92,7 @@ public class MissileBullets extends BulletList implements ContentList{
@Override @Override
public void update(Bullet b){ public void update(Bullet b){
super.update(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 @Override
public void update(Bullet b){ public void update(Bullet b){
super.update(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.Tile;
import io.anuke.mindustry.world.blocks.BuildBlock; import io.anuke.mindustry.world.blocks.BuildBlock;
import io.anuke.mindustry.world.blocks.distribution.MassDriver.DriverBulletData; import io.anuke.mindustry.world.blocks.distribution.MassDriver.DriverBulletData;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.*; import io.anuke.arc.graphics.*;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -105,18 +105,18 @@ public class TurretBullets extends BulletList implements ContentList{
@Override @Override
public void update(Bullet b){ 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); Tile tile = world.tileWorld(b.x, b.y);
if(tile != null){ if(tile != null){
Fire.create(tile); 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); 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); 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); Lines.lineAngle(b.x, b.y, b.angle(), baseLen);
for(int s = 0; s < colors.length; s++){ 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++){ for(int i = 0; i < tscales.length; i++){
vector.trns(b.angle() + 180f, (lenscales[i] - 1f) * 35f); 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); 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.entities.effect.Puddle;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile; 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; 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.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Hue; import io.anuke.arc.graphics.Hue;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Tmp; import io.anuke.arc.util.Tmp;
import static io.anuke.mindustry.Vars.tilesize; 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.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class BulletFx extends FxList implements ContentList{ public class BulletFx extends FxList implements ContentList{
public static Effect hitBulletSmall, hitFuse, hitBulletBig, hitFlameSmall, hitLiquid, hitLaser, hitLancer, hitMeltdown, despawn, flakExplosion, blastExplosion, plasticExplosion, 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.game.ContentList;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class EnvironmentFx extends FxList implements ContentList{ public class EnvironmentFx extends FxList implements ContentList{
public static Effect burning, fire, smoke, steam, fireballsmoke, ballfire, freezing, melting, wet, oily, overdriven, dropItem; 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.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class ExplosionFx extends FxList implements ContentList{ public class ExplosionFx extends FxList implements ContentList{
public static Effect shockwave, bigShockwave, nuclearShockwave, explosion, blockExplosion, blockExplosionSmoke; 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.arc.graphics.Color;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import static io.anuke.mindustry.Vars.tilesize; 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.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.graphics.Shapes; import io.anuke.arc.graphics.Shapes;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class ShootFx extends FxList implements ContentList{ 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; 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.entities.effect.GroundEffectEntity.GroundEffect;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.game.ContentList;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class UnitFx extends FxList implements ContentList{ public class UnitFx extends FxList implements ContentList{
public static Effect vtolHover, unitDrop, unitPickup, unitLand, pickup, healWave, heal, landShock; public static Effect vtolHover, unitDrop, unitPickup, unitLand, pickup, healWave, heal, landShock;

View File

@@ -1,8 +1,10 @@
package io.anuke.mindustry.core; package io.anuke.mindustry.core;
import io.anuke.arc.utils.Array; import io.anuke.arc.collection.Array;
import io.anuke.arc.utils.ObjectMap; import io.anuke.arc.collection.ObjectMap;
import io.anuke.arc.utils.ObjectSet; 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.*;
import io.anuke.mindustry.content.blocks.*; import io.anuke.mindustry.content.blocks.*;
import io.anuke.mindustry.content.bullets.*; 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.Block;
import io.anuke.mindustry.world.ColorMapper; import io.anuke.mindustry.world.ColorMapper;
import io.anuke.mindustry.world.LegacyColorMapper; 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. * Loads all game content.
@@ -114,7 +113,7 @@ public class ContentLoader{
registerTypes(); registerTypes();
for(ContentType type : ContentType.values()){ for(ContentType type : ContentType.values()){
contentMap[type.ordinal()] = new ThreadArray<>(); contentMap[type.ordinal()] = new Array<>();
contentNameMap[type.ordinal()] = new ObjectMap<>(); contentNameMap[type.ordinal()] = new ObjectMap<>();
} }

View File

@@ -1,7 +1,17 @@
package io.anuke.mindustry.core; package io.anuke.mindustry.core;
import io.anuke.arc.ApplicationListener;
import io.anuke.arc.Core; 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.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.content.Mechs;
import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.core.GameState.State;
import io.anuke.mindustry.entities.Player; 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.Saves;
import io.anuke.mindustry.game.Unlocks; import io.anuke.mindustry.game.Unlocks;
import io.anuke.mindustry.gen.Call; 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.DesktopInput;
import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.input.InputHandler;
import io.anuke.mindustry.input.MobileInput; 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.ItemStack;
import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; 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 java.io.IOException;
import static io.anuke.arc.Core.scene;
import static io.anuke.mindustry.Vars.*; 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. * Should <i>not</i> handle any logic-critical state.
* This class is not created in the headless server. * 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 Saves saves;
public final Unlocks unlocks; 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 hiscore = false;
private boolean wasPaused = false; private boolean wasPaused = false;
private InputHandler[] inputs = {}; private InputHandler[] inputs = {};
@@ -52,22 +56,18 @@ public class Control extends Module{
saves = new Saves(); saves = new Saves();
unlocks = new Unlocks(); unlocks = new Unlocks();
Inputs.useControllers(true); Core.input.setCatch(KeyCode.BACK, true);
Core.input.setCatchBackKey(true);
Effects.setShakeFalloff(10000f); Effects.setShakeFalloff(10000f);
content.initialize(Content::init); content.initialize(Content::init);
Core.atlas = new Atlas("sprites.atlas"); Core.atlas = new TextureAtlas("sprites.atlas");
Core.atlas.setErrorRegion("error");
content.initialize(Content::load); content.initialize(Content::load);
unlocks.load(); unlocks.load();
DefaultKeybinds.load(); Core.settings.setAppName(appName);
Core.settings.defaults(
Settings.defaultList(
"ip", "localhost", "ip", "localhost",
"color-0", Color.rgba8888(playerColors[8]), "color-0", Color.rgba8888(playerColors[8]),
"color-1", Color.rgba8888(playerColors[11]), "color-1", Color.rgba8888(playerColors[11]),
@@ -77,15 +77,13 @@ public class Control extends Module{
"lastBuild", 0 "lastBuild", 0
); );
KeyBinds.load();
addPlayer(0); addPlayer(0);
saves.load(); saves.load();
Events.on(StateChangeEvent.class, event -> { Events.on(StateChangeEvent.class, event -> {
if((event.from == State.playing && event.to == State.menu) || (event.from == State.menu && event.to != State.menu)){ 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 -> { Events.on(WorldLoadGraphicsEvent.class, event -> {
if(mobile){ 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 -> { 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){ if(state.wave > last && !state.mode.infiniteResources && !state.mode.disableWaveTimer && world.getSector() == null){
Settings.putInt("hiscore" + world.getMap().name, state.wave); Core.settings.put("hiscore" + world.getMap().name, state.wave);
Settings.save(); Core.settings.save();
hiscore = true; hiscore = true;
} }
@@ -131,12 +129,9 @@ public class Control extends Module{
if(world.getSector() != null && world.getSector().hasSave()){ if(world.getSector() != null && world.getSector().hasSave()){
world.getSector().getSave().delete(); world.getSector().getSave().delete();
} }
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y);
threads.runGraphics(() -> { //the restart dialog can show info for any number of scenarios
Effects.shake(5, 6, Core.camera.position.x, Core.camera.position.y); Call.onGameOver(event.winner);
//the restart dialog can show info for any number of scenarios
Call.onGameOver(event.winner);
});
}); });
//autohost for pvp sectors //autohost for pvp sectors
@@ -146,8 +141,8 @@ public class Control extends Module{
Net.host(port); Net.host(port);
players[0].isAdmin = true; players[0].isAdmin = true;
}catch(IOException e){ }catch(IOException e){
ui.showError(Bundles.format("text.server.error", Strings.parseException(e, false))); ui.showError(Core.bundle.format("text.server.error", Strings.parseException(e, false)));
threads.runDelay(() -> state.set(State.menu)); Core.app.post(() -> state.set(State.menu));
} }
} }
}); });
@@ -171,9 +166,9 @@ public class Control extends Module{
Player setTo = (index == 0 ? null : players[0]); Player setTo = (index == 0 ? null : players[0]);
Player player = new Player(); Player player = new Player();
player.name = Settings.getString("name"); player.name = Core.settings.getString("name");
player.mech = mobile ? Mechs.starterMobile : Mechs.starterDesktop; 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.isLocal = true;
player.playerIndex = index; player.playerIndex = index;
player.isMobile = mobile; player.isMobile = mobile;
@@ -196,7 +191,7 @@ public class Control extends Module{
} }
inputs[index] = input; inputs[index] = input;
Inputs.addProcessor(input); Core.input.addInputProcessor(input);
} }
public void removePlayer(){ public void removePlayer(){
@@ -287,14 +282,14 @@ public class Control extends Module{
Platform.instance.updateRPC(); 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![]"); FloatingDialog dialog = new FloatingDialog("[accent]WARNING![]");
dialog.buttons().addButton("$text.ok", () -> { dialog.buttons().addButton("$text.ok", () -> {
dialog.hide(); dialog.hide();
Settings.putBool("4.0-warning-2", true); Core.settings.put("4.0-warning-2", true);
Settings.save(); Core.settings.save();
}).size(100f, 60f); }).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 " + 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" + "\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); 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()){ if(ui.chatfrag.chatOpen()){
ui.chatfrag.hide(); ui.chatfrag.hide();
}else if(!ui.paused.isShown() && !ui.hasDialog()){ }else if(!ui.paused.isShown() && !scene.hasDialog()){
ui.paused.show(); ui.paused.show();
state.set(State.paused); state.set(State.paused);
} }
} }
if(!mobile && Inputs.keyTap("screenshot") && !ui.chatfrag.chatOpen()){ if(!mobile && Core.input.keyTap(Binding.screenshot) && !ui.chatfrag.chatOpen()){
renderer.takeMapScreenshot(); renderer.takeMapScreenshot();
} }
}else{ }else{
if(!state.isPaused()){ 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.GameMode;
import io.anuke.mindustry.game.Teams; import io.anuke.mindustry.game.Teams;
import io.anuke.mindustry.net.Net; 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.unitGroups;
import static io.anuke.mindustry.Vars.waveTeam; 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.ItemStack;
import io.anuke.mindustry.type.Recipe; import io.anuke.mindustry.type.Recipe;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.Entities; import io.anuke.arc.entities.Entities;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery; import io.anuke.arc.entities.EntityQuery;
import io.anuke.ucore.modules.Module; import io.anuke.arc.modules.Module;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
@@ -85,7 +85,7 @@ public class Logic extends Module{
state.gameOver = false; state.gameOver = false;
state.teams = new Teams(); state.teams = new Teams();
Timers.clear(); Time.clear();
Entities.clear(); Entities.clear();
TileEntity.sleepingEntities = 0; TileEntity.sleepingEntities = 0;
@@ -179,10 +179,10 @@ public class Logic extends Module{
if(!state.is(State.menu)){ if(!state.is(State.menu)){
if(!state.isPaused()){ if(!state.isPaused()){
Timers.update(); Time.update();
if(!state.mode.disableWaveTimer && !state.mode.disableWaves && !state.gameOver){ 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){ 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.net.ValidateException;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.modules.ItemModule; import io.anuke.mindustry.world.modules.ItemModule;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.Entities; import io.anuke.arc.entities.Entities;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.io.ReusableByteArrayInputStream; import io.anuke.arc.io.ReusableByteArrayInputStream;
import io.anuke.ucore.modules.Module; import io.anuke.arc.modules.Module;
import io.anuke.ucore.util.Log; import io.anuke.arc.util.Log;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Timer; import io.anuke.arc.util.Timer;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.IOException; import java.io.IOException;
@@ -114,7 +114,7 @@ public class NetClient extends Module{
Net.handleClient(Disconnect.class, packet -> { Net.handleClient(Disconnect.class, packet -> {
if(quiet) return; if(quiet) return;
Timers.runTask(3f, ui.loadfrag::hide); Time.runTask(3f, ui.loadfrag::hide);
state.set(State.menu); state.set(State.menu);
@@ -347,7 +347,7 @@ public class NetClient extends Module{
}else if(!connecting){ }else if(!connecting){
Net.disconnect(); Net.disconnect();
}else{ //...must be connecting }else{ //...must be connecting
timeoutTime += Timers.delta(); timeoutTime += Time.delta();
if(timeoutTime > dataTimeout){ if(timeoutTime > dataTimeout){
Log.err("Failed to load data!"); Log.err("Failed to load data!");
ui.loadfrag.hide(); ui.loadfrag.hide();
@@ -369,8 +369,8 @@ public class NetClient extends Module{
ui.loadfrag.hide(); ui.loadfrag.hide();
ui.join.hide(); ui.join.hide();
Net.setClientLoaded(true); Net.setClientLoaded(true);
Core.app.postRunnable(Call::connectConfirm); Core.app.post(Call::connectConfirm);
Timers.runTask(40f, Platform.instance::updateRPC); Time.runTask(40f, Platform.instance::updateRPC);
} }
private void reset(){ private void reset(){
@@ -437,14 +437,14 @@ public class NetClient extends Module{
} }
String getUsid(String ip){ String getUsid(String ip){
if(Settings.getString("usid-" + ip, null) != null){ if(Core.settings.getString("usid-" + ip, null) != null){
return Settings.getString("usid-" + ip, null); return Core.settings.getString("usid-" + ip, null);
}else{ }else{
byte[] bytes = new byte[8]; byte[] bytes = new byte[8];
new Random().nextBytes(bytes); new Random().nextBytes(bytes);
String result = new String(Base64Coder.encode(bytes)); String result = new String(Base64Coder.encode(bytes));
Settings.putString("usid-" + ip, result); Core.settings.putString("usid-" + ip, result);
Settings.save(); Core.settings.save();
return result; 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.Administration.PlayerInfo;
import io.anuke.mindustry.net.Packets.*; import io.anuke.mindustry.net.Packets.*;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.Entities; import io.anuke.arc.entities.Entities;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery; import io.anuke.arc.entities.EntityQuery;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
import io.anuke.ucore.io.ByteBufferOutput; import io.anuke.arc.io.ByteBufferOutput;
import io.anuke.ucore.io.CountableByteArrayOutputStream; import io.anuke.arc.io.CountableByteArrayOutputStream;
import io.anuke.ucore.modules.Module; import io.anuke.arc.modules.Module;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import io.anuke.ucore.util.Log; import io.anuke.arc.util.Log;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
@@ -256,7 +256,7 @@ public class NetServer extends Module{
private static void scheduleSnapshot(Runnable r){ private static void scheduleSnapshot(Runnable r){
if(debugSnapshots){ if(debugSnapshots){
if(!Mathf.chance(snapshotDropchance)){ if(!Mathf.chance(snapshotDropchance)){
Timers.run(maxSnapshotDelay / 1000f * 60f, r); Time.run(maxSnapshotDelay / 1000f * 60f, r);
} }
}else{ }else{
r.run(); r.run();
@@ -437,7 +437,7 @@ public class NetServer extends Module{
if(!headless && !closing && Net.server() && state.is(State.menu)){ if(!headless && !closing && Net.server() && state.is(State.menu)){
closing = true; closing = true;
threads.runGraphics(() -> ui.loadfrag.show("$text.server.closing")); threads.runGraphics(() -> ui.loadfrag.show("$text.server.closing"));
Timers.runTask(5f, () -> { Time.runTask(5f, () -> {
Net.closeServer(); Net.closeServer();
ui.loadfrag.hide(); ui.loadfrag.hide();
closing = false; closing = false;
@@ -474,7 +474,7 @@ public class NetServer extends Module{
Call.onKick(connection, reason); Call.onKick(connection, reason);
Timers.runTask(2f, con::close); Time.runTask(2f, con::close);
admins.save(); admins.save();
} }
@@ -618,7 +618,7 @@ public class NetServer extends Module{
if(!player.timer.get(Player.timerSync, serverSyncTime) || !connection.hasConnected) continue; if(!player.timer.get(Player.timerSync, serverSyncTime) || !connection.hasConnected) continue;
//reset stream to begin writing //reset stream to begin writing
Timers.mark(); Time.mark();
syncStream.reset(); syncStream.reset();
writeSnapshot(player, dataStream); writeSnapshot(player, dataStream);

View File

@@ -4,12 +4,12 @@ import io.anuke.arc.Core;
import io.anuke.arc.Input.Keys; import io.anuke.arc.Input.Keys;
import io.anuke.arc.files.FileHandle; import io.anuke.arc.files.FileHandle;
import io.anuke.arc.utils.Base64Coder; import io.anuke.arc.utils.Base64Coder;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.scene.ui.Dialog; import io.anuke.arc.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import java.util.Random; import java.util.Random;
@@ -57,7 +57,7 @@ public abstract class Platform {
}).width(90f).name("okb"); }).width(90f).name("okb");
dialog.show(); dialog.show();
Timers.runTask(1f, () -> { Time.runTask(1f, () -> {
to.setCursorPosition(to.getText().length()); to.setCursorPosition(to.getText().length());
Core.scene.setKeyboardFocus(to); Core.scene.setKeyboardFocus(to);
Core.input.setOnscreenKeyboardVisible(true); Core.input.setOnscreenKeyboardVisible(true);
@@ -76,13 +76,13 @@ public abstract class Platform {
} }
/**Must be a base64 string 8 bytes in length.*/ /**Must be a base64 string 8 bytes in length.*/
public String getUUID(){ public String getUUID(){
String uuid = Settings.getString("uuid", ""); String uuid = Core.settings.getString("uuid", "");
if(uuid.isEmpty()){ if(uuid.isEmpty()){
byte[] result = new byte[8]; byte[] result = new byte[8];
new Random().nextBytes(result); new Random().nextBytes(result);
uuid = new String(Base64Coder.encode(result)); uuid = new String(Base64Coder.encode(result));
Settings.putString("uuid", uuid); Core.settings.putString("uuid", uuid);
Settings.save(); Core.settings.save();
return uuid; return uuid;
} }
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.game.Team;
import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.graphics.*;
import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity; import io.anuke.mindustry.world.blocks.defense.ForceProjector.ShieldEntity;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
import io.anuke.ucore.entities.EntityDraw; import io.anuke.arc.entities.EntityDraw;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.EffectEntity; import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.function.Predicate; import io.anuke.arc.function.Predicate;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.graphics.Surface; import io.anuke.arc.graphics.Surface;
import io.anuke.ucore.modules.RendererModule; import io.anuke.arc.modules.RendererModule;
import io.anuke.ucore.scene.utils.Cursors; import io.anuke.arc.scene.utils.Cursors;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Pooling; import io.anuke.arc.util.Pooling;
import io.anuke.ucore.util.Translator; import io.anuke.arc.util.Translator;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
import static io.anuke.ucore.core.Core.batch; import static io.anuke.arc.core.Core.batch;
import static io.anuke.ucore.core.Core.camera; import static io.anuke.arc.core.Core.camera;
public class Renderer extends RendererModule{ public class Renderer extends RendererModule{
public final Surface effectSurface; public final Surface effectSurface;
@@ -69,7 +69,7 @@ public class Renderer extends RendererModule{
Core.cameraScale = baseCameraScale; Core.cameraScale = baseCameraScale;
Effects.setEffectProvider((effect, color, x, y, rotation, data) -> { Effects.setEffectProvider((effect, color, x, y, rotation, data) -> {
if(effect == Fx.none) return; if(effect == Fx.none) return;
if(Settings.getBool("effects")){ if(Core.settings.getBool("effects")){
Rectangle view = rect.setSize(camera.viewportWidth, camera.viewportHeight) Rectangle view = rect.setSize(camera.viewportWidth, camera.viewportHeight)
.setCenter(camera.position.x, camera.position.y); .setCenter(camera.position.x, camera.position.y);
Rectangle pos = rect2.setSize(effect.size).setCenter(x, y); Rectangle pos = rect2.setSize(effect.size).setCenter(x, y);
@@ -381,7 +381,7 @@ public class Renderer extends RendererModule{
} }
public void clampScale(){ 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)); 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); pixelSurface.setSize(pw, ph, false);
Graphics.getEffectSurface().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.input.InputHandler;
import io.anuke.mindustry.ui.dialogs.*; import io.anuke.mindustry.ui.dialogs.*;
import io.anuke.mindustry.ui.fragments.*; import io.anuke.mindustry.ui.fragments.*;
import io.anuke.ucore.core.*; import io.anuke.arc.core.*;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.modules.SceneModule; import io.anuke.arc.modules.SceneModule;
import io.anuke.ucore.scene.Group; import io.anuke.arc.scene.Group;
import io.anuke.ucore.scene.Skin; import io.anuke.arc.scene.Skin;
import io.anuke.ucore.scene.actions.Actions; import io.anuke.arc.scene.actions.Actions;
import io.anuke.ucore.scene.ui.Dialog; import io.anuke.arc.scene.ui.Dialog;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import io.anuke.ucore.scene.ui.TextField.TextFieldFilter; import io.anuke.arc.scene.ui.TextField.TextFieldFilter;
import io.anuke.ucore.scene.ui.TooltipManager; import io.anuke.arc.scene.ui.TooltipManager;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.ucore.util.Strings; import io.anuke.arc.util.Strings;
import static io.anuke.mindustry.Vars.*; 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{ public class UI extends SceneModule{
private FreeTypeFontGenerator generator; private FreeTypeFontGenerator generator;
@@ -87,7 +87,7 @@ public class UI extends SceneModule{
TooltipManager.getInstance().animations = false; 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.closePadR = -1;
Dialog.closePadT = 5; Dialog.closePadT = 5;
@@ -202,7 +202,7 @@ public class UI extends SceneModule{
public void loadGraphics(String text, Runnable call){ public void loadGraphics(String text, Runnable call){
loadfrag.show(text); loadfrag.show(text);
Timers.runTask(7f, () -> { Time.runTask(7f, () -> {
call.run(); call.run();
loadfrag.hide(); loadfrag.hide();
}); });
@@ -214,7 +214,7 @@ public class UI extends SceneModule{
public void loadLogic(String text, Runnable call){ public void loadLogic(String text, Runnable call){
loadfrag.show(text); loadfrag.show(text);
Timers.runTask(7f, () -> Time.runTask(7f, () ->
threads.run(() -> { threads.run(() -> {
call.run(); call.run();
threads.runGraphics(loadfrag::hide); 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.Pos;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.OreBlock; import io.anuke.mindustry.world.blocks.OreBlock;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityQuery; import io.anuke.arc.entities.EntityQuery;
import io.anuke.ucore.modules.Module; import io.anuke.arc.modules.Module;
import io.anuke.ucore.util.*; import io.anuke.arc.util.*;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
@@ -209,8 +209,8 @@ public class World extends Module{
currentSector = sector; currentSector = sector;
state.difficulty = sectors.getDifficulty(sector); state.difficulty = sectors.getDifficulty(sector);
state.mode = sector.currentMission().getMode(); state.mode = sector.currentMission().getMode();
Timers.mark(); Time.mark();
Timers.mark(); Time.mark();
logic.reset(); logic.reset();
@@ -247,7 +247,7 @@ public class World extends Module{
Log.err(e); Log.err(e);
if(!headless){ if(!headless){
ui.showError("$text.map.invalid"); ui.showError("$text.map.invalid");
threads.runDelay(() -> state.set(State.menu)); Core.app.post(() -> state.set(State.menu));
invalidMap = true; invalidMap = true;
} }
generating = false; generating = false;
@@ -277,13 +277,13 @@ public class World extends Module{
invalidMap = false; invalidMap = false;
} }
if(invalidMap) threads.runDelay(() -> state.set(State.menu)); if(invalidMap) Core.app.post(() -> state.set(State.menu));
} }
public void notifyChanged(Tile tile){ public void notifyChanged(Tile tile){
if(!generating){ 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.arc.utils.IntSet;
import io.anuke.mindustry.maps.MapTileData; import io.anuke.mindustry.maps.MapTileData;
import io.anuke.mindustry.maps.MapTileData.TileDataMarker; import io.anuke.mindustry.maps.MapTileData.TileDataMarker;
import io.anuke.ucore.util.Bits; import io.anuke.arc.util.Bits;
public class DrawOperation{ 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.maps.MapTileData.TileDataMarker;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.function.IntPositionConsumer; import io.anuke.arc.function.IntPositionConsumer;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import io.anuke.ucore.util.Bits; import io.anuke.arc.util.Bits;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.ui; 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.maps.MapTileData.TileDataMarker;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import io.anuke.ucore.util.Bits; import io.anuke.arc.util.Bits;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.content;
public class MapEditor{ public class MapEditor{
public static final int[] brushSizes = {1, 2, 3, 4, 5, 9, 15}; 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.type.Recipe;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.core.Inputs; import io.anuke.arc.core.Inputs;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.input.Input; import io.anuke.arc.input.Input;
import io.anuke.ucore.scene.actions.Actions; import io.anuke.arc.scene.actions.Actions;
import io.anuke.ucore.scene.ui.*; import io.anuke.arc.scene.ui.*;
import io.anuke.ucore.scene.ui.layout.Stack; import io.anuke.arc.scene.ui.layout.Stack;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.UIUtils; import io.anuke.arc.scene.utils.UIUtils;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
import io.anuke.ucore.util.Log; import io.anuke.arc.util.Log;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Strings; import io.anuke.arc.util.Strings;
import java.io.DataInputStream; import java.io.DataInputStream;
import java.io.InputStream; import java.io.InputStream;
@@ -106,7 +106,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, meta.tags, false); editor.beginEdit(data, meta.tags, false);
view.clearStack(); view.clearStack();
}catch(Exception e){ }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); Log.err(e);
} }
}), true, mapExtension), }), true, mapExtension),
@@ -120,7 +120,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, editor.getTags(), false); editor.beginEdit(data, editor.getTags(), false);
view.clearStack(); view.clearStack();
}catch (Exception e){ }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); Log.err(e);
} }
}), true, "png") }), true, "png")
@@ -139,7 +139,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
} }
MapIO.writeMap(result.write(false), editor.getTags(), editor.getMap()); MapIO.writeMap(result.write(false), editor.getTags(), editor.getMap());
}catch(Exception e){ }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); Log.err(e);
} }
}); });
@@ -175,7 +175,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
editor.beginEdit(data, meta.tags, false); editor.beginEdit(data, meta.tags, false);
view.clearStack(); view.clearStack();
}catch(Exception e){ }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); Log.err(e);
} }
})); }));
@@ -214,7 +214,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
} }
shownWithMap = false; shownWithMap = false;
Timers.runTask(10f, Platform.instance::updateRPC); Time.runTask(10f, Platform.instance::updateRPC);
}); });
hidden(() -> { hidden(() -> {
@@ -311,7 +311,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
show(); show();
}catch(Exception e){ }catch(Exception e){
Log.err(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.arc.utils.ObjectMap;
import io.anuke.mindustry.core.Platform; import io.anuke.mindustry.core.Platform;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
import io.anuke.ucore.scene.ui.TextArea; import io.anuke.arc.scene.ui.TextArea;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
public class MapInfoDialog extends FloatingDialog{ public class MapInfoDialog extends FloatingDialog{
private final MapEditor editor; private final MapEditor editor;
@@ -53,10 +53,10 @@ public class MapInfoDialog extends FloatingDialog{
content().add("$text.editor.author").padRight(8).left(); 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); tags.put("author", text);
Settings.putString("mapAuthor", text); Core.settings.putString("mapAuthor", text);
Settings.save(); Core.settings.save();
}).size(400, 55f).get(); }).size(400, 55f).get();
author.setMessageText("$text.unknown"); 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.maps.Map;
import io.anuke.mindustry.ui.BorderImage; import io.anuke.mindustry.ui.BorderImage;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.ScrollPane; import io.anuke.arc.scene.ui.ScrollPane;
import io.anuke.ucore.scene.ui.TextButton; import io.anuke.arc.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import static io.anuke.mindustry.Vars.world; 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.game.Team;
import io.anuke.mindustry.maps.MapTileData.DataPosition; import io.anuke.mindustry.maps.MapTileData.DataPosition;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.IndexedRenderer; import io.anuke.arc.graphics.IndexedRenderer;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import io.anuke.ucore.util.Bits; import io.anuke.arc.util.Bits;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import static io.anuke.mindustry.Vars.content; import static io.anuke.mindustry.Vars.content;
import static io.anuke.mindustry.Vars.tilesize; 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.maps.MapTileData;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.BiConsumer; import io.anuke.arc.function.BiConsumer;
import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.arc.scene.ui.ButtonGroup;
import io.anuke.ucore.scene.ui.TextButton; import io.anuke.arc.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class MapResizeDialog extends FloatingDialog{ public class MapResizeDialog extends FloatingDialog{
int[] validMapSizes = {200, 300, 400, 500}; 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.core.Platform;
import io.anuke.mindustry.maps.Map; import io.anuke.mindustry.maps.Map;
import io.anuke.mindustry.ui.dialogs.FloatingDialog; import io.anuke.mindustry.ui.dialogs.FloatingDialog;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.scene.ui.TextButton; import io.anuke.arc.scene.ui.TextButton;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import static io.anuke.mindustry.Vars.ui; import static io.anuke.mindustry.Vars.ui;
import static io.anuke.mindustry.Vars.world; 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.editor.DrawOperation.TileOperation;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.ui.GridImage; import io.anuke.mindustry.ui.GridImage;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.core.Inputs; import io.anuke.arc.core.Inputs;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.scene.Element; import io.anuke.arc.scene.Element;
import io.anuke.ucore.scene.event.InputEvent; import io.anuke.arc.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener; import io.anuke.arc.scene.event.InputListener;
import io.anuke.ucore.scene.event.Touchable; import io.anuke.arc.scene.event.Touchable;
import io.anuke.ucore.scene.ui.TextField; import io.anuke.arc.scene.ui.TextField;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.arc.scene.ui.layout.Unit;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Tmp; import io.anuke.arc.util.Tmp;
import static io.anuke.mindustry.Vars.mobile; import static io.anuke.mindustry.Vars.mobile;
import static io.anuke.mindustry.Vars.ui; import static io.anuke.mindustry.Vars.ui;
@@ -214,7 +214,7 @@ public class MapView extends Element implements GestureListener{
super.act(delta); super.act(delta);
if(Core.scene.getKeyboardFocus() == null || !(Core.scene.getKeyboardFocus() instanceof TextField) && 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 ax = Inputs.getAxis("move_x");
float ay = Inputs.getAxis("move_y"); float ay = Inputs.getAxis("move_y");
offsetx -= ax * 15f / zoom; 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.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.function.Predicate; import io.anuke.arc.function.Predicate;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Physics; import io.anuke.arc.util.Physics;
import io.anuke.ucore.util.Translator; import io.anuke.arc.util.Translator;
import static io.anuke.mindustry.Vars.*; 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){ 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++){ for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){
int branches = 5 + Mathf.clamp((int) (power / 30), 1, 20); 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))); x, y, Mathf.random(360f), branches + Mathf.range(2)));
} }
for(int i = 0; i < Mathf.clamp(flammability / 4, 0, 30); i++){ 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); int waves = Mathf.clamp((int) (explosiveness / 4), 0, 30);
for(int i = 0; i < waves; i++){ for(int i = 0; i < waves; i++){
int f = 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)); 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)); 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.Tile;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.mindustry.world.blocks.storage.CoreBlock.CoreEntity; import io.anuke.mindustry.world.blocks.storage.CoreBlock.CoreEntity;
import io.anuke.ucore.core.*; import io.anuke.arc.core.*;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery; import io.anuke.arc.entities.EntityQuery;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Hue; import io.anuke.arc.graphics.Hue;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.*; import io.anuke.arc.util.*;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -150,7 +150,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
} }
if(interpolator.target.dst(interpolator.last) > 1f){ 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(){ public void drawStats(){
float x = snappedX(), y = snappedY(); 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.alpha(hitTime / hitDuration);
Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90); Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90);
Draw.color(); Draw.color();
@@ -400,7 +400,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
boolean ints = Core.font.usesIntegerPositions(); boolean ints = Core.font.usesIntegerPositions();
Core.font.setUseIntegerPositions(false); 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); layout.setText(Core.font, name);
Draw.color(0f, 0f, 0f, 0.3f); Draw.color(0f, 0f, 0f, 0.3f);
Draw.rect("blank", x, y + 8 - layout.height / 2, layout.width + 2, layout.height + 3); 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); 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( Lines.square(
request.x * tilesize + block.offset(), request.x * tilesize + block.offset(),
@@ -454,7 +454,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
Draw.color(Palette.accentBack); 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( Lines.square(
request.x * tilesize + request.recipe.result.offset(), request.x * tilesize + request.recipe.result.offset(),
@@ -479,7 +479,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
@Override @Override
public void update(){ public void update(){
hitTime -= Timers.delta(); hitTime -= Time.delta();
if(Float.isNaN(x) || Float.isNaN(y)){ if(Float.isNaN(x) || Float.isNaN(y)){
velocity.set(0f, 0f); velocity.set(0f, 0f);
@@ -611,7 +611,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra
pointerY = vec.y; pointerY = vec.y;
updateShooting(); updateShooting();
movement.limit(speed).scl(Timers.delta()); movement.limit(speed).scl(Time.delta());
if(getCarrier() == null){ if(getCarrier() == null){
if(!ui.chatfrag.chatOpen()){ 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; 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){ 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){ }else if(target == null){
rotation = Mathf.slerpDelta(rotation, velocity.angle(), velocity.len() / 10f); 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){ if(mech.flying){
//hovering effect //hovering effect
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f); x += Mathf.sin(Time.time() + id * 999, 25f, 0.08f);
y += Mathf.cos(Timers.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 //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(mobile){
if(target == null){ if(target == null){
isShooting = false; isShooting = false;
if(Settings.getBool("autotarget")){ if(Core.settings.getBool("autotarget")){
target = Units.getClosestTarget(team, x, y, getWeapon().getAmmo().getRange()); target = Units.getClosestTarget(team, x, y, getWeapon().getAmmo().getRange());
if(mech.canHeal && target == null){ 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.arc.math.Vector2;
import io.anuke.mindustry.entities.traits.TargetTrait; 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. * 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.entities.traits.Saveable;
import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ContentType;
import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.type.StatusEffect;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.util.Pooling; import io.anuke.arc.util.Pooling;
import io.anuke.ucore.util.ThreadArray; import io.anuke.arc.util.ThreadArray;
import io.anuke.ucore.util.Tmp; import io.anuke.arc.util.Tmp;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -88,7 +88,7 @@ public class StatusController implements Saveable{
removals.clear(); removals.clear();
for(StatusEntry entry : statuses){ 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){ if(entry.time <= 0){
Pooling.free(entry); 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.ItemModule;
import io.anuke.mindustry.world.modules.LiquidModule; import io.anuke.mindustry.world.modules.LiquidModule;
import io.anuke.mindustry.world.modules.PowerModule; import io.anuke.mindustry.world.modules.PowerModule;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.BaseEntity; import io.anuke.arc.entities.impl.BaseEntity;
import io.anuke.ucore.entities.trait.HealthTrait; import io.anuke.arc.entities.trait.HealthTrait;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Timer; import io.anuke.arc.util.Timer;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -89,12 +89,12 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
/**Scaled delta.*/ /**Scaled delta.*/
public float 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.*/ /**Call when nothing is happening to the entity. This increments the internal sleep timer.*/
public void sleep(){ public void sleep(){
sleepTime += Timers.delta(); sleepTime += Time.delta();
if(!sleeping && sleepTime >= timeToSleep){ if(!sleeping && sleepTime >= timeToSleep){
remove(); remove();
sleeping = true; sleeping = true;
@@ -265,12 +265,12 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{
public void update(){ public void update(){
//TODO better smoke effect, this one is awful //TODO better smoke effect, this one is awful
if(health != 0 && health < tile.block().health && !(tile.block() instanceof Wall) && 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)); Effects.effect(Fx.smoke, x + Mathf.range(4), y + Mathf.range(4));
} }
timeScaleDuration -= Timers.delta(); timeScaleDuration -= Time.delta();
if(timeScaleDuration <= 0f || !tile.block().canOverdrive){ if(timeScaleDuration <= 0f || !tile.block().canOverdrive){
timeScale = 1f; 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.Pos;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.impl.DestructibleEntity; import io.anuke.arc.entities.impl.DestructibleEntity;
import io.anuke.ucore.entities.trait.DamageTrait; import io.anuke.arc.entities.trait.DamageTrait;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.arc.entities.trait.SolidTrait;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -235,11 +235,11 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
status.update(this); 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()){ if(isFlying()){
x += velocity.x * Timers.delta(); x += velocity.x * Time.delta();
y += velocity.y * Timers.delta(); y += velocity.y * Time.delta();
}else{ }else{
boolean onLiquid = floor.isLiquid; 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); 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){ if(onLiquid && floor.drownTime > 0){
drownTime += Timers.delta() * 1f / floor.drownTime; drownTime += Time.delta() * 1f / floor.drownTime;
if(Mathf.chance(Timers.delta() * 0.05f)){ if(Mathf.chance(Time.delta() * 0.05f)){
Effects.effect(floor.drownUpdateEffect, floor.liquidColor, x, y); Effects.effect(floor.drownUpdateEffect, floor.liquidColor, x, y);
} }
}else{ }else{
@@ -283,12 +283,12 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
} }
float px = x, py = y; 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(px - x) <= 0.0001f) velocity.x = 0f;
if(Math.abs(py - y) <= 0.0001f) velocity.y = 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){ 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){ 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){ public void damage(float amount, boolean withEffect){
@@ -317,7 +317,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ
} }
public void drawStats(){ 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.alpha(hitTime);
Draw.rect(getPowerCellRegion(), x, y, rotation - 90); Draw.rect(getPowerCellRegion(), x, y, rotation - 90);
Draw.color(); 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.game.Team;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.EntityQuery; import io.anuke.arc.entities.EntityQuery;
import io.anuke.ucore.function.Consumer; import io.anuke.arc.function.Consumer;
import io.anuke.ucore.function.Predicate; import io.anuke.arc.function.Predicate;
import io.anuke.ucore.util.EnumSet; import io.anuke.arc.util.EnumSet;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;

View File

@@ -1,9 +1,9 @@
package io.anuke.mindustry.entities.bullet; package io.anuke.mindustry.entities.bullet;
import io.anuke.mindustry.content.fx.BulletFx; import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
//TODO scale velocity depending on fslope() //TODO scale velocity depending on fslope()
public class ArtilleryBulletType extends BasicBulletType{ 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.Units;
import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.entities.traits.TargetTrait;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
/** /**
* A BulletType for most ammo-based bullets shot from turrets and units. * 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){ if(homingPower > 0.0001f){
TargetTrait target = Units.getClosestTarget(b.getTeam(), b.x, b.y, homingRange); TargetTrait target = Units.getClosestTarget(b.getTeam(), b.x, b.y, homingRange);
if(target != null){ 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.entities.traits.TeamTrait;
import io.anuke.mindustry.game.Team; import io.anuke.mindustry.game.Team;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.BulletEntity; import io.anuke.arc.entities.impl.BulletEntity;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.arc.entities.trait.SolidTrait;
import io.anuke.ucore.entities.trait.VelocityTrait; import io.anuke.arc.entities.trait.VelocityTrait;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Pooling; import io.anuke.arc.util.Pooling;
import io.anuke.ucore.util.Timer; import io.anuke.arc.util.Timer;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -69,7 +69,7 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
bullet.type = type; bullet.type = type;
bullet.lifeScl = lifetimeScl; 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(); bullet.add();
return bullet; return bullet;
@@ -236,7 +236,7 @@ public class Bullet extends BulletEntity<BulletType> implements TeamTrait, SyncT
@Override @Override
protected void updateLife(){ protected void updateLife(){
time += Timers.delta() * 1f/(lifeScl); time += Time.delta() * 1f/(lifeScl);
time = Mathf.clamp(time, 0, type.lifetime()); time = Mathf.clamp(time, 0, type.lifetime());
if(time >= 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.ContentType;
import io.anuke.mindustry.type.StatusEffect; import io.anuke.mindustry.type.StatusEffect;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.entities.impl.BaseBulletType; import io.anuke.arc.entities.impl.BaseBulletType;
import io.anuke.ucore.util.Translator; import io.anuke.arc.util.Translator;
public abstract class BulletType extends Content implements BaseBulletType<Bullet>{ public abstract class BulletType extends Content implements BaseBulletType<Bullet>{
public float lifetime; public float lifetime;

View File

@@ -3,7 +3,7 @@ package io.anuke.mindustry.entities.bullet;
import io.anuke.arc.math.Rectangle; import io.anuke.arc.math.Rectangle;
import io.anuke.mindustry.content.fx.BulletFx; import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.entities.Units; import io.anuke.mindustry.entities.Units;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
public abstract class FlakBulletType extends BasicBulletType{ public abstract class FlakBulletType extends BasicBulletType{
protected static Rectangle rect = new Rectangle(); protected static Rectangle rect = new Rectangle();
@@ -29,7 +29,7 @@ public abstract class FlakBulletType extends BasicBulletType{
if(unit.distanceTo(b) < explodeRange){ if(unit.distanceTo(b) < explodeRange){
b.setData(0); b.setData(0);
Timers.run(5f, () -> { Time.run(5f, () -> {
if(b.getData() instanceof Integer){ if(b.getData() instanceof Integer){
b.time(b.lifetime()); 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.entities.effect.Puddle;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world; 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.arc.graphics.Color;
import io.anuke.mindustry.content.fx.BulletFx; import io.anuke.mindustry.content.fx.BulletFx;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class MissileBulletType extends BasicBulletType{ public class MissileBulletType extends BasicBulletType{
protected Color trailColor = Palette.missileYellowBack; protected Color trailColor = Palette.missileYellowBack;
@@ -21,7 +21,7 @@ public class MissileBulletType extends BasicBulletType{
public void update(Bullet b){ public void update(Bullet b){
super.update(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); 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.arc.graphics.Color;
import io.anuke.mindustry.entities.traits.BelowLiquidTrait; import io.anuke.mindustry.entities.traits.BelowLiquidTrait;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity; import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.groundEffectGroup; 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.net.Net;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity; import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Pooling; import io.anuke.arc.util.Pooling;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; 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){ public static void extinguish(Tile tile, float intensity){
if(tile != null && map.containsKey(tile.pos())){ 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 @Override
public void update(){ 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)); 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)); 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; return;
} }
time = Mathf.clamp(time + Timers.delta(), 0, lifetime()); time = Mathf.clamp(time + Time.delta(), 0, lifetime());
if(time >= lifetime() || tile == null){ if(time >= lifetime() || tile == null){
Call.onFireRemoved(getID()); Call.onFireRemoved(getID());
@@ -118,7 +118,7 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
float flammability = baseFlammability + puddleFlammability; float flammability = baseFlammability + puddleFlammability;
if(!damage && flammability <= 0){ if(!damage && flammability <= 0){
time += Timers.delta() * 8; time += Time.delta() * 8;
} }
if(baseFlammability < 0 || block != tile.block()){ if(baseFlammability < 0 || block != tile.block()){
@@ -127,20 +127,20 @@ public class Fire extends TimedEntity implements SaveTrait, SyncTrait, Poolable{
} }
if(damage){ 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); GridPoint2 p = Mathf.select(Geometry.d4);
Tile other = world.tile(tile.x + p.x, tile.y + p.y); Tile other = world.tile(tile.x + p.x, tile.y + p.y);
create(other); 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)); 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); Puddle p = Puddle.getPuddle(tile);
if(p != null){ if(p != null){
puddleFlammability = p.getFlammability() / 3f; 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.Vars;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Effects.Effect; import io.anuke.arc.core.Effects.Effect;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.impl.EffectEntity; import io.anuke.arc.entities.impl.EffectEntity;
import io.anuke.ucore.core.Effects.EffectRenderer; import io.anuke.arc.core.Effects.EffectRenderer;
import io.anuke.ucore.util.Mathf; 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. * 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; GroundEffect effect = (GroundEffect) this.effect;
if(effect.isStatic){ if(effect.isStatic){
time += Timers.delta(); time += Time.delta();
time = Mathf.clamp(time, 0, effect.staticLife); time = Mathf.clamp(time, 0, effect.staticLife);

View File

@@ -1,23 +1,23 @@
package io.anuke.mindustry.entities.effect; 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.Loc;
import io.anuke.annotations.Annotations.Remote; 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.entities.Unit;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.mindustry.world.Tile; 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.effectGroup;
import static io.anuke.mindustry.Vars.threads; 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){ 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; if(tile == null || tile.entity == null || tile.entity.items == null) return;
for(int i = 0; i < Mathf.clamp(amount / 3, 1, 8); i++){ 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); 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.game.Team;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.TimedEntity; import io.anuke.arc.entities.impl.TimedEntity;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.entities.trait.PosTrait; import io.anuke.arc.entities.trait.PosTrait;
import io.anuke.ucore.entities.trait.TimeTrait; import io.anuke.arc.entities.trait.TimeTrait;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.util.*; import io.anuke.arc.util.*;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; 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.net.Net;
import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.type.Liquid;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.entities.impl.SolidEntity; import io.anuke.arc.entities.impl.SolidEntity;
import io.anuke.ucore.entities.trait.DrawTrait; import io.anuke.arc.entities.trait.DrawTrait;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Hue; import io.anuke.arc.graphics.Hue;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Pooling; import io.anuke.arc.util.Pooling;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -85,10 +85,10 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
Puddle p = map.get(tile.pos()); 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, Effects.effect(BlockFx.ripple, tile.floor().liquidDrop.color,
(tile.worldx() + source.worldx()) / 2f, (tile.worldy() + source.worldy()) / 2f); (tile.worldx() + source.worldx()) / 2f, (tile.worldy() + source.worldy()) / 2f);
p.lastRipple = Timers.time(); p.lastRipple = Time.time();
} }
return; return;
} }
@@ -108,9 +108,9 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
}else if(p.liquid == liquid){ }else if(p.liquid == liquid){
p.accepting = Math.max(amount, p.accepting); 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); 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{ }else{
p.amount += reactPuddle(p.liquid, liquid, amount, p.tile, p.x, p.y); 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 //update code
float addSpeed = accepting > 0 ? 3f : 0f; float addSpeed = accepting > 0 ? 3f : 0f;
amount -= Timers.delta() * (1f - liquid.viscosity) / (5f + addSpeed); amount -= Time.delta() * (1f - liquid.viscosity) / (5f + addSpeed);
amount += accepting; amount += accepting;
accepting = 0f; accepting = 0f;
if(amount >= maxLiquid / 1.5f && generation < maxGeneration){ 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){ for(GridPoint2 point : Geometry.d4){
Tile other = world.tile(tile.x + point.x, tile.y + point.y); Tile other = world.tile(tile.x + point.x, tile.y + point.y);
if(other != null && other.block() == Blocks.air && !other.hasCliffs()){ 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); Fire.create(tile);
} }
updateTime = 20f; updateTime = 20f;
} }
updateTime -= Timers.delta(); updateTime -= Time.delta();
} }
@Override @Override
@@ -233,10 +233,10 @@ public class Puddle extends SolidEntity implements SaveTrait, Poolable, DrawTrai
float sscl = 20f; float sscl = 20f;
Draw.color(Hue.shift(tmp.set(liquid.color), 2, -0.05f)); 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) -> { Angles.randLenVectors(id, 3, f * 6f, (ex, ey) -> {
Fill.circle(x + ex + Mathf.sin(Timers.time() + seeds * 532, sscl, smag), Fill.circle(x + ex + Mathf.sin(Time.time() + seeds * 532, sscl, smag),
y + ey + Mathf.sin(Timers.time() + seeds * 53, sscl, smag), f * 5f); y + ey + Mathf.sin(Time.time() + seeds * 53, sscl, smag), f * 5f);
seeds++; seeds++;
}); });
Draw.color(); Draw.color();

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.effect; package io.anuke.mindustry.entities.effect;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class RubbleDecal extends Decal{ public class RubbleDecal extends Decal{
private int size; 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.arc.graphics.g2d.TextureRegion;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.traits; package io.anuke.mindustry.entities.traits;
import io.anuke.ucore.entities.trait.DamageTrait; import io.anuke.arc.entities.trait.DamageTrait;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
public interface AbsorbTrait extends Entity, TeamTrait, DamageTrait{ public interface AbsorbTrait extends Entity, TeamTrait, DamageTrait{
void absorb(); 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.Tile;
import io.anuke.mindustry.world.blocks.BuildBlock; import io.anuke.mindustry.world.blocks.BuildBlock;
import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity; import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.graphics.Lines; import io.anuke.arc.graphics.Lines;
import io.anuke.ucore.graphics.Shapes; import io.anuke.arc.graphics.Shapes;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -240,9 +240,9 @@ public interface BuilderTrait extends Entity{
if(!Net.client()){ if(!Net.client()){
//deconstructing is 2x as fast //deconstructing is 2x as fast
if(current.breaking){ 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{ }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(); current.progress = entity.progress();
@@ -251,7 +251,7 @@ public interface BuilderTrait extends Entity{
} }
if(!current.initialized){ 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; current.initialized = true;
} }
} }
@@ -268,7 +268,7 @@ public interface BuilderTrait extends Entity{
Item item = tile.floor().drops.item; Item item = tile.floor().drops.item;
unit.rotation = Mathf.slerpDelta(unit.rotation, unit.angleTo(tile.worldx(), tile.worldy()), 0.4f); 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){ if(unit.distanceTo(core) < mineTransferRange && core.tile.block().acceptStack(item, 1, core.tile, unit) == 1){
Call.transferItemTo(item, 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, Effects.effect(BlockFx.pulverizeSmall,
tile.worldx() + Mathf.range(tilesize / 2f), tile.worldx() + Mathf.range(tilesize / 2f),
tile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color); tile.worldy() + Mathf.range(tilesize / 2f), 0f, item.color);
@@ -309,7 +309,7 @@ public interface BuilderTrait extends Entity{
} }
Draw.color(Palette.accent); 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 px = unit.x + Angles.trnsx(unit.rotation, focusLen);
float py = unit.y + Angles.trnsy(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, x1, y1);
Lines.line(px, py, x3, y3); 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(); Draw.color();
} }
@@ -343,22 +343,22 @@ public interface BuilderTrait extends Entity{
if(tile == null) return; 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 swingScl = 12f, swingMag = tilesize / 8f;
float flashScl = 0.3f; float flashScl = 0.3f;
float px = unit.x + Angles.trnsx(unit.rotation, focusLen); float px = unit.x + Angles.trnsx(unit.rotation, focusLen);
float py = unit.y + Angles.trnsy(unit.rotation, focusLen); float py = unit.y + Angles.trnsy(unit.rotation, focusLen);
float ex = tile.worldx() + Mathf.sin(Timers.time() + 48, swingScl, swingMag); float ex = tile.worldx() + Mathf.sin(Time.time() + 48, swingScl, swingMag);
float ey = tile.worldy() + Mathf.sin(Timers.time() + 48, swingScl + 2f, 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); Shapes.laser("minelaser", "minelaser-end", px, py, ex, ey);
if(unit instanceof Player && ((Player) unit).isLocal){ if(unit instanceof Player && ((Player) unit).isLocal){
Draw.color(Palette.accent); 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(); Draw.color();

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.traits; 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{ 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.content.fx.UnitFx;
import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.Player;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.arc.entities.trait.SolidTrait;
public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{ public interface CarryTrait extends TeamTrait, SolidTrait, TargetTrait{

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.traits; 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. * Marks an entity as serializable.

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.entities.traits; package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.type.Weapon; import io.anuke.mindustry.type.Weapon;
import io.anuke.ucore.entities.trait.VelocityTrait; import io.anuke.arc.entities.trait.VelocityTrait;
import io.anuke.ucore.util.Timer; import io.anuke.arc.util.Timer;
public interface ShooterTrait extends VelocityTrait, TeamTrait, InventoryTrait{ 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.core.NetClient;
import io.anuke.mindustry.net.Interpolator; import io.anuke.mindustry.net.Interpolator;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.entities.trait.Entity; import io.anuke.arc.entities.trait.Entity;
import io.anuke.ucore.util.Tmp; import io.anuke.arc.util.Tmp;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;

View File

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

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.traits; package io.anuke.mindustry.entities.traits;
import io.anuke.mindustry.game.Team; 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{ public interface TeamTrait extends Entity{
Team getTeam(); Team getTeam();

View File

@@ -1,8 +1,8 @@
package io.anuke.mindustry.entities.traits; package io.anuke.mindustry.entities.traits;
import io.anuke.arc.utils.Array; import io.anuke.arc.collection.Array;
import io.anuke.arc.utils.ObjectIntMap; import io.anuke.arc.collection.ObjectIntMap;
import io.anuke.ucore.function.Supplier; import io.anuke.arc.function.Supplier;
public interface TypeTrait{ public interface TypeTrait{
int[] lastRegisteredID = {0}; 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.Tile;
import io.anuke.mindustry.world.blocks.units.CommandCenter.CommandCenterEntity; import io.anuke.mindustry.world.blocks.units.CommandCenter.CommandCenterEntity;
import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.*; import io.anuke.arc.util.*;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -77,7 +77,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
Effects.shake(2f, 2f, unit); Effects.shake(2f, 2f, unit);
//must run afterwards so the unit's group is not null when sending the removal packet //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 @Override
@@ -282,7 +282,7 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{
@Override @Override
public void update(){ public void update(){
hitTime -= Timers.delta(); hitTime -= Time.delta();
if(isDead()){ if(isDead()){
updateRespawning(); updateRespawning();

View File

@@ -10,9 +10,9 @@ import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.type.AmmoType;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.*; import io.anuke.arc.util.*;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -99,7 +99,7 @@ public abstract class FlyingUnit extends BaseUnit implements CarryTrait{
}); });
if(target != null){ 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(){ protected void wobble(){
if(Net.client()) return; if(Net.client()) return;
x += Mathf.sin(Timers.time() + id * 999, 25f, 0.08f)*Timers.delta(); x += Mathf.sin(Time.time() + id * 999, 25f, 0.08f)*Time.delta();
y += Mathf.cos(Timers.time() + id * 999, 25f, 0.08f)*Timers.delta(); y += Mathf.cos(Time.time() + id * 999, 25f, 0.08f)*Time.delta();
if(velocity.len() <= 0.05f){ 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.rotate((circleLength - vec.len()) / circleLength * 180f);
} }
vec.setLength(speed * Timers.delta()); vec.setLength(speed * Time.delta());
velocity.add(vec); 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); 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); if(length < 0) vec.rotate(180f);
velocity.add(vec); 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.setAngle(Mathf.slerpDelta(velocity.angle(), vec.angle(), 0.44f));
} }
vec.setLength(type.speed * Timers.delta()); vec.setLength(type.speed * Time.delta());
velocity.add(vec); 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.type.Weapon;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.util.Angles; import io.anuke.arc.util.Angles;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Translator; import io.anuke.arc.util.Translator;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -119,14 +119,14 @@ public abstract class GroundUnit extends BaseUnit{
public void update(){ public void update(){
super.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()){ if(!velocity.isZero()){
baseRotation = Mathf.slerpDelta(baseRotation, velocity.angle(), 0.05f); baseRotation = Mathf.slerpDelta(baseRotation, velocity.angle(), 0.05f);
} }
if(stuckTime < 1f){ if(stuckTime < 1f){
walkTime += Timers.delta(); walkTime += Time.delta();
} }
} }
@@ -238,12 +238,12 @@ public abstract class GroundUnit extends BaseUnit{
} }
protected void patrol(){ protected void patrol(){
vec.trns(baseRotation, type.speed * Timers.delta()); vec.trns(baseRotation, type.speed * Time.delta());
velocity.add(vec.x, vec.y); velocity.add(vec.x, vec.y);
vec.trns(baseRotation, type.hitsizeTile); vec.trns(baseRotation, type.hitsizeTile);
Tile tile = world.tileWorld(x + vec.x, y + vec.y); Tile tile = world.tileWorld(x + vec.x, y + vec.y);
if((tile == null || tile.solid() || tile.floor().drownTime > 0) || stuckTime > 10f){ 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); 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.rotate((circleLength - vec.len()) / circleLength * 180f);
} }
vec.setLength(type.speed * Timers.delta()); vec.setLength(type.speed * Time.delta());
velocity.add(vec); velocity.add(vec);
} }
@@ -272,7 +272,7 @@ public abstract class GroundUnit extends BaseUnit{
float angle = angleTo(targetTile); 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); rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
} }
@@ -296,7 +296,7 @@ public abstract class GroundUnit extends BaseUnit{
float angle = angleTo(targetTile); 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); rotation = Mathf.slerpDelta(rotation, angle, type.rotatespeed);
} }
} }

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.entities.units; package io.anuke.mindustry.entities.units;
import io.anuke.arc.math.Vector2; 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; import static io.anuke.mindustry.Vars.threads;

View File

@@ -1,6 +1,6 @@
package io.anuke.mindustry.entities.units; package io.anuke.mindustry.entities.units;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
public enum UnitCommand{ public enum UnitCommand{
attack, retreat, patrol; attack, retreat, patrol;
@@ -8,7 +8,7 @@ public enum UnitCommand{
private final String localized; private final String localized;
UnitCommand(){ UnitCommand(){
localized = Bundles.get("command." + name()); localized = Core.bundle.get("command." + name());
} }
public String localized(){ 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.entities.TileEntity;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
public class UnitDrops{ public class UnitDrops{
private static Item[] dropTable; 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.Item;
import io.anuke.mindustry.type.Weapon; import io.anuke.mindustry.type.Weapon;
import io.anuke.mindustry.ui.ContentDisplay; import io.anuke.mindustry.ui.ContentDisplay;
import io.anuke.ucore.function.Supplier; import io.anuke.arc.function.Supplier;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.scene.ui.layout.Table; import io.anuke.arc.scene.ui.layout.Table;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
import io.anuke.ucore.util.Log; import io.anuke.arc.util.Log;
import io.anuke.ucore.util.Strings; import io.anuke.arc.util.Strings;
public class UnitType extends UnlockableContent{ public class UnitType extends UnlockableContent{
protected final Supplier<? extends BaseUnit> constructor; 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){ public <T extends BaseUnit> UnitType(String name, Class<T> type, Supplier<T> mainConstructor){
this.name = name; this.name = name;
this.constructor = mainConstructor; this.constructor = mainConstructor;
this.description = Bundles.getOrNull("unit." + name + ".description"); this.description = Core.bundle.getOrNull("unit." + name + ".description");
TypeTrait.registerType(type, mainConstructor); 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("Warning: unit '" + name + "' is missing a localized name. Add the follow to bundle.properties:");
Log.err("unit." + this.name + ".name=" + Strings.capitalize(name.replace('-', '_'))); Log.err("unit." + this.name + ".name=" + Strings.capitalize(name.replace('-', '_')));
} }
@@ -68,7 +68,7 @@ public class UnitType extends UnlockableContent{
@Override @Override
public String localizedName(){ public String localizedName(){
return Bundles.get("unit." + name + ".name"); return Core.bundle.get("unit." + name + ".name");
} }
@Override @Override

View File

@@ -15,8 +15,8 @@ import io.anuke.mindustry.entities.units.UnitState;
import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.gen.Call;
import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Net;
import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.type.AmmoType;
import io.anuke.ucore.core.Effects; import io.anuke.arc.core.Effects;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;
@@ -72,7 +72,7 @@ public class AlphaDrone extends FlyingUnit {
if(drone == null) return; if(drone == null) return;
Effects.effect(UnitFx.pickup, drone); Effects.effect(UnitFx.pickup, drone);
//must run afterwards so the unit's group is not null when sending the removal packet //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 @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;
import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity; import io.anuke.mindustry.world.blocks.BuildBlock.BuildEntity;
import io.anuke.mindustry.world.meta.BlockFlag; import io.anuke.mindustry.world.meta.BlockFlag;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.entities.EntityGroup; import io.anuke.arc.entities.EntityGroup;
import io.anuke.ucore.util.Geometry; import io.anuke.arc.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import java.io.DataInput; import java.io.DataInput;
import java.io.DataOutput; import java.io.DataOutput;

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.game; package io.anuke.mindustry.game;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.ucore.util.Bundles; import io.anuke.arc.util.Bundles;
public enum Team{ public enum Team{
none(Color.valueOf("4d4e58")), none(Color.valueOf("4d4e58")),
@@ -21,6 +21,6 @@ public enum Team{
} }
public String localized(){ 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.arc.utils.ObjectSet;
import io.anuke.mindustry.Vars; import io.anuke.mindustry.Vars;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.util.EnumSet; import io.anuke.arc.util.EnumSet;
import io.anuke.ucore.util.ThreadSet; import io.anuke.arc.util.ThreadSet;
/** /**
* Class for various team-based utilities. * Class for various team-based utilities.

View File

@@ -1,7 +1,7 @@
package io.anuke.mindustry.game; package io.anuke.mindustry.game;
import io.anuke.arc.graphics.g2d.TextureRegion; 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; 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.arc.utils.ObjectSet;
import io.anuke.mindustry.game.EventType.UnlockEvent; import io.anuke.mindustry.game.EventType.UnlockEvent;
import io.anuke.mindustry.type.ContentType; import io.anuke.mindustry.type.ContentType;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Settings; import io.anuke.arc.core.Settings;
/**Stores player unlocks. Clientside only.*/ /**Stores player unlocks. Clientside only.*/
public class Unlocks{ public class Unlocks{
@@ -13,7 +13,7 @@ public class Unlocks{
private boolean dirty; private boolean dirty;
static{ 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.*/ /** Returns whether or not this piece of content is unlocked yet.*/
@@ -67,12 +67,12 @@ public class Unlocks{
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void load(){ public void load(){
unlocked = Settings.getObject("unlockset", ObjectMap.class, ObjectMap::new); unlocked = Core.settings.getObject("unlockset", ObjectMap.class, ObjectMap::new);
} }
public void save(){ public void save(){
Settings.putObject("unlockset", unlocked); Core.settings.putObject("unlockset", unlocked);
Settings.save(); Core.settings.save();
} }
} }

View File

@@ -4,7 +4,7 @@ import io.anuke.arc.Core;
import io.anuke.arc.files.FileHandle; import io.anuke.arc.files.FileHandle;
import io.anuke.arc.utils.ObjectMap; import io.anuke.arc.utils.ObjectMap;
import io.anuke.arc.utils.PropertiesUtils; import io.anuke.arc.utils.PropertiesUtils;
import io.anuke.ucore.util.Strings; import io.anuke.arc.util.Strings;
import java.io.IOException; 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.game.Team;
import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Block;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Surface; import io.anuke.arc.graphics.Surface;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import static io.anuke.mindustry.Vars.*; 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{ public class BlockRenderer{
private final static int initialRequests = 32 * 32; private final static int initialRequests = 32 * 32;

View File

@@ -1,10 +1,10 @@
package io.anuke.mindustry.graphics; package io.anuke.mindustry.graphics;
import io.anuke.arc.graphics.Color; import io.anuke.arc.graphics.Color;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Shader; import io.anuke.arc.graphics.Shader;
import static io.anuke.mindustry.Vars.renderer; 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.maps.Sector;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.mindustry.world.blocks.Floor; import io.anuke.mindustry.world.blocks.Floor;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.core.Timers; import io.anuke.arc.core.Timers;
import io.anuke.ucore.graphics.CacheBatch; import io.anuke.arc.graphics.CacheBatch;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import io.anuke.ucore.util.Log; import io.anuke.arc.util.Log;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.Structs; import io.anuke.arc.util.Structs;
import java.util.Arrays; import java.util.Arrays;
@@ -214,7 +214,7 @@ public class FloorRenderer{
cache = new Chunk[chunksx][chunksy]; cache = new Chunk[chunksx][chunksy];
cbatch = new CacheBatch(world.width() * world.height() * 4 * 4); cbatch = new CacheBatch(world.width() * world.height() * 4 * 4);
Timers.mark(); Time.mark();
for(int x = 0; x < chunksx; x++){ for(int x = 0; x < chunksx; x++){
for(int y = 0; y < chunksy; y++){ 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{ 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.TileChangeEvent;
import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent; import io.anuke.mindustry.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.entities.EntityDraw; import io.anuke.arc.entities.EntityDraw;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Fill; import io.anuke.arc.graphics.Fill;
import java.nio.ByteBuffer; 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.game.EventType.WorldLoadGraphicsEvent;
import io.anuke.mindustry.world.ColorMapper; import io.anuke.mindustry.world.ColorMapper;
import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.Tile;
import io.anuke.ucore.core.Core; import io.anuke.arc.core.Core;
import io.anuke.ucore.core.Events; import io.anuke.arc.core.Events;
import io.anuke.ucore.core.Graphics; import io.anuke.arc.core.Graphics;
import io.anuke.ucore.graphics.Draw; import io.anuke.arc.graphics.Draw;
import io.anuke.ucore.graphics.Pixmaps; import io.anuke.arc.graphics.Pixmaps;
import io.anuke.ucore.util.Mathf; import io.anuke.arc.util.Mathf;
import io.anuke.ucore.util.ThreadArray; import io.anuke.arc.util.ThreadArray;
import static io.anuke.mindustry.Vars.tilesize; import static io.anuke.mindustry.Vars.tilesize;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -41,7 +41,7 @@ public class MinimapRenderer implements Disposable{
}); });
//make sure to call on the graphics thread //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(){ public Texture getTexture(){

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