🔥🔥🔥🔥🔥🔥maximum breakage
This commit is contained in:
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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());
|
||||||
|
|||||||
@@ -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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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/");
|
||||||
|
|||||||
@@ -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.*;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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,*/
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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()));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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{
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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};
|
||||||
|
|||||||
@@ -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)));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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");
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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};
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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.*;
|
||||||
|
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|||||||
@@ -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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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){
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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());
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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};
|
||||||
|
|||||||
@@ -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();
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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(){
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|||||||
@@ -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");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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{
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user