From 9994ddb31b79ce18f3b3fab7aba2ee93b2b0cece Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 8 Oct 2018 09:41:01 -0400 Subject: [PATCH] Implemented public submodules --- .../io/anuke/mindustry/AndroidLauncher.java | 2 +- .../mindustry/content/blocks/DebugBlocks.java | 2 +- core/src/io/anuke/mindustry/core/Control.java | 22 ++----- .../src/io/anuke/mindustry/core/Renderer.java | 66 +++---------------- core/src/io/anuke/mindustry/core/World.java | 7 +- .../mindustry/editor/MapEditorDialog.java | 2 +- .../io/anuke/mindustry/entities/Player.java | 2 +- .../mindustry/entities/units/UnitDrops.java | 2 +- core/src/io/anuke/mindustry/game/Saves.java | 2 +- .../mindustry/game/UnlockableContent.java | 2 +- .../anuke/mindustry/graphics/CacheLayer.java | 4 +- .../anuke/mindustry/input/DesktopInput.java | 2 +- .../anuke/mindustry/io/versions/Save16.java | 2 +- core/src/io/anuke/mindustry/maps/Sector.java | 4 +- core/src/io/anuke/mindustry/maps/Sectors.java | 4 +- core/src/io/anuke/mindustry/type/Recipe.java | 4 +- core/src/io/anuke/mindustry/ui/Minimap.java | 26 +++----- .../mindustry/ui/dialogs/LoadDialog.java | 6 +- .../mindustry/ui/dialogs/PausedDialog.java | 6 +- .../mindustry/ui/dialogs/SaveDialog.java | 2 +- .../mindustry/ui/dialogs/UnlocksDialog.java | 4 +- .../mindustry/ui/fragments/HudFragment.java | 2 +- core/src/io/anuke/mindustry/world/Block.java | 2 +- .../world/blocks/SelectionTrait.java | 2 +- ios/src/io/anuke/mindustry/IOSLauncher.java | 2 +- 25 files changed, 58 insertions(+), 123 deletions(-) diff --git a/android/src/io/anuke/mindustry/AndroidLauncher.java b/android/src/io/anuke/mindustry/AndroidLauncher.java index 5f233867ca..44fa1e6363 100644 --- a/android/src/io/anuke/mindustry/AndroidLauncher.java +++ b/android/src/io/anuke/mindustry/AndroidLauncher.java @@ -202,7 +202,7 @@ public class AndroidLauncher extends PatchedAndroidApplication{ file.write(inStream, false); if(SaveIO.isSaveValid(file)){ try{ - SaveSlot slot = control.getSaves().importSave(file); + SaveSlot slot = control.saves.importSave(file); ui.load.runLoadSave(slot); }catch(IOException e){ ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false))); diff --git a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java index 6c57b400bc..c99c8411d7 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java @@ -129,7 +129,7 @@ public class DebugBlocks extends BlockList implements ContentList{ Table cont = new Table(); for(int i = 0; i < items.size; i++){ - if(!control.unlocks().isUnlocked(items.get(i))) continue; + if(!control.unlocks.isUnlocked(items.get(i))) continue; final int f = i; ImageButton button = cont.addImageButton("liquid-icon-" + items.get(i).name, "toggle", 24, diff --git a/core/src/io/anuke/mindustry/core/Control.java b/core/src/io/anuke/mindustry/core/Control.java index 80059b2379..935a140fa9 100644 --- a/core/src/io/anuke/mindustry/core/Control.java +++ b/core/src/io/anuke/mindustry/core/Control.java @@ -40,13 +40,13 @@ public class Control extends Module{ /** Minimum period of time between the same sound being played.*/ private static final long minSoundPeriod = 100; + public final Saves saves; + public final Unlocks unlocks; + private boolean hiscore = false; private boolean wasPaused = false; - private Saves saves; - private Unlocks unlocks; private InputHandler[] inputs = {}; private ObjectMap soundMap = new ObjectMap<>(); - private Throwable error; public Control(){ @@ -224,18 +224,10 @@ public class Control extends Module{ System.arraycopy(oldi, 0, inputs, 0, inputs.length); } - public Unlocks unlocks(){ - return unlocks; - } - public void setError(Throwable error){ this.error = error; } - public Saves getSaves(){ - return saves; - } - public InputHandler input(int index){ return inputs[index]; } @@ -262,10 +254,10 @@ public class Control extends Module{ if(entity == null) return; - entity.items.forEach((item, amount) -> control.unlocks().unlockContent(item)); + entity.items.forEach((item, amount) -> unlocks.unlockContent(item)); if(players[0].inventory.hasItem()){ - control.unlocks().unlockContent(players[0].inventory.getItem().item); + unlocks.unlockContent(players[0].inventory.getItem().item); } outer: @@ -276,7 +268,7 @@ public class Control extends Module{ if(!entity.items.has(stack.item, Math.min((int) (stack.amount * unlockResourceScaling), 2000))) continue outer; } - if(control.unlocks().unlockContent(recipe)){ + if(unlocks.unlockContent(recipe)){ ui.hudfrag.showUnlock(recipe); } } @@ -333,7 +325,7 @@ public class Control extends Module{ /** Called from main logic thread.*/ public void runUpdateLogic(){ if(!state.is(State.menu)){ - renderer.minimap().updateUnitArray(); + renderer.minimap.updateUnitArray(); } } diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index dc9b79a214..2eebee5b56 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -2,8 +2,6 @@ package io.anuke.mindustry.core; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.graphics.Color; -import com.badlogic.gdx.graphics.Texture; -import com.badlogic.gdx.graphics.Texture.TextureWrap; import com.badlogic.gdx.graphics.g2d.SpriteBatch; import com.badlogic.gdx.math.Rectangle; import com.badlogic.gdx.math.Vector2; @@ -33,7 +31,6 @@ import io.anuke.ucore.entities.trait.Entity; import io.anuke.ucore.function.Consumer; import io.anuke.ucore.function.Predicate; import io.anuke.ucore.graphics.Draw; -import io.anuke.ucore.graphics.Hue; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.graphics.Surface; import io.anuke.ucore.modules.RendererModule; @@ -47,20 +44,15 @@ import static io.anuke.ucore.core.Core.batch; import static io.anuke.ucore.core.Core.camera; public class Renderer extends RendererModule{ - public Surface effectSurface; + public final Surface effectSurface; + public final BlockRenderer blocks = new BlockRenderer(); + public final MinimapRenderer minimap = new MinimapRenderer(); + public final OverlayRenderer overlays = new OverlayRenderer(); + public final FogRenderer fog = new FogRenderer(); private int targetscale = baseCameraScale; - private Texture background = new Texture("sprites/background.png"); - private Rectangle rect = new Rectangle(), rect2 = new Rectangle(); private Vector2 avgPosition = new Translator(); - private Vector2 tmpVector1 = new Translator(); - private Vector2 tmpVector2 = new Translator(); - - private BlockRenderer blocks = new BlockRenderer(); - private MinimapRenderer minimap = new MinimapRenderer(); - private OverlayRenderer overlays = new OverlayRenderer(); - private FogRenderer fog = new FogRenderer(); public Renderer(){ Core.batch = new SpriteBatch(4096); @@ -118,18 +110,14 @@ public class Renderer extends RendererModule{ Cursors.loadCustom("drill"); Cursors.loadCustom("unload"); - clearColor = Hue.lightness(0f); - clearColor.a = 1f; + clearColor = new Color(0f, 0f, 0f, 1f); - background.setWrap(TextureWrap.Repeat, TextureWrap.Repeat); + effectSurface = Graphics.createSurface(Core.cameraScale); + pixelSurface = Graphics.createSurface(Core.cameraScale); } @Override public void init(){ - int scale = Core.cameraScale; - - effectSurface = Graphics.createSurface(scale); - pixelSurface = Graphics.createSurface(scale); } @Override @@ -209,8 +197,6 @@ public class Renderer extends RendererModule{ Graphics.clear(clearColor); - drawPadding(); - blocks.drawFloor(); drawAndInterpolate(groundEffectGroup, e -> e instanceof BelowLiquidTrait); @@ -352,7 +338,6 @@ public class Renderer extends RendererModule{ @Override public void dispose(){ - background.dispose(); fog.dispose(); } @@ -365,37 +350,6 @@ public class Renderer extends RendererModule{ return avgPosition; } - public FogRenderer fog(){ - return fog; - } - - public MinimapRenderer minimap(){ - return minimap; - } - - void drawPadding(){ - float vw = world.width() * tilesize; - float cw = camera.viewportWidth * camera.zoom; - float ch = camera.viewportHeight * camera.zoom; - if(vw < cw){ - batch.draw(background, - camera.position.x + vw / 2, - Mathf.round(camera.position.y - ch / 2, tilesize), - (cw - vw) / 2, - ch + tilesize, - 0, 0, - ((cw - vw) / 2 / tilesize), -ch / tilesize + 1); - - batch.draw(background, - camera.position.x - vw / 2, - Mathf.round(camera.position.y - ch / 2, tilesize), - -(cw - vw) / 2, - ch + tilesize, - 0, 0, - -((cw - vw) / 2 / tilesize), -ch / tilesize + 1); - } - } - void drawDebug(){ int rangex = (int) (Core.camera.viewportWidth / tilesize / 2), rangey = (int) (Core.camera.viewportHeight / tilesize / 2); @@ -432,10 +386,6 @@ public class Renderer extends RendererModule{ Draw.color(); } - public BlockRenderer getBlocks(){ - return blocks; - } - public void setCameraScale(int amount){ targetscale = amount; clampScale(); diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index cc334ed552..2815c52a81 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -25,14 +25,15 @@ import io.anuke.ucore.util.*; import static io.anuke.mindustry.Vars.*; public class World extends Module{ + public final Maps maps = new Maps(); + public final Sectors sectors = new Sectors(); + public final WorldGenerator generator = new WorldGenerator(); + private Map currentMap; private Sector currentSector; private Tile[][] tiles; private Pathfinder pathfinder = new Pathfinder(); private BlockIndexer indexer = new BlockIndexer(); - private Maps maps = new Maps(); - private Sectors sectors = new Sectors(); - private WorldGenerator generator = new WorldGenerator(); private Array tempTiles = new ThreadArray<>(); private boolean generating, invalidMap; diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index e3d0a6f960..52cc4003ec 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -567,7 +567,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ for(Block block : Vars.content.blocks()){ TextureRegion[] regions = block.getCompactIcon(); - if((block.synthetic() && (Recipe.getByResult(block) == null || !control.unlocks().isUnlocked(Recipe.getByResult(block)))) + if((block.synthetic() && (Recipe.getByResult(block) == null || !control.unlocks.isUnlocked(Recipe.getByResult(block)))) && block != StorageBlocks.core){ continue; } diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index f81b6d3428..b8ca770540 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -494,7 +494,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra return; }else{ //unlock mech when used - control.unlocks().unlockContent(mech); + control.unlocks.unlockContent(mech); } if(mobile){ diff --git a/core/src/io/anuke/mindustry/entities/units/UnitDrops.java b/core/src/io/anuke/mindustry/entities/units/UnitDrops.java index 0738f1cb46..3780465876 100644 --- a/core/src/io/anuke/mindustry/entities/units/UnitDrops.java +++ b/core/src/io/anuke/mindustry/entities/units/UnitDrops.java @@ -29,7 +29,7 @@ public class UnitDrops{ for(int i = 0; i < 3; i++){ for(Item item : dropTable){ //only drop unlocked items - if(!Vars.headless && !Vars.control.unlocks().isUnlocked(item)){ + if(!Vars.headless && !Vars.control.unlocks.isUnlocked(item)){ continue; } diff --git a/core/src/io/anuke/mindustry/game/Saves.java b/core/src/io/anuke/mindustry/game/Saves.java index 8de7f32867..4ca1c5c42d 100644 --- a/core/src/io/anuke/mindustry/game/Saves.java +++ b/core/src/io/anuke/mindustry/game/Saves.java @@ -168,7 +168,7 @@ public class Saves{ threads.runGraphics(() -> { //Renderer fog needs to be written on graphics thread, but save() can run on logic thread //thus, runGraphics is required here - renderer.fog().writeFog(); + renderer.fog.writeFog(); //save on the logic thread threads.run(() -> { diff --git a/core/src/io/anuke/mindustry/game/UnlockableContent.java b/core/src/io/anuke/mindustry/game/UnlockableContent.java index e461e2fad1..fc90949927 100644 --- a/core/src/io/anuke/mindustry/game/UnlockableContent.java +++ b/core/src/io/anuke/mindustry/game/UnlockableContent.java @@ -41,7 +41,7 @@ public abstract class UnlockableContent extends MappableContent{ return true; }else{ for(UnlockableContent cont : depend){ - if(!control.unlocks().isUnlocked(cont)){ + if(!control.unlocks.isUnlocked(cont)){ return false; } } diff --git a/core/src/io/anuke/mindustry/graphics/CacheLayer.java b/core/src/io/anuke/mindustry/graphics/CacheLayer.java index c7790c10ef..e83d65df6a 100644 --- a/core/src/io/anuke/mindustry/graphics/CacheLayer.java +++ b/core/src/io/anuke/mindustry/graphics/CacheLayer.java @@ -71,7 +71,7 @@ public enum CacheLayer{ } public void endShader(Shader shader){ - renderer.getBlocks().endFloor(); + renderer.blocks.endFloor(); renderer.pixelSurface.getBuffer().bind(); @@ -81,6 +81,6 @@ public enum CacheLayer{ Core.camera.viewportWidth * Core.camera.zoom, -Core.camera.viewportHeight * Core.camera.zoom); Graphics.end(); Graphics.shader(); - renderer.getBlocks().beginFloor(); + renderer.blocks.beginFloor(); } } diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 7dca9e433d..13b7de4638 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -140,7 +140,7 @@ public class DesktopInput extends InputHandler{ renderer.scaleCamera((int) Inputs.getAxisTapped(section, "zoom")); } - renderer.minimap().zoomBy(-(int) Inputs.getAxisTapped(section, "zoom_minimap")); + renderer.minimap.zoomBy(-(int) Inputs.getAxisTapped(section, "zoom_minimap")); if(player.isDead()) return; diff --git a/core/src/io/anuke/mindustry/io/versions/Save16.java b/core/src/io/anuke/mindustry/io/versions/Save16.java index 7ea4245733..8503b7e8ef 100644 --- a/core/src/io/anuke/mindustry/io/versions/Save16.java +++ b/core/src/io/anuke/mindustry/io/versions/Save16.java @@ -159,7 +159,7 @@ public class Save16 extends SaveFileVersion{ //--META-- stream.writeInt(version); //version id stream.writeLong(TimeUtils.millis()); //last saved - stream.writeLong(headless ? 0 : control.getSaves().getTotalPlaytime()); //playtime + stream.writeLong(headless ? 0 : control.saves.getTotalPlaytime()); //playtime stream.writeInt(Version.build); //build stream.writeInt(world.getSector() == null ? invalidSector : world.getSector().packedPosition()); //sector ID diff --git a/core/src/io/anuke/mindustry/maps/Sector.java b/core/src/io/anuke/mindustry/maps/Sector.java index fa6af11a6b..80eff44da5 100644 --- a/core/src/io/anuke/mindustry/maps/Sector.java +++ b/core/src/io/anuke/mindustry/maps/Sector.java @@ -48,11 +48,11 @@ public class Sector{ } public SaveSlot getSave(){ - return !hasSave() ? null : control.getSaves().getByID(saveID); + return !hasSave() ? null : control.saves.getByID(saveID); } public boolean hasSave(){ - return !headless && control.getSaves().getByID(saveID) != null; + return !headless && control.saves.getByID(saveID) != null; } public int packedPosition(){ diff --git a/core/src/io/anuke/mindustry/maps/Sectors.java b/core/src/io/anuke/mindustry/maps/Sectors.java index 6f83abdff7..d64f6cbbdd 100644 --- a/core/src/io/anuke/mindustry/maps/Sectors.java +++ b/core/src/io/anuke/mindustry/maps/Sectors.java @@ -50,7 +50,7 @@ public class Sectors{ world.loadSector(sector); logic.play(); if(!headless){ - sector.saveID = control.getSaves().addSave("sector-" + sector.packedPosition()).index; + sector.saveID = control.saves.addSave("sector-" + sector.packedPosition()).index; } world.sectors().save(); world.setSector(sector); @@ -147,7 +147,7 @@ public class Sectors{ } if(!headless){ - renderer.fog().setLoadingOffset(shiftX, shiftY); + renderer.fog.setLoadingOffset(shiftX, shiftY); } //create *new* tile array diff --git a/core/src/io/anuke/mindustry/type/Recipe.java b/core/src/io/anuke/mindustry/type/Recipe.java index a7f18d4761..627767b284 100644 --- a/core/src/io/anuke/mindustry/type/Recipe.java +++ b/core/src/io/anuke/mindustry/type/Recipe.java @@ -66,7 +66,7 @@ public class Recipe extends UnlockableContent{ arr.clear(); for(Recipe r : content.recipes()){ - if(r.category == category && (control.unlocks().isUnlocked(r)) && + if(r.category == category && (control.unlocks.isUnlocked(r)) && !((r.mode != null && r.mode != state.mode) || (r.desktopOnly && mobile) || (r.isPad && !state.mode.showPads))){ arr.add(r); } @@ -168,7 +168,7 @@ public class Recipe extends UnlockableContent{ ContentStatValue stat = (ContentStatValue) value; UnlockableContent[] content = stat.getValueContent(); for(UnlockableContent c : content){ - control.unlocks().unlockContent(c); + control.unlocks.unlockContent(c); } } } diff --git a/core/src/io/anuke/mindustry/ui/Minimap.java b/core/src/io/anuke/mindustry/ui/Minimap.java index e531eb1732..0adc2145a4 100644 --- a/core/src/io/anuke/mindustry/ui/Minimap.java +++ b/core/src/io/anuke/mindustry/ui/Minimap.java @@ -28,52 +28,44 @@ public class Minimap extends Table{ Image image = new Image(new TextureRegionDrawable(new TextureRegion())){ @Override public void draw(Batch batch, float parentAlpha){ - if(renderer.minimap().getRegion() == null) return; + if(renderer.minimap.getRegion() == null) return; TextureRegionDrawable draw = (TextureRegionDrawable) getDrawable(); - draw.getRegion().setRegion(renderer.minimap().getRegion()); + draw.getRegion().setRegion(renderer.minimap.getRegion()); super.draw(batch, parentAlpha); - if(renderer.minimap().getTexture() != null){ - renderer.minimap().drawEntities(x, y, width, height); + if(renderer.minimap.getTexture() != null){ + renderer.minimap.drawEntities(x, y, width, height); } if(showFog){ - renderer.fog().getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest); + renderer.fog.getTexture().setFilter(TextureFilter.Nearest, TextureFilter.Nearest); TextureRegion r = draw.getRegion(); - float pad = renderer.fog().getPadding(); + float pad = renderer.fog.getPadding(); float px = r.getU() * world.width() + pad; float py = r.getV() * world.height() + pad; float px2 = r.getU2() * world.width() + pad; float py2 = r.getV2() * world.height() + pad; - r.setTexture(renderer.fog().getTexture()); + r.setTexture(renderer.fog.getTexture()); r.setU(px / (world.width() + pad*2f)); r.setV(1f - py / (world.height() + pad*2f)); r.setU2(px2 / (world.width() + pad*2f)); r.setV2(1f - py2 / (world.height() + pad*2f)); - //r.setV(1f - draw.getRegion().getV()); - //r.setV2(1f - draw.getRegion().getV2()); - - //r.setU(r.getU() + renderer.fog().getPadding()/(float)(world.width() + renderer.fog().getPadding()*2) * renderer.minimap().getZoom()); - //r.setV(r.getV() - renderer.fog().getPadding()/(float)(world.height() + renderer.fog().getPadding()*2) * renderer.minimap().getZoom()); - //r.setU2(r.getU2() - renderer.fog().getPadding()/(float)(world.width() + renderer.fog().getPadding()*2) * renderer.minimap().getZoom()); - //r.setV2(r.getV2() + renderer.fog().getPadding()/(float)(world.height() + renderer.fog().getPadding()*2) * renderer.minimap().getZoom()); - Graphics.shader(Shaders.fog); super.draw(batch, parentAlpha); Graphics.shader(); - renderer.fog().getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear); + renderer.fog.getTexture().setFilter(TextureFilter.Linear, TextureFilter.Linear); } } }; addListener(new InputListener(){ public boolean scrolled(InputEvent event, float x, float y, int amount){ - renderer.minimap().zoomBy(amount); + renderer.minimap.zoomBy(amount); return true; } }); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java index 5081282dca..75f9c0c923 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java @@ -53,7 +53,7 @@ public class LoadDialog extends FloatingDialog{ Timers.runTask(2f, () -> Core.scene.setScrollFocus(pane)); - Array array = control.getSaves().getSaveSlots(); + Array array = control.saves.getSaveSlots(); for(SaveSlot slot : array){ if(slot.isHidden()) continue; @@ -142,7 +142,7 @@ public class LoadDialog extends FloatingDialog{ public void addSetup(){ boolean valids = false; - for(SaveSlot slot : control.getSaves().getSaveSlots()) if(!slot.isHidden()) valids = true; + for(SaveSlot slot : control.saves.getSaveSlots()) if(!slot.isHidden()) valids = true; if(!valids){ @@ -159,7 +159,7 @@ public class LoadDialog extends FloatingDialog{ Platform.instance.showFileChooser(Bundles.get("text.save.import"), "Mindustry Save", file -> { if(SaveIO.isSaveValid(file)){ try{ - control.getSaves().importSave(file); + control.saves.importSave(file); setup(); }catch(IOException e){ ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false))); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java index 7a8942b15c..afd5b8dbcd 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/PausedDialog.java @@ -118,15 +118,15 @@ public class PausedDialog extends FloatingDialog{ } public void runExitSave(){ - if(control.getSaves().getCurrent() == null || - !control.getSaves().getCurrent().isAutosave()){ + if(control.saves.getCurrent() == null || + !control.saves.getCurrent().isAutosave()){ state.set(State.menu); return; } ui.loadLogic("$text.saveload", () -> { try{ - control.getSaves().getCurrent().save(); + control.saves.getCurrent().save(); }catch(Throwable e){ e.printStackTrace(); threads.runGraphics(() -> ui.showError("[orange]" + Bundles.get("text.savefail"))); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java index fd9a0741db..d2e92d9a35 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SaveDialog.java @@ -25,7 +25,7 @@ public class SaveDialog extends LoadDialog{ slots.addImageTextButton("$text.save.new", "icon-add", "clear", 14 * 3, () -> ui.showTextInput("$text.save", "$text.save.newslot", "", text -> { ui.loadGraphics("$text.saving", () -> { - control.getSaves().addSave(text); + control.saves.addSave(text); threads.runGraphics(() -> threads.run(() -> threads.runGraphics(this::setup))); }); }) diff --git a/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java index b2bbe2311e..1ba76a20ab 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/UnlocksDialog.java @@ -59,11 +59,11 @@ public class UnlocksDialog extends FloatingDialog{ if(unlock.isHidden()) continue; - Image image = control.unlocks().isUnlocked(unlock) ? new Image(unlock.getContentIcon()) : new Image("icon-locked"); + Image image = control.unlocks.isUnlocked(unlock) ? new Image(unlock.getContentIcon()) : new Image("icon-locked"); image.addListener(new HandCursorListener()); list.add(image).size(size).pad(3); - if(control.unlocks().isUnlocked(unlock)){ + if(control.unlocks.isUnlocked(unlock)){ image.clicked(() -> Vars.ui.content.show(unlock)); image.addListener(new Tooltip<>(new Table("clear"){{ add(unlock.localizedName()); diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index f08544b11c..fc52afa46c 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -184,7 +184,7 @@ public class HudFragment extends Fragment{ //'saving' indicator parent.fill(t -> { - t.bottom().visible(() -> !state.is(State.menu) && control.getSaves().isSaving()); + t.bottom().visible(() -> !state.is(State.menu) && control.saves.isSaving()); t.add("$text.saveload"); }); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 8b664e83e4..f10990e20b 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -219,7 +219,7 @@ public class Block extends BaseBlock { /**Call when some content is produced. This unlocks the content if it is applicable.*/ public void useContent(Tile tile, UnlockableContent content){ if(!headless && tile.getTeam() == players[0].getTeam()){ - control.unlocks().handleContentUsed(content); + control.unlocks.handleContentUsed(content); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java b/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java index 63b307ee7f..d54b112439 100644 --- a/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java +++ b/core/src/io/anuke/mindustry/world/blocks/SelectionTrait.java @@ -37,7 +37,7 @@ public interface SelectionTrait{ } for(Item item : items){ - if(!control.unlocks().isUnlocked(item)) continue; + if(!control.unlocks.isUnlocked(item)) continue; ImageButton button = cont.addImageButton("white", "toggle", 24, () -> consumer.accept(item)) .group(group).get(); diff --git a/ios/src/io/anuke/mindustry/IOSLauncher.java b/ios/src/io/anuke/mindustry/IOSLauncher.java index f407263e8a..afc17656a4 100644 --- a/ios/src/io/anuke/mindustry/IOSLauncher.java +++ b/ios/src/io/anuke/mindustry/IOSLauncher.java @@ -140,7 +140,7 @@ public class IOSLauncher extends IOSApplication.Delegate { if(SaveIO.isSaveValid(file)){ try{ - SaveSlot slot = control.getSaves().importSave(file); + SaveSlot slot = control.saves.importSave(file); ui.load.runLoadSave(slot); }catch (IOException e){ ui.showError(Bundles.format("text.save.import.fail", Strings.parseException(e, false)));