From 713bda62432e9961cce9ceaa9027bdcc6a092688 Mon Sep 17 00:00:00 2001 From: "Matei Budiu (Aehmttw)" Date: Sun, 7 Jul 2024 13:49:29 -0700 Subject: [PATCH] Changes from mobile --- .../basewindow/BaseShapeBatchRenderer.java | 3 + .../java/basewindow/BaseShapeRenderer.java | 2 - .../basewindow/BaseStaticBatchRenderer.java | 82 ------------------- src/main/java/basewindow/BaseWindow.java | 21 +++-- src/main/java/basewindow/ComputerFile.java | 1 - src/main/java/basewindow/InputPoint.java | 1 + src/main/java/basewindow/ShaderBase.java | 3 + src/main/java/basewindow/ShaderBones.java | 2 - .../java/basewindow/ShaderShadowMapBones.java | 4 +- .../ImmediateModeShapeRenderer.java | 1 - src/main/java/lwjglwindow/LWJGLWindow.java | 14 +++- .../lwjglwindow/VBOStaticBatchRenderer.java | 37 +++++++-- src/main/java/tanks/AreaEffectFreeze.java | 2 +- src/main/java/tanks/Crusade.java | 7 +- src/main/java/tanks/CrusadePlayer.java | 5 +- src/main/java/tanks/Drawing.java | 13 +-- src/main/java/tanks/Effect.java | 4 +- src/main/java/tanks/Game.java | 2 +- src/main/java/tanks/GameDrawer.java | 2 +- src/main/java/tanks/GameWindowHandler.java | 6 +- src/main/java/tanks/IDrawableWithGlow.java | 2 - src/main/java/tanks/ItemDrop.java | 1 - src/main/java/tanks/Level.java | 11 +-- src/main/java/tanks/ModAPI.java | 2 +- src/main/java/tanks/Movable.java | 3 - src/main/java/tanks/Panel.java | 33 +++----- src/main/java/tanks/Player.java | 2 - src/main/java/tanks/StatusEffect.java | 1 - src/main/java/tanks/bullet/Bullet.java | 2 +- src/main/java/tanks/bullet/BulletBoost.java | 5 +- .../java/tanks/bullet/BulletElectric.java | 6 +- .../java/tanks/bullet/BulletExplosive.java | 1 - src/main/java/tanks/bullet/BulletFlame2.java | 2 +- src/main/java/tanks/bullet/BulletGas.java | 8 +- src/main/java/tanks/bullet/BulletHealing.java | 2 +- src/main/java/tanks/bullet/BulletHoming.java | 2 +- src/main/java/tanks/bullet/BulletInstant.java | 4 +- src/main/java/tanks/bullet/BulletLaser.java | 3 - src/main/java/tanks/bullet/Laser.java | 5 +- .../java/tanks/bullet/legacy/BulletAir.java | 3 +- src/main/java/tanks/extension/Extension.java | 8 -- .../java/tanks/generator/LevelGenerator.java | 1 - .../tanks/generator/LevelGeneratorRandom.java | 3 +- .../tanks/generator/LevelGeneratorVersus.java | 2 +- src/main/java/tanks/gui/ButtonObject.java | 1 - src/main/java/tanks/gui/ChatBox.java | 2 - src/main/java/tanks/gui/Joystick.java | 3 +- src/main/java/tanks/gui/Label.java | 3 +- src/main/java/tanks/gui/RemoteScoreboard.java | 1 - src/main/java/tanks/gui/SavedFilesList.java | 1 - src/main/java/tanks/gui/Scoreboard.java | 5 +- src/main/java/tanks/gui/ScreenIntro.java | 6 +- src/main/java/tanks/gui/Selector.java | 4 +- src/main/java/tanks/gui/SelectorImage.java | 7 -- src/main/java/tanks/gui/SelectorMusic.java | 2 + src/main/java/tanks/gui/TextBoxSlider.java | 2 - src/main/java/tanks/gui/screen/Screen.java | 10 +-- .../tanks/gui/screen/ScreenArcadeBonuses.java | 8 +- .../tanks/gui/screen/ScreenChangelog.java | 43 ++-------- .../gui/screen/ScreenCinematicTitle.java | 4 - .../gui/screen/ScreenConfirmEndParty.java | 1 - .../tanks/gui/screen/ScreenControlsGame.java | 1 - .../gui/screen/ScreenControlsHotbar.java | 1 - .../tanks/gui/screen/ScreenControlsTank.java | 1 - .../gui/screen/ScreenCrusadeDetails.java | 22 +++-- .../gui/screen/ScreenCrusadeEditLevel.java | 1 - .../tanks/gui/screen/ScreenCrusadeEditor.java | 5 +- .../tanks/gui/screen/ScreenCrusadeLevels.java | 11 ++- .../gui/screen/ScreenCrusadePreview.java | 7 +- .../gui/screen/ScreenCrusadePreviewLevel.java | 1 - .../tanks/gui/screen/ScreenCrusadeStats.java | 2 +- .../tanks/gui/screen/ScreenDownloadLevel.java | 1 - .../java/tanks/gui/screen/ScreenExit.java | 17 +++- .../java/tanks/gui/screen/ScreenGame.java | 52 ++++++------ .../tanks/gui/screen/ScreenHostingEnded.java | 2 +- .../java/tanks/gui/screen/ScreenInfo.java | 19 +++-- .../tanks/gui/screen/ScreenItemEditor.java | 2 +- .../tanks/gui/screen/ScreenJoinParty.java | 2 +- .../java/tanks/gui/screen/ScreenLanguage.java | 3 - .../tanks/gui/screen/ScreenMinigames.java | 2 +- .../java/tanks/gui/screen/ScreenOnline.java | 1 - .../java/tanks/gui/screen/ScreenOptions.java | 9 +- .../gui/screen/ScreenOptionsFramerate.java | 15 +++- .../gui/screen/ScreenOptionsGraphics.java | 16 ++-- .../tanks/gui/screen/ScreenOptionsMisc.java | 4 +- .../gui/screen/ScreenOptionsMultiplayer.java | 1 - .../screen/ScreenPartyCrusadeInterlevel.java | 2 - .../tanks/gui/screen/ScreenPartyCrusades.java | 1 - .../tanks/gui/screen/ScreenPartyHost.java | 5 +- .../gui/screen/ScreenPartyInterlevel.java | 5 +- .../tanks/gui/screen/ScreenPartyKick.java | 2 +- .../tanks/gui/screen/ScreenPartyLobby.java | 3 +- .../gui/screen/ScreenPartyResumeCrusade.java | 2 - .../gui/screen/ScreenPreviewShareLevel.java | 2 +- .../gui/screen/ScreenPreviewUploadLevel.java | 2 +- .../tanks/gui/screen/ScreenSaveLevel.java | 3 +- .../tanks/gui/screen/ScreenSavedLevels.java | 4 - .../tanks/gui/screen/ScreenSelectorMusic.java | 2 - .../gui/screen/ScreenSharedCrusades.java | 1 - .../tanks/gui/screen/ScreenTankEditor.java | 2 +- .../tanks/gui/screen/ScreenTestModel.java | 3 +- .../tanks/gui/screen/ScreenTestTextbox.java | 1 - .../java/tanks/gui/screen/ScreenTitle.java | 19 +++-- .../tanks/gui/screen/ScreenTutorialGame.java | 1 - .../leveleditor/OverlayLevelOptions.java | 2 +- .../screen/leveleditor/OverlayObjectMenu.java | 2 - .../screen/leveleditor/ScreenLevelEditor.java | 54 ++++++++++-- .../leveleditor/ScreenLevelEditorOverlay.java | 3 +- src/main/java/tanks/hotbar/Hotbar.java | 8 +- src/main/java/tanks/hotbar/ItemBar.java | 11 ++- src/main/java/tanks/hotbar/item/Item.java | 2 - .../java/tanks/hotbar/item/ItemBullet.java | 3 +- .../java/tanks/hotbar/item/ItemShield.java | 2 +- src/main/java/tanks/minigames/Arcade.java | 5 +- .../java/tanks/network/ClientHandler.java | 7 +- .../java/tanks/network/MessageReader.java | 4 +- src/main/java/tanks/network/Server.java | 2 +- .../tanks/network/SteamNetworkHandler.java | 2 +- .../tanks/network/event/EventAddObstacle.java | 1 - .../network/event/EventAddObstacleText.java | 1 - .../event/EventArcadeClearMovables.java | 4 +- .../network/event/EventArcadeRampage.java | 4 - .../tanks/network/event/EventExplosion.java | 1 - .../network/event/EventShareCrusade.java | 5 +- .../tanks/network/event/EventShootBullet.java | 3 +- .../network/event/EventStatusEffectBegin.java | 1 - .../network/event/EventTankPlayerCreate.java | 1 - .../event/EventTankTransformPreset.java | 6 -- .../event/EventUpdateReadyPlayers.java | 1 - .../network/event/EventUpdateTankColors.java | 1 - .../network/event/online/EventAddButton.java | 2 +- .../network/event/online/EventAddShape.java | 2 +- .../network/event/online/EventAddText.java | 2 +- .../network/event/online/EventAddTextBox.java | 2 +- .../network/event/online/EventNewScreen.java | 2 +- .../event/online/EventRemoveButton.java | 2 +- .../event/online/EventRemoveShape.java | 2 +- .../network/event/online/EventRemoveText.java | 2 +- .../event/online/EventRemoveTextBox.java | 2 +- .../online/EventSendLevelToDownload.java | 2 +- .../online/EventSendOnlineClientDetails.java | 2 +- .../network/event/online/EventSetMusic.java | 2 +- .../online/EventSetPauseScreenTitle.java | 2 +- .../network/event/online/EventSetScreen.java | 2 +- .../network/event/online/EventSetTextBox.java | 2 +- .../event/online/EventSilentDisconnect.java | 2 +- .../event/online/EventUpdateTextBox.java | 2 +- .../event/online/EventUploadLevel.java | 2 +- .../java/tanks/obstacle/ObstacleColor.java | 4 +- .../tanks/obstacle/ObstacleExplosive.java | 2 +- .../java/tanks/obstacle/ObstacleLava.java | 1 - src/main/java/tanks/obstacle/ObstacleMud.java | 1 - .../tanks/obstacle/ObstacleShrubbery.java | 7 +- .../java/tanks/obstacle/ObstacleSnow.java | 5 +- .../java/tanks/registry/RegistryItem.java | 10 --- .../tanks/registry/RegistryModelTank.java | 2 - .../rendering/ShaderGroundOutOfBounds.java | 1 + .../rendering/StaticTerrainRenderer.java | 11 ++- .../java/tanks/rendering/TerrainRenderer.java | 12 ++- src/main/java/tanks/tank/Explosion.java | 3 +- src/main/java/tanks/tank/Mine.java | 5 +- src/main/java/tanks/tank/NameTag.java | 1 - src/main/java/tanks/tank/Tank.java | 10 ++- .../java/tanks/tank/TankAIControlled.java | 20 ++--- src/main/java/tanks/tank/TankGold.java | 2 +- src/main/java/tanks/tank/TankLightBlue.java | 1 - src/main/java/tanks/tank/TankLightPink.java | 2 +- .../java/tanks/tank/TankLightPinkAngry.java | 2 +- src/main/java/tanks/tank/TankMimic.java | 3 +- src/main/java/tanks/tank/TankMustard.java | 2 +- src/main/java/tanks/tank/TankNPC.java | 8 +- src/main/java/tanks/tank/TankPlayer.java | 23 ++++-- .../java/tanks/tank/TankPlayerController.java | 2 +- .../java/tanks/tank/TankPlayerRemote.java | 2 +- src/main/java/tanks/tank/TankRemote.java | 2 + 175 files changed, 478 insertions(+), 523 deletions(-) delete mode 100644 src/main/java/basewindow/BaseStaticBatchRenderer.java diff --git a/src/main/java/basewindow/BaseShapeBatchRenderer.java b/src/main/java/basewindow/BaseShapeBatchRenderer.java index cd16acf8..a485e9bf 100644 --- a/src/main/java/basewindow/BaseShapeBatchRenderer.java +++ b/src/main/java/basewindow/BaseShapeBatchRenderer.java @@ -29,6 +29,9 @@ public BaseShapeBatchRenderer(boolean dynamic) public void setPosition(double x, double y, double z) { + if (Double.isNaN(x) || Double.isNaN(y) || Double.isNaN(z)) + throw new RuntimeException("NaN renderer position!"); + this.posX = x; this.posY = y; this.posZ = z; diff --git a/src/main/java/basewindow/BaseShapeRenderer.java b/src/main/java/basewindow/BaseShapeRenderer.java index d8d39dda..3c87b4f1 100644 --- a/src/main/java/basewindow/BaseShapeRenderer.java +++ b/src/main/java/basewindow/BaseShapeRenderer.java @@ -11,8 +11,6 @@ public abstract class BaseShapeRenderer public static final byte hide_all_faces = 63; public static final byte hide_draw_on_top = 64; - public boolean supportsBatching = false; - public abstract void fillOval(double x, double y, double sX, double sY); public abstract void fillOval(double x, double y, double z, double sX, double sY, boolean depthTest); diff --git a/src/main/java/basewindow/BaseStaticBatchRenderer.java b/src/main/java/basewindow/BaseStaticBatchRenderer.java deleted file mode 100644 index 1f475894..00000000 --- a/src/main/java/basewindow/BaseStaticBatchRenderer.java +++ /dev/null @@ -1,82 +0,0 @@ -package basewindow; - -public abstract class BaseStaticBatchRenderer -{ - public String texture; - - public double posX = 0; - public double posY = 0; - public double posZ = 0; - public double sX = 1; - public double sY = 1; - public double sZ = 1; - public double yaw = 0; - public double pitch = 0; - public double roll = 0; - - public float offX; - public float offY; - public float offZ; - - public abstract void addPoint(float x, float y, float z); - - public void setColor(Color c) - { - this.setColor((float) c.red, (float) c.green, (float) c.blue, (float) c.alpha); - } - - public abstract void setColor(float r, float g, float b, float a); - - public abstract void setTexCoord(float u, float v); - - public abstract void setNormal(float x, float y, float z); - - public abstract void setNormal(float[] n); - - public abstract void setAttribute(ShaderGroup.Attribute a, float... floats); - - public abstract void stage(); - - public abstract void draw(); - - public abstract void free(); - - public abstract void settings(boolean depth); - - public abstract void settings(boolean depth, boolean glow); - - public abstract void settings(boolean depth, boolean glow, boolean depthMask); - - public abstract void setGlow(float g); - - public void setPosition(double x, double y, double z) - { - this.posX = x; - this.posY = y; - this.posZ = z; - } - - public void setScale(double x, double y, double z) - { - this.sX = x; - this.sY = y; - this.sZ = z; - } - - public void setRotation(double yaw, double pitch, double roll) - { - this.yaw = yaw; - this.pitch = pitch; - this.roll = roll; - } - - public double rotateX(double px, double py, double posX, double rotation) - { - return (py * Math.cos(rotation) - px * Math.sin(rotation)) + posX; - } - - public double rotateY(double px, double py, double posY, double rotation) - { - return (px * Math.cos(rotation) + py * Math.sin(rotation)) + posY; - } -} diff --git a/src/main/java/basewindow/BaseWindow.java b/src/main/java/basewindow/BaseWindow.java index fc0b5e9d..0d110c8d 100644 --- a/src/main/java/basewindow/BaseWindow.java +++ b/src/main/java/basewindow/BaseWindow.java @@ -260,13 +260,17 @@ public void stopTiming() public abstract void setMatrixModelview(); + public abstract float[] getTransformedMouse(); + + public abstract float[] getTransformedMouse(double x, double y); + public abstract ModelPart createModelPart(); public abstract ModelPart createModelPart(Model model, ArrayList shapes, Model.Material material); public abstract PosedModel createPosedModel(Model m); - public abstract BaseStaticBatchRenderer createStaticBatchRenderer(ShaderGroup shader, boolean color, String texture, boolean normal, int vertices); + public abstract BaseShapeBatchRenderer createStaticBatchRenderer(ShaderGroup shader, boolean color, String texture, boolean normal, int vertices); public abstract BaseShapeBatchRenderer createShapeBatchRenderer(); @@ -280,9 +284,16 @@ public void setShader(ShaderBase s) if (this.currentShaderGroup != null) old = this.currentShaderGroup.shaderBase; - this.currentShaderGroup = s.group; - this.currentShader = s; - s.set(); + try + { + s.set(); + this.currentShaderGroup = s.group; + this.currentShader = s; + } + catch (Exception e) + { + e.printStackTrace(); + } if (old != null) s.copyUniformsFrom(old, ShaderBase.class); @@ -294,9 +305,9 @@ public void setShader(ShaderShadowMap s) if (this.currentShaderGroup != null) old = this.currentShaderGroup.shaderShadowMap; + s.set(); this.currentShaderGroup = s.group; this.currentShader = s; - s.set(); if (old != null) s.copyUniformsFrom(old, ShaderShadowMap.class); diff --git a/src/main/java/basewindow/ComputerFile.java b/src/main/java/basewindow/ComputerFile.java index 88c9df08..08388b78 100644 --- a/src/main/java/basewindow/ComputerFile.java +++ b/src/main/java/basewindow/ComputerFile.java @@ -6,7 +6,6 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; -import java.util.Scanner; public class ComputerFile extends BaseFile { diff --git a/src/main/java/basewindow/InputPoint.java b/src/main/java/basewindow/InputPoint.java index 659bb76b..4acff0ad 100644 --- a/src/main/java/basewindow/InputPoint.java +++ b/src/main/java/basewindow/InputPoint.java @@ -7,6 +7,7 @@ public class InputPoint public double x; public double y; + public String tag = ""; public boolean valid = true; diff --git a/src/main/java/basewindow/ShaderBase.java b/src/main/java/basewindow/ShaderBase.java index 631ff8da..e20ed7f9 100644 --- a/src/main/java/basewindow/ShaderBase.java +++ b/src/main/java/basewindow/ShaderBase.java @@ -38,6 +38,8 @@ public class ShaderBase extends ShaderProgram implements IBaseShader public Uniform1i lightsTexSize; public Uniform1i lightsTexture; + public Uniform1i tex; + // public Uniform1b useNormal; public BaseWindow window; @@ -58,6 +60,7 @@ public ShaderBase(BaseWindow window) @Override public void initializeUniforms() { + this.tex.set(0); this.depthTexture.set(1); this.lightsTexture.set(2); } diff --git a/src/main/java/basewindow/ShaderBones.java b/src/main/java/basewindow/ShaderBones.java index 16f0ec3b..66dff8f2 100644 --- a/src/main/java/basewindow/ShaderBones.java +++ b/src/main/java/basewindow/ShaderBones.java @@ -1,7 +1,5 @@ package basewindow; -import static basewindow.BaseShaderUtil.FLOAT; - public class ShaderBones extends ShaderBase implements IBaseShader, IBoneShader { public Uniform1b bonesEnabled; diff --git a/src/main/java/basewindow/ShaderShadowMapBones.java b/src/main/java/basewindow/ShaderShadowMapBones.java index 0aa441e1..52611487 100644 --- a/src/main/java/basewindow/ShaderShadowMapBones.java +++ b/src/main/java/basewindow/ShaderShadowMapBones.java @@ -1,14 +1,12 @@ package basewindow; -import lwjglwindow.LWJGLWindow; - public class ShaderShadowMapBones extends ShaderShadowMap implements IBaseShader, IBoneShader { public Uniform1b bonesEnabled; public UniformMatrix4 boneMatrices; public Attribute bones; - public ShaderShadowMapBones(LWJGLWindow window) + public ShaderShadowMapBones(BaseWindow window) { super(window); } diff --git a/src/main/java/lwjglwindow/ImmediateModeShapeRenderer.java b/src/main/java/lwjglwindow/ImmediateModeShapeRenderer.java index 8616c658..1b8a8469 100644 --- a/src/main/java/lwjglwindow/ImmediateModeShapeRenderer.java +++ b/src/main/java/lwjglwindow/ImmediateModeShapeRenderer.java @@ -14,7 +14,6 @@ public class ImmediateModeShapeRenderer extends BaseShapeRenderer public ImmediateModeShapeRenderer(LWJGLWindow window) { this.window = window; - this.supportsBatching = true; } public void fillOval(double x, double y, double sX, double sY) diff --git a/src/main/java/lwjglwindow/LWJGLWindow.java b/src/main/java/lwjglwindow/LWJGLWindow.java index 48e640d4..a44a5046 100644 --- a/src/main/java/lwjglwindow/LWJGLWindow.java +++ b/src/main/java/lwjglwindow/LWJGLWindow.java @@ -1129,6 +1129,18 @@ public void setMatrixModelview() glMatrixMode(GL_MODELVIEW); } + @Override + public float[] getTransformedMouse() + { + return new float[0]; + } + + @Override + public float[] getTransformedMouse(double x, double y) + { + return new float[0]; + } + @Override public ModelPart createModelPart() { @@ -1254,7 +1266,7 @@ public BaseShapeBatchRenderer createShapeBatchRenderer(ShaderGroup shader) } @Override - public BaseStaticBatchRenderer createStaticBatchRenderer(ShaderGroup shader, boolean color, String texture, boolean normal, int vertices) + public BaseShapeBatchRenderer createStaticBatchRenderer(ShaderGroup shader, boolean color, String texture, boolean normal, int vertices) { return new VBOStaticBatchRenderer(this, shader, color, texture, normal, vertices); } diff --git a/src/main/java/lwjglwindow/VBOStaticBatchRenderer.java b/src/main/java/lwjglwindow/VBOStaticBatchRenderer.java index afc709b1..a8a3b828 100644 --- a/src/main/java/lwjglwindow/VBOStaticBatchRenderer.java +++ b/src/main/java/lwjglwindow/VBOStaticBatchRenderer.java @@ -1,23 +1,20 @@ package lwjglwindow; -import basewindow.BaseStaticBatchRenderer; +import basewindow.BaseShapeBatchRenderer; +import basewindow.IBatchRenderableObject; import basewindow.ShaderGroup; import basewindow.transformation.Rotation; import basewindow.transformation.Scale; import basewindow.transformation.Translation; import org.lwjgl.BufferUtils; -import tanks.rendering.StaticTerrainRenderer; import java.nio.Buffer; import java.nio.FloatBuffer; -import java.nio.IntBuffer; import java.util.HashMap; -import static basewindow.BaseShaderUtil.FLOAT; -import static basewindow.BaseShaderUtil.INT; import static org.lwjgl.opengl.GL11.*; -public class VBOStaticBatchRenderer extends BaseStaticBatchRenderer +public class VBOStaticBatchRenderer extends BaseShapeBatchRenderer { public LWJGLWindow window; @@ -55,9 +52,12 @@ public class VBOStaticBatchRenderer extends BaseStaticBatchRenderer public boolean depthMask = false; protected HashMap floatAttributes = new HashMap<>(); + public String texture; public VBOStaticBatchRenderer(LWJGLWindow window, ShaderGroup shader, boolean color, String texture, boolean normal, int vertices) { + super(false); + this.window = window; this.vertexCount = vertices; @@ -114,6 +114,18 @@ public void setNormal(float x, float y, float z) this.currentNormalZ = z; } + @Override + public void delete(IBatchRenderableObject o) + { + + } + + @Override + public void beginAdd(IBatchRenderableObject o) + { + + } + public void addPoint(float x, float y, float z) { if (staged) @@ -156,7 +168,6 @@ public void addPoint(float x, float y, float z) } } - @Override public void setNormal(float[] n) { this.setNormal(n[0], n[1], n[2]); @@ -178,6 +189,12 @@ public void setGlow(float g) this.colorGlow = g; } + @Override + public void addAttribute(ShaderGroup.Attribute attribute) + { + + } + public void stage() { if (this.staged) @@ -262,6 +279,12 @@ public void draw() glPopMatrix(); } + @Override + public void endModification() + { + + } + @Override public void free() { diff --git a/src/main/java/tanks/AreaEffectFreeze.java b/src/main/java/tanks/AreaEffectFreeze.java index bc6b43e3..1fbe885e 100644 --- a/src/main/java/tanks/AreaEffectFreeze.java +++ b/src/main/java/tanks/AreaEffectFreeze.java @@ -1,9 +1,9 @@ package tanks; import tanks.AttributeModifier.Operation; -import tanks.network.event.EventCreateFreezeEffect; import tanks.gui.screen.ScreenGame; import tanks.gui.screen.ScreenPartyLobby; +import tanks.network.event.EventCreateFreezeEffect; public class AreaEffectFreeze extends AreaEffect { diff --git a/src/main/java/tanks/Crusade.java b/src/main/java/tanks/Crusade.java index c16e7385..48926413 100644 --- a/src/main/java/tanks/Crusade.java +++ b/src/main/java/tanks/Crusade.java @@ -1,12 +1,13 @@ package tanks; + import basewindow.BaseFile; -import tanks.hotbar.item.ItemBullet; -import tanks.hotbar.item.ItemMine; -import tanks.network.event.*; import tanks.gui.screen.ScreenGame; import tanks.gui.screen.ScreenPartyHost; import tanks.hotbar.ItemBar; import tanks.hotbar.item.Item; +import tanks.hotbar.item.ItemBullet; +import tanks.hotbar.item.ItemMine; +import tanks.network.event.*; import tanks.tank.Tank; import tanks.tank.TankAIControlled; import tanks.tank.TankPlayer; diff --git a/src/main/java/tanks/CrusadePlayer.java b/src/main/java/tanks/CrusadePlayer.java index d4b7aab9..762eb2ed 100644 --- a/src/main/java/tanks/CrusadePlayer.java +++ b/src/main/java/tanks/CrusadePlayer.java @@ -2,14 +2,13 @@ import basewindow.BaseFile; import tanks.bullet.Bullet; -import tanks.gui.screen.ScreenCrashed; import tanks.gui.screen.ScreenGame; -import tanks.gui.screen.ScreenOutOfMemory; import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.ItemBar; import tanks.hotbar.item.Item; -import tanks.tank.*; +import tanks.tank.Explosion; import tanks.tank.Tank; +import tanks.tank.TankPlayer; import java.util.HashMap; diff --git a/src/main/java/tanks/Drawing.java b/src/main/java/tanks/Drawing.java index da2e7bc3..d102ed48 100644 --- a/src/main/java/tanks/Drawing.java +++ b/src/main/java/tanks/Drawing.java @@ -1,13 +1,16 @@ package tanks; -import basewindow.*; -import tanks.obstacle.Obstacle; -import tanks.rendering.TerrainRenderer; -import tanks.rendering.TrackRenderer; -import tanks.network.event.EventPlaySound; +import basewindow.IBatchRenderableObject; +import basewindow.IModel; +import basewindow.Model; +import basewindow.ModelPart; import tanks.gui.Button; import tanks.gui.Joystick; import tanks.gui.screen.ScreenGame; +import tanks.network.event.EventPlaySound; +import tanks.obstacle.Obstacle; +import tanks.rendering.TerrainRenderer; +import tanks.rendering.TrackRenderer; import tanks.tank.TankPlayer; import tanks.translation.Translation; diff --git a/src/main/java/tanks/Effect.java b/src/main/java/tanks/Effect.java index 3e52aff3..bf91ecbe 100644 --- a/src/main/java/tanks/Effect.java +++ b/src/main/java/tanks/Effect.java @@ -2,10 +2,10 @@ import basewindow.IBatchRenderableObject; import tanks.bullet.Bullet; -import tanks.rendering.TrackRenderer; -import tanks.minigames.Arcade; import tanks.gui.screen.ScreenGame; +import tanks.minigames.Arcade; import tanks.obstacle.Obstacle; +import tanks.rendering.TrackRenderer; import tanks.tank.Turret; public class Effect extends Movable implements IDrawableWithGlow, IDrawableLightSource, IBatchRenderableObject diff --git a/src/main/java/tanks/Game.java b/src/main/java/tanks/Game.java index c0599226..18be7862 100644 --- a/src/main/java/tanks/Game.java +++ b/src/main/java/tanks/Game.java @@ -119,7 +119,7 @@ public enum Framework {lwjgl, libgdx} public static double[][] tilesDepth = new double[28][18]; //Remember to change the version in android's build.gradle and ios's robovm.properties - public static final String version = "Tanks v1.5.2i"; + public static final String version = "Tanks v1.5.2"; public static final int network_protocol = 54; public static boolean debug = false; public static boolean traceAllRays = false; diff --git a/src/main/java/tanks/GameDrawer.java b/src/main/java/tanks/GameDrawer.java index e9224bd3..4337a3a4 100644 --- a/src/main/java/tanks/GameDrawer.java +++ b/src/main/java/tanks/GameDrawer.java @@ -28,7 +28,7 @@ public void draw() { Extension e = Game.extensionRegistry.extensions.get(i); - e.drawPostMouse(); + e.draw(); } } } diff --git a/src/main/java/tanks/GameWindowHandler.java b/src/main/java/tanks/GameWindowHandler.java index e2d941bd..9e8b04ed 100644 --- a/src/main/java/tanks/GameWindowHandler.java +++ b/src/main/java/tanks/GameWindowHandler.java @@ -1,8 +1,10 @@ package tanks; import basewindow.IWindowHandler; -import tanks.gui.screen.*; -import tanks.translation.Translation; +import tanks.gui.screen.ScreenGame; +import tanks.gui.screen.ScreenOptions; +import tanks.gui.screen.ScreenPartyHost; +import tanks.gui.screen.ScreenPartyLobby; public class GameWindowHandler implements IWindowHandler { diff --git a/src/main/java/tanks/IDrawableWithGlow.java b/src/main/java/tanks/IDrawableWithGlow.java index 9eb25955..fbb5967c 100644 --- a/src/main/java/tanks/IDrawableWithGlow.java +++ b/src/main/java/tanks/IDrawableWithGlow.java @@ -1,7 +1,5 @@ package tanks; -import tanks.IDrawable; - public interface IDrawableWithGlow extends IDrawable { void drawGlow(); diff --git a/src/main/java/tanks/ItemDrop.java b/src/main/java/tanks/ItemDrop.java index fa90f240..003ed102 100644 --- a/src/main/java/tanks/ItemDrop.java +++ b/src/main/java/tanks/ItemDrop.java @@ -6,7 +6,6 @@ import tanks.network.event.EventItemPickup; import tanks.tank.IServerPlayerTank; import tanks.tank.Tank; -import tanks.tank.TankPlayer; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/tanks/Level.java b/src/main/java/tanks/Level.java index 6917a69e..9aadf59a 100644 --- a/src/main/java/tanks/Level.java +++ b/src/main/java/tanks/Level.java @@ -1,13 +1,14 @@ package tanks; -import tanks.gui.screen.*; +import tanks.gui.screen.ILevelPreviewScreen; +import tanks.gui.screen.ScreenGame; +import tanks.gui.screen.ScreenPartyHost; +import tanks.gui.screen.ScreenPartyLobby; import tanks.gui.screen.leveleditor.ScreenLevelEditor; import tanks.gui.screen.leveleditor.ScreenLevelEditorOverlay; import tanks.hotbar.item.Item; -import tanks.hotbar.item.ItemBullet; -import tanks.hotbar.item.ItemMine; -import tanks.obstacle.Obstacle; import tanks.network.event.*; +import tanks.obstacle.Obstacle; import tanks.tank.*; import java.util.ArrayList; @@ -788,6 +789,6 @@ public Tile(int x, int y) public static boolean isDark() { - return Level.currentColorR * 0.2126 + Level.currentColorG * 0.7152 + Level.currentColorB * 0.0722 <= 127 || (Game.framework != Game.Framework.libgdx && currentLightIntensity <= 0.5); + return Level.currentColorR * 0.2126 + Level.currentColorG * 0.7152 + Level.currentColorB * 0.0722 <= 127 || currentLightIntensity <= 0.5; } } diff --git a/src/main/java/tanks/ModAPI.java b/src/main/java/tanks/ModAPI.java index 3bfc8160..1bc50d47 100644 --- a/src/main/java/tanks/ModAPI.java +++ b/src/main/java/tanks/ModAPI.java @@ -1,8 +1,8 @@ package tanks; import tanks.gui.IFixedMenu; +import tanks.network.NetworkEventMap; import tanks.network.event.*; -import tanks.network.*; import tanks.obstacle.Obstacle; import tanks.tank.Tank; import tanks.tank.TankModels; diff --git a/src/main/java/tanks/Movable.java b/src/main/java/tanks/Movable.java index 907779ed..e49a327b 100644 --- a/src/main/java/tanks/Movable.java +++ b/src/main/java/tanks/Movable.java @@ -1,15 +1,12 @@ package tanks; import tanks.bullet.Bullet; -import tanks.gui.screen.Screen; import tanks.gui.screen.ScreenGame; import tanks.gui.screen.ScreenPartyHost; -import tanks.gui.screen.ScreenPartyLobby; import tanks.network.event.EventStatusEffectBegin; import tanks.network.event.EventStatusEffectDeteriorate; import tanks.network.event.EventStatusEffectEnd; import tanks.obstacle.Obstacle; -import tanks.tank.Mine; import tanks.tank.NameTag; import tanks.tank.Tank; diff --git a/src/main/java/tanks/Panel.java b/src/main/java/tanks/Panel.java index e52c8bb6..d4ac0fa8 100644 --- a/src/main/java/tanks/Panel.java +++ b/src/main/java/tanks/Panel.java @@ -1,25 +1,22 @@ package tanks; -import basewindow.BaseFile; import basewindow.InputCodes; -import basewindow.transformation.Translation; -import tanks.gui.ScreenIntro; -import tanks.network.NetworkEventMap; -import tanks.network.event.INetworkEvent; -import tanks.network.event.IStackableEvent; -import tanks.rendering.*; -import tanks.network.event.EventBeginLevelCountdown; -import tanks.network.event.online.IOnlineServerEvent; import tanks.extension.Extension; import tanks.gui.IFixedMenu; +import tanks.gui.ScreenIntro; import tanks.gui.TextBox; import tanks.gui.screen.*; import tanks.gui.screen.leveleditor.ScreenLevelEditor; import tanks.hotbar.Hotbar; import tanks.network.Client; -import tanks.network.ClientHandler; import tanks.network.MessageReader; +import tanks.network.NetworkEventMap; +import tanks.network.event.EventBeginLevelCountdown; +import tanks.network.event.INetworkEvent; +import tanks.network.event.IStackableEvent; +import tanks.network.event.online.IOnlineServerEvent; import tanks.obstacle.Obstacle; +import tanks.rendering.*; import tanks.tank.*; import java.util.ArrayList; @@ -675,23 +672,13 @@ public void draw() if (!(Game.screen instanceof ScreenExit || Game.screen instanceof ScreenIntro)) this.drawBar(); - if (Game.enableExtensions) - { - for (int i = 0; i < Game.extensionRegistry.extensions.size(); i++) - { - Extension e = Game.extensionRegistry.extensions.get(i); - - e.draw(); - } - } - if (Game.screen.showDefaultMouse) this.drawMouseTarget(); Drawing.drawing.setColor(255, 255, 255); - Drawing.drawing.setColor(0, 0, 0, 0); - Drawing.drawing.fillInterfaceRect(0, 0, 0, 0); +// Drawing.drawing.setColor(0, 0, 0, 0); +// Drawing.drawing.fillInterfaceRect(0, 0, 0, 0); Game.screen.drawPostMouse(); @@ -733,7 +720,7 @@ public void drawMouseTarget(boolean force) { double v = 1; if (Game.screen instanceof ScreenIntro) - v = Obstacle.draw_size; + v = Obstacle.draw_size / Game.tile_size; if (v > 0.05) { diff --git a/src/main/java/tanks/Player.java b/src/main/java/tanks/Player.java index e145cad2..b678f8f2 100644 --- a/src/main/java/tanks/Player.java +++ b/src/main/java/tanks/Player.java @@ -1,13 +1,11 @@ package tanks; import basewindow.BaseFile; -import tanks.gui.screen.ScreenGame; import tanks.hotbar.Hotbar; import tanks.hotbar.ItemBar; import tanks.hotbar.item.Item; import tanks.network.ConnectedPlayer; import tanks.tank.Tank; -import tanks.tank.TankPlayer; import tanks.tank.Turret; import java.util.ArrayList; diff --git a/src/main/java/tanks/StatusEffect.java b/src/main/java/tanks/StatusEffect.java index d5a2d39b..a271fc82 100644 --- a/src/main/java/tanks/StatusEffect.java +++ b/src/main/java/tanks/StatusEffect.java @@ -2,7 +2,6 @@ import tanks.minigames.Arcade; -import java.util.ArrayList; import java.util.HashMap; public class StatusEffect diff --git a/src/main/java/tanks/bullet/Bullet.java b/src/main/java/tanks/bullet/Bullet.java index 92e30133..2a7e11cf 100644 --- a/src/main/java/tanks/bullet/Bullet.java +++ b/src/main/java/tanks/bullet/Bullet.java @@ -468,7 +468,7 @@ public void collideBounce(Bullet b) public void collidedWithBullet(Bullet b) { - if (this.heavy == b.heavy && b.enableExternalCollisions) + if (this.heavy == b.heavy && this.enableExternalCollisions) { if (this.bulletHitKnockback <= 0 && b.bulletHitKnockback <= 0) { diff --git a/src/main/java/tanks/bullet/BulletBoost.java b/src/main/java/tanks/bullet/BulletBoost.java index e540f6c8..4ddfd88e 100644 --- a/src/main/java/tanks/bullet/BulletBoost.java +++ b/src/main/java/tanks/bullet/BulletBoost.java @@ -1,6 +1,9 @@ package tanks.bullet; -import tanks.*; +import tanks.AttributeModifier; +import tanks.Drawing; +import tanks.Effect; +import tanks.Game; import tanks.hotbar.item.ItemBullet; import tanks.tank.Tank; diff --git a/src/main/java/tanks/bullet/BulletElectric.java b/src/main/java/tanks/bullet/BulletElectric.java index 6a196fe7..92d1a2d9 100644 --- a/src/main/java/tanks/bullet/BulletElectric.java +++ b/src/main/java/tanks/bullet/BulletElectric.java @@ -2,12 +2,12 @@ import tanks.*; import tanks.AttributeModifier.Operation; +import tanks.gui.screen.ScreenGame; +import tanks.hotbar.item.ItemBullet; import tanks.network.event.EventBulletDestroyed; -import tanks.network.event.EventBulletStunEffect; import tanks.network.event.EventBulletInstantWaypoint; +import tanks.network.event.EventBulletStunEffect; import tanks.network.event.EventShootBullet; -import tanks.gui.screen.ScreenGame; -import tanks.hotbar.item.ItemBullet; import tanks.tank.Mine; import tanks.tank.Tank; diff --git a/src/main/java/tanks/bullet/BulletExplosive.java b/src/main/java/tanks/bullet/BulletExplosive.java index a2130955..f46f9aea 100644 --- a/src/main/java/tanks/bullet/BulletExplosive.java +++ b/src/main/java/tanks/bullet/BulletExplosive.java @@ -1,7 +1,6 @@ package tanks.bullet; import tanks.gui.screen.ScreenPartyLobby; -import tanks.network.event.EventLayMine; import tanks.hotbar.item.ItemBullet; import tanks.tank.Explosion; import tanks.tank.Mine; diff --git a/src/main/java/tanks/bullet/BulletFlame2.java b/src/main/java/tanks/bullet/BulletFlame2.java index f71b2759..f7059406 100644 --- a/src/main/java/tanks/bullet/BulletFlame2.java +++ b/src/main/java/tanks/bullet/BulletFlame2.java @@ -30,7 +30,7 @@ public BulletFlame2(double x, double y, int bounces, Tank t, boolean affectsLive this.glowSize = 3; this.maxLiveBullets = 0; this.cooldown = 0; - this.effect = Bullet.BulletEffect.none; + this.effect = BulletEffect.none; this.bounces = 0; this.damage = 0.1; this.lowersBushes = false; diff --git a/src/main/java/tanks/bullet/BulletGas.java b/src/main/java/tanks/bullet/BulletGas.java index 87af4e03..d0b99c89 100644 --- a/src/main/java/tanks/bullet/BulletGas.java +++ b/src/main/java/tanks/bullet/BulletGas.java @@ -1,9 +1,11 @@ package tanks.bullet; -import tanks.*; -import tanks.network.event.EventBulletUpdate; -import tanks.network.event.EventTankControllerAddVelocity; +import tanks.Drawing; +import tanks.Game; +import tanks.IDrawableWithGlow; +import tanks.Movable; import tanks.hotbar.item.ItemBullet; +import tanks.network.event.EventTankControllerAddVelocity; import tanks.tank.Tank; import tanks.tank.TankPlayerRemote; diff --git a/src/main/java/tanks/bullet/BulletHealing.java b/src/main/java/tanks/bullet/BulletHealing.java index b4dabd8d..77e2da16 100644 --- a/src/main/java/tanks/bullet/BulletHealing.java +++ b/src/main/java/tanks/bullet/BulletHealing.java @@ -2,8 +2,8 @@ import tanks.*; import tanks.AttributeModifier.Operation; -import tanks.network.event.EventTankUpdateHealth; import tanks.hotbar.item.ItemBullet; +import tanks.network.event.EventTankUpdateHealth; import tanks.tank.Tank; public class BulletHealing extends BulletInstant diff --git a/src/main/java/tanks/bullet/BulletHoming.java b/src/main/java/tanks/bullet/BulletHoming.java index eff1f1c3..0e2d2c54 100644 --- a/src/main/java/tanks/bullet/BulletHoming.java +++ b/src/main/java/tanks/bullet/BulletHoming.java @@ -1,9 +1,9 @@ package tanks.bullet; import tanks.*; -import tanks.network.event.EventBulletUpdateTarget; import tanks.gui.screen.ScreenGame; import tanks.hotbar.item.ItemBullet; +import tanks.network.event.EventBulletUpdateTarget; import tanks.tank.Ray; import tanks.tank.Tank; diff --git a/src/main/java/tanks/bullet/BulletInstant.java b/src/main/java/tanks/bullet/BulletInstant.java index 53acfb78..6d8fa535 100644 --- a/src/main/java/tanks/bullet/BulletInstant.java +++ b/src/main/java/tanks/bullet/BulletInstant.java @@ -3,11 +3,11 @@ import tanks.Effect; import tanks.Game; import tanks.Panel; +import tanks.gui.screen.ScreenGame; +import tanks.hotbar.item.ItemBullet; import tanks.network.event.EventBulletDestroyed; import tanks.network.event.EventBulletInstantWaypoint; import tanks.network.event.EventShootBullet; -import tanks.gui.screen.ScreenGame; -import tanks.hotbar.item.ItemBullet; import tanks.tank.Tank; import java.util.ArrayList; diff --git a/src/main/java/tanks/bullet/BulletLaser.java b/src/main/java/tanks/bullet/BulletLaser.java index 25384c38..2f2df79e 100644 --- a/src/main/java/tanks/bullet/BulletLaser.java +++ b/src/main/java/tanks/bullet/BulletLaser.java @@ -1,7 +1,5 @@ package tanks.bullet; -import tanks.Effect; -import tanks.Game; import tanks.Movable; import tanks.hotbar.item.ItemBullet; import tanks.tank.Tank; @@ -44,7 +42,6 @@ public void update() public void collidedWithObject(Movable m) { this.playPopSound = true; - System.out.println(m); super.collidedWithObject(m); this.playPopSound = false; } diff --git a/src/main/java/tanks/bullet/Laser.java b/src/main/java/tanks/bullet/Laser.java index 2636a44a..70e242a7 100644 --- a/src/main/java/tanks/bullet/Laser.java +++ b/src/main/java/tanks/bullet/Laser.java @@ -1,6 +1,9 @@ package tanks.bullet; -import tanks.*; +import tanks.Drawing; +import tanks.Game; +import tanks.IDrawableWithGlow; +import tanks.Movable; import tanks.gui.screen.ScreenGame; import tanks.tank.Tank; diff --git a/src/main/java/tanks/bullet/legacy/BulletAir.java b/src/main/java/tanks/bullet/legacy/BulletAir.java index 676c7252..3130cbb3 100644 --- a/src/main/java/tanks/bullet/legacy/BulletAir.java +++ b/src/main/java/tanks/bullet/legacy/BulletAir.java @@ -5,9 +5,8 @@ import tanks.Movable; import tanks.Panel; import tanks.bullet.Bullet; -import tanks.network.event.EventBulletUpdate; -import tanks.network.event.EventTankControllerAddVelocity; import tanks.hotbar.item.ItemBullet; +import tanks.network.event.EventTankControllerAddVelocity; import tanks.tank.Tank; import tanks.tank.TankPlayerRemote; diff --git a/src/main/java/tanks/extension/Extension.java b/src/main/java/tanks/extension/Extension.java index 9a4f857c..ef850eb0 100644 --- a/src/main/java/tanks/extension/Extension.java +++ b/src/main/java/tanks/extension/Extension.java @@ -1,8 +1,6 @@ package tanks.extension; import tanks.Game; -import tanks.ModAPI; -import tanks.minigames.Minigame; import java.io.InputStream; import java.io.InputStreamReader; @@ -120,12 +118,6 @@ public void draw() } - // Called after every frame after the mouse cursor is drawn. Can be left blank. - public void drawPostMouse() - { - - } - public ArrayList getFileContents(String file) { try diff --git a/src/main/java/tanks/generator/LevelGenerator.java b/src/main/java/tanks/generator/LevelGenerator.java index f143c9d1..cf085013 100644 --- a/src/main/java/tanks/generator/LevelGenerator.java +++ b/src/main/java/tanks/generator/LevelGenerator.java @@ -2,7 +2,6 @@ import tanks.gui.property.UIProperty; -import java.util.ArrayList; import java.util.LinkedHashMap; public abstract class LevelGenerator diff --git a/src/main/java/tanks/generator/LevelGeneratorRandom.java b/src/main/java/tanks/generator/LevelGeneratorRandom.java index c7be42cb..7c454d93 100644 --- a/src/main/java/tanks/generator/LevelGeneratorRandom.java +++ b/src/main/java/tanks/generator/LevelGeneratorRandom.java @@ -1,7 +1,6 @@ package tanks.generator; import tanks.Game; -import tanks.Level; import tanks.gui.screen.ScreenPartyHost; import java.util.ArrayList; @@ -524,7 +523,7 @@ else if (rand < 0.75) } } - if (dark && Game.framework != Game.Framework.libgdx) + if (dark) { for (int j = 0; j < numLights; j++) { diff --git a/src/main/java/tanks/generator/LevelGeneratorVersus.java b/src/main/java/tanks/generator/LevelGeneratorVersus.java index 88dbc742..84bc1ed2 100644 --- a/src/main/java/tanks/generator/LevelGeneratorVersus.java +++ b/src/main/java/tanks/generator/LevelGeneratorVersus.java @@ -534,7 +534,7 @@ else if (rand < 0.75) } } - if (dark && Game.framework != Game.Framework.libgdx) + if (dark) { for (int j = 0; j < numLights; j++) { diff --git a/src/main/java/tanks/gui/ButtonObject.java b/src/main/java/tanks/gui/ButtonObject.java index 670cb8a8..1f772f56 100644 --- a/src/main/java/tanks/gui/ButtonObject.java +++ b/src/main/java/tanks/gui/ButtonObject.java @@ -3,7 +3,6 @@ import tanks.Drawing; import tanks.Game; import tanks.IDrawableForInterface; -import tanks.tank.TankProperty; import tanks.translation.Translation; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/ChatBox.java b/src/main/java/tanks/gui/ChatBox.java index 40b29348..fa13de28 100644 --- a/src/main/java/tanks/gui/ChatBox.java +++ b/src/main/java/tanks/gui/ChatBox.java @@ -5,9 +5,7 @@ import tanks.Drawing; import tanks.Game; import tanks.Panel; -import tanks.gui.input.InputBinding; import tanks.gui.input.InputBindingGroup; -import tanks.gui.screen.Screen; import tanks.gui.screen.ScreenInfo; public class ChatBox extends TextBox diff --git a/src/main/java/tanks/gui/Joystick.java b/src/main/java/tanks/gui/Joystick.java index b229e037..e11f28ff 100644 --- a/src/main/java/tanks/gui/Joystick.java +++ b/src/main/java/tanks/gui/Joystick.java @@ -5,6 +5,7 @@ import tanks.Game; import tanks.IDrawable; import tanks.gui.screen.ScreenGame; +import tanks.minigames.Arcade; import tanks.minigames.Minigame; import tanks.tank.TankPlayer; @@ -66,7 +67,7 @@ public void update() this.activeInput = -1; } - if (!(Game.playerTank == null || Game.playerTank.destroy || (Game.screen instanceof ScreenGame && ((ScreenGame) Game.screen).paused))) + if (!(Game.playerTank == null || (Game.playerTank.destroy && !(Game.currentLevel instanceof Arcade)) || (Game.screen instanceof ScreenGame && ((ScreenGame) Game.screen).paused))) { for (int i : Game.game.window.touchPoints.keySet()) { diff --git a/src/main/java/tanks/gui/Label.java b/src/main/java/tanks/gui/Label.java index d479f34a..8c6352fd 100644 --- a/src/main/java/tanks/gui/Label.java +++ b/src/main/java/tanks/gui/Label.java @@ -1,6 +1,7 @@ package tanks.gui; -import tanks.*; +import tanks.Drawing; +import tanks.IDrawable; import tanks.translation.Translation; public class Label implements IDrawable diff --git a/src/main/java/tanks/gui/RemoteScoreboard.java b/src/main/java/tanks/gui/RemoteScoreboard.java index 2204522a..2bf97271 100644 --- a/src/main/java/tanks/gui/RemoteScoreboard.java +++ b/src/main/java/tanks/gui/RemoteScoreboard.java @@ -2,7 +2,6 @@ import tanks.Drawing; import tanks.Game; -import tanks.ModAPI; import tanks.Panel; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/SavedFilesList.java b/src/main/java/tanks/gui/SavedFilesList.java index 9febae13..6be5f540 100644 --- a/src/main/java/tanks/gui/SavedFilesList.java +++ b/src/main/java/tanks/gui/SavedFilesList.java @@ -8,7 +8,6 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; -import java.util.Comparator; import java.util.HashMap; diff --git a/src/main/java/tanks/gui/Scoreboard.java b/src/main/java/tanks/gui/Scoreboard.java index 8587d092..d0182e7b 100644 --- a/src/main/java/tanks/gui/Scoreboard.java +++ b/src/main/java/tanks/gui/Scoreboard.java @@ -1,6 +1,9 @@ package tanks.gui; -import tanks.*; +import tanks.Drawing; +import tanks.Game; +import tanks.Player; +import tanks.Team; import tanks.network.event.EventAddScoreboard; import tanks.network.event.EventChangeScoreboardAttribute; import tanks.network.event.EventScoreboardUpdateScore; diff --git a/src/main/java/tanks/gui/ScreenIntro.java b/src/main/java/tanks/gui/ScreenIntro.java index 90d2b7c8..459d5a3b 100644 --- a/src/main/java/tanks/gui/ScreenIntro.java +++ b/src/main/java/tanks/gui/ScreenIntro.java @@ -46,6 +46,7 @@ public ScreenIntro() ScreenChangelog s = new ScreenChangelog(); s.setup(); + s.prev = nextScreen; if (!s.pages.isEmpty()) nextScreen = s; @@ -91,6 +92,8 @@ public void update() public void draw() { Game.game.window.clipMultiplier = 2; + Game.game.window.clipDistMultiplier = 50; + double frac = Math.min(1, ((lastTime - startTime - introTime) / introAnimationTime)); if (Game.enable3d && Game.fancyTerrain) @@ -105,7 +108,7 @@ public void draw() if (lastTime - startTime >= introTime && Game.fancyTerrain) { - Obstacle.draw_size = frac; + Obstacle.draw_size = frac * Game.tile_size; Game.screen.drawDefaultBackground(frac); } @@ -124,5 +127,6 @@ public void draw() Panel.panel.drawBar((1 - frac) * 40); Game.game.window.clipMultiplier = 100; + Game.game.window.clipDistMultiplier = 0.5; } } diff --git a/src/main/java/tanks/gui/Selector.java b/src/main/java/tanks/gui/Selector.java index f702843b..f2d1e605 100644 --- a/src/main/java/tanks/gui/Selector.java +++ b/src/main/java/tanks/gui/Selector.java @@ -377,8 +377,8 @@ public void setScreen() public void resetLayout() { Drawing.drawing.interfaceScaleZoom = Drawing.drawing.interfaceScaleZoomDefault; - Drawing.drawing.interfaceSizeX = Drawing.drawing.interfaceSizeX / Drawing.drawing.interfaceScaleZoom; - Drawing.drawing.interfaceSizeY = Drawing.drawing.interfaceSizeY / Drawing.drawing.interfaceScaleZoom; + Drawing.drawing.interfaceSizeX = Drawing.drawing.baseInterfaceSizeX / Drawing.drawing.interfaceScaleZoom; + Drawing.drawing.interfaceSizeY = Drawing.drawing.baseInterfaceSizeY / Drawing.drawing.interfaceScaleZoom; } @Override diff --git a/src/main/java/tanks/gui/SelectorImage.java b/src/main/java/tanks/gui/SelectorImage.java index cb3d2ac5..a7145319 100644 --- a/src/main/java/tanks/gui/SelectorImage.java +++ b/src/main/java/tanks/gui/SelectorImage.java @@ -151,13 +151,6 @@ public void addEffect() Button.addEffect(posX - sizeX / 2 + sizeY * 7 / 8, posY - sizeY * 3 / 8, this.sizeY * 1.5, this.sizeY * 1.5, this.glowEffects); } - public void resetLayout() - { - Drawing.drawing.interfaceScaleZoom = Drawing.drawing.interfaceScaleZoomDefault; - Drawing.drawing.interfaceSizeX = Drawing.drawing.interfaceSizeX / Drawing.drawing.interfaceScaleZoom; - Drawing.drawing.interfaceSizeY = Drawing.drawing.interfaceSizeY / Drawing.drawing.interfaceScaleZoom; - } - @Override public void setScreen() { diff --git a/src/main/java/tanks/gui/SelectorMusic.java b/src/main/java/tanks/gui/SelectorMusic.java index c7fb2dda..5788397d 100644 --- a/src/main/java/tanks/gui/SelectorMusic.java +++ b/src/main/java/tanks/gui/SelectorMusic.java @@ -56,6 +56,8 @@ else if (numSelected > 1) @Override public void setScreen() { + this.resetLayout(); + if (this.screen != null) { this.screen.tank.musicTracks.clear(); diff --git a/src/main/java/tanks/gui/TextBoxSlider.java b/src/main/java/tanks/gui/TextBoxSlider.java index c96526cb..0be2be8e 100644 --- a/src/main/java/tanks/gui/TextBoxSlider.java +++ b/src/main/java/tanks/gui/TextBoxSlider.java @@ -1,12 +1,10 @@ package tanks.gui; -import basewindow.InputCodes; import basewindow.InputPoint; import tanks.Drawing; import tanks.Effect; import tanks.Game; import tanks.Panel; -import tanks.gui.screen.ScreenInfo; public class TextBoxSlider extends TextBox { diff --git a/src/main/java/tanks/gui/screen/Screen.java b/src/main/java/tanks/gui/screen/Screen.java index 776ac029..751e60d4 100644 --- a/src/main/java/tanks/gui/screen/Screen.java +++ b/src/main/java/tanks/gui/screen/Screen.java @@ -1,7 +1,10 @@ package tanks.gui.screen; import basewindow.IBatchRenderableObject; -import tanks.*; +import tanks.Drawing; +import tanks.Game; +import tanks.Level; +import tanks.Panel; import tanks.gui.ScreenIntro; import tanks.obstacle.Obstacle; import tanks.rendering.StaticTerrainRenderer; @@ -145,11 +148,6 @@ public void drawDefaultBackground(double size) this.lastObsSize = Obstacle.draw_size; } - public double getFlashCol(double col, int i, int j) - { - return col * (1 - Game.tilesFlash[i][j]) + Game.tilesFlash[i][j] * 255; - } - public double getOffsetX() { return 0; diff --git a/src/main/java/tanks/gui/screen/ScreenArcadeBonuses.java b/src/main/java/tanks/gui/screen/ScreenArcadeBonuses.java index 278ff80c..432f3893 100644 --- a/src/main/java/tanks/gui/screen/ScreenArcadeBonuses.java +++ b/src/main/java/tanks/gui/screen/ScreenArcadeBonuses.java @@ -7,10 +7,12 @@ import tanks.gui.Firework; import tanks.minigames.Arcade; import tanks.network.event.EventArcadeBonuses; -import tanks.tank.Tank; import tanks.translation.Translation; -import java.util.*; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; public class ScreenArcadeBonuses extends Screen implements IDarkScreen { @@ -441,7 +443,7 @@ public void drawPoints() double posY = -((Game.game.window.absoluteHeight - Drawing.drawing.statsHeight) / Drawing.drawing.interfaceScale - Drawing.drawing.interfaceSizeY) / 2 + 50; posX = posX * (1 - heightFrac) + this.centerX * heightFrac; - posY = posY * (1 - heightFrac) + (this.objYSpace * 2) * heightFrac; + posY = posY * (1 - heightFrac) + (this.objYSpace * (2 / Drawing.drawing.interfaceScaleZoom)) * heightFrac; Drawing.drawing.setInterfaceFontSize(36 * (1 + 0.25 * frac)); String s = Translation.translate("Score: %d", score); diff --git a/src/main/java/tanks/gui/screen/ScreenChangelog.java b/src/main/java/tanks/gui/screen/ScreenChangelog.java index 2b41db68..124a021c 100644 --- a/src/main/java/tanks/gui/screen/ScreenChangelog.java +++ b/src/main/java/tanks/gui/screen/ScreenChangelog.java @@ -465,50 +465,17 @@ public static void setupLogs() } ); - new Changelog("v1.5.2f", new String[] + new Changelog("v1.5.2", new String[] { - "*What's new in Tanks v1.5.2f:\n\n" + - "Bug fixes and other minor improvements\n" - } - ); - - new Changelog("v1.5.2g", new String[] - { - "*What's new in Tanks v1.5.2g:\n\n" + - "Adjusted tank AI\n" + - "Bug fixes and other minor improvements\n" - } - ); - - new Changelog("v1.5.2h", new String[] - { - "*What's new in Tanks v1.5.2h:\n\n" + + "*What's new in Tanks v1.5.2:\n\n" + + "Improved and adjusted tank AI\n" + "Added new 'Bullet avoid type' to tank customization\n" + - "Added 'Aggressive strafe' sight behavior\n" + + "Added 'Sidewind' and 'Backwind' sight behaviors\n" + + "Added all the missing features to the mobile version\n" + "Bug fixes and other minor improvements\n" } ); - new Changelog("v1.5.2i", new String[] - { - "*What's new in Tanks v1.5.2i:\n\n" + - "Added units to time and distance in tank editor\n" + - "Added 'Backwind' tank AI on sight - zig zag away\n" + - "Renamed 'Aggressive strafe' to 'Sidewind'\n" + - "Adjusted Tank AI:\n" + - "- Black tanks now seek open spaces and back off\n" + - "- Dark green tanks now dodge\n" + - "- Light pink tanks now seek open spaces and dodge\n" + - "- Angry light pink tanks now aggressively dodge and sidewind on sight\n" + - "- Mimic tanks (when not mimicking) now seek open spaces and dodge\n" + - "- Orange tanks now seek open spaces and aggressively dodge\n" + - "- Purple tanks now seek open spaces, dodge, and turn turret faster\n" + - "- Salmon tanks now backwind on sight\n" + - "- White tanks now seek open spaces, dodge, and turn turret faster\n" + - "- Yellow tanks now fire less but lay more mines\n" + - "Bug fixes and other minor improvements\n" - } - ); } } } \ No newline at end of file diff --git a/src/main/java/tanks/gui/screen/ScreenCinematicTitle.java b/src/main/java/tanks/gui/screen/ScreenCinematicTitle.java index 19f524e9..36dbadcb 100644 --- a/src/main/java/tanks/gui/screen/ScreenCinematicTitle.java +++ b/src/main/java/tanks/gui/screen/ScreenCinematicTitle.java @@ -2,14 +2,10 @@ import tanks.Drawing; import tanks.Game; -import tanks.Movable; import tanks.Panel; -import tanks.bullet.Bullet; -import tanks.obstacle.Obstacle; import tanks.tank.Mine; import tanks.tank.Tank; import tanks.tank.TankDummyLoadingScreen; -import tanks.tank.Turret; public class ScreenCinematicTitle extends Screen implements ISeparateBackgroundScreen { diff --git a/src/main/java/tanks/gui/screen/ScreenConfirmEndParty.java b/src/main/java/tanks/gui/screen/ScreenConfirmEndParty.java index 68e112d0..1f28e17f 100644 --- a/src/main/java/tanks/gui/screen/ScreenConfirmEndParty.java +++ b/src/main/java/tanks/gui/screen/ScreenConfirmEndParty.java @@ -4,7 +4,6 @@ import tanks.Drawing; import tanks.Game; import tanks.gui.Button; -import tanks.gui.ChatMessage; public class ScreenConfirmEndParty extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenControlsGame.java b/src/main/java/tanks/gui/screen/ScreenControlsGame.java index c9338e2a..fe8dfe07 100644 --- a/src/main/java/tanks/gui/screen/ScreenControlsGame.java +++ b/src/main/java/tanks/gui/screen/ScreenControlsGame.java @@ -2,7 +2,6 @@ import tanks.Drawing; import tanks.Game; -import tanks.gui.Button; import tanks.gui.InputSelector; public class ScreenControlsGame extends Screen diff --git a/src/main/java/tanks/gui/screen/ScreenControlsHotbar.java b/src/main/java/tanks/gui/screen/ScreenControlsHotbar.java index f76442bf..5374485e 100644 --- a/src/main/java/tanks/gui/screen/ScreenControlsHotbar.java +++ b/src/main/java/tanks/gui/screen/ScreenControlsHotbar.java @@ -2,7 +2,6 @@ import tanks.Drawing; import tanks.Game; -import tanks.gui.Button; import tanks.gui.InputSelector; public class ScreenControlsHotbar extends Screen diff --git a/src/main/java/tanks/gui/screen/ScreenControlsTank.java b/src/main/java/tanks/gui/screen/ScreenControlsTank.java index 92cf96db..5064d8cd 100644 --- a/src/main/java/tanks/gui/screen/ScreenControlsTank.java +++ b/src/main/java/tanks/gui/screen/ScreenControlsTank.java @@ -2,7 +2,6 @@ import tanks.Drawing; import tanks.Game; -import tanks.gui.Button; import tanks.gui.InputSelector; public class ScreenControlsTank extends Screen diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadeDetails.java b/src/main/java/tanks/gui/screen/ScreenCrusadeDetails.java index abf69fb3..d9519724 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadeDetails.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadeDetails.java @@ -1,7 +1,10 @@ package tanks.gui.screen; import basewindow.BaseFile; -import tanks.*; +import tanks.Crusade; +import tanks.Drawing; +import tanks.Game; +import tanks.Panel; import tanks.gui.Button; import tanks.gui.SpeedrunTimer; import tanks.translation.Translation; @@ -100,7 +103,7 @@ public void run() Game.screen = new ScreenCrusades(); }); - Button showRecordButton = new Button(this.centerX + Drawing.drawing.interfaceSizeX * 0.35 - 30, this.centerY + this.objYSpace * 4, 30, 30, "i", () -> + Button showRecordButton = new Button(this.centerX + Drawing.drawing.baseInterfaceSizeX * 0.35 - 30, this.centerY + this.objYSpace * 4, 30, 30, "i", () -> { ScreenCrusadeStats s = new ScreenCrusadeStats(crusade, this); Game.screen = s; @@ -215,8 +218,8 @@ public void draw() if (Game.previewCrusades) { Drawing.drawing.setColor(0, 0, 0, 127); - Drawing.drawing.fillInterfaceRect(this.centerX, this.centerY, Drawing.drawing.interfaceSizeX * 0.7, this.objYSpace * 9); - Drawing.drawing.fillInterfaceRect(this.centerX, this.centerY, Drawing.drawing.interfaceSizeX * 0.7 - 20, this.objYSpace * 9 - 20); + Drawing.drawing.fillInterfaceRect(this.centerX, this.centerY, Drawing.drawing.baseInterfaceSizeX * 0.7, this.objYSpace * 9); + Drawing.drawing.fillInterfaceRect(this.centerX, this.centerY, Drawing.drawing.baseInterfaceSizeX * 0.7 - 20, this.objYSpace * 9 - 20); Drawing.drawing.setColor(255, 255, 255); } @@ -233,7 +236,7 @@ public void draw() Drawing.drawing.setInterfaceFontSize(this.textSize * 0.75); if (Game.previewCrusades) - Drawing.drawing.displayInterfaceText(this.centerX + Drawing.drawing.interfaceSizeX * 0.35 - 50, this.centerY + this.objYSpace * 4, true, "Best completion time: %s", SpeedrunTimer.getTime(this.bestTime)); + Drawing.drawing.displayInterfaceText(this.centerX + Drawing.drawing.baseInterfaceSizeX * 0.35 - 50, this.centerY + this.objYSpace * 4, true, "Best completion time: %s", SpeedrunTimer.getTime(this.bestTime)); else Drawing.drawing.displayInterfaceText(this.centerX, this.centerY + this.objYSpace * 4, "Best completion time: %s", SpeedrunTimer.getTime(this.bestTime)); @@ -292,4 +295,13 @@ public void draw() } } } + + @Override + public void setupLayoutParameters() + { + this.objWidth = 350 * Drawing.drawing.interfaceScaleZoom; + this.objHeight = 40 * Drawing.drawing.interfaceScaleZoom; + this.objXSpace = 380 * Drawing.drawing.interfaceScaleZoom; + this.objYSpace = 60 * Drawing.drawing.interfaceScaleZoom; + } } diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadeEditLevel.java b/src/main/java/tanks/gui/screen/ScreenCrusadeEditLevel.java index b846f650..89f10018 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadeEditLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadeEditLevel.java @@ -4,7 +4,6 @@ import tanks.*; import tanks.gui.Button; import tanks.gui.TextBox; -import tanks.gui.screen.leveleditor.ScreenLevelEditor; import tanks.obstacle.Obstacle; import tanks.tank.TankAIControlled; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadeEditor.java b/src/main/java/tanks/gui/screen/ScreenCrusadeEditor.java index 6aa785ef..3dba9c07 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadeEditor.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadeEditor.java @@ -1,7 +1,10 @@ package tanks.gui.screen; import basewindow.BaseFile; -import tanks.*; +import tanks.Crusade; +import tanks.Drawing; +import tanks.Game; +import tanks.Level; import tanks.gui.Button; import tanks.gui.ButtonList; import tanks.gui.Selector; diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadeLevels.java b/src/main/java/tanks/gui/screen/ScreenCrusadeLevels.java index 9ad681e6..3515615d 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadeLevels.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadeLevels.java @@ -1,6 +1,9 @@ package tanks.gui.screen; -import basewindow.transformation.*; +import basewindow.transformation.RotationAboutPoint; +import basewindow.transformation.ScaleAboutPoint; +import basewindow.transformation.Transformation; +import basewindow.transformation.Translation; import tanks.*; import tanks.obstacle.Obstacle; import tanks.rendering.StaticTerrainRenderer; @@ -260,7 +263,7 @@ public void draw() Game.movables = l.movables; Game.obstacles = l.obstacles; - l.renderer.offX = Drawing.drawing.interfaceSizeX / 2 - (l.width / 2.0) * Game.tile_size; + l.renderer.offX = Drawing.drawing.baseInterfaceSizeX / 2 - (l.width / 2.0) * Game.tile_size; l.renderer.offY = Game.tile_size * -(i - rem); l.renderer.draw(); @@ -272,7 +275,7 @@ public void draw() drawables[m.nameTag.drawLevel].add(m.nameTag); } - if (Game.enable3d && Game.game.window.shapeRenderer.supportsBatching) + if (Game.enable3d) { for (int n = 0; n < drawables.length; n++) { @@ -293,7 +296,7 @@ public void draw() } } - translation.x = (Drawing.drawing.interfaceSizeX / 2 - (l.width / 2.0) * Game.tile_size) / Game.game.window.absoluteWidth * Drawing.drawing.interfaceScale; + translation.x = (Drawing.drawing.baseInterfaceSizeX / 2 - (l.width / 2.0) * Game.tile_size) / Game.game.window.absoluteWidth * Drawing.drawing.interfaceScale; translation.y = Game.tile_size * -(i - rem) / Game.game.window.absoluteHeight * Drawing.drawing.scale; translation.applyAsShadow = true; Game.game.window.addMatrix(); diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadePreview.java b/src/main/java/tanks/gui/screen/ScreenCrusadePreview.java index dde98dfd..8497e51b 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadePreview.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadePreview.java @@ -1,12 +1,15 @@ package tanks.gui.screen; import basewindow.BaseFile; -import tanks.*; -import tanks.network.event.EventShareCrusade; +import tanks.Crusade; +import tanks.Drawing; +import tanks.Game; +import tanks.Level; import tanks.gui.Button; import tanks.gui.ButtonList; import tanks.gui.TextBox; import tanks.hotbar.item.Item; +import tanks.network.event.EventShareCrusade; import java.io.IOException; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadePreviewLevel.java b/src/main/java/tanks/gui/screen/ScreenCrusadePreviewLevel.java index dc29fe60..7c704a05 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadePreviewLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadePreviewLevel.java @@ -2,7 +2,6 @@ import tanks.*; import tanks.gui.Button; -import tanks.gui.TextBox; import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenCrusadeStats.java b/src/main/java/tanks/gui/screen/ScreenCrusadeStats.java index 380044d2..31bc831c 100644 --- a/src/main/java/tanks/gui/screen/ScreenCrusadeStats.java +++ b/src/main/java/tanks/gui/screen/ScreenCrusadeStats.java @@ -113,7 +113,7 @@ public CrusadePlayer setupOnlyRecords(ScreenCrusadeDetails screenCrusadeStats) CrusadePlayer cp = new CrusadePlayer(Game.player); crusade.crusadePlayers.put(Game.player, cp); Crusade.currentCrusade = crusade; - this.view = ScreenCrusadeStats.View.levels; + this.view = View.levels; this.onlyRecord = true; this.showRecord = true; this.prev = screenCrusadeStats; diff --git a/src/main/java/tanks/gui/screen/ScreenDownloadLevel.java b/src/main/java/tanks/gui/screen/ScreenDownloadLevel.java index a4a53a7c..73b728d5 100644 --- a/src/main/java/tanks/gui/screen/ScreenDownloadLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenDownloadLevel.java @@ -4,7 +4,6 @@ import tanks.*; import tanks.gui.Button; import tanks.gui.TextBox; -import tanks.gui.screen.leveleditor.ScreenLevelEditor; import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenExit.java b/src/main/java/tanks/gui/screen/ScreenExit.java index 34be6b9e..5ddeede4 100644 --- a/src/main/java/tanks/gui/screen/ScreenExit.java +++ b/src/main/java/tanks/gui/screen/ScreenExit.java @@ -4,6 +4,7 @@ import tanks.Game; import tanks.Level; import tanks.Panel; +import tanks.obstacle.Obstacle; public class ScreenExit extends Screen { @@ -12,6 +13,7 @@ public class ScreenExit extends Screen double outroTime = 1000; double outroAnimationTime = 500; + protected long lastTime = System.currentTimeMillis(); public ScreenExit() { @@ -39,19 +41,26 @@ public void update() @Override public void draw() { - if (System.currentTimeMillis() - startTime < outroTime + outroAnimationTime) + Game.game.window.clipMultiplier = 2; + Game.game.window.clipDistMultiplier = 1; + + if (!Game.game.window.drawingShadow || !Game.shadowsEnabled) + lastTime = System.currentTimeMillis(); + + if (lastTime - startTime < outroTime + outroAnimationTime) { - double frac = ((System.currentTimeMillis() - startTime) / outroAnimationTime); + double frac = ((lastTime - startTime) / outroAnimationTime); double frac2 = Math.min(1, frac); Drawing.drawing.setColor(Level.currentColorR * (1 - frac2), Level.currentColorG * (1 - frac2), Level.currentColorB * (1 - frac2)); Drawing.drawing.fillInterfaceRect(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2, Game.game.window.absoluteWidth * 1.2 / Drawing.drawing.interfaceScale, Game.game.window.absoluteHeight * 1.2 / Drawing.drawing.interfaceScale); + Obstacle.draw_size = Game.tile_size * (1 - frac2); Drawing.drawing.setInterfaceFontSize(48); - Drawing.drawing.setColor(255, 255, 255, 255 * Math.max(0, Math.min(1 - ((System.currentTimeMillis() - startTime - outroAnimationTime) / outroTime), 1))); + Drawing.drawing.setColor(255, 255, 255, 255 * Math.max(0, Math.min(1 - ((lastTime - startTime - outroAnimationTime) / outroTime), 1))); Drawing.drawing.displayInterfaceText(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2, "\"Tanks\" for playing!"); - if (System.currentTimeMillis() - startTime <= outroAnimationTime) + if (lastTime - startTime <= outroAnimationTime) { Game.screen.drawDefaultBackground(1 - frac); Panel.panel.drawBar(frac * 40); diff --git a/src/main/java/tanks/gui/screen/ScreenGame.java b/src/main/java/tanks/gui/screen/ScreenGame.java index 6a806757..9224a470 100644 --- a/src/main/java/tanks/gui/screen/ScreenGame.java +++ b/src/main/java/tanks/gui/screen/ScreenGame.java @@ -5,8 +5,6 @@ import basewindow.transformation.RotationAboutPoint; import basewindow.transformation.Translation; import tanks.*; -import tanks.network.ConnectedPlayer; -import tanks.network.event.*; import tanks.generator.LevelGeneratorVersus; import tanks.gui.Button; import tanks.gui.ButtonList; @@ -18,6 +16,8 @@ import tanks.hotbar.item.ItemRemote; import tanks.minigames.Minigame; import tanks.network.Client; +import tanks.network.ConnectedPlayer; +import tanks.network.event.*; import tanks.obstacle.Face; import tanks.obstacle.ISolidObject; import tanks.obstacle.Obstacle; @@ -1921,7 +1921,7 @@ public void setPerspective() Game.game.window.clipMultiplier = 100; Game.game.window.clipDistMultiplier = 1; - if (Game.angledView && Game.framework == Game.Framework.lwjgl) + if (Game.angledView) { if (!Game.game.window.drawingShadow) { @@ -1932,7 +1932,7 @@ else if (ScreenGame.finished) } this.slantRotation.pitch = this.slant * -Math.PI / 16; - //this.slantTranslation.y = -this.slant * 0.05; + this.slantTranslation.y = -this.slant * 0.05; if (!Game.followingCam) { @@ -2041,7 +2041,7 @@ public void draw() } long t1a = System.nanoTime(); - if (Game.enable3d && /*(Obstacle.draw_size <= 0 || Obstacle.draw_size >= Game.tile_size) && */Game.game.window.shapeRenderer.supportsBatching) + if (Game.enable3d) { for (int i = 0; i < drawables.length; i++) { @@ -2069,13 +2069,6 @@ public void draw() drawables[c.drawLevel].add(c); } - if (Game.game.window.touchscreen) - { - drawables[9].add(TankPlayer.controlStick); - - if (TankPlayer.shootStickEnabled && !TankPlayer.shootStickHidden) - drawables[9].add(TankPlayer.shootStick); - } long t2 = System.nanoTime(); for (int i = 0; i < this.drawables.length; i++) @@ -2173,19 +2166,6 @@ public void draw() Game.game.window.shapeRenderer.fillRect(0, 0, Game.game.window.absoluteWidth, Game.game.window.absoluteHeight - Drawing.drawing.statsHeight); } - if (Game.game.window.touchscreen && TankPlayer.shootStickEnabled) - { - double size = TankPlayer.mineButton.sizeX * Obstacle.draw_size / Game.tile_size; - Drawing.drawing.setColor(255, 127, 0, 64); - Drawing.drawing.fillInterfaceOval(TankPlayer.mineButton.posX, TankPlayer.mineButton.posY, size, size); - - Drawing.drawing.setColor(255, 255, 0, 64); - Drawing.drawing.fillInterfaceOval(TankPlayer.mineButton.posX, TankPlayer.mineButton.posY, size * 0.8, size * 0.8); - - //Drawing.drawing.setColor(255, 255, 255, 64); - //Drawing.drawing.drawInterfaceImage("/mine.png", TankPlayer.mineButton.posX, TankPlayer.mineButton.posY, TankPlayer.mineButton.sizeX, TankPlayer.mineButton.sizeY); - } - if (!(paused && screenshotMode) && Game.player.hotbar.enabledItemBar) { Game.player.hotbar.itemBar.drawOverlay(); @@ -2194,10 +2174,26 @@ public void draw() if (!this.showDefaultMouse) Panel.panel.drawMouseTarget(true); - if (Game.framework == Game.Framework.lwjgl) + Game.game.window.transformations.clear(); + Game.game.window.loadPerspective(); + + if (Game.game.window.touchscreen) { - Game.game.window.transformations.clear(); - Game.game.window.loadPerspective(); + TankPlayer.controlStick.draw(); + + if (TankPlayer.shootStickEnabled && !TankPlayer.shootStickHidden) + TankPlayer.shootStick.draw(); + + if (TankPlayer.shootStickEnabled) + { + double size = TankPlayer.mineButton.sizeX * Obstacle.draw_size / Game.tile_size; + Drawing.drawing.setColor(255, 127, 0, 64); + Drawing.drawing.fillInterfaceOval(TankPlayer.mineButton.posX, TankPlayer.mineButton.posY, size, size); + + Drawing.drawing.setColor(255, 255, 0, 64); + Drawing.drawing.fillInterfaceOval(TankPlayer.mineButton.posX, TankPlayer.mineButton.posY, size * 0.8, size * 0.8); + } + } if (npcShopScreen) diff --git a/src/main/java/tanks/gui/screen/ScreenHostingEnded.java b/src/main/java/tanks/gui/screen/ScreenHostingEnded.java index 0a7cb636..d68c5a1b 100644 --- a/src/main/java/tanks/gui/screen/ScreenHostingEnded.java +++ b/src/main/java/tanks/gui/screen/ScreenHostingEnded.java @@ -3,9 +3,9 @@ import tanks.Drawing; import tanks.Game; import tanks.Panel; -import tanks.network.event.EventKick; import tanks.gui.Button; import tanks.network.ServerHandler; +import tanks.network.event.EventKick; public class ScreenHostingEnded extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenInfo.java b/src/main/java/tanks/gui/screen/ScreenInfo.java index 4c085e59..e135efdf 100644 --- a/src/main/java/tanks/gui/screen/ScreenInfo.java +++ b/src/main/java/tanks/gui/screen/ScreenInfo.java @@ -2,9 +2,7 @@ import tanks.Drawing; import tanks.Game; -import tanks.Panel; import tanks.gui.Button; -import tanks.tank.TankPlayer; public class ScreenInfo extends Screen implements IConditionalOverlayScreen, IDarkScreen { @@ -60,6 +58,9 @@ public void draw() Drawing.drawing.fillInterfaceRect(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2, 700 * this.objWidth / 350, 400 * this.objHeight / 40); Drawing.drawing.fillInterfaceRect(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2, 680 * this.objWidth / 350, 380 * this.objHeight / 40); + double boxWidth = 660 * this.objWidth / 350; + double boxHeight = 240 * this.objHeight / 40; + Drawing.drawing.setColor(255, 255, 255); Drawing.drawing.setInterfaceFontSize(this.titleSize); Drawing.drawing.drawInterfaceText(Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY / 2 - this.objYSpace * 2.5, this.title); @@ -67,14 +68,20 @@ public void draw() Drawing.drawing.setInterfaceFontSize(this.textSize); Drawing.drawing.setColor(255, 255, 255); - int diff = 300; + double width = 0; + double height = Game.game.window.fontRenderer.getStringSizeY(Drawing.drawing.fontSize, "hello") / Drawing.drawing.interfaceScale - this.objYSpace / 2; + for (int i = 0; i < text.length; i++) + { + width = Math.max(Game.game.window.fontRenderer.getStringSizeX(Drawing.drawing.fontSize, this.text[i]) / Drawing.drawing.interfaceScale, width); + height += this.objYSpace / 2; + } - if (Drawing.drawing.interfaceScaleZoom > 1) - diff = 390; + double scale = Math.min(1, Math.min(boxWidth / width, boxHeight / height)); for (int i = 0; i < text.length; i++) { - Drawing.drawing.drawInterfaceText(Drawing.drawing.interfaceSizeX / 2 - diff, Drawing.drawing.interfaceSizeY / 2 + (i - (text.length - 1) / 2.0) * this.objYSpace / 2, this.text[i], false); + Drawing.drawing.setInterfaceFontSize(this.textSize * scale); + Drawing.drawing.drawInterfaceText(Drawing.drawing.interfaceSizeX / 2 - width / 2 * scale, Drawing.drawing.interfaceSizeY / 2 + scale * (i - (text.length - 1) / 2.0) * this.objYSpace / 2, this.text[i], false); } back.draw(); diff --git a/src/main/java/tanks/gui/screen/ScreenItemEditor.java b/src/main/java/tanks/gui/screen/ScreenItemEditor.java index 796d7686..ab36053d 100644 --- a/src/main/java/tanks/gui/screen/ScreenItemEditor.java +++ b/src/main/java/tanks/gui/screen/ScreenItemEditor.java @@ -5,8 +5,8 @@ import tanks.Game; import tanks.Level; import tanks.gui.*; -import tanks.hotbar.item.Item; import tanks.gui.property.*; +import tanks.hotbar.item.Item; import tanks.translation.Translation; import java.io.IOException; diff --git a/src/main/java/tanks/gui/screen/ScreenJoinParty.java b/src/main/java/tanks/gui/screen/ScreenJoinParty.java index 7a5c7736..7eefeb9c 100644 --- a/src/main/java/tanks/gui/screen/ScreenJoinParty.java +++ b/src/main/java/tanks/gui/screen/ScreenJoinParty.java @@ -5,10 +5,10 @@ import tanks.Drawing; import tanks.Game; import tanks.Panel; -import tanks.network.event.EventSendClientDetails; import tanks.gui.Button; import tanks.gui.TextBox; import tanks.network.Client; +import tanks.network.event.EventSendClientDetails; import java.util.UUID; diff --git a/src/main/java/tanks/gui/screen/ScreenLanguage.java b/src/main/java/tanks/gui/screen/ScreenLanguage.java index 26b59690..0736f106 100644 --- a/src/main/java/tanks/gui/screen/ScreenLanguage.java +++ b/src/main/java/tanks/gui/screen/ScreenLanguage.java @@ -1,14 +1,11 @@ package tanks.gui.screen; -import tanks.Crusade; import tanks.Drawing; import tanks.Game; import tanks.gui.Button; import tanks.gui.SavedFilesList; import tanks.translation.Translation; -import java.util.ArrayList; - public class ScreenLanguage extends Screen { public static int page = 0; diff --git a/src/main/java/tanks/gui/screen/ScreenMinigames.java b/src/main/java/tanks/gui/screen/ScreenMinigames.java index d7e43223..633e7de1 100644 --- a/src/main/java/tanks/gui/screen/ScreenMinigames.java +++ b/src/main/java/tanks/gui/screen/ScreenMinigames.java @@ -2,10 +2,10 @@ import tanks.Drawing; import tanks.Game; -import tanks.minigames.Minigame; import tanks.gui.Button; import tanks.gui.ButtonList; import tanks.gui.SearchBox; +import tanks.minigames.Minigame; import java.lang.reflect.InvocationTargetException; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/screen/ScreenOnline.java b/src/main/java/tanks/gui/screen/ScreenOnline.java index 0654bf94..3607fa6d 100644 --- a/src/main/java/tanks/gui/screen/ScreenOnline.java +++ b/src/main/java/tanks/gui/screen/ScreenOnline.java @@ -5,7 +5,6 @@ import tanks.gui.TextBox; import java.util.ArrayList; -import java.util.Collections; import java.util.Comparator; import java.util.HashMap; diff --git a/src/main/java/tanks/gui/screen/ScreenOptions.java b/src/main/java/tanks/gui/screen/ScreenOptions.java index fea108ce..df99a94c 100644 --- a/src/main/java/tanks/gui/screen/ScreenOptions.java +++ b/src/main/java/tanks/gui/screen/ScreenOptions.java @@ -128,13 +128,13 @@ public void draw() { Drawing.drawing.setColor(127, 127, 127); double s = Game.game.window.fontRenderer.getStringSizeX(Drawing.drawing.fontSize, Game.player.username) / Drawing.drawing.interfaceScale; - Drawing.drawing.fillInterfaceRect(personalize.posX, personalize.posY + personalize.sizeY * 0.1, s, 40); double z = this.objHeight / 40; + Drawing.drawing.fillInterfaceRect(personalize.posX, personalize.posY + personalize.sizeY * 0.1, s, z * 40); Drawing.drawing.fillInterfaceOval(personalize.posX - (s) / 2, personalize.posY + personalize.sizeY * 0.1, z * 40, z * 40); Drawing.drawing.fillInterfaceOval(personalize.posX + (s) / 2, personalize.posY + personalize.sizeY * 0.1, z * 40, z * 40); } - preview.drawForInterface(personalize.posX - personalize.sizeX / 2 + personalize.sizeY * 0.7, personalize.posY, 1); + preview.drawForInterface(personalize.posX - personalize.sizeX / 2 + personalize.sizeY * 0.7, personalize.posY, objHeight / 40); Drawing.drawing.setColor(Game.player.turretColorR, Game.player.turretColorG, Game.player.turretColorB); Drawing.drawing.drawInterfaceText(personalize.posX + 2, personalize.posY + personalize.sizeY * 0.1 + 2, Game.player.username); @@ -480,12 +480,7 @@ public static void loadOptions(String homedir) f.stopReading(); if (Game.framework == Game.Framework.libgdx) - { - Game.angledView = false; Panel.showMouseTarget = false; - Game.vsync = true; - Game.previewCrusades = false; - } if (!Game.soundsEnabled) Game.soundVolume = 0; diff --git a/src/main/java/tanks/gui/screen/ScreenOptionsFramerate.java b/src/main/java/tanks/gui/screen/ScreenOptionsFramerate.java index 104b3b37..49eb0237 100644 --- a/src/main/java/tanks/gui/screen/ScreenOptionsFramerate.java +++ b/src/main/java/tanks/gui/screen/ScreenOptionsFramerate.java @@ -89,7 +89,9 @@ public void run() public void update() { vsync.update(); - unlimited.update(); + + if (Game.framework != Game.Framework.libgdx) + unlimited.update(); if (Game.vsync) { @@ -118,7 +120,16 @@ public void draw() { this.drawDefaultBackground(); - unlimited.draw(); + if (Game.framework != Game.Framework.libgdx) + unlimited.draw(); + else + { + Drawing.drawing.setColor(0, 0, 0); + Drawing.drawing.setInterfaceFontSize(this.textSize); + Drawing.drawing.drawInterfaceText(unlimited.posX, unlimited.posY - this.objYSpace / 4, "Framerate is capped to your"); + Drawing.drawing.drawInterfaceText(unlimited.posX, unlimited.posY + this.objYSpace / 4, "display's refresh rate on mobile"); + + } if (Game.maxFPS > 0 && !Game.vsync) maxFPS.draw(); diff --git a/src/main/java/tanks/gui/screen/ScreenOptionsGraphics.java b/src/main/java/tanks/gui/screen/ScreenOptionsGraphics.java index 61e9c05c..79ce4a65 100644 --- a/src/main/java/tanks/gui/screen/ScreenOptionsGraphics.java +++ b/src/main/java/tanks/gui/screen/ScreenOptionsGraphics.java @@ -94,12 +94,12 @@ public ScreenOptionsGraphics() else antialiasing.setText(antialiasingText, ScreenOptions.onText); - if (Game.framework == Game.Framework.libgdx) - { - altPerspective.enabled = false; - shadows.enabled = false; - maxFPS.enabled = false; - } +// if (Game.framework == Game.Framework.libgdx) +// { +// altPerspective.enabled = false; +// shadows.enabled = false; +// maxFPS.enabled = false; +// } if (!Game.game.window.antialiasingSupported) { @@ -107,8 +107,8 @@ public ScreenOptionsGraphics() antialiasing.enabled = false; } - if (Game.framework == Game.Framework.libgdx) - Game.shadowsEnabled = false; +// if (Game.framework == Game.Framework.libgdx) +// Game.shadowsEnabled = false; if (!Game.shadowsEnabled) shadows.setText("Shadows: ", ScreenOptions.offText); diff --git a/src/main/java/tanks/gui/screen/ScreenOptionsMisc.java b/src/main/java/tanks/gui/screen/ScreenOptionsMisc.java index 544746d3..5f9f37e3 100644 --- a/src/main/java/tanks/gui/screen/ScreenOptionsMisc.java +++ b/src/main/java/tanks/gui/screen/ScreenOptionsMisc.java @@ -77,8 +77,8 @@ public ScreenOptionsMisc() else previewCrusades.setText(previewCrusadesText, ScreenOptions.offText); - if (Game.framework == Game.Framework.libgdx) - previewCrusades.enabled = false; +// if (Game.framework == Game.Framework.libgdx) +// previewCrusades.enabled = false; } @Override diff --git a/src/main/java/tanks/gui/screen/ScreenOptionsMultiplayer.java b/src/main/java/tanks/gui/screen/ScreenOptionsMultiplayer.java index 670b86ce..1fe6a313 100644 --- a/src/main/java/tanks/gui/screen/ScreenOptionsMultiplayer.java +++ b/src/main/java/tanks/gui/screen/ScreenOptionsMultiplayer.java @@ -3,7 +3,6 @@ import tanks.Drawing; import tanks.Game; import tanks.gui.Button; -import tanks.gui.TextBox; public class ScreenOptionsMultiplayer extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenPartyCrusadeInterlevel.java b/src/main/java/tanks/gui/screen/ScreenPartyCrusadeInterlevel.java index e0c4c378..aa809fa3 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyCrusadeInterlevel.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyCrusadeInterlevel.java @@ -2,11 +2,9 @@ import tanks.*; import tanks.gui.Button; -import tanks.gui.ChatMessage; import tanks.gui.Firework; import tanks.gui.SpeedrunTimer; import tanks.tank.TankAIControlled; -import tanks.translation.Translation; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/screen/ScreenPartyCrusades.java b/src/main/java/tanks/gui/screen/ScreenPartyCrusades.java index fb9335b1..a360f20a 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyCrusades.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyCrusades.java @@ -3,7 +3,6 @@ import tanks.Drawing; import tanks.Game; import tanks.gui.Button; -import tanks.gui.ChatMessage; public class ScreenPartyCrusades extends ScreenCrusades { diff --git a/src/main/java/tanks/gui/screen/ScreenPartyHost.java b/src/main/java/tanks/gui/screen/ScreenPartyHost.java index 73c45810..db1af363 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyHost.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyHost.java @@ -1,16 +1,15 @@ package tanks.gui.screen; import tanks.*; -import tanks.network.ServerHandler; -import tanks.network.event.EventPlayerChat; import tanks.generator.LevelGeneratorVersus; import tanks.gui.Button; import tanks.gui.ChatBox; import tanks.gui.ChatMessage; import tanks.network.Server; +import tanks.network.ServerHandler; import tanks.network.SynchronizedList; +import tanks.network.event.EventPlayerChat; import tanks.tank.Tank; -import tanks.tank.TankModels; import tanks.translation.Translation; import java.net.Inet4Address; diff --git a/src/main/java/tanks/gui/screen/ScreenPartyInterlevel.java b/src/main/java/tanks/gui/screen/ScreenPartyInterlevel.java index 5f36c154..50e64cde 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyInterlevel.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyInterlevel.java @@ -1,6 +1,9 @@ package tanks.gui.screen; -import tanks.*; +import tanks.Drawing; +import tanks.Game; +import tanks.Level; +import tanks.Panel; import tanks.generator.LevelGeneratorVersus; import tanks.gui.Button; import tanks.gui.Firework; diff --git a/src/main/java/tanks/gui/screen/ScreenPartyKick.java b/src/main/java/tanks/gui/screen/ScreenPartyKick.java index 1c22b85a..8754f782 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyKick.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyKick.java @@ -2,9 +2,9 @@ import tanks.Drawing; import tanks.Game; -import tanks.network.event.EventKick; import tanks.gui.Button; import tanks.network.ServerHandler; +import tanks.network.event.EventKick; public class ScreenPartyKick extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenPartyLobby.java b/src/main/java/tanks/gui/screen/ScreenPartyLobby.java index 55e056ec..66b26735 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyLobby.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyLobby.java @@ -2,15 +2,14 @@ import tanks.Drawing; import tanks.Game; -import tanks.network.event.EventChat; import tanks.gui.Button; import tanks.gui.ChatBox; import tanks.gui.ChatMessage; import tanks.network.Client; import tanks.network.ConnectedPlayer; import tanks.network.SynchronizedList; +import tanks.network.event.EventChat; import tanks.tank.Tank; -import tanks.tank.TankModels; import tanks.translation.Translation; import java.util.ArrayList; diff --git a/src/main/java/tanks/gui/screen/ScreenPartyResumeCrusade.java b/src/main/java/tanks/gui/screen/ScreenPartyResumeCrusade.java index 3b63d0dd..d7520cfb 100644 --- a/src/main/java/tanks/gui/screen/ScreenPartyResumeCrusade.java +++ b/src/main/java/tanks/gui/screen/ScreenPartyResumeCrusade.java @@ -2,8 +2,6 @@ import tanks.*; import tanks.gui.Button; -import tanks.gui.ChatMessage; -import tanks.hotbar.item.Item; public class ScreenPartyResumeCrusade extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenPreviewShareLevel.java b/src/main/java/tanks/gui/screen/ScreenPreviewShareLevel.java index bf17e85a..8d8d8533 100644 --- a/src/main/java/tanks/gui/screen/ScreenPreviewShareLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenPreviewShareLevel.java @@ -1,8 +1,8 @@ package tanks.gui.screen; import tanks.*; -import tanks.network.event.EventShareLevel; import tanks.gui.Button; +import tanks.network.event.EventShareLevel; import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenPreviewUploadLevel.java b/src/main/java/tanks/gui/screen/ScreenPreviewUploadLevel.java index a78f1462..d0e722d0 100644 --- a/src/main/java/tanks/gui/screen/ScreenPreviewUploadLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenPreviewUploadLevel.java @@ -1,8 +1,8 @@ package tanks.gui.screen; import tanks.*; -import tanks.network.event.online.EventUploadLevel; import tanks.gui.Button; +import tanks.network.event.online.EventUploadLevel; import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenSaveLevel.java b/src/main/java/tanks/gui/screen/ScreenSaveLevel.java index b3f86b48..30e41af5 100644 --- a/src/main/java/tanks/gui/screen/ScreenSaveLevel.java +++ b/src/main/java/tanks/gui/screen/ScreenSaveLevel.java @@ -2,7 +2,8 @@ import basewindow.BaseFile; import tanks.*; -import tanks.gui.*; +import tanks.gui.Button; +import tanks.gui.TextBox; import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; diff --git a/src/main/java/tanks/gui/screen/ScreenSavedLevels.java b/src/main/java/tanks/gui/screen/ScreenSavedLevels.java index b31ddced..11f02815 100644 --- a/src/main/java/tanks/gui/screen/ScreenSavedLevels.java +++ b/src/main/java/tanks/gui/screen/ScreenSavedLevels.java @@ -1,7 +1,6 @@ package tanks.gui.screen; import tanks.Drawing; -import tanks.Function; import tanks.Game; import tanks.Level; import tanks.gui.Button; @@ -10,9 +9,6 @@ import tanks.gui.screen.leveleditor.OverlayEditorMenu; import tanks.gui.screen.leveleditor.ScreenLevelEditor; -import java.util.ArrayList; -import java.util.Collections; - public class ScreenSavedLevels extends Screen { public static int page = 0; diff --git a/src/main/java/tanks/gui/screen/ScreenSelectorMusic.java b/src/main/java/tanks/gui/screen/ScreenSelectorMusic.java index 6ab1ab07..1dac60da 100644 --- a/src/main/java/tanks/gui/screen/ScreenSelectorMusic.java +++ b/src/main/java/tanks/gui/screen/ScreenSelectorMusic.java @@ -1,6 +1,5 @@ package tanks.gui.screen; -import basewindow.IModel; import basewindow.InputCodes; import tanks.Drawing; import tanks.Game; @@ -8,7 +7,6 @@ import tanks.Panel; import tanks.gui.Button; import tanks.gui.ButtonList; -import tanks.gui.Selector; import tanks.gui.SelectorMusic; import tanks.translation.Translation; diff --git a/src/main/java/tanks/gui/screen/ScreenSharedCrusades.java b/src/main/java/tanks/gui/screen/ScreenSharedCrusades.java index cd519ae8..a913349b 100644 --- a/src/main/java/tanks/gui/screen/ScreenSharedCrusades.java +++ b/src/main/java/tanks/gui/screen/ScreenSharedCrusades.java @@ -3,7 +3,6 @@ import tanks.Crusade; import tanks.Drawing; import tanks.Game; -import tanks.Level; import tanks.gui.Button; import tanks.gui.ButtonList; diff --git a/src/main/java/tanks/gui/screen/ScreenTankEditor.java b/src/main/java/tanks/gui/screen/ScreenTankEditor.java index 6ee809f6..c5f4f4b7 100644 --- a/src/main/java/tanks/gui/screen/ScreenTankEditor.java +++ b/src/main/java/tanks/gui/screen/ScreenTankEditor.java @@ -309,7 +309,7 @@ public void addFields() t.sizeX *= 3; ((TabGeneral) this).description = t; } - else if (!(p.miscType() == TankProperty.MiscType.music && Game.framework == Game.Framework.libgdx)) + else this.uiElements.add(screen.getUIElementForField(f, p, screen.tank)); } } diff --git a/src/main/java/tanks/gui/screen/ScreenTestModel.java b/src/main/java/tanks/gui/screen/ScreenTestModel.java index f64ebd09..f4b47f83 100644 --- a/src/main/java/tanks/gui/screen/ScreenTestModel.java +++ b/src/main/java/tanks/gui/screen/ScreenTestModel.java @@ -1,6 +1,7 @@ package tanks.gui.screen; -import basewindow.*; +import basewindow.InputCodes; +import basewindow.Model; import tanks.Drawing; import tanks.Game; import tanks.Panel; diff --git a/src/main/java/tanks/gui/screen/ScreenTestTextbox.java b/src/main/java/tanks/gui/screen/ScreenTestTextbox.java index ebfca1ca..795a97d9 100644 --- a/src/main/java/tanks/gui/screen/ScreenTestTextbox.java +++ b/src/main/java/tanks/gui/screen/ScreenTestTextbox.java @@ -5,7 +5,6 @@ import tanks.gui.Button; import tanks.gui.TextBox; import tanks.gui.UUIDTextBox; -import tanks.network.SteamNetworkHandler; public class ScreenTestTextbox extends Screen { diff --git a/src/main/java/tanks/gui/screen/ScreenTitle.java b/src/main/java/tanks/gui/screen/ScreenTitle.java index 88fd6ce5..dab94bad 100644 --- a/src/main/java/tanks/gui/screen/ScreenTitle.java +++ b/src/main/java/tanks/gui/screen/ScreenTitle.java @@ -4,7 +4,6 @@ import tanks.*; import tanks.gui.Button; import tanks.minigames.Minigame; -import tanks.network.event.EventArcadeHit; import tanks.obstacle.Face; import tanks.obstacle.ISolidObject; import tanks.obstacle.Obstacle; @@ -345,6 +344,12 @@ public void update() { this.logo.posX = Drawing.drawing.sizeX / 2; this.logo.posY = Drawing.drawing.sizeY / 2 - 250 * Drawing.drawing.interfaceScaleZoom; + + if (Drawing.drawing.interfaceScaleZoom > 1) + { + this.logo.posY += 180 * Drawing.drawing.interfaceScaleZoom; + this.logo.posX -= 260 * Drawing.drawing.interfaceScaleZoom; + } } } @@ -392,7 +397,6 @@ public void drawWithoutBackground() about.draw(); - Drawing.drawing.setColor(Turret.calculateSecondaryColor(Game.player.colorR), Turret.calculateSecondaryColor(Game.player.colorG), Turret.calculateSecondaryColor(Game.player.colorB)); Drawing.drawing.setInterfaceFontSize(this.titleSize * 2.5); Drawing.drawing.displayInterfaceText(this.lCenterX + 4, 4 + this.lCenterY - this.objYSpace, "Tanks"); @@ -409,10 +413,10 @@ public void drawWithoutBackground() Drawing.drawing.setInterfaceFontSize(this.titleSize); Drawing.drawing.displayInterfaceText(this.lCenterX, this.lCenterY - this.objYSpace * 2 / 9, "The Crusades"); -// for (int i = 0; i < Game.tracks.size(); i++) -// { -// Game.tracks.get(i).draw(); -// } + for (int i = 0; i < Game.tracks.size(); i++) + { + Game.tracks.get(i).draw(); + } for (int i = Game.movables.size() - 1; i >= 0; i--) { @@ -436,7 +440,8 @@ public void drawWithoutBackground() @Override public void draw() { - this.drawDefaultBackground(); + if (Game.screen == this) + this.drawDefaultBackground(); this.drawWithoutBackground(); } diff --git a/src/main/java/tanks/gui/screen/ScreenTutorialGame.java b/src/main/java/tanks/gui/screen/ScreenTutorialGame.java index a065b8ab..f6481b28 100644 --- a/src/main/java/tanks/gui/screen/ScreenTutorialGame.java +++ b/src/main/java/tanks/gui/screen/ScreenTutorialGame.java @@ -1,7 +1,6 @@ package tanks.gui.screen; import basewindow.BaseFile; -import tanks.Drawing; import tanks.Game; import tanks.gui.Button; diff --git a/src/main/java/tanks/gui/screen/leveleditor/OverlayLevelOptions.java b/src/main/java/tanks/gui/screen/leveleditor/OverlayLevelOptions.java index b872a301..d521aace 100644 --- a/src/main/java/tanks/gui/screen/leveleditor/OverlayLevelOptions.java +++ b/src/main/java/tanks/gui/screen/leveleditor/OverlayLevelOptions.java @@ -60,7 +60,7 @@ public OverlayLevelOptions(Screen previous, ScreenLevelEditor screenLevelEditor) levelName.enableCaps = true; - lightingOptions.enabled = Game.framework != Game.Framework.libgdx; + //lightingOptions.enabled = Game.framework != Game.Framework.libgdx; } public void update() diff --git a/src/main/java/tanks/gui/screen/leveleditor/OverlayObjectMenu.java b/src/main/java/tanks/gui/screen/leveleditor/OverlayObjectMenu.java index 77b340ca..9bfdf54f 100644 --- a/src/main/java/tanks/gui/screen/leveleditor/OverlayObjectMenu.java +++ b/src/main/java/tanks/gui/screen/leveleditor/OverlayObjectMenu.java @@ -9,14 +9,12 @@ import tanks.gui.screen.Screen; import tanks.gui.screen.ScreenAddSavedTank; import tanks.gui.screen.ScreenTankEditor; -import tanks.hotbar.item.Item; import tanks.tank.Tank; import tanks.tank.TankAIControlled; import tanks.tank.TankPlayer; import tanks.tank.TankSpawnMarker; import java.util.ArrayList; -import java.util.Iterator; public class OverlayObjectMenu extends ScreenLevelEditorOverlay implements ITankScreen { diff --git a/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditor.java b/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditor.java index ba201d14..8f7f5d1f 100644 --- a/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditor.java +++ b/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditor.java @@ -3,10 +3,11 @@ import basewindow.BaseFile; import basewindow.InputPoint; import tanks.*; -import tanks.network.event.INetworkEvent; -import tanks.gui.*; +import tanks.gui.Button; +import tanks.gui.ButtonList; import tanks.gui.screen.*; import tanks.hotbar.item.Item; +import tanks.network.event.INetworkEvent; import tanks.obstacle.Obstacle; import tanks.obstacle.ObstacleUnknown; import tanks.tank.Tank; @@ -882,6 +883,9 @@ else if (mouseObstacle.enableGroupID) panDown = false; } + double px = Drawing.drawing.toInterfaceCoordsX(panCurrentX); + double py = Drawing.drawing.toInterfaceCoordsY(panCurrentY); + if (!zoomDown && panDown) { if (prevPanDown && !prevZoomDown) @@ -890,25 +894,41 @@ else if (mouseObstacle.enableGroupID) offsetY += panCurrentY - panY; } - panX = Drawing.drawing.getMouseX(); - panY = Drawing.drawing.getMouseY(); + panX = Drawing.drawing.toGameCoordsX(px); + panY = Drawing.drawing.toGameCoordsY(py); } if (zoomDown) { - double x = (panCurrentX + zoomCurrentX) / 2; - double y = (panCurrentY + zoomCurrentY) / 2; - double d = Math.sqrt(Math.pow(Drawing.drawing.toInterfaceCoordsX(panCurrentX) - Drawing.drawing.toInterfaceCoordsX(zoomCurrentX), 2) - + Math.pow(Drawing.drawing.toInterfaceCoordsY(panCurrentY) - Drawing.drawing.toInterfaceCoordsY(zoomCurrentY), 2)); + double zx = Drawing.drawing.toInterfaceCoordsX(zoomCurrentX); + double zy = Drawing.drawing.toInterfaceCoordsY(zoomCurrentY); + double d = Math.sqrt(Math.pow(px - zx, 2) + Math.pow(py - zy, 2)); if (prevZoomDown) { + zoom *= d / zoomDist; + zoom = Math.max(0.75, Math.min(Math.max(2 / (Drawing.drawing.unzoomedScale / Drawing.drawing.interfaceScale), 1), zoom)); + Drawing.drawing.scale = getScale(); + + panCurrentX = Drawing.drawing.toGameCoordsX(px); + panCurrentY = Drawing.drawing.toGameCoordsY(py); + zoomCurrentX = Drawing.drawing.toGameCoordsX(zx); + zoomCurrentY = Drawing.drawing.toGameCoordsY(zy); + + double x = (panCurrentX + zoomCurrentX) / 2; + double y = (panCurrentY + zoomCurrentY) / 2; offsetX += x - panX; offsetY += y - panY; - zoom *= d / zoomDist; } + panCurrentX = Drawing.drawing.toGameCoordsX(px); + panCurrentY = Drawing.drawing.toGameCoordsY(py); + zoomCurrentX = Drawing.drawing.toGameCoordsX(zx); + zoomCurrentY = Drawing.drawing.toGameCoordsY(zy); + + double x = (panCurrentX + zoomCurrentX) / 2; + double y = (panCurrentY + zoomCurrentY) / 2; panX = x; panY = y; zoomDist = d; @@ -2149,6 +2169,22 @@ else if (currentPlaceable == Placeable.obstacle && !selectMode && !changeCameraM { Drawing.drawing.displayInterfaceText(this.centerX, Drawing.drawing.interfaceSizeY - this.objYSpace * 2 - 0, "Pinch to zoom"); recenter.draw(); +// if (panDown) +// { +// Drawing.drawing.setColor(255, 255, 255); +// Drawing.drawing.setInterfaceFontSize(24); +// Drawing.drawing.fillOval(this.panCurrentX, this.panCurrentY, 40, 40); +// Drawing.drawing.drawInterfaceText(100, 100, (int) this.panCurrentX + " " + (int) this.panCurrentY); +// } +// Drawing.drawing.setColor(255, 0, 255); +// Drawing.drawing.fillOval(this.panX, this.panY, 40, 40); +// Drawing.drawing.drawInterfaceText(100, 200, (int) this.panX + " " + (int) this.panY); +// if (zoomDown) +// { +// Drawing.drawing.setColor(0, 255, 255); +// Drawing.drawing.fillOval(this.zoomCurrentX, this.zoomCurrentY, 40, 40); +// Drawing.drawing.drawInterfaceText(100, 300, (int) this.zoomCurrentX + " " + (int) this.zoomCurrentY); +// } } else { diff --git a/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditorOverlay.java b/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditorOverlay.java index 931ecd54..ff9674b1 100644 --- a/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditorOverlay.java +++ b/src/main/java/tanks/gui/screen/leveleditor/ScreenLevelEditorOverlay.java @@ -1,9 +1,8 @@ package tanks.gui.screen.leveleditor; -import tanks.*; +import tanks.Game; import tanks.gui.screen.ILevelPreviewScreen; import tanks.gui.screen.Screen; -import tanks.obstacle.Obstacle; import tanks.tank.TankSpawnMarker; import java.util.ArrayList; diff --git a/src/main/java/tanks/hotbar/Hotbar.java b/src/main/java/tanks/hotbar/Hotbar.java index de4ece67..d54c510d 100644 --- a/src/main/java/tanks/hotbar/Hotbar.java +++ b/src/main/java/tanks/hotbar/Hotbar.java @@ -5,8 +5,6 @@ import tanks.gui.screen.ScreenGame; import tanks.hotbar.item.ItemBullet; import tanks.hotbar.item.ItemMine; -import tanks.minigames.Arcade; -import tanks.minigames.Minigame; import tanks.obstacle.Obstacle; import tanks.tank.Tank; import tanks.tank.TankModels; @@ -73,12 +71,14 @@ public void draw() { if (Game.game.window.touchscreen) { + int y = (int) (Drawing.drawing.getInterfaceEdgeY(true) - 12); + Drawing.drawing.setColor(255, 255, 255, 64); if (!this.persistent) - Drawing.drawing.drawInterfaceImage("icons/widearrow.png", Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY - 12, 64, 16); + Drawing.drawing.drawInterfaceImage("icons/widearrow.png", Drawing.drawing.interfaceSizeX / 2, y, 64, 16); else - Drawing.drawing.drawInterfaceImage("icons/widearrow.png", Drawing.drawing.interfaceSizeX / 2, Drawing.drawing.interfaceSizeY - 12, 64, -16); + Drawing.drawing.drawInterfaceImage("icons/widearrow.png", Drawing.drawing.interfaceSizeX / 2, y, 64, -16); } if (this.enabledItemBar) diff --git a/src/main/java/tanks/hotbar/ItemBar.java b/src/main/java/tanks/hotbar/ItemBar.java index a401579b..fcf57c9c 100644 --- a/src/main/java/tanks/hotbar/ItemBar.java +++ b/src/main/java/tanks/hotbar/ItemBar.java @@ -1,18 +1,17 @@ package tanks.hotbar; import tanks.*; -import tanks.gui.screen.ScreenPartyHost; -import tanks.minigames.Arcade; -import tanks.network.Server; -import tanks.network.ServerHandler; -import tanks.network.event.EventSetItem; -import tanks.network.event.EventSetItemBarSlot; import tanks.gui.Button; import tanks.gui.input.InputBindingGroup; import tanks.gui.screen.ScreenGame; +import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.Item; import tanks.hotbar.item.ItemEmpty; +import tanks.minigames.Arcade; +import tanks.network.ServerHandler; +import tanks.network.event.EventSetItem; +import tanks.network.event.EventSetItemBarSlot; public class ItemBar { diff --git a/src/main/java/tanks/hotbar/item/Item.java b/src/main/java/tanks/hotbar/item/Item.java index 99e30a03..93addd3b 100644 --- a/src/main/java/tanks/hotbar/item/Item.java +++ b/src/main/java/tanks/hotbar/item/Item.java @@ -1,8 +1,6 @@ package tanks.hotbar.item; import tanks.*; -import tanks.gui.IFixedMenu; -import tanks.gui.Scoreboard; import tanks.gui.property.*; import tanks.tank.Tank; import tanks.tank.TankPlayerRemote; diff --git a/src/main/java/tanks/hotbar/item/ItemBullet.java b/src/main/java/tanks/hotbar/item/ItemBullet.java index 71690cdd..d709fa92 100644 --- a/src/main/java/tanks/hotbar/item/ItemBullet.java +++ b/src/main/java/tanks/hotbar/item/ItemBullet.java @@ -4,7 +4,8 @@ import tanks.Game; import tanks.Panel; import tanks.Player; -import tanks.bullet.*; +import tanks.bullet.Bullet; +import tanks.bullet.BulletArc; import tanks.bullet.legacy.BulletAir; import tanks.bullet.legacy.BulletFlame; import tanks.gui.property.UIPropertyBoolean; diff --git a/src/main/java/tanks/hotbar/item/ItemShield.java b/src/main/java/tanks/hotbar/item/ItemShield.java index 8f2731e3..18d91acc 100644 --- a/src/main/java/tanks/hotbar/item/ItemShield.java +++ b/src/main/java/tanks/hotbar/item/ItemShield.java @@ -1,8 +1,8 @@ package tanks.hotbar.item; import tanks.*; +import tanks.gui.property.UIPropertyDouble; import tanks.network.event.EventTankUpdateHealth; -import tanks.gui.property.*; import tanks.tank.Tank; public class ItemShield extends Item diff --git a/src/main/java/tanks/minigames/Arcade.java b/src/main/java/tanks/minigames/Arcade.java index ad004c83..16b197f7 100644 --- a/src/main/java/tanks/minigames/Arcade.java +++ b/src/main/java/tanks/minigames/Arcade.java @@ -2,7 +2,10 @@ import tanks.*; import tanks.bullet.Bullet; -import tanks.gui.screen.*; +import tanks.gui.screen.IDarkScreen; +import tanks.gui.screen.ScreenArcadeBonuses; +import tanks.gui.screen.ScreenGame; +import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.Item; import tanks.hotbar.item.ItemShield; import tanks.network.event.*; diff --git a/src/main/java/tanks/network/ClientHandler.java b/src/main/java/tanks/network/ClientHandler.java index b3a817c7..b34cf078 100644 --- a/src/main/java/tanks/network/ClientHandler.java +++ b/src/main/java/tanks/network/ClientHandler.java @@ -10,10 +10,13 @@ import tanks.Crusade; import tanks.Game; import tanks.Panel; -import tanks.network.event.*; -import tanks.network.event.online.EventSendOnlineClientDetails; import tanks.gui.screen.ScreenOverlayOnline; import tanks.gui.screen.ScreenPartyLobby; +import tanks.network.event.EventKick; +import tanks.network.event.EventSendClientDetails; +import tanks.network.event.INetworkEvent; +import tanks.network.event.IStackableEvent; +import tanks.network.event.online.EventSendOnlineClientDetails; import java.util.HashMap; import java.util.UUID; diff --git a/src/main/java/tanks/network/MessageReader.java b/src/main/java/tanks/network/MessageReader.java index abd8963c..37273590 100644 --- a/src/main/java/tanks/network/MessageReader.java +++ b/src/main/java/tanks/network/MessageReader.java @@ -2,10 +2,10 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.online.*; -import tanks.network.event.*; import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; +import tanks.network.event.*; +import tanks.network.event.online.IOnlineServerEvent; import java.util.UUID; diff --git a/src/main/java/tanks/network/Server.java b/src/main/java/tanks/network/Server.java index b47367e6..f22d404b 100644 --- a/src/main/java/tanks/network/Server.java +++ b/src/main/java/tanks/network/Server.java @@ -9,9 +9,9 @@ import io.netty.channel.socket.SocketChannel; import io.netty.channel.socket.nio.NioServerSocketChannel; import tanks.Game; -import tanks.network.event.EventKick; import tanks.gui.screen.ScreenHostingEnded; import tanks.gui.screen.ScreenPartyHost; +import tanks.network.event.EventKick; public class Server { diff --git a/src/main/java/tanks/network/SteamNetworkHandler.java b/src/main/java/tanks/network/SteamNetworkHandler.java index ac4f4c86..bf417583 100644 --- a/src/main/java/tanks/network/SteamNetworkHandler.java +++ b/src/main/java/tanks/network/SteamNetworkHandler.java @@ -4,10 +4,10 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import tanks.Game; -import tanks.network.event.INetworkEvent; import tanks.gui.screen.ScreenConnecting; import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; +import tanks.network.event.INetworkEvent; import java.nio.ByteBuffer; import java.util.ArrayList; diff --git a/src/main/java/tanks/network/event/EventAddObstacle.java b/src/main/java/tanks/network/event/EventAddObstacle.java index 6caf49b5..197483b8 100644 --- a/src/main/java/tanks/network/event/EventAddObstacle.java +++ b/src/main/java/tanks/network/event/EventAddObstacle.java @@ -2,7 +2,6 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.network.NetworkUtils; import tanks.obstacle.Obstacle; diff --git a/src/main/java/tanks/network/event/EventAddObstacleText.java b/src/main/java/tanks/network/event/EventAddObstacleText.java index f128c4dd..39c7fbf6 100644 --- a/src/main/java/tanks/network/event/EventAddObstacleText.java +++ b/src/main/java/tanks/network/event/EventAddObstacleText.java @@ -2,7 +2,6 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.network.NetworkUtils; import tanks.obstacle.ObstacleText; diff --git a/src/main/java/tanks/network/event/EventArcadeClearMovables.java b/src/main/java/tanks/network/event/EventArcadeClearMovables.java index c47a3f20..22ee6f86 100644 --- a/src/main/java/tanks/network/event/EventArcadeClearMovables.java +++ b/src/main/java/tanks/network/event/EventArcadeClearMovables.java @@ -3,7 +3,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; import tanks.Movable; -import tanks.tank.*; +import tanks.tank.Crate; +import tanks.tank.TankPlayerController; +import tanks.tank.TankRemote; public class EventArcadeClearMovables extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/EventArcadeRampage.java b/src/main/java/tanks/network/event/EventArcadeRampage.java index 349d8263..8498c159 100644 --- a/src/main/java/tanks/network/event/EventArcadeRampage.java +++ b/src/main/java/tanks/network/event/EventArcadeRampage.java @@ -2,12 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.gui.ButtonList; -import tanks.gui.screen.ScreenGame; import tanks.minigames.Arcade; -import java.util.ArrayList; - public class EventArcadeRampage extends PersonalEvent { public int power; diff --git a/src/main/java/tanks/network/event/EventExplosion.java b/src/main/java/tanks/network/event/EventExplosion.java index 4e3efc74..75e9f9ec 100644 --- a/src/main/java/tanks/network/event/EventExplosion.java +++ b/src/main/java/tanks/network/event/EventExplosion.java @@ -3,7 +3,6 @@ import io.netty.buffer.ByteBuf; import tanks.Game; import tanks.tank.Explosion; -import tanks.tank.Tank; public class EventExplosion extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/EventShareCrusade.java b/src/main/java/tanks/network/event/EventShareCrusade.java index 35de46c3..073c5815 100644 --- a/src/main/java/tanks/network/event/EventShareCrusade.java +++ b/src/main/java/tanks/network/event/EventShareCrusade.java @@ -1,7 +1,10 @@ package tanks.network.event; import io.netty.buffer.ByteBuf; -import tanks.*; +import tanks.Crusade; +import tanks.Drawing; +import tanks.Game; +import tanks.Player; import tanks.gui.ChatMessage; import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; diff --git a/src/main/java/tanks/network/event/EventShootBullet.java b/src/main/java/tanks/network/event/EventShootBullet.java index 59672bb6..8914dbe2 100644 --- a/src/main/java/tanks/network/event/EventShootBullet.java +++ b/src/main/java/tanks/network/event/EventShootBullet.java @@ -2,7 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.bullet.*; +import tanks.bullet.Bullet; +import tanks.bullet.BulletInstant; import tanks.hotbar.item.ItemBullet; import tanks.network.NetworkUtils; import tanks.tank.Tank; diff --git a/src/main/java/tanks/network/event/EventStatusEffectBegin.java b/src/main/java/tanks/network/event/EventStatusEffectBegin.java index 8f6b154d..ceacd8f2 100644 --- a/src/main/java/tanks/network/event/EventStatusEffectBegin.java +++ b/src/main/java/tanks/network/event/EventStatusEffectBegin.java @@ -1,7 +1,6 @@ package tanks.network.event; import io.netty.buffer.ByteBuf; -import tanks.Game; import tanks.Movable; import tanks.StatusEffect; import tanks.bullet.Bullet; diff --git a/src/main/java/tanks/network/event/EventTankPlayerCreate.java b/src/main/java/tanks/network/event/EventTankPlayerCreate.java index b59dd5a2..0274d440 100644 --- a/src/main/java/tanks/network/event/EventTankPlayerCreate.java +++ b/src/main/java/tanks/network/event/EventTankPlayerCreate.java @@ -4,7 +4,6 @@ import tanks.Game; import tanks.Player; import tanks.Team; -import tanks.gui.screen.Screen; import tanks.gui.screen.ScreenGame; import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; diff --git a/src/main/java/tanks/network/event/EventTankTransformPreset.java b/src/main/java/tanks/network/event/EventTankTransformPreset.java index 71000266..e7bd5eee 100644 --- a/src/main/java/tanks/network/event/EventTankTransformPreset.java +++ b/src/main/java/tanks/network/event/EventTankTransformPreset.java @@ -1,16 +1,12 @@ package tanks.network.event; import io.netty.buffer.ByteBuf; -import tanks.Drawing; import tanks.Effect; import tanks.Game; -import tanks.network.NetworkUtils; import tanks.tank.Tank; import tanks.tank.TankAIControlled; import tanks.tank.TankRemote; -import java.util.HashSet; - public class EventTankTransformPreset extends PersonalEvent { public int tank; @@ -83,8 +79,6 @@ public void execute() t.trackSpacing = target.trackSpacing; ((TankAIControlled) ((TankRemote) t).tank).spawnedTankEntries = target.spawnedTankEntries; - ((TankAIControlled) ((TankRemote) t).tank).healthTransformTank = target.healthTransformTank; - ((TankAIControlled) ((TankRemote) t).tank).sightTransformTank = target.sightTransformTank; ((TankRemote) t).invisible = false; ((TankRemote) t).vanished = false; diff --git a/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java b/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java index fa7647d0..78732a7c 100644 --- a/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java +++ b/src/main/java/tanks/network/event/EventUpdateReadyPlayers.java @@ -7,7 +7,6 @@ import tanks.network.NetworkUtils; import java.util.ArrayList; -import java.util.Arrays; public class EventUpdateReadyPlayers extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/EventUpdateTankColors.java b/src/main/java/tanks/network/event/EventUpdateTankColors.java index ccc65f6c..072cfac5 100644 --- a/src/main/java/tanks/network/event/EventUpdateTankColors.java +++ b/src/main/java/tanks/network/event/EventUpdateTankColors.java @@ -1,7 +1,6 @@ package tanks.network.event; import io.netty.buffer.ByteBuf; -import tanks.Game; import tanks.Player; import tanks.gui.screen.ScreenPartyLobby; import tanks.network.ConnectedPlayer; diff --git a/src/main/java/tanks/network/event/online/EventAddButton.java b/src/main/java/tanks/network/event/online/EventAddButton.java index 517928a3..eda9bf47 100644 --- a/src/main/java/tanks/network/event/online/EventAddButton.java +++ b/src/main/java/tanks/network/event/online/EventAddButton.java @@ -3,11 +3,11 @@ import io.netty.buffer.ByteBuf; import tanks.Drawing; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.Button; import tanks.gui.screen.ScreenOnline; import tanks.gui.screen.ScreenOnlineWaiting; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventAddButton extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventAddShape.java b/src/main/java/tanks/network/event/online/EventAddShape.java index 6c49fdc4..17747661 100644 --- a/src/main/java/tanks/network/event/online/EventAddShape.java +++ b/src/main/java/tanks/network/event/online/EventAddShape.java @@ -3,8 +3,8 @@ import io.netty.buffer.ByteBuf; import tanks.Drawing; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventAddShape extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventAddText.java b/src/main/java/tanks/network/event/online/EventAddText.java index 51924c60..a3896840 100644 --- a/src/main/java/tanks/network/event/online/EventAddText.java +++ b/src/main/java/tanks/network/event/online/EventAddText.java @@ -3,9 +3,9 @@ import io.netty.buffer.ByteBuf; import tanks.Drawing; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventAddText extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventAddTextBox.java b/src/main/java/tanks/network/event/online/EventAddTextBox.java index de4a91f0..c4814f60 100644 --- a/src/main/java/tanks/network/event/online/EventAddTextBox.java +++ b/src/main/java/tanks/network/event/online/EventAddTextBox.java @@ -3,11 +3,11 @@ import io.netty.buffer.ByteBuf; import tanks.Drawing; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.TextBox; import tanks.gui.screen.ScreenOnline; import tanks.gui.screen.ScreenOnlineWaiting; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventAddTextBox extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventNewScreen.java b/src/main/java/tanks/network/event/online/EventNewScreen.java index 22e5573c..5de12613 100644 --- a/src/main/java/tanks/network/event/online/EventNewScreen.java +++ b/src/main/java/tanks/network/event/online/EventNewScreen.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventNewScreen extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventRemoveButton.java b/src/main/java/tanks/network/event/online/EventRemoveButton.java index bf02f392..db64d672 100644 --- a/src/main/java/tanks/network/event/online/EventRemoveButton.java +++ b/src/main/java/tanks/network/event/online/EventRemoveButton.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventRemoveButton extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventRemoveShape.java b/src/main/java/tanks/network/event/online/EventRemoveShape.java index 264e6fcc..f6050232 100644 --- a/src/main/java/tanks/network/event/online/EventRemoveShape.java +++ b/src/main/java/tanks/network/event/online/EventRemoveShape.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventRemoveShape extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventRemoveText.java b/src/main/java/tanks/network/event/online/EventRemoveText.java index 67a3b69e..5d137c0b 100644 --- a/src/main/java/tanks/network/event/online/EventRemoveText.java +++ b/src/main/java/tanks/network/event/online/EventRemoveText.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventRemoveText extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventRemoveTextBox.java b/src/main/java/tanks/network/event/online/EventRemoveTextBox.java index ff5d00a5..7f5eca03 100644 --- a/src/main/java/tanks/network/event/online/EventRemoveTextBox.java +++ b/src/main/java/tanks/network/event/online/EventRemoveTextBox.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; +import tanks.network.event.PersonalEvent; public class EventRemoveTextBox extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventSendLevelToDownload.java b/src/main/java/tanks/network/event/online/EventSendLevelToDownload.java index 5ba59e50..7395f0f5 100644 --- a/src/main/java/tanks/network/event/online/EventSendLevelToDownload.java +++ b/src/main/java/tanks/network/event/online/EventSendLevelToDownload.java @@ -3,9 +3,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; import tanks.Level; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenDownloadLevel; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventSendLevelToDownload extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventSendOnlineClientDetails.java b/src/main/java/tanks/network/event/online/EventSendOnlineClientDetails.java index 1b54cd49..b319ed3a 100644 --- a/src/main/java/tanks/network/event/online/EventSendOnlineClientDetails.java +++ b/src/main/java/tanks/network/event/online/EventSendOnlineClientDetails.java @@ -2,9 +2,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; +import tanks.network.NetworkUtils; import tanks.network.event.EventKick; import tanks.network.event.PersonalEvent; -import tanks.network.NetworkUtils; import tanksonline.AccessCode; import tanksonline.PlayerMap; import tanksonline.TanksOnlineServerHandler; diff --git a/src/main/java/tanks/network/event/online/EventSetMusic.java b/src/main/java/tanks/network/event/online/EventSetMusic.java index d1fc2081..17528820 100644 --- a/src/main/java/tanks/network/event/online/EventSetMusic.java +++ b/src/main/java/tanks/network/event/online/EventSetMusic.java @@ -2,8 +2,8 @@ import io.netty.buffer.ByteBuf; import tanks.Drawing; -import tanks.network.event.PersonalEvent; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventSetMusic extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventSetPauseScreenTitle.java b/src/main/java/tanks/network/event/online/EventSetPauseScreenTitle.java index 4f5facbb..c895ef83 100644 --- a/src/main/java/tanks/network/event/online/EventSetPauseScreenTitle.java +++ b/src/main/java/tanks/network/event/online/EventSetPauseScreenTitle.java @@ -3,9 +3,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; import tanks.Panel; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventSetPauseScreenTitle extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventSetScreen.java b/src/main/java/tanks/network/event/online/EventSetScreen.java index 98021805..fe3f0eb5 100644 --- a/src/main/java/tanks/network/event/online/EventSetScreen.java +++ b/src/main/java/tanks/network/event/online/EventSetScreen.java @@ -2,9 +2,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenUploadLevel; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventSetScreen extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventSetTextBox.java b/src/main/java/tanks/network/event/online/EventSetTextBox.java index 5847cae8..9c6f7814 100644 --- a/src/main/java/tanks/network/event/online/EventSetTextBox.java +++ b/src/main/java/tanks/network/event/online/EventSetTextBox.java @@ -1,8 +1,8 @@ package tanks.network.event.online; import io.netty.buffer.ByteBuf; -import tanks.network.event.PersonalEvent; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; import tanksonline.TanksOnlineServerHandler; public class EventSetTextBox extends PersonalEvent implements IOnlineServerEvent diff --git a/src/main/java/tanks/network/event/online/EventSilentDisconnect.java b/src/main/java/tanks/network/event/online/EventSilentDisconnect.java index 57d1242f..935fd548 100644 --- a/src/main/java/tanks/network/event/online/EventSilentDisconnect.java +++ b/src/main/java/tanks/network/event/online/EventSilentDisconnect.java @@ -2,10 +2,10 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenPartyLobby; import tanks.gui.screen.ScreenPlayMultiplayer; import tanks.network.Client; +import tanks.network.event.PersonalEvent; public class EventSilentDisconnect extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventUpdateTextBox.java b/src/main/java/tanks/network/event/online/EventUpdateTextBox.java index 96cc2af8..17aca185 100644 --- a/src/main/java/tanks/network/event/online/EventUpdateTextBox.java +++ b/src/main/java/tanks/network/event/online/EventUpdateTextBox.java @@ -2,9 +2,9 @@ import io.netty.buffer.ByteBuf; import tanks.Game; -import tanks.network.event.PersonalEvent; import tanks.gui.screen.ScreenOnline; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; public class EventUpdateTextBox extends PersonalEvent { diff --git a/src/main/java/tanks/network/event/online/EventUploadLevel.java b/src/main/java/tanks/network/event/online/EventUploadLevel.java index e6a3ea28..084029e0 100644 --- a/src/main/java/tanks/network/event/online/EventUploadLevel.java +++ b/src/main/java/tanks/network/event/online/EventUploadLevel.java @@ -1,8 +1,8 @@ package tanks.network.event.online; import io.netty.buffer.ByteBuf; -import tanks.network.event.PersonalEvent; import tanks.network.NetworkUtils; +import tanks.network.event.PersonalEvent; import tanksonline.PlayerMap; import tanksonline.TanksOnlineServerHandler; import tanksonline.UploadedLevel; diff --git a/src/main/java/tanks/obstacle/ObstacleColor.java b/src/main/java/tanks/obstacle/ObstacleColor.java index d4afb69e..44ebe3dc 100644 --- a/src/main/java/tanks/obstacle/ObstacleColor.java +++ b/src/main/java/tanks/obstacle/ObstacleColor.java @@ -1,7 +1,9 @@ package tanks.obstacle; import basewindow.IBatchRenderableObject; -import tanks.*; +import tanks.Drawing; +import tanks.Game; +import tanks.Panel; public class ObstacleColor extends Obstacle { diff --git a/src/main/java/tanks/obstacle/ObstacleExplosive.java b/src/main/java/tanks/obstacle/ObstacleExplosive.java index 9a568d91..813594b2 100644 --- a/src/main/java/tanks/obstacle/ObstacleExplosive.java +++ b/src/main/java/tanks/obstacle/ObstacleExplosive.java @@ -4,9 +4,9 @@ import tanks.Movable; import tanks.Panel; import tanks.bullet.Bullet; -import tanks.network.event.EventObstacleDestroy; import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.Item; +import tanks.network.event.EventObstacleDestroy; import tanks.rendering.ShaderExplosive; import tanks.tank.*; diff --git a/src/main/java/tanks/obstacle/ObstacleLava.java b/src/main/java/tanks/obstacle/ObstacleLava.java index 2a5fd6a8..c02226df 100644 --- a/src/main/java/tanks/obstacle/ObstacleLava.java +++ b/src/main/java/tanks/obstacle/ObstacleLava.java @@ -4,7 +4,6 @@ import tanks.*; import tanks.gui.screen.ScreenGame; import tanks.tank.IAvoidObject; -import tanks.tank.Mine; import tanks.tank.Tank; public class ObstacleLava extends Obstacle implements IAvoidObject diff --git a/src/main/java/tanks/obstacle/ObstacleMud.java b/src/main/java/tanks/obstacle/ObstacleMud.java index 3b345c73..2c743be2 100644 --- a/src/main/java/tanks/obstacle/ObstacleMud.java +++ b/src/main/java/tanks/obstacle/ObstacleMud.java @@ -1,6 +1,5 @@ package tanks.obstacle; -import basewindow.IBatchRenderableObject; import tanks.*; import tanks.gui.screen.ScreenGame; import tanks.rendering.ShaderMud; diff --git a/src/main/java/tanks/obstacle/ObstacleShrubbery.java b/src/main/java/tanks/obstacle/ObstacleShrubbery.java index f6e67543..3e682816 100644 --- a/src/main/java/tanks/obstacle/ObstacleShrubbery.java +++ b/src/main/java/tanks/obstacle/ObstacleShrubbery.java @@ -2,13 +2,12 @@ import tanks.*; import tanks.bullet.Bullet; -import tanks.bullet.legacy.BulletAir; import tanks.bullet.BulletInstant; import tanks.gui.screen.ICrusadePreviewScreen; -import tanks.network.event.EventObstacleShrubberyBurn; import tanks.gui.screen.ILevelPreviewScreen; import tanks.gui.screen.IOverlayScreen; import tanks.gui.screen.ScreenGame; +import tanks.network.event.EventObstacleShrubberyBurn; import tanks.rendering.ShaderShrubbery; import tanks.tank.Tank; @@ -60,7 +59,7 @@ public void update() this.height = Math.min(this.height + Panel.frameFrequency, 255); - if (ScreenGame.finishedQuick && !Game.game.window.shapeRenderer.supportsBatching) + if (ScreenGame.finishedQuick) { this.height = Math.max(127, this.height - Panel.frameFrequency * 2); } @@ -78,7 +77,7 @@ public void draw() { this.finalHeight = this.baseGroundHeight + Game.tile_size * (0.2 + this.heightMultiplier * (1 - (255 - this.height) / 128)); - if (!Game.game.window.shapeRenderer.supportsBatching || !Game.enable3d) + if (!Game.enable3d) { if (Game.screen instanceof ILevelPreviewScreen || Game.screen instanceof ICrusadePreviewScreen || Game.screen instanceof IOverlayScreen || Game.screen instanceof ScreenGame && (!((ScreenGame) Game.screen).playing)) { diff --git a/src/main/java/tanks/obstacle/ObstacleSnow.java b/src/main/java/tanks/obstacle/ObstacleSnow.java index 412ecee0..b077694e 100644 --- a/src/main/java/tanks/obstacle/ObstacleSnow.java +++ b/src/main/java/tanks/obstacle/ObstacleSnow.java @@ -2,11 +2,10 @@ import tanks.*; import tanks.bullet.Bullet; -import tanks.network.event.EventObstacleSnowMelt; import tanks.gui.screen.*; +import tanks.network.event.EventObstacleSnowMelt; import tanks.rendering.ShaderSnow; import tanks.tank.Tank; -import tanks.tank.TankAIControlled; public class ObstacleSnow extends Obstacle { @@ -119,7 +118,7 @@ public void onObjectEntryLocal(Movable m) @Override public void draw() { - if (!Game.game.window.shapeRenderer.supportsBatching || !Game.enable3d) + if (!Game.enable3d) { if (Game.screen instanceof ScreenGame && (ScreenPartyHost.isServer || ScreenPartyLobby.isClient || !((ScreenGame) Game.screen).paused)) this.visualDepth = Math.min(this.visualDepth + Panel.frameFrequency / 255, 1); diff --git a/src/main/java/tanks/registry/RegistryItem.java b/src/main/java/tanks/registry/RegistryItem.java index 3025ddaf..a8b766f1 100644 --- a/src/main/java/tanks/registry/RegistryItem.java +++ b/src/main/java/tanks/registry/RegistryItem.java @@ -1,20 +1,10 @@ package tanks.registry; -import basewindow.BaseFile; -import tanks.Game; -import tanks.Player; -import tanks.bullet.*; import tanks.hotbar.item.Item; -import tanks.hotbar.item.ItemBullet; import tanks.hotbar.item.ItemEmpty; -import java.io.File; -import java.io.IOException; import java.lang.reflect.InvocationTargetException; -import java.net.URL; -import java.net.URLClassLoader; import java.util.ArrayList; -import java.util.Date; public class RegistryItem { diff --git a/src/main/java/tanks/registry/RegistryModelTank.java b/src/main/java/tanks/registry/RegistryModelTank.java index f724de06..ee541319 100644 --- a/src/main/java/tanks/registry/RegistryModelTank.java +++ b/src/main/java/tanks/registry/RegistryModelTank.java @@ -2,10 +2,8 @@ import basewindow.IModel; import tanks.Drawing; -import tanks.tank.TankModels; import java.util.ArrayList; -import java.util.HashMap; public class RegistryModelTank { diff --git a/src/main/java/tanks/rendering/ShaderGroundOutOfBounds.java b/src/main/java/tanks/rendering/ShaderGroundOutOfBounds.java index 7bf2e242..5eb51f09 100644 --- a/src/main/java/tanks/rendering/ShaderGroundOutOfBounds.java +++ b/src/main/java/tanks/rendering/ShaderGroundOutOfBounds.java @@ -1,6 +1,7 @@ package tanks.rendering; import basewindow.BaseWindow; +import basewindow.OnlyBaseUniform; public class ShaderGroundOutOfBounds extends RendererShader implements IObstacleSizeShader { diff --git a/src/main/java/tanks/rendering/StaticTerrainRenderer.java b/src/main/java/tanks/rendering/StaticTerrainRenderer.java index 4420295c..eadbd8df 100644 --- a/src/main/java/tanks/rendering/StaticTerrainRenderer.java +++ b/src/main/java/tanks/rendering/StaticTerrainRenderer.java @@ -1,6 +1,9 @@ package tanks.rendering; -import basewindow.*; +import basewindow.BaseShapeBatchRenderer; +import basewindow.BaseWindow; +import basewindow.IBatchRenderableObject; +import basewindow.ShaderGroup; import tanks.Drawing; import tanks.Game; import tanks.gui.screen.ILevelPreviewScreen; @@ -78,7 +81,7 @@ public RegionRenderer getRenderer(Class s) public static class RegionRenderer { - public BaseStaticBatchRenderer renderer; + public BaseShapeBatchRenderer renderer; public ShaderGroup shader; public RegionRenderer(ShaderGroup s) @@ -114,7 +117,7 @@ else if (o instanceof Tile && ((Tile) o).obstacleAbove != null) return s; } - public void addVertexCoord(BaseStaticBatchRenderer s, ShaderGroup shader, float f) + public void addVertexCoord(BaseShapeBatchRenderer s, ShaderGroup shader, float f) { if (shader instanceof IObstacleVertexCoordShader) s.setAttribute(((IObstacleVertexCoordShader) shader).getVertexCoord(), f); @@ -126,7 +129,7 @@ public void addBox(IBatchRenderableObject o, double x, double y, double z, doubl Game.exitToCrash(new RuntimeException("Renderer was freed")); RegionRenderer r = this.getRenderer(o, out); - BaseStaticBatchRenderer s = r.renderer; + BaseShapeBatchRenderer s = r.renderer; ShaderGroup shader = r.shader; float x0 = (float) x; diff --git a/src/main/java/tanks/rendering/TerrainRenderer.java b/src/main/java/tanks/rendering/TerrainRenderer.java index 714c836a..b16db35c 100644 --- a/src/main/java/tanks/rendering/TerrainRenderer.java +++ b/src/main/java/tanks/rendering/TerrainRenderer.java @@ -47,6 +47,9 @@ public TerrainRenderer() this.outsideShader = Game.game.shaderOutOfBounds; this.introShader = Game.game.shaderIntro; + + Game.game.shaderInstances.put(this.outsideShader.getClass(), this.outsideShader); + Game.game.shaderInstances.put(this.introShader.getClass(), this.introShader); } catch (Exception e) { @@ -112,7 +115,9 @@ public RegionRenderer getRenderer(IBatchRenderableObject o, double x, double y, Class sg = ShaderGroup.class; if (Game.screen instanceof ScreenIntro || Game.screen instanceof ScreenExit) + { sg = ShaderGroundIntro.class; + } if (o instanceof Obstacle) sg = ((Obstacle) o).renderer; @@ -124,6 +129,9 @@ else if (o instanceof Tile && ((Tile) o).obstacleAbove != null) s = renderersByObj.get(o); renderers = this.getRenderers(sg); } + else if (!(Game.screen instanceof ScreenIntro || Game.screen instanceof ScreenExit)) + sg = ShaderGroundOutOfBounds.class; + if (s == null) { @@ -429,7 +437,7 @@ public void draw() if (Game.screen instanceof ScreenIntro || Game.screen instanceof ScreenExit) { this.introShader.set(); - this.introShader.obstacleSizeFrac.set((float) Obstacle.draw_size); + this.introShader.setSize((float) (Obstacle.draw_size / Game.tile_size)); this.introShader.d3.set(Game.enable3d); for (int x = xStart; x <= xEnd; x++) @@ -449,7 +457,7 @@ public void draw() this.outsideShader.set(); float size = (float) (Obstacle.draw_size / Game.tile_size); - if (!(Game.screen instanceof ScreenGame)) + if (!(Game.screen instanceof ScreenGame || Game.screen instanceof ScreenExit)) size = 0; this.outsideShader.setSize(size); diff --git a/src/main/java/tanks/tank/Explosion.java b/src/main/java/tanks/tank/Explosion.java index f1b33a2c..5f7b44e4 100644 --- a/src/main/java/tanks/tank/Explosion.java +++ b/src/main/java/tanks/tank/Explosion.java @@ -2,8 +2,6 @@ import tanks.*; import tanks.bullet.Bullet; -import tanks.minigames.Arcade; -import tanks.network.event.*; import tanks.gui.ChatMessage; import tanks.gui.IFixedMenu; import tanks.gui.Scoreboard; @@ -12,6 +10,7 @@ import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.Item; import tanks.minigames.Minigame; +import tanks.network.event.*; import tanks.obstacle.Obstacle; public class Explosion extends Movable diff --git a/src/main/java/tanks/tank/Mine.java b/src/main/java/tanks/tank/Mine.java index 41d1f6e9..5a6ba8d3 100644 --- a/src/main/java/tanks/tank/Mine.java +++ b/src/main/java/tanks/tank/Mine.java @@ -1,13 +1,12 @@ package tanks.tank; import tanks.*; -import tanks.network.event.EventMineChangeTimer; -import tanks.network.event.EventMineRemove; import tanks.gui.IFixedMenu; import tanks.gui.Scoreboard; import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.ItemMine; -import tanks.obstacle.Obstacle; +import tanks.network.event.EventMineChangeTimer; +import tanks.network.event.EventMineRemove; import java.util.ArrayList; import java.util.HashMap; diff --git a/src/main/java/tanks/tank/NameTag.java b/src/main/java/tanks/tank/NameTag.java index 4f314327..89081ba9 100644 --- a/src/main/java/tanks/tank/NameTag.java +++ b/src/main/java/tanks/tank/NameTag.java @@ -3,7 +3,6 @@ import tanks.Drawing; import tanks.Game; import tanks.IDrawable; -import tanks.Movable; public class NameTag implements IDrawable { diff --git a/src/main/java/tanks/tank/Tank.java b/src/main/java/tanks/tank/Tank.java index 7ae26864..a9fc88a7 100644 --- a/src/main/java/tanks/tank/Tank.java +++ b/src/main/java/tanks/tank/Tank.java @@ -4,24 +4,25 @@ import basewindow.ModelPart; import tanks.*; import tanks.bullet.Bullet; -import tanks.network.event.EventTankAddAttributeModifier; -import tanks.network.event.EventTankUpdate; -import tanks.network.event.EventTankUpdateHealth; import tanks.gui.screen.ScreenGame; import tanks.gui.screen.ScreenPartyHost; import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.ItemBullet; import tanks.hotbar.item.ItemMine; +import tanks.network.event.EventTankAddAttributeModifier; +import tanks.network.event.EventTankUpdate; +import tanks.network.event.EventTankUpdateHealth; import tanks.obstacle.Face; import tanks.obstacle.ISolidObject; import tanks.obstacle.Obstacle; -import static tanks.tank.TankProperty.Category.*; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.HashSet; +import static tanks.tank.TankProperty.Category.*; + public abstract class Tank extends Movable implements ISolidObject { public static int currentID = 0; @@ -734,6 +735,7 @@ else if (!Game.enable3d) } } + Drawing.drawing.setColor(teamColor[0], teamColor[1], teamColor[2], 255, luminance); if (forInterface) diff --git a/src/main/java/tanks/tank/TankAIControlled.java b/src/main/java/tanks/tank/TankAIControlled.java index fdd93ffb..eebab759 100644 --- a/src/main/java/tanks/tank/TankAIControlled.java +++ b/src/main/java/tanks/tank/TankAIControlled.java @@ -3,19 +3,19 @@ import basewindow.IModel; import tanks.*; import tanks.bullet.*; -import tanks.network.event.*; import tanks.gui.screen.ScreenGame; import tanks.hotbar.item.Item; import tanks.hotbar.item.ItemBullet; +import tanks.network.event.*; import tanks.obstacle.Obstacle; import tanks.obstacle.ObstacleTeleporter; import tanks.registry.RegistryTank; -import static tanks.tank.TankProperty.Category.*; - import java.lang.reflect.Field; import java.util.*; +import static tanks.tank.TankProperty.Category.*; + /** This class is the 'skeleton' tank class. * It can be extended and values can be changed to easily produce an AI for another tank. * Also, the behavior is split into many methods which are intended to be overridden easily.*/ @@ -605,18 +605,18 @@ else if (this.inControlOfMotion) } } - if (this.enableSuicide) - this.updateSuicideAI(); - - if (this.chargeUp) - this.checkCharge(); - if (!ScreenGame.finished) { this.updateTurretAI(); this.updateMineAI(); } + if (this.enableSuicide) + this.updateSuicideAI(); + + if (this.chargeUp) + this.checkCharge(); + if (this.transformMimic) this.updateMimic(); @@ -1341,7 +1341,7 @@ public void checkForBulletThreats() && b.shouldDodge && Math.abs(b.posX - this.posX) < Game.tile_size * distBox && Math.abs(b.posY - this.posY) < Game.tile_size * distBox && (b.getMotionInDirection(b.getAngleInDirection(this.posX, this.posY)) > 0 || dist < this.size * 3)) { - int c = 1; + int c = enableMovement ? 1 : 0; for (int o = 0; o <= c; o++) { int mul = o == 1 ? 3 : 1; diff --git a/src/main/java/tanks/tank/TankGold.java b/src/main/java/tanks/tank/TankGold.java index 793c692d..eb8bade4 100644 --- a/src/main/java/tanks/tank/TankGold.java +++ b/src/main/java/tanks/tank/TankGold.java @@ -1,6 +1,6 @@ package tanks.tank; -import tanks.*; +import tanks.Game; import tanks.bullet.Bullet; import tanks.bullet.BulletBoost; diff --git a/src/main/java/tanks/tank/TankLightBlue.java b/src/main/java/tanks/tank/TankLightBlue.java index 8ca5634c..90958518 100644 --- a/src/main/java/tanks/tank/TankLightBlue.java +++ b/src/main/java/tanks/tank/TankLightBlue.java @@ -2,7 +2,6 @@ import tanks.Game; import tanks.bullet.Bullet; -import tanks.bullet.BulletAir2; import tanks.bullet.legacy.BulletAir; /** diff --git a/src/main/java/tanks/tank/TankLightPink.java b/src/main/java/tanks/tank/TankLightPink.java index 7cc993da..add323b9 100644 --- a/src/main/java/tanks/tank/TankLightPink.java +++ b/src/main/java/tanks/tank/TankLightPink.java @@ -1,6 +1,6 @@ package tanks.tank; -import tanks.*; +import tanks.Game; import tanks.bullet.Bullet; /** diff --git a/src/main/java/tanks/tank/TankLightPinkAngry.java b/src/main/java/tanks/tank/TankLightPinkAngry.java index 42aa578b..d7e2b7bf 100644 --- a/src/main/java/tanks/tank/TankLightPinkAngry.java +++ b/src/main/java/tanks/tank/TankLightPinkAngry.java @@ -1,6 +1,6 @@ package tanks.tank; -import tanks.*; +import tanks.Game; import tanks.bullet.Bullet; import java.util.HashSet; diff --git a/src/main/java/tanks/tank/TankMimic.java b/src/main/java/tanks/tank/TankMimic.java index 69d09f8b..e355e6a7 100644 --- a/src/main/java/tanks/tank/TankMimic.java +++ b/src/main/java/tanks/tank/TankMimic.java @@ -1,7 +1,6 @@ package tanks.tank; -import basewindow.Model; -import tanks.*; +import tanks.Game; /** * A tank which mimics the closest tank it sees diff --git a/src/main/java/tanks/tank/TankMustard.java b/src/main/java/tanks/tank/TankMustard.java index b044206d..e075f809 100644 --- a/src/main/java/tanks/tank/TankMustard.java +++ b/src/main/java/tanks/tank/TankMustard.java @@ -1,6 +1,6 @@ package tanks.tank; -import tanks.*; +import tanks.Game; import tanks.bullet.Bullet; import tanks.bullet.BulletArc; diff --git a/src/main/java/tanks/tank/TankNPC.java b/src/main/java/tanks/tank/TankNPC.java index 1db0eb5a..3a2b6970 100644 --- a/src/main/java/tanks/tank/TankNPC.java +++ b/src/main/java/tanks/tank/TankNPC.java @@ -5,10 +5,6 @@ import tanks.Game; import tanks.ModAPI; import tanks.Panel; -import tanks.network.event.EventAddNPCShopItem; -import tanks.network.event.EventClearNPCShop; -import tanks.network.event.EventPurchaseNPCItem; -import tanks.network.event.EventSortNPCShopButtons; import tanks.gui.Button; import tanks.gui.ButtonList; import tanks.gui.input.InputBinding; @@ -17,6 +13,10 @@ import tanks.gui.screen.ScreenPartyLobby; import tanks.hotbar.item.Item; import tanks.hotbar.item.ItemRemote; +import tanks.network.event.EventAddNPCShopItem; +import tanks.network.event.EventClearNPCShop; +import tanks.network.event.EventPurchaseNPCItem; +import tanks.network.event.EventSortNPCShopButtons; import java.util.ArrayList; import java.util.Arrays; diff --git a/src/main/java/tanks/tank/TankPlayer.java b/src/main/java/tanks/tank/TankPlayer.java index 29b84cb1..43702af8 100644 --- a/src/main/java/tanks/tank/TankPlayer.java +++ b/src/main/java/tanks/tank/TankPlayer.java @@ -5,17 +5,17 @@ import tanks.*; import tanks.bullet.Bullet; import tanks.bullet.BulletElectric; -import tanks.gui.screen.ScreenPartyHost; -import tanks.gui.screen.ScreenTitle; -import tanks.network.event.EventLayMine; -import tanks.network.event.EventShootBullet; import tanks.gui.Button; import tanks.gui.IFixedMenu; import tanks.gui.Joystick; import tanks.gui.Scoreboard; import tanks.gui.screen.ScreenGame; +import tanks.gui.screen.ScreenPartyHost; +import tanks.gui.screen.ScreenTitle; import tanks.hotbar.Hotbar; import tanks.hotbar.item.*; +import tanks.network.event.EventLayMine; +import tanks.network.event.EventShootBullet; /** * A tank that is controlled by the player. TankPlayerController is used instead if we are connected to a party as a client. @@ -294,8 +294,19 @@ else if (i instanceof ItemRemote) if (!p.tag.equals("") && !p.tag.equals("aim") && !p.tag.equals("shoot")) continue; - double px = Drawing.drawing.getInterfacePointerX(p.x); - double py = Drawing.drawing.getInterfacePointerY(p.y); + if (Game.screen instanceof ScreenGame) + { + Game.game.window.transformations.add(((ScreenGame) Game.screen).slantTranslation); + Game.game.window.transformations.add(((ScreenGame) Game.screen).slantRotation); + } + float[] tp = Game.game.window.getTransformedMouse(p.x, p.y); + if (Game.screen instanceof ScreenGame) + { + Game.game.window.transformations.remove(((ScreenGame) Game.screen).slantTranslation); + Game.game.window.transformations.remove(((ScreenGame) Game.screen).slantRotation); + } + double px = Drawing.drawing.getInterfacePointerX(tp[0]); + double py = Drawing.drawing.getInterfacePointerY(tp[1]); if (!Game.followingCam) { diff --git a/src/main/java/tanks/tank/TankPlayerController.java b/src/main/java/tanks/tank/TankPlayerController.java index 397d1ae5..9489ebc6 100644 --- a/src/main/java/tanks/tank/TankPlayerController.java +++ b/src/main/java/tanks/tank/TankPlayerController.java @@ -5,12 +5,12 @@ import tanks.Game; import tanks.Panel; import tanks.bullet.BulletElectric; -import tanks.network.event.EventTankControllerUpdateC; import tanks.gui.screen.ScreenGame; import tanks.hotbar.Hotbar; import tanks.hotbar.item.Item; import tanks.hotbar.item.ItemBullet; import tanks.hotbar.item.ItemRemote; +import tanks.network.event.EventTankControllerUpdateC; import java.util.UUID; diff --git a/src/main/java/tanks/tank/TankPlayerRemote.java b/src/main/java/tanks/tank/TankPlayerRemote.java index 00ab2e83..18e7dcb0 100644 --- a/src/main/java/tanks/tank/TankPlayerRemote.java +++ b/src/main/java/tanks/tank/TankPlayerRemote.java @@ -2,7 +2,6 @@ import tanks.*; import tanks.bullet.Bullet; -import tanks.network.event.*; import tanks.gui.IFixedMenu; import tanks.gui.Scoreboard; import tanks.gui.screen.ScreenGame; @@ -12,6 +11,7 @@ import tanks.hotbar.item.ItemBullet; import tanks.hotbar.item.ItemEmpty; import tanks.hotbar.item.ItemMine; +import tanks.network.event.*; public class TankPlayerRemote extends Tank implements IServerPlayerTank { diff --git a/src/main/java/tanks/tank/TankRemote.java b/src/main/java/tanks/tank/TankRemote.java index 2ce4c10c..006f308d 100644 --- a/src/main/java/tanks/tank/TankRemote.java +++ b/src/main/java/tanks/tank/TankRemote.java @@ -116,6 +116,8 @@ public void copyTank(Tank t) this.fromRegistry = t.fromRegistry; this.trackSpacing = t.trackSpacing; this.enableTracks = t.enableTracks; + this.multipleTurrets = t.multipleTurrets; + this.bullet.shotCount = t.bullet.shotCount; } @Override