diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index 5811fb2433..9b0422e42b 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,9 +1,10 @@ + android:versionCode="61" + android:versionName="3.3b12" > + diff --git a/android/src/io/anuke/mindustry/AndroidLauncher.java b/android/src/io/anuke/mindustry/AndroidLauncher.java index b7071205f2..be320a49f5 100644 --- a/android/src/io/anuke/mindustry/AndroidLauncher.java +++ b/android/src/io/anuke/mindustry/AndroidLauncher.java @@ -4,7 +4,6 @@ import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.telephony.TelephonyManager; @@ -49,13 +48,6 @@ public class AndroidLauncher extends AndroidApplication{ return NumberFormat.getIntegerInstance().format(number); } - @Override - public void openLink(String link){ - Uri marketUri = Uri.parse(link); - Intent intent = new Intent( Intent.ACTION_VIEW, marketUri ); - startActivity(intent); - } - @Override public void addDialog(TextField field, int length){ TextFieldDialogListener.add(field, 0, length); diff --git a/build.gradle b/build.gradle index 1a4ba5978e..0ccf28a2b0 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ allprojects { appName = "Mindustry" gdxVersion = '1.9.8' aiVersion = '1.8.1' - uCoreVersion = 'e78aec7'; + uCoreVersion = '298c4a4'; } repositories { @@ -42,7 +42,7 @@ project(":desktop") { compile "com.badlogicgames.gdx:gdx-backend-lwjgl3:$gdxVersion" compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" compile "com.badlogicgames.gdx:gdx-controllers-lwjgl3:$gdxVersion" - compile "com.github.MinnDevelopment:Java-DiscordRPC:dbd4aac" + compile 'com.github.MinnDevelopment:java-discord-rpc:v1.3.2' } } diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 09dcec134a..8b6fad6b62 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -35,7 +35,8 @@ import io.anuke.ucore.core.Inputs.Axis; import io.anuke.ucore.core.Inputs.DeviceType; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.EntityGroup; -import io.anuke.ucore.graphics.Atlas; +import io.anuke.ucore.graphics.Lines; +import io.anuke.ucore.util.Atlas; import io.anuke.ucore.modules.Module; import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.util.Input; @@ -97,7 +98,7 @@ public class Control extends Module{ block.postInit(); } - Draw.setCircleVertices(14); + Lines.setCircleVertices(14); Gdx.input.setCatchBackKey(true); diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index 6713e8fa84..6544f646f8 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -64,7 +64,7 @@ public class NetServer extends Module{ if(Vars.world.getMap().custom){ ByteArrayOutputStream stream = new ByteArrayOutputStream(); - NetworkIO.writeMap(Vars.world.getMap(), stream); + NetworkIO.writeMap(Vars.world.getMap().pixmap, stream); CustomMapPacket data = new CustomMapPacket(); data.stream = new ByteArrayInputStream(stream.toByteArray()); Net.sendStream(id, data); diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index f898e9aa17..16c5fced1d 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -28,7 +28,9 @@ import io.anuke.ucore.entities.DestructibleEntity; import io.anuke.ucore.entities.EffectEntity; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.function.Callable; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Hue; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.graphics.Surface; import io.anuke.ucore.modules.RendererModule; import io.anuke.ucore.scene.ui.layout.Unit; @@ -317,14 +319,14 @@ public class Renderer extends RendererModule{ int y = control.core.y + Vars.control.tutorial.getPlacePoint().y; int rot = Vars.control.tutorial.getPlaceRotation(); - Draw.thick(1f); + Lines.stroke(1f); Draw.color(Color.YELLOW); - Draw.square(x * tilesize, y * tilesize, tilesize / 2f + Mathf.sin(Timers.time(), 4f, 1f)); + Lines.square(x * tilesize, y * tilesize, tilesize / 2f + Mathf.sin(Timers.time(), 4f, 1f)); Draw.color(Color.ORANGE); - Draw.thick(2f); + Lines.stroke(2f); if(rot != -1){ - Draw.lineAngle(x * tilesize, y * tilesize, rot * 90, 6); + Lines.lineAngle(x * tilesize, y * tilesize, rot * 90, 6); } Draw.reset(); } @@ -333,8 +335,8 @@ public class Renderer extends RendererModule{ if(Vars.ui.configfrag.isShown()){ Tile tile = ui.configfrag.getSelectedTile(); Draw.color(Colors.get("accent")); - Draw.thick(1f); - Draw.square(tile.worldx() + tile.block().getPlaceOffset().x, tile.worldy() + tile.block().getPlaceOffset().y, + Lines.stroke(1f); + Lines.square(tile.worldx() + tile.block().getPlaceOffset().x, tile.worldy() + tile.block().getPlaceOffset().y, tile.block().width * Vars.tilesize / 2f + 1f); Draw.reset(); } @@ -356,10 +358,10 @@ public class Renderer extends RendererModule{ input.placeMode.draw(control.input.getBlockX(), control.input.getBlockY(), control.input.getBlockEndX(), control.input.getBlockEndY()); - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.SCARLET); for(SpawnPoint spawn : control.getSpawnPoints()){ - Draw.dashCircle(spawn.start.worldx(), spawn.start.worldy(), enemyspawnspace); + Lines.dashCircle(spawn.start.worldx(), spawn.start.worldy(), enemyspawnspace); } if(input.breakMode == PlaceMode.holdDelete) @@ -430,15 +432,15 @@ public class Renderer extends RendererModule{ x -= 0.5f; y += 0.5f; - Draw.thickness(3f); + Lines.stroke(3f); Draw.color(Color.SLATE); - Draw.line(x - len + 1, y, x + len + 1.5f, y); - Draw.thickness(1f); + Lines.line(x - len + 1, y, x + len + 1.5f, y); + Lines.stroke(1f); Draw.color(Color.BLACK); - Draw.line(x - len + 1, y, x + len + 0.5f, y); + Lines.line(x - len + 1, y, x + len + 0.5f, y); Draw.color(color); if(w >= 1) - Draw.line(x - len + 1, y, x - len + w, y); + Lines.line(x - len + 1, y, x - len + w, y); Draw.reset(); } diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 7fc80d5cf4..7f11db4338 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -13,6 +13,7 @@ import io.anuke.mindustry.ui.fragments.*; import io.anuke.ucore.core.*; import io.anuke.ucore.function.Consumer; import io.anuke.ucore.function.Listenable; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.modules.SceneModule; import io.anuke.ucore.scene.Skin; import io.anuke.ucore.scene.builders.build; diff --git a/core/src/io/anuke/mindustry/entities/Bullet.java b/core/src/io/anuke/mindustry/entities/Bullet.java index b26181b407..6089fd4cc0 100644 --- a/core/src/io/anuke/mindustry/entities/Bullet.java +++ b/core/src/io/anuke/mindustry/entities/Bullet.java @@ -10,13 +10,18 @@ import io.anuke.ucore.util.Mathf; import static io.anuke.mindustry.Vars.tilesize; public class Bullet extends BulletEntity{ - BulletType type; + public boolean absorbed = false; public Bullet(BulletType type, Entity owner, float x, float y, float angle){ super(type, owner, angle); set(x, y); this.type = type; } + + public void absorb(){ + absorbed = true; + remove(); + } public void draw(){ type.draw(this); diff --git a/core/src/io/anuke/mindustry/entities/BulletType.java b/core/src/io/anuke/mindustry/entities/BulletType.java index 431a42901e..cc0811212b 100644 --- a/core/src/io/anuke/mindustry/entities/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/BulletType.java @@ -5,10 +5,11 @@ import io.anuke.mindustry.entities.effect.DamageArea; import io.anuke.mindustry.entities.effect.EMP; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.graphics.Fx; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; import io.anuke.ucore.entities.BaseBulletType; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; @@ -45,8 +46,8 @@ public abstract class BulletType extends BaseBulletType{ sniper = new BulletType(3f, 25){ public void draw(Bullet b){ Draw.color(Color.LIGHT_GRAY); - Draw.thick(1f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), 3f); + Lines.stroke(1f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), 3f); Draw.reset(); } @@ -66,7 +67,7 @@ public abstract class BulletType extends BaseBulletType{ float rad = 6f + Mathf.sin(Timers.time(), 5f, 2f); Draw.color(Color.SKY); - Draw.circle(b.x, b.y, 4f); + Lines.circle(b.x, b.y, 4f); Draw.rect("circle", b.x, b.y, rad, rad); Draw.reset(); } @@ -138,10 +139,10 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b) { Draw.color(Color.GRAY); - Draw.thick(3f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), 2f); - Draw.thick(1.5f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), 5f); + Lines.stroke(3f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), 2f); + Lines.stroke(1.5f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), 5f); Draw.reset(); } @@ -168,8 +169,8 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b) { Draw.color(Color.LIGHT_GRAY, Color.GRAY, b.ifract()); - Draw.thick(2f - b.ifract()); - Draw.lineAngleCenter(b.x, b.y, b.angle(), 2f); + Lines.stroke(2f - b.ifract()); + Lines.lineAngleCenter(b.x, b.y, b.angle(), 2f); Draw.reset(); } }, @@ -324,8 +325,8 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color(Color.WHITE, lightOrange, b.fract()/2f + 0.25f); - Draw.thick(1.5f); - Draw.lineAngle(b.x, b.y, b.angle(), 3f); + Lines.stroke(1.5f); + Lines.lineAngle(b.x, b.y, b.angle(), 3f); Draw.reset(); } }, @@ -338,8 +339,8 @@ public abstract class BulletType extends BaseBulletType{ float size = 3f - b.ifract()*1f; Draw.color(Color.PURPLE, Color.WHITE, 0.8f); - Draw.thick(1f); - Draw.circle(b.x, b.y, size); + Lines.stroke(1f); + Lines.circle(b.x, b.y, size); Draw.reset(); } }, @@ -350,13 +351,13 @@ public abstract class BulletType extends BaseBulletType{ } public void draw(Bullet b){ - Draw.thick(2f); + Lines.stroke(2f); Draw.color(lightOrange, Color.WHITE, 0.4f); - Draw.polygon(b.x, b.y, 3, 1.6f, b.angle()); - Draw.thick(1f); + Lines.poly(b.x, b.y, 3, 1.6f, b.angle()); + Lines.stroke(1f); Draw.color(Color.WHITE, lightOrange, b.ifract()/2f); Draw.alpha(b.ifract()); - Draw.spikes(b.x, b.y, 1.5f, 2f, 6); + Lines.spikes(b.x, b.y, 1.5f, 2f, 6); Draw.reset(); } @@ -383,8 +384,8 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b){ Draw.color(lightGray); - Draw.thick(1f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), 2f); + Lines.stroke(1f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), 2f); Draw.reset(); } @@ -407,8 +408,8 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b) { Draw.color(Color.WHITE, Color.ORANGE, b.ifract()); - Draw.thick(2f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), b.fract()*5f); + Lines.stroke(2f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), b.fract()*5f); Draw.reset(); } @@ -435,8 +436,8 @@ public abstract class BulletType extends BaseBulletType{ public void draw(Bullet b) { Draw.color(Color.WHITE, Color.ORANGE, b.ifract()); - Draw.thick(1f); - Draw.lineAngleCenter(b.x, b.y, b.angle(), b.fract()*4f); + Lines.stroke(1f); + Lines.lineAngleCenter(b.x, b.y, b.angle(), b.fract()*4f); Draw.reset(); } }, @@ -456,18 +457,18 @@ public abstract class BulletType extends BaseBulletType{ Draw.color(beam); Draw.rect("circle", b.x, b.y, 6f*f, 6f*f); - Draw.thick(3f * f); - Draw.lineAngle(b.x, b.y, b.angle(), length); + Lines.stroke(3f * f); + Lines.lineAngle(b.x, b.y, b.angle(), length); - Draw.thick(2f * f); - Draw.lineAngle(b.x, b.y, b.angle(), length + 6f); - Draw.thick(1f * f); - Draw.lineAngle(b.x, b.y, b.angle(), length + 12f); + Lines.stroke(2f * f); + Lines.lineAngle(b.x, b.y, b.angle(), length + 6f); + Lines.stroke(1f * f); + Lines.lineAngle(b.x, b.y, b.angle(), length + 12f); Draw.color(beamLight); - Draw.thick(1.5f * f); + Lines.stroke(1.5f * f); Draw.rect("circle", b.x, b.y, 3f*f, 3f*f); - Draw.lineAngle(b.x, b.y, b.angle(), length); + Lines.lineAngle(b.x, b.y, b.angle(), length); } }; diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index d71f765e73..32a7078e0c 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -9,6 +9,7 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.ucore.core.*; import io.anuke.ucore.entities.SolidEntity; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; diff --git a/core/src/io/anuke/mindustry/entities/effect/EMP.java b/core/src/io/anuke/mindustry/entities/effect/EMP.java index 7824e958d2..e1c245cf87 100644 --- a/core/src/io/anuke/mindustry/entities/effect/EMP.java +++ b/core/src/io/anuke/mindustry/entities/effect/EMP.java @@ -8,9 +8,10 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerAcceptor; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.entities.TimedEntity; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; @@ -83,8 +84,8 @@ public class EMP extends TimedEntity{ drawLine(x + Angles.x(), y + Angles.y()); } - Draw.thick(fract()*2f); - Draw.polygon(x, y, 34, radius * Vars.tilesize); + Lines.stroke(fract()*2f); + Lines.poly(x, y, 34, radius * Vars.tilesize); Draw.reset(); } @@ -111,7 +112,7 @@ public class EMP extends TimedEntity{ } private void drawLaser(float x, float y, float x2, float y2){ - Draw.thick(fract() * 2f); - Draw.line(x, y, x2, y2); + Lines.stroke(fract() * 2f); + Lines.line(x, y, x2, y2); } } diff --git a/core/src/io/anuke/mindustry/entities/effect/Shield.java b/core/src/io/anuke/mindustry/entities/effect/Shield.java index 907be667dc..a25743b091 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Shield.java +++ b/core/src/io/anuke/mindustry/entities/effect/Shield.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.defense.ShieldBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.entities.BulletEntity; import io.anuke.ucore.entities.Entities; diff --git a/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java b/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java index 97020f75cd..5e781f2769 100644 --- a/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java +++ b/core/src/io/anuke/mindustry/entities/effect/TeslaOrb.java @@ -8,12 +8,13 @@ import com.badlogic.gdx.utils.ObjectSet; import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.graphics.Fx; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; import io.anuke.ucore.entities.Entities; import io.anuke.ucore.entities.Entity; import io.anuke.ucore.entities.SolidEntity; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Tmp; @@ -95,8 +96,8 @@ public class TeslaOrb extends Entity{ Draw.color(Color.WHITE); Draw.alpha(1f-life/lifetime); - Draw.thick(3f - life/lifetime*2f); - Draw.line(x1, y1, x2, y2); + Lines.stroke(3f - life/lifetime*2f); + Lines.line(x1, y1, x2, y2); float rad = 7f - life/lifetime*5f; @@ -108,7 +109,7 @@ public class TeslaOrb extends Entity{ //Draw.color(Color.WHITE); - //Draw.thick(2f - life/lifetime*2f); + //Draw.stroke(2f - life/lifetime*2f); //Draw.line(x1, y1, x2, y2); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/entities/enemies/EnemyType.java b/core/src/io/anuke/mindustry/entities/enemies/EnemyType.java index 7f5c58b384..59452857b2 100644 --- a/core/src/io/anuke/mindustry/entities/enemies/EnemyType.java +++ b/core/src/io/anuke/mindustry/entities/enemies/EnemyType.java @@ -12,7 +12,7 @@ import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Graphics; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/entities/enemies/types/HealerType.java b/core/src/io/anuke/mindustry/entities/enemies/types/HealerType.java index 79f6c383c4..131f40005a 100644 --- a/core/src/io/anuke/mindustry/entities/enemies/types/HealerType.java +++ b/core/src/io/anuke/mindustry/entities/enemies/types/HealerType.java @@ -11,7 +11,9 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.graphics.Shaders; import io.anuke.ucore.core.*; import io.anuke.ucore.entities.Entities; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Hue; +import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.Angles; public class HealerType extends EnemyType { @@ -75,7 +77,7 @@ public class HealerType extends EnemyType { if(target.health < target.maxhealth){ Draw.color(Hue.rgb(138, 244, 138, (MathUtils.sin(Timers.time()) + 1f) / 13f)); Draw.alpha(0.9f); - Draw.laser("laser", "laserend", enemy.x + Angles.x(), enemy.y + Angles.y(), target.x - Angles.x()/1.5f, target.y - Angles.y()/1.5f); + Shapes.laser("laser", "laserend", enemy.x + Angles.x(), enemy.y + Angles.y(), target.x - Angles.x()/1.5f, target.y - Angles.y()/1.5f); Draw.color(); } Graphics.shader(Shaders.outline); diff --git a/core/src/io/anuke/mindustry/entities/enemies/types/TargetType.java b/core/src/io/anuke/mindustry/entities/enemies/types/TargetType.java index e602a7160e..dc4443148c 100644 --- a/core/src/io/anuke/mindustry/entities/enemies/types/TargetType.java +++ b/core/src/io/anuke/mindustry/entities/enemies/types/TargetType.java @@ -6,8 +6,9 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.entities.enemies.EnemyType; import io.anuke.mindustry.entities.enemies.EnemyTypes; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; public class TargetType extends EnemyType { @@ -42,7 +43,7 @@ public class TargetType extends EnemyType { Draw.color(Color.YELLOW); if(Vars.control.getTutorial().showTarget()){ - Draw.spikes(enemy.x, enemy.y, 11f + Mathf.sin(Timers.time(), 7f, 1f), 4f, 8, Timers.time()); + Lines.spikes(enemy.x, enemy.y, 11f + Mathf.sin(Timers.time(), 7f, 1f), 4f, 8, Timers.time()); } Draw.color(); diff --git a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java index f3f7bcb603..fecf7afe3b 100644 --- a/core/src/io/anuke/mindustry/graphics/BlockRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/BlockRenderer.java @@ -15,9 +15,10 @@ import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.types.StaticBlock; import io.anuke.ucore.core.Core; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Graphics; import io.anuke.ucore.graphics.CacheBatch; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; import java.util.Arrays; @@ -195,7 +196,7 @@ public class BlockRenderer{ if(Vars.debug && Vars.debugChunks){ Draw.color(Color.YELLOW); - Draw.thick(1f); + Lines.stroke(1f); for(int x = -crangex; x <= crangex; x++){ for(int y = -crangey; y <= crangey; y++){ int worldx = Mathf.scl(camera.position.x, chunksize * tilesize) + x; @@ -203,7 +204,7 @@ public class BlockRenderer{ if(!Mathf.inBounds(worldx, worldy, cache)) continue; - Draw.linerect(worldx * chunksize * tilesize, worldy * chunksize * tilesize, chunksize * tilesize, chunksize * tilesize); + Lines.rect(worldx * chunksize * tilesize, worldy * chunksize * tilesize, chunksize * tilesize, chunksize * tilesize); } } Draw.reset(); @@ -215,9 +216,9 @@ public class BlockRenderer{ for(SpawnPoint point : control.getSpawnPoints()){ if(point.pathTiles != null){ for(int i = 1; i < point.pathTiles.length; i ++){ - Draw.line(point.pathTiles[i-1].worldx(), point.pathTiles[i-1].worldy(), + Lines.line(point.pathTiles[i-1].worldx(), point.pathTiles[i-1].worldy(), point.pathTiles[i].worldx(), point.pathTiles[i].worldy()); - Draw.circle(point.pathTiles[i-1].worldx(), point.pathTiles[i-1].worldy(), 6f); + Lines.circle(point.pathTiles[i-1].worldx(), point.pathTiles[i-1].worldy(), 6f); } } } diff --git a/core/src/io/anuke/mindustry/graphics/Fx.java b/core/src/io/anuke/mindustry/graphics/Fx.java index a67d5ccf9b..a54f16e981 100644 --- a/core/src/io/anuke/mindustry/graphics/Fx.java +++ b/core/src/io/anuke/mindustry/graphics/Fx.java @@ -3,9 +3,11 @@ package io.anuke.mindustry.graphics; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Colors; import io.anuke.mindustry.Vars; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.graphics.Hue; +import io.anuke.ucore.graphics.Lines; +import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; @@ -60,82 +62,82 @@ public class Fx{ chainshot = new Effect(9f, e -> { Draw.color(Color.WHITE, lightOrange, e.ifract()); - Draw.thick(e.fract()*4f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*7f); - Draw.thick(e.fract()*2f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*10f); + Lines.stroke(e.fract()*4f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*7f); + Lines.stroke(e.fract()*2f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*10f); Draw.reset(); }), mortarshot = new Effect(10f, e -> { Draw.color(Color.WHITE, Color.DARK_GRAY, e.ifract()); - Draw.thick(e.fract()*6f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*10f); - Draw.thick(e.fract()*5f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*14f); - Draw.thick(e.fract()*1f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); + Lines.stroke(e.fract()*6f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*10f); + Lines.stroke(e.fract()*5f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*14f); + Lines.stroke(e.fract()*1f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); Draw.reset(); }), railshot = new Effect(9f, e -> { Draw.color(Color.WHITE, Color.DARK_GRAY, e.ifract()); - Draw.thick(e.fract()*5f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*8f); - Draw.thick(e.fract()*4f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); - Draw.thick(e.fract()*1f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*14f); + Lines.stroke(e.fract()*5f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*8f); + Lines.stroke(e.fract()*4f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); + Lines.stroke(e.fract()*1f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*14f); Draw.reset(); }), titanshot = new Effect(12f, e -> { Draw.color(Color.WHITE, lightOrange, e.ifract()); - Draw.thick(e.fract()*7f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); - Draw.thick(e.fract()*4f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); - Draw.thick(e.fract()*2f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*18f); + Lines.stroke(e.fract()*7f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); + Lines.stroke(e.fract()*4f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); + Lines.stroke(e.fract()*2f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*18f); Draw.reset(); }), largeCannonShot = new Effect(11f, e -> { Draw.color(Color.WHITE, whiteYellow, e.ifract()); - Draw.thick(e.fract()*6f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); - Draw.thick(e.fract()*3f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); - Draw.thick(e.fract()*1f); - Draw.lineAngle(e.x, e.y, e.rotation, e.fract()*18f); + Lines.stroke(e.fract()*6f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*12f); + Lines.stroke(e.fract()*3f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*16f); + Lines.stroke(e.fract()*1f); + Lines.lineAngle(e.x, e.y, e.rotation, e.fract()*18f); Draw.reset(); }), shockwave = new Effect(10f, 80f, e -> { Draw.color(Color.WHITE, Color.LIGHT_GRAY, e.ifract()); - Draw.thick(e.fract()*2f + 0.2f); - Draw.circle(e.x, e.y, e.ifract()*28f); + Lines.stroke(e.fract()*2f + 0.2f); + Lines.circle(e.x, e.y, e.ifract()*28f); Draw.reset(); }), nuclearShockwave = new Effect(10f, 200f, e -> { Draw.color(Color.WHITE, Color.LIGHT_GRAY, e.ifract()); - Draw.thick(e.fract()*3f + 0.2f); - Draw.polygon(e.x, e.y, 40, e.ifract()*140f); + Lines.stroke(e.fract()*3f + 0.2f); + Lines.poly(e.x, e.y, 40, e.ifract()*140f); Draw.reset(); }), shockwaveSmall = new Effect(10f, e -> { Draw.color(Color.WHITE, Color.LIGHT_GRAY, e.ifract()); - Draw.thick(e.fract()*2f + 0.1f); - Draw.circle(e.x, e.y, e.ifract()*15f); + Lines.stroke(e.fract()*2f + 0.1f); + Lines.circle(e.x, e.y, e.ifract()*15f); Draw.reset(); }), empshockwave = new Effect(7f, e -> { Draw.color(Color.WHITE, Color.SKY, e.ifract()); - Draw.thick(e.fract()*2f); - Draw.circle(e.x, e.y, e.ifract()*40f); + Lines.stroke(e.fract()*2f); + Lines.circle(e.x, e.y, e.ifract()*40f); Draw.reset(); }), @@ -143,7 +145,7 @@ public class Fx{ Angles.randLenVectors(e.id, 7, 1f + e.ifract()*12f, (x, y)->{ float len = 1f+e.fract()*6f; Draw.color(Color.SKY); - Draw.lineAngle(e.x + x, e.y + y, Mathf.atan2(x, y), len); + Lines.lineAngle(e.x + x, e.y + y, Mathf.atan2(x, y), len); Draw.reset(); }); }), @@ -183,7 +185,7 @@ public class Fx{ float len = 1f+e.fract()*5f; Draw.color(Color.WHITE, Color.CORAL, e.ifract()); Draw.alpha(e.ifract()/1.3f); - Draw.lineAngle(e.x + x, e.y + y, Mathf.atan2(x, y), len); + Lines.lineAngle(e.x + x, e.y + y, Mathf.atan2(x, y), len); Draw.reset(); }); }), @@ -218,191 +220,191 @@ public class Fx{ lavabubble = new Effect(45f, e -> { Draw.color(Color.ORANGE); float scl = 0.35f; - Draw.thick(1f - Mathf.clamp(e.ifract() - (1f-scl)) * (1f/scl)); - Draw.circle(e.x, e.y, e.ifract()*4f); + Lines.stroke(1f - Mathf.clamp(e.ifract() - (1f-scl)) * (1f/scl)); + Lines.circle(e.x, e.y, e.ifract()*4f); Draw.reset(); }), oilbubble = new Effect(64f, e -> { Draw.color(Color.DARK_GRAY); float scl = 0.25f; - Draw.thick(1f - Mathf.clamp(e.ifract() - (1f-scl)) * (1f/scl)); - Draw.circle(e.x, e.y, e.ifract()*3f); + Lines.stroke(1f - Mathf.clamp(e.ifract() - (1f-scl)) * (1f/scl)); + Lines.circle(e.x, e.y, e.ifract()*3f); Draw.reset(); }), shellexplosion = new Effect(9, e -> { - Draw.thickness(2f - e.ifract()*1.7f); + Lines.stroke(2f - e.ifract()*1.7f); Draw.color(Color.WHITE, Color.LIGHT_GRAY, e.ifract()); - Draw.circle(e.x, e.y, 3f + e.ifract() * 9f); + Lines.circle(e.x, e.y, 3f + e.ifract() * 9f); Draw.reset(); }), blastexplosion = new Effect(16, e -> { - Draw.thickness(1.2f - e.ifract()); + Lines.stroke(1.2f - e.ifract()); Draw.color(Color.WHITE, Color.SCARLET, e.ifract()); - Draw.circle(e.x, e.y, 1.5f + e.ifract() * 9f); + Lines.circle(e.x, e.y, 1.5f + e.ifract() * 9f); Draw.reset(); }), place = new Effect(16, e -> { - Draw.thickness(3f - e.ifract() * 2f); - Draw.square(e.x, e.y, Vars.tilesize / 2f + e.ifract() * 3f); + Lines.stroke(3f - e.ifract() * 2f); + Lines.square(e.x, e.y, Vars.tilesize / 2f + e.ifract() * 3f); Draw.reset(); }), dooropen = new Effect(10, e -> { - Draw.thickness(e.fract() * 1.6f); - Draw.square(e.x, e.y, Vars.tilesize / 2f + e.ifract() * 2f); + Lines.stroke(e.fract() * 1.6f); + Lines.square(e.x, e.y, Vars.tilesize / 2f + e.ifract() * 2f); Draw.reset(); }), doorclose= new Effect(10, e -> { - Draw.thickness(e.fract() * 1.6f); - Draw.square(e.x, e.y, Vars.tilesize / 2f + e.fract() * 2f); + Lines.stroke(e.fract() * 1.6f); + Lines.square(e.x, e.y, Vars.tilesize / 2f + e.fract() * 2f); Draw.reset(); }), dooropenlarge = new Effect(10, e -> { - Draw.thickness(e.fract() * 1.6f); - Draw.square(e.x, e.y, Vars.tilesize + e.ifract() * 2f); + Lines.stroke(e.fract() * 1.6f); + Lines.square(e.x, e.y, Vars.tilesize + e.ifract() * 2f); Draw.reset(); }), doorcloselarge = new Effect(10, e -> { - Draw.thickness(e.fract() * 1.6f); - Draw.square(e.x, e.y, Vars.tilesize + e.fract() * 2f); + Lines.stroke(e.fract() * 1.6f); + Lines.square(e.x, e.y, Vars.tilesize + e.fract() * 2f); Draw.reset(); }), purify = new Effect(10, e -> { Draw.color(Color.ROYAL, Color.GRAY, e.ifract()); - Draw.thickness(2f); - Draw.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); + Lines.stroke(2f); + Lines.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); Draw.reset(); }), purifyoil = new Effect(10, e -> { Draw.color(Color.BLACK, Color.GRAY, e.ifract()); - Draw.thickness(2f); - Draw.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); + Lines.stroke(2f); + Lines.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); Draw.reset(); }), purifystone = new Effect(10, e -> { Draw.color(Color.ORANGE, Color.GRAY, e.ifract()); - Draw.thickness(2f); - Draw.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); + Lines.stroke(2f); + Lines.spikes(e.x, e.y, e.ifract() * 4f, 2, 6); Draw.reset(); }), generate = new Effect(11, e -> { Draw.color(Color.ORANGE, Color.YELLOW, e.ifract()); - Draw.thickness(1f); - Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); + Lines.stroke(1f); + Lines.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); Draw.reset(); }), spark = new Effect(10, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.WHITE, Color.GRAY, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); + Lines.spikes(e.x, e.y, e.ifract() * 5f, 2, 8); Draw.reset(); }), sparkbig = new Effect(11, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(lightRed, Color.GRAY, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 5f, 2.3f, 8); + Lines.spikes(e.x, e.y, e.ifract() * 5f, 2.3f, 8); Draw.reset(); }), smelt = new Effect(10, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.YELLOW, Color.RED, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 5f, 1f, 8); + Lines.spikes(e.x, e.y, e.ifract() * 5f, 1f, 8); Draw.reset(); }), breakBlock = new Effect(12, e -> { - Draw.thickness(2f); + Lines.stroke(2f); Draw.color(Color.WHITE, Colors.get("break"), e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 6f, 2, 5, 90); + Lines.spikes(e.x, e.y, e.ifract() * 6f, 2, 5, 90); Draw.reset(); }), hit = new Effect(10, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.WHITE, Color.ORANGE, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 3f, 2, 8); + Lines.spikes(e.x, e.y, e.ifract() * 3f, 2, 8); Draw.reset(); }), laserhit = new Effect(10, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.WHITE, Color.SKY, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 2f, 2, 6); + Lines.spikes(e.x, e.y, e.ifract() * 2f, 2, 6); Draw.reset(); }), shieldhit = new Effect(9, e -> { - Draw.thickness(1f); + Lines.stroke(1f); Draw.color(Color.WHITE, Color.SKY, e.ifract()); - Draw.spikes(e.x, e.y, e.ifract() * 5f, 2, 6); - Draw.thickness(4f*e.fract()); - Draw.circle(e.x, e.y, e.ifract()*14f); + Lines.spikes(e.x, e.y, e.ifract() * 5f, 2, 6); + Lines.stroke(4f*e.fract()); + Lines.circle(e.x, e.y, e.ifract()*14f); Draw.reset(); }), laserShoot = new Effect(8, e -> { Draw.color(Color.WHITE, lightOrange, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 6f, 2f, 0.8f); + Shapes.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 6f, 2f, 0.8f); Draw.reset(); }), spreadShoot = new Effect(12, e -> { Draw.color(Color.WHITE, Color.PURPLE, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 9f, 3.5f, 0.8f); + Shapes.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 9f, 3.5f, 0.8f); Draw.reset(); }), clusterShoot = new Effect(12, e -> { Draw.color(Color.WHITE, lightOrange, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 10f, 2.5f, 0.7f); + Shapes.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 10f, 2.5f, 0.7f); Draw.reset(); }), vulcanShoot = new Effect(8, e -> { Draw.color(lighterOrange, lightOrange, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 10f, 2f, 0.7f); + Shapes.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 10f, 2f, 0.7f); Draw.reset(); }), shockShoot = new Effect(8, e -> { Draw.color(Color.WHITE, Color.ORANGE, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 14f, 4f, 0.8f); + Shapes.lineShot(e.x, e.y, e.rotation, 3, e.fract(), 14f, 4f, 0.8f); Draw.reset(); }), beamShoot = new Effect(8, e -> { Draw.color(beamLight, beam, e.ifract()); - Draw.lineShot(e.x, e.y, e.rotation - 70, 3, e.fract(), 12f, 1f, 0.5f); - Draw.lineShot(e.x, e.y, e.rotation + 70, 3, e.fract(), 12f, 1f, 0.5f); + Shapes.lineShot(e.x, e.y, e.rotation - 70, 3, e.fract(), 12f, 1f, 0.5f); + Shapes.lineShot(e.x, e.y, e.rotation + 70, 3, e.fract(), 12f, 1f, 0.5f); Draw.reset(); }), beamhit = new Effect(8, e -> { Draw.color(beamLight, beam, e.ifract()); - Draw.thick(e.fract()*3f+0.5f); - Draw.circle(e.x, e.y, e.ifract()*8f); - Draw.spikes(e.x, e.y, e.ifract()*6f, 2f, 4, 45); + Lines.stroke(e.fract()*3f+0.5f); + Lines.circle(e.x, e.y, e.ifract()*8f); + Lines.spikes(e.x, e.y, e.ifract()*6f, 2f, 4, 45); Draw.reset(); }), titanExplosion = new Effect(11, 48f, e -> { - Draw.thickness(2f*e.fract()+0.5f); + Lines.stroke(2f*e.fract()+0.5f); Draw.color(Color.WHITE, Color.DARK_GRAY, e.powfract()); - Draw.circle(e.x, e.y, 5f + e.powfract() * 8f); + Lines.circle(e.x, e.y, 5f + e.powfract() * 8f); Draw.color(e.ifract() < 0.5f ? whiteOrange : Color.DARK_GRAY); float rad = e.fract()*10f + 5f; @@ -414,9 +416,9 @@ public class Fx{ }), explosion = new Effect(11, e -> { - Draw.thickness(2f*e.fract()+0.5f); + Lines.stroke(2f*e.fract()+0.5f); Draw.color(Color.WHITE, Color.DARK_GRAY, e.powfract()); - Draw.circle(e.x, e.y, 5f + e.powfract() * 6f); + Lines.circle(e.x, e.y, 5f + e.powfract() * 6f); Draw.color(e.ifract() < 0.5f ? Color.WHITE : Color.DARK_GRAY); float rad = e.fract()*10f + 5f; @@ -436,9 +438,9 @@ public class Fx{ Draw.reset(); }); - Draw.thickness(2f*e.fract()+0.4f); + Lines.stroke(2f*e.fract()+0.4f); Draw.color(Color.WHITE, Color.ORANGE, e.powfract()); - Draw.circle(e.x, e.y, 2f + e.powfract() * 9f); + Lines.circle(e.x, e.y, 2f + e.powfract() * 9f); Draw.color(e.ifract() < 0.5f ? Color.WHITE : Color.DARK_GRAY); float rad = e.fract()*10f + 2f; @@ -451,17 +453,17 @@ public class Fx{ clusterbomb = new Effect(10f, e -> { Draw.color(Color.WHITE, lightOrange, e.ifract()); - Draw.thick(e.fract()*1.5f); - Draw.polygon(e.x, e.y, 4, e.fract()*8f); - Draw.circle(e.x, e.y, e.ifract()*14f); + Lines.stroke(e.fract()*1.5f); + Lines.poly(e.x, e.y, 4, e.fract()*8f); + Lines.circle(e.x, e.y, e.ifract()*14f); Draw.reset(); }), coreexplosion = new Effect(13, e -> { - Draw.thickness(3f-e.ifract()*2f); + Lines.stroke(3f-e.ifract()*2f); Draw.color(Color.ORANGE, Color.WHITE, e.ifract()); - Draw.spikes(e.x, e.y, 5f + e.ifract() * 40f, 6, 6); - Draw.circle(e.x, e.y, 4f + e.ifract() * 40f); + Lines.spikes(e.x, e.y, 5f + e.ifract() * 40f, 6, 6); + Lines.circle(e.x, e.y, 4f + e.ifract() * 40f); Draw.reset(); }), @@ -494,9 +496,9 @@ public class Fx{ }), spawn = new Effect(23, e -> { - Draw.thickness(2f); + Lines.stroke(2f); Draw.color(Color.DARK_GRAY, Color.SCARLET, e.ifract()); - Draw.circle(e.x, e.y, 7f - e.ifract() * 6f); + Lines.circle(e.x, e.y, 7f - e.ifract() * 6f); Draw.reset(); }), diff --git a/core/src/io/anuke/mindustry/input/PlaceMode.java b/core/src/io/anuke/mindustry/input/PlaceMode.java index 9773804bd1..5f8ad129b3 100644 --- a/core/src/io/anuke/mindustry/input/PlaceMode.java +++ b/core/src/io/anuke/mindustry/input/PlaceMode.java @@ -8,8 +8,9 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.ui.fragments.ToolFragment; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.scene.utils.Cursors; import io.anuke.ucore.util.Bundles; import io.anuke.ucore.util.Mathf; @@ -36,17 +37,17 @@ public enum PlaceMode{ float si = MathUtils.sin(Timers.time() / 6f) + 1.5f; Draw.color(valid ? Colors.get("place") : Colors.get("placeInvalid")); - Draw.thickness(2f); - Draw.linecrect(x + offset.x, y + offset.y, tilesize * control.getInput().recipe.result.width + si, + Lines.stroke(2f); + Lines.crect(x + offset.x, y + offset.y, tilesize * control.getInput().recipe.result.width + si, tilesize * control.getInput().recipe.result.height + si); control.getInput().recipe.result.drawPlace(tilex, tiley, control.getInput().rotation, valid); - Draw.thickness(2f); + Lines.stroke(2f); if(control.getInput().recipe.result.rotate){ Draw.color(Colors.get("placeRotate")); Tmp.v1.set(7, 0).rotate(control.getInput().rotation * 90); - Draw.line(x, y, x + Tmp.v1.x, y + Tmp.v1.y); + Lines.line(x, y, x + Tmp.v1.x, y + Tmp.v1.y); } if(valid) @@ -96,7 +97,7 @@ public enum PlaceMode{ if(android && control.getInput().breaktime > 0){ Draw.color(Colors.get("breakStart"), Colors.get("break"), fract); - Draw.polygon(tile.worldx() + offset.x, tile.worldy() + offset.y, 25, 4 + (1f - fract) * 26); + Lines.poly(tile.worldx() + offset.x, tile.worldy() + offset.y, 25, 4 + (1f - fract) * 26); } Draw.reset(); } @@ -149,7 +150,7 @@ public enum PlaceMode{ } Draw.color(Colors.get("break")); - Draw.thick(1f); + Lines.stroke(1f); for(int cx = tilex; cx <= endx; cx ++){ for(int cy = tiley; cy <= endy; cy ++){ Tile tile = Vars.world.tile(cx, cy); @@ -157,15 +158,15 @@ public enum PlaceMode{ tile = tile.getLinked(); if(tile != null && control.getInput().validBreak(tile.x, tile.y)){ Vector2 offset = tile.block().getPlaceOffset(); - Draw.linecrect(tile.worldx() + offset.x, tile.worldy() + offset.y, + Lines.crect(tile.worldx() + offset.x, tile.worldy() + offset.y, tile.block().width * t, tile.block().height * t); } } } - Draw.thick(2f); + Lines.stroke(2f); Draw.color(control.getInput().cursorNear() ? Colors.get("break") : Colors.get("breakInvalid")); - Draw.linerect(x, y, x2 - x, y2 - y); + Lines.rect(x, y, x2 - x, y2 - y); Draw.alpha(0.3f); Draw.crect("blank", x, y, x2 - x, y2 - y); Draw.reset(); @@ -276,9 +277,9 @@ public enum PlaceMode{ if(tilex == endx && tiley == endy){ cursor.draw(tilex, tiley, endx, endy); }else{ - Draw.thick(2f); + Lines.stroke(2f); Draw.color(control.getInput().cursorNear() ? Colors.get("place") : Colors.get("placeInvalid")); - Draw.linerect(x, y, x2 - x, y2 - y); + Lines.rect(x, y, x2 - x, y2 - y); Draw.alpha(0.3f); Draw.crect("blank", x, y, x2 - x, y2 - y); @@ -292,7 +293,7 @@ public enum PlaceMode{ if(!control.getInput().validPlace(px, py, control.getInput().recipe.result) || !control.hasItems(control.getInput().recipe.requirements, amount)){ - Draw.linecrect(px * t + offset.x, py * t + offset.y, t*block.width, t*block.height); + Lines.crect(px * t + offset.x, py * t + offset.y, t*block.width, t*block.height); } amount ++; } @@ -302,7 +303,7 @@ public enum PlaceMode{ float cx = tx * t, cy = ty * t; Draw.color(Colors.get("placeRotate")); Tmp.v1.set(7, 0).rotate(rotation * 90); - Draw.line(cx, cy, cx + Tmp.v1.x, cy + Tmp.v1.y); + Lines.line(cx, cy, cx + Tmp.v1.x, cy + Tmp.v1.y); } Draw.reset(); } diff --git a/core/src/io/anuke/mindustry/io/PlatformFunction.java b/core/src/io/anuke/mindustry/io/PlatformFunction.java index 649feb46b9..46e7881bfc 100644 --- a/core/src/io/anuke/mindustry/io/PlatformFunction.java +++ b/core/src/io/anuke/mindustry/io/PlatformFunction.java @@ -8,7 +8,6 @@ import java.util.Locale; public abstract class PlatformFunction{ public String format(Date date){return "invalid";} public String format(int number){return "invalid";} - public void openLink(String link){} public void showError(String text){} public void addDialog(TextField field){ addDialog(field, 16); diff --git a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java index 1075c71ddb..6c005a18cd 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapEditorDialog.java @@ -14,7 +14,7 @@ import io.anuke.mindustry.world.Map; import io.anuke.mindustry.world.blocks.Blocks; import io.anuke.mindustry.world.blocks.SpecialBlocks; import io.anuke.ucore.core.Core; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Pixmaps; import io.anuke.ucore.scene.builders.build; diff --git a/core/src/io/anuke/mindustry/mapeditor/MapView.java b/core/src/io/anuke/mindustry/mapeditor/MapView.java index 29f04ce1dd..abccb3f188 100644 --- a/core/src/io/anuke/mindustry/mapeditor/MapView.java +++ b/core/src/io/anuke/mindustry/mapeditor/MapView.java @@ -15,9 +15,10 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.ui.GridImage; import io.anuke.mindustry.world.ColorMapper; import io.anuke.ucore.core.Core; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Graphics; import io.anuke.ucore.core.Inputs; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.graphics.Pixmaps; import io.anuke.ucore.scene.Element; import io.anuke.ucore.scene.event.InputEvent; @@ -235,12 +236,12 @@ public class MapView extends Element implements GestureListener{ Vector2 v2 = unproject(lastx, lasty).add(x, y); Draw.color(Tmp.c1.set(ColorMapper.getColor(editor.getDrawBlock()))); - Draw.thick(Unit.dp.scl(3f * zoom)); - Draw.line(sx, sy, v2.x, v2.y); + Lines.stroke(Unit.dp.scl(3f * zoom)); + Lines.line(sx, sy, v2.x, v2.y); - Draw.polygon(sx, sy, 40, editor.getBrushSize() * zoom * 3); + Lines.poly(sx, sy, 40, editor.getBrushSize() * zoom * 3); - Draw.polygon(v2.x, v2.y, 40, editor.getBrushSize() * zoom * 3); + Lines.poly(v2.x, v2.y, 40, editor.getBrushSize() * zoom * 3); } batch.flush(); @@ -248,8 +249,8 @@ public class MapView extends Element implements GestureListener{ if(pop) ScissorStack.popScissors(); Draw.color(Colors.get("accent")); - Draw.thick(Unit.dp.scl(3f)); - Draw.linerect(x + width/2 - size/2, y + height/2 - size/2, size, size); + Lines.stroke(Unit.dp.scl(3f)); + Lines.rect(x + width/2 - size/2, y + height/2 - size/2, size, size); Draw.reset(); } diff --git a/core/src/io/anuke/mindustry/mapeditor/OperationStack.java b/core/src/io/anuke/mindustry/mapeditor/OperationStack.java index f7a3d800a9..7de9a0c98d 100755 --- a/core/src/io/anuke/mindustry/mapeditor/OperationStack.java +++ b/core/src/io/anuke/mindustry/mapeditor/OperationStack.java @@ -1,9 +1,6 @@ package io.anuke.mindustry.mapeditor; -import com.badlogic.gdx.graphics.Pixmap; import com.badlogic.gdx.utils.Array; -import io.anuke.ucore.core.Draw; -import io.anuke.ucore.graphics.Pixmaps; public class OperationStack{ private final static int maxSize = 10; diff --git a/core/src/io/anuke/mindustry/net/Net.java b/core/src/io/anuke/mindustry/net/Net.java index d4e0c87568..fce1b036a7 100644 --- a/core/src/io/anuke/mindustry/net/Net.java +++ b/core/src/io/anuke/mindustry/net/Net.java @@ -20,7 +20,7 @@ import io.anuke.ucore.function.Consumer; import java.io.IOException; public class Net{ - public static final int version = 11; + public static final int version = 12; private static boolean server; private static boolean active; diff --git a/core/src/io/anuke/mindustry/net/NetworkIO.java b/core/src/io/anuke/mindustry/net/NetworkIO.java index 443b0266de..cec5e3e8e9 100644 --- a/core/src/io/anuke/mindustry/net/NetworkIO.java +++ b/core/src/io/anuke/mindustry/net/NetworkIO.java @@ -21,10 +21,9 @@ import java.nio.ByteBuffer; public class NetworkIO { - public static void writeMap(Map map, OutputStream os){ + public static void writeMap(Pixmap map, OutputStream os){ try(DataOutputStream stream = new DataOutputStream(os)){ - Pixmap pix = map.pixmap; - ByteBuffer buffer = pix.getPixels(); + ByteBuffer buffer = map.getPixels(); UCore.log("Buffer position: " + buffer.position()); stream.writeShort(map.getWidth()); stream.writeShort(map.getHeight()); diff --git a/core/src/io/anuke/mindustry/ui/BorderImage.java b/core/src/io/anuke/mindustry/ui/BorderImage.java index bde48388d0..4dbfdc4809 100644 --- a/core/src/io/anuke/mindustry/ui/BorderImage.java +++ b/core/src/io/anuke/mindustry/ui/BorderImage.java @@ -5,7 +5,8 @@ import com.badlogic.gdx.graphics.Texture; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.scene.ui.Image; import io.anuke.ucore.scene.ui.layout.Unit; @@ -36,8 +37,8 @@ public class BorderImage extends Image{ float scaleY = getScaleY(); Draw.color(Colors.get("accent")); - Draw.thick(Unit.dp.scl(thickness)); - Draw.linerect(x + imageX, y + imageY, imageWidth * scaleX, imageHeight * scaleY); + Lines.stroke(Unit.dp.scl(thickness)); + Lines.rect(x + imageX, y + imageY, imageWidth * scaleX, imageHeight * scaleY); Draw.reset(); } } diff --git a/core/src/io/anuke/mindustry/ui/GridImage.java b/core/src/io/anuke/mindustry/ui/GridImage.java index cdeddb0cff..b7c5ce6700 100644 --- a/core/src/io/anuke/mindustry/ui/GridImage.java +++ b/core/src/io/anuke/mindustry/ui/GridImage.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.ui; import com.badlogic.gdx.graphics.g2d.Batch; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.scene.Element; public class GridImage extends Element{ diff --git a/core/src/io/anuke/mindustry/ui/dialogs/DiscordDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/DiscordDialog.java index 5ff0eef605..95984d86ae 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/DiscordDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/DiscordDialog.java @@ -1,6 +1,6 @@ package io.anuke.mindustry.ui.dialogs; -import io.anuke.mindustry.Mindustry; +import com.badlogic.gdx.Gdx; import io.anuke.mindustry.Vars; import io.anuke.ucore.scene.ui.Dialog; @@ -13,7 +13,7 @@ public class DiscordDialog extends Dialog { content().row(); content().add("[orange]"+ Vars.discordURL); buttons().defaults().size(200f, 50); - buttons().addButton("$text.openlink", () -> Mindustry.platforms.openLink(Vars.discordURL)); + buttons().addButton("$text.openlink", () -> Gdx.net.openURI(Vars.discordURL)); buttons().addButton("$text.back", this::hide); } } diff --git a/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java index 678644195e..b90dd5fc4b 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BackgroundFragment.java @@ -4,7 +4,7 @@ import com.badlogic.gdx.graphics.g2d.TextureRegion; import io.anuke.mindustry.core.GameState; import io.anuke.mindustry.core.GameState.State; import io.anuke.ucore.core.Core; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.scene.ui.layout.Unit; public class BackgroundFragment implements Fragment { diff --git a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java index 5d836ee8b3..4b205e3abb 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/BlocksFragment.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.input.InputHandler; import io.anuke.mindustry.resource.*; import io.anuke.mindustry.ui.dialogs.FloatingDialog; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.scene.actions.Actions; import io.anuke.ucore.scene.builders.table; diff --git a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java index c7e926256c..4ef8ea0a25 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.net.Packets.KickReason; import io.anuke.mindustry.ui.BorderImage; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Inputs; import io.anuke.ucore.scene.builders.label; import io.anuke.ucore.scene.builders.table; diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index b44f173cef..e82f899326 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -12,7 +12,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.ItemStack; import io.anuke.mindustry.resource.Liquid; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.scene.ui.layout.Table; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/BlendBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/BlendBlock.java index 31ea497749..d6ccfe1305 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/BlendBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/BlendBlock.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.types; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.function.Predicate; import io.anuke.ucore.util.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/Floor.java b/core/src/io/anuke/mindustry/world/blocks/types/Floor.java index 2a0af96661..9f01fa59aa 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/Floor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/Floor.java @@ -6,7 +6,7 @@ import com.badlogic.gdx.math.MathUtils; import io.anuke.mindustry.Vars; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.function.Predicate; import io.anuke.ucore.util.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java index d711ae01af..04a87dcdbe 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/LiquidBlock.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.util.Mathf; public class LiquidBlock extends Block implements LiquidAcceptor{ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Door.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Door.java index 434114b28c..eef852e446 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Door.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Door.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.Wall; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.entities.Entities; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java index ede3c7e71c..67eca49211 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/LaserTurret.java @@ -7,10 +7,11 @@ import io.anuke.mindustry.entities.enemies.Enemy; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Tmp; @@ -54,14 +55,14 @@ public class LaserTurret extends PowerTurret{ Draw.color(Tmp.c1.set(beamColor).mul(1f + lighten, 1f + lighten, 1f + lighten, 1f)); Draw.alpha(0.3f); - Draw.thickness(4f); - Draw.line(x, y, x2, y2); - Draw.thickness(2f); + Lines.stroke(4f); + Lines.line(x, y, x2, y2); + Lines.stroke(2f); Draw.rect("circle", x2, y2, 7f, 7f); Draw.alpha(1f); - Draw.thickness(2f); - Draw.line(x, y, x2, y2); - Draw.thickness(1f); + Lines.stroke(2f); + Lines.line(x, y, x2, y2); + Lines.stroke(1f); Draw.rect("circle", x2, y2, 5f, 5f); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java index b69b85e08d..c36a22e2e0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/PowerTurret.java @@ -13,7 +13,8 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerAcceptor; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; @@ -38,7 +39,7 @@ public class PowerTurret extends Turret implements PowerAcceptor{ Vector2 offset = getPlaceOffset(); Draw.color(Color.GREEN); - Draw.dashCircle(tile.worldx() + offset.x, tile.worldy() + offset.y, range); + Lines.dashCircle(tile.worldx() + offset.x, tile.worldy() + offset.y, range); Draw.reset(); drawPowerBar(tile); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java index b21691e49a..a371757bac 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/RepairTurret.java @@ -8,9 +8,10 @@ import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.Vars; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Hue; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; @@ -70,7 +71,7 @@ public class RepairTurret extends PowerTurret{ @Override public void drawSelect(Tile tile){ Draw.color(Color.GREEN); - Draw.dashCircle(tile.worldx(), tile.worldy(), range); + Lines.dashCircle(tile.worldx(), tile.worldy(), range); Draw.reset(); drawPowerBar(tile); @@ -89,14 +90,14 @@ public class RepairTurret extends PowerTurret{ Draw.color(Hue.rgb(138, 244, 138, (MathUtils.sin(Timers.time()) + 1f) / 14f)); Draw.alpha(0.3f); - Draw.thickness(4f); - Draw.line(x, y, x2, y2); - Draw.thickness(2f); + Lines.stroke(4f); + Lines.line(x, y, x2, y2); + Lines.stroke(2f); Draw.rect("circle", x2, y2, 7f, 7f); Draw.alpha(1f); - Draw.thickness(2f); - Draw.line(x, y, x2, y2); - Draw.thickness(1f); + Lines.stroke(2f); + Lines.line(x, y, x2, y2); + Lines.stroke(1f); Draw.rect("circle", x2, y2, 5f, 5f); Draw.reset(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java index 907543274c..eb652f9cd7 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/ShieldedWallBlock.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Strings; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java index 67ae84b3f2..2cfa534af9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/defense/Turret.java @@ -13,11 +13,12 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; import io.anuke.ucore.entities.Entities; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; @@ -103,7 +104,7 @@ public class Turret extends Block{ Vector2 offset = getPlaceOffset(); Draw.color(Color.GREEN); - Draw.dashCircle(tile.worldx() + offset.x, tile.worldy() + offset.y, range); + Lines.dashCircle(tile.worldx() + offset.x, tile.worldy() + offset.y, range); Draw.reset(); TurretEntity entity = tile.entity(); @@ -118,8 +119,8 @@ public class Turret extends Block{ @Override public void drawPlace(int x, int y, int rotation, boolean valid){ Draw.color(Color.PURPLE); - Draw.thick(1f); - Draw.dashCircle(x*Vars.tilesize, y*Vars.tilesize, range); + Lines.stroke(1f); + Lines.dashCircle(x*Vars.tilesize, y*Vars.tilesize, range); } @Override @@ -198,15 +199,15 @@ public class Turret extends Block{ predictY = entity.target.y + entity.target.velocity.y * hittime; Draw.color(Color.GREEN); - Draw.line(tile.worldx(), tile.worldy(), entity.target.x, entity.target.y); + Lines.line(tile.worldx(), tile.worldy(), entity.target.x, entity.target.y); Draw.color(Color.RED); - Draw.line(tile.worldx(), tile.worldy(), entity.target.x + entity.target.velocity.x * hittime, + Lines.line(tile.worldx(), tile.worldy(), entity.target.x + entity.target.velocity.x * hittime, entity.target.y + entity.target.velocity.y * hittime); Draw.color(Color.PURPLE); - Draw.thick(2f); - Draw.lineAngle(tile.worldx(), tile.worldy(), angle, 7f); + Lines.stroke(2f); + Lines.lineAngle(tile.worldx(), tile.worldy(), angle, 7f); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java index 1c00087fe5..19dcfd8ddf 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Conveyor.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Bits; import io.anuke.ucore.util.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java index cbd9f9dd7d..59dd009759 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidItemJunction.java @@ -4,7 +4,7 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; public class LiquidItemJunction extends LiquidBlock{ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java index 427a66f167..f34146c0b8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidJunction.java @@ -3,7 +3,7 @@ package io.anuke.mindustry.world.blocks.types.distribution; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; public class LiquidJunction extends Conduit{ diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java index 1b26876753..bae37634b3 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/LiquidRouter.java @@ -2,7 +2,7 @@ package io.anuke.mindustry.world.blocks.types.distribution; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; public class LiquidRouter extends Conduit{ protected final int timerDump = timers++; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java index 92ea2b8ca2..bad80d4a2d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/PowerBooster.java @@ -8,7 +8,8 @@ import io.anuke.mindustry.Vars; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerAcceptor; import io.anuke.mindustry.world.blocks.types.production.Generator; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.Mathf; public class PowerBooster extends Generator{ @@ -28,15 +29,15 @@ public class PowerBooster extends Generator{ super.drawSelect(tile); Draw.color(Color.YELLOW); - Draw.dashCircle(tile.worldx(), tile.worldy(), powerRange * Vars.tilesize); + Lines.dashCircle(tile.worldx(), tile.worldy(), powerRange * Vars.tilesize); Draw.reset(); } @Override public void drawPlace(int x, int y, int rotation, boolean valid){ Draw.color(Color.PURPLE); - Draw.thick(1f); - Draw.dashCircle(x * Vars.tilesize, y * Vars.tilesize, powerRange * Vars.tilesize); + Lines.stroke(1f); + Lines.dashCircle(x * Vars.tilesize, y * Vars.tilesize, powerRange * Vars.tilesize); Draw.reset(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java index 980fdf8a39..cdf7193c45 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Sorter.java @@ -5,7 +5,7 @@ import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.scene.style.TextureRegionDrawable; import io.anuke.ucore.scene.ui.ButtonGroup; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java index 77964ee134..22be5c53cd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.scene.ui.ButtonGroup; import io.anuke.ucore.scene.ui.ImageButton; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java index a069e8140d..3569480136 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Drill.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java index 360d18699c..ed03365e10 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Generator.java @@ -13,11 +13,13 @@ import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.PowerAcceptor; import io.anuke.mindustry.world.blocks.types.PowerBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Settings; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Hue; +import io.anuke.ucore.graphics.Lines; +import io.anuke.ucore.graphics.Shapes; import io.anuke.ucore.util.*; public class Generator extends PowerBlock{ @@ -59,15 +61,15 @@ public class Generator extends PowerBlock{ int rotation = tile.getRotation(); if(hasLasers){ Draw.color(Color.YELLOW); - Draw.thick(2f); + Lines.stroke(2f); for(int i = 0; i < laserDirections; i++){ int dir = Mathf.mod(i + rotation - laserDirections / 2, 4); - float lx = Geometry.getD4Points()[dir].x, ly = Geometry.getD4Points()[dir].y; + float lx = Geometry.d4[dir].x, ly = Geometry.d4[dir].y; float dx = lx * laserRange * Vars.tilesize; float dy = ly * laserRange * Vars.tilesize; - Draw.dashLine( + Lines.dashLine( tile.worldx() + lx * Vars.tilesize / 2, tile.worldy() + ly * Vars.tilesize / 2, tile.worldx() + dx - lx * Vars.tilesize, @@ -83,14 +85,14 @@ public class Generator extends PowerBlock{ public void drawPlace(int x, int y, int rotation, boolean valid){ if(hasLasers){ Draw.color(Color.PURPLE); - Draw.thick(2f); + Lines.stroke(2f); for(int i = 0; i < laserDirections; i++){ int dir = Mathf.mod(i + rotation - laserDirections / 2, 4); - float lx = Geometry.getD4Points()[dir].x, ly = Geometry.getD4Points()[dir].y; + float lx = Geometry.d4[dir].x, ly = Geometry.d4[dir].y; float dx = lx * laserRange * Vars.tilesize; float dy = ly * laserRange * Vars.tilesize; - Draw.dashLine( + Lines.dashLine( x * Vars.tilesize + lx * Vars.tilesize / 2, y * Vars.tilesize + ly * Vars.tilesize / 2, x * Vars.tilesize + dx - lx * Vars.tilesize, @@ -193,13 +195,13 @@ public class Generator extends PowerBlock{ int relative = tile.relativeTo(target.x, target.y); if(relative == -1){ - Draw.laser("laser", "laserend", tile.worldx() + Angles.x(), tile.worldy() + Angles.y(), + Shapes.laser("laser", "laserend", tile.worldx() + Angles.x(), tile.worldy() + Angles.y(), target.worldx() - Tmp.v1.x + Mathf.range(r), target.worldy() - Tmp.v1.y + Mathf.range(r), 0.7f); }else{ Draw.rect("laserfull", - tile.worldx() + Geometry.getD4Points()[relative].x * width * Vars.tilesize / 2f, - tile.worldy() + Geometry.getD4Points()[relative].y * width * Vars.tilesize / 2f); + tile.worldx() + Geometry.d4[relative].x * width * Vars.tilesize / 2f, + tile.worldy() + Geometry.d4[relative].y * width * Vars.tilesize / 2f); } Draw.color(); @@ -223,7 +225,7 @@ public class Generator extends PowerBlock{ protected Tile laserTarget(Tile tile, int rotation){ rotation = Mathf.mod(rotation, 4); - GridPoint2 point = Geometry.getD4Points()[rotation]; + GridPoint2 point = Geometry.d4[rotation]; int i = 0; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java index 611cf08afd..cc9dc0c3e9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/ItemPowerGenerator.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java index 2b82636b58..abebd58e43 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidCrafter.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.util.Strings; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidPowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidPowerGenerator.java index fe669a88d0..e5e64697b1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidPowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidPowerGenerator.java @@ -12,7 +12,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidAcceptor; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java index ce6db39a7e..222f3fa646 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/NuclearReactor.java @@ -10,7 +10,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.resource.Liquid; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Mathf; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Omnidrill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Omnidrill.java index 6aa5a2487b..bf85f02deb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Omnidrill.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Omnidrill.java @@ -6,7 +6,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.util.Tmp; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java index 3117b073a0..29ccdb488e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Pump.java @@ -7,7 +7,7 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Layer; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.types.LiquidBlock; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Timers; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java index 313b7c1df2..ebfb6f234f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/Smelter.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.graphics.Fx; import io.anuke.mindustry.resource.Item; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/WeaponFactory.java b/core/src/io/anuke/mindustry/world/blocks/types/production/WeaponFactory.java index f91d929820..94abe9afc5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/production/WeaponFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/WeaponFactory.java @@ -8,7 +8,7 @@ import io.anuke.mindustry.resource.UpgradeRecipes; import io.anuke.mindustry.resource.Weapon; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; -import io.anuke.ucore.core.Draw; +import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.core.Effects; import io.anuke.ucore.function.Listenable; import io.anuke.ucore.scene.style.TextureRegionDrawable; diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 54d60c7d58..7cacd221cf 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -17,10 +17,8 @@ import io.anuke.mindustry.net.Net; import io.anuke.ucore.util.Strings; import javax.swing.*; -import java.awt.*; import java.io.File; import java.io.IOException; -import java.net.URI; import java.nio.file.Files; import java.nio.file.Paths; import java.text.DateFormat; @@ -71,16 +69,6 @@ public class DesktopLauncher { public String format(int number){ return NumberFormat.getIntegerInstance().format(number); } - - @Override - public void openLink(String link){ - try{ - Desktop.getDesktop().browse(URI.create(link)); - }catch(IOException e){ - e.printStackTrace(); - Vars.ui.showError("Error opening link."); - } - } @Override public void showError(String text){ diff --git a/html/src/io/anuke/mindustry/client/HtmlLauncher.java b/html/src/io/anuke/mindustry/client/HtmlLauncher.java index 77a36cdde2..250b869a47 100644 --- a/html/src/io/anuke/mindustry/client/HtmlLauncher.java +++ b/html/src/io/anuke/mindustry/client/HtmlLauncher.java @@ -13,7 +13,6 @@ import com.google.gwt.dom.client.Style; import com.google.gwt.dom.client.Style.Unit; import com.google.gwt.i18n.client.NumberFormat; import com.google.gwt.i18n.shared.DateTimeFormat; -import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.*; import io.anuke.mindustry.Mindustry; import io.anuke.mindustry.io.PlatformFunction; @@ -108,11 +107,6 @@ public class HtmlLauncher extends GwtApplication { return NumberFormat.getDecimalFormat().format(number); } - @Override - public void openLink(String link){ - Window.open(link, "_blank", ""); - } - @Override public boolean canJoinGame(){ String ref = Document.get().getReferrer();