From dc435d88f4b512db358afbba03d5ec804d714a7e Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 16 Aug 2019 14:49:35 -0400 Subject: [PATCH 1/8] Fixed massive music files on iOS, now using MP3 --- .../annotations/AssetsAnnotationProcessor.java | 2 +- ios/convert_audio.sh | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java b/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java index 32bd471288..6fed3137de 100644 --- a/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java +++ b/annotations/src/main/java/io/anuke/annotations/AssetsAnnotationProcessor.java @@ -80,7 +80,7 @@ public class AssetsAnnotationProcessor extends AbstractProcessor{ } load.addStatement(name + " = io.anuke.arc.Core.audio."+loadMethod+"(io.anuke.arc.Core.files.internal(io.anuke.arc.Core.app.getType() != io.anuke.arc.Application.ApplicationType.iOS ? $S : $S))", - path.substring(path.lastIndexOf("/") + 1) + "/" + fname, (path.substring(path.lastIndexOf("/") + 1) + "/" + fname).replace(".ogg", ".caf")); + path.substring(path.lastIndexOf("/") + 1) + "/" + fname, (path.substring(path.lastIndexOf("/") + 1) + "/" + fname).replace(".ogg", ".mp3")); dispose.addStatement(name + ".dispose()"); dispose.addStatement(name + " = null"); type.addField(FieldSpec.builder(ClassName.bestGuess(rtype), name, Modifier.STATIC, Modifier.PUBLIC).initializer("new io.anuke.arc.audio.mock.Mock" + rtype.substring(rtype.lastIndexOf(".") + 1)+ "()").build()); diff --git a/ios/convert_audio.sh b/ios/convert_audio.sh index c4772fadc3..8e27eb60df 100755 --- a/ios/convert_audio.sh +++ b/ios/convert_audio.sh @@ -1,7 +1,15 @@ #!/usr/bin/bash -#convert ogg to .caf files for iOS -for i in $1/*.ogg; do +cd $1 + +#convert ogg to .mp3 files for iOS +for i in *.ogg; do echo $i - ffmpeg -i "$i" "${i%.*}.caf" -done \ No newline at end of file + ffmpeg -i "$i" "OUT_${i%.*}.mp3" +done + +find . -type f ! -name "OUT_*" -delete + +for file in OUT_*; do mv "$file" "${file#OUT_}"; done; + +cd ../../ From 150491ff2cdf9ccda6b2f1b71ebaca0c4c38eac9 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 17 Aug 2019 11:42:15 -0400 Subject: [PATCH 2/8] bugfixes --- .../anuke/mindustry/entities/traits/BuilderTrait.java | 4 ++++ core/src/io/anuke/mindustry/entities/type/Player.java | 10 +++------- core/src/io/anuke/mindustry/input/DesktopInput.java | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java index 7734838d3d..92d48aa655 100644 --- a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java @@ -285,6 +285,10 @@ public interface BuilderTrait extends Entity, TeamTrait{ this.breaking = true; } + public Tile tile(){ + return world.tile(x, y); + } + @Override public String toString(){ return "BuildRequest{" + diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 61b5ff7d65..dbc26c34fb 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -70,7 +70,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ private Tile mining; private Vector2 movement = new Vector2(); private boolean moved; - private SoundLoop buildSound = new SoundLoop(Sounds.build, 0.75f); //endregion @@ -131,11 +130,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ } } - @Override - public void removed(){ - buildSound.stop(); - } - @Override public float drag(){ return mech.drag; @@ -518,7 +512,9 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ } BuildRequest request = buildRequest(); - buildSound.update(request == null ? x : request.x * tilesize, request == null ? y : request.y * tilesize, isBuilding() && (Mathf.within(request.x * tilesize, request.y * tilesize, x, y, placeDistance) || state.isEditor())); + if(isBuilding() && request.tile() != null && (request.tile().withinDst(x, y, placeDistance) || state.isEditor())){ + loops.play(Sounds.build, request.tile(), 0.75f); + } if(isDead()){ isBoosting = false; diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index ae574d906f..caf01eeb25 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -131,7 +131,7 @@ public class DesktopInput extends InputHandler{ player.isShooting = false; } - if(!state.is(State.menu) && Core.input.keyTap(Binding.minimap) && !ui.chatfrag.chatOpen() && !(scene.getKeyboardFocus() instanceof TextField)){ + if(!state.is(State.menu) && Core.input.keyTap(Binding.minimap) && (scene.getKeyboardFocus() == ui.minimap || !scene.hasDialog()) && !ui.chatfrag.chatOpen() && !(scene.getKeyboardFocus() instanceof TextField)){ if(!ui.minimap.isShown()){ ui.minimap.show(); }else{ From 5955387bddc9654f94c14849a5f3108afa542de8 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 17 Aug 2019 14:08:13 -0400 Subject: [PATCH 3/8] map tweaks --- core/assets/maps/veins.msav | Bin 22070 -> 22102 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/core/assets/maps/veins.msav b/core/assets/maps/veins.msav index d63dc2c1e8d51fa2781a1f77116b2e0b5494efd6..87e62486c716f853e2096e425fb1515925d7f570 100644 GIT binary patch delta 21250 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 abH8)cxs#rZO+T}Zd=5VOQ|~Bp`z!!7f~PS6 delta 21269 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 From 301387fb32f11915c8b475351dd9e2dcaab55943 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 17 Aug 2019 15:39:41 -0400 Subject: [PATCH 4/8] Fixed low rank on attack map completion --- core/src/io/anuke/mindustry/game/Stats.java | 6 ++++-- .../anuke/mindustry/ui/dialogs/GameOverDialog.java | 12 ++++++------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/core/src/io/anuke/mindustry/game/Stats.java b/core/src/io/anuke/mindustry/game/Stats.java index ebaa62dfc6..afdd5c0706 100644 --- a/core/src/io/anuke/mindustry/game/Stats.java +++ b/core/src/io/anuke/mindustry/game/Stats.java @@ -26,8 +26,10 @@ public class Stats{ public RankResult calculateRank(Zone zone, boolean launched){ float score = 0; - //each new launch period adds onto the rank 'points' - if(wavesLasted >= zone.conditionWave){ + if(launched && zone.getRules().attackMode){ + score += 3f; + }else if(wavesLasted >= zone.conditionWave){ + //each new launch period adds onto the rank 'points' score += (float)((wavesLasted - zone.conditionWave) / zone.launchPeriod + 1) * 1.2f; } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java index ca7cdcf5d7..3078c01d56 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/GameOverDialog.java @@ -1,11 +1,11 @@ package io.anuke.mindustry.ui.dialogs; -import io.anuke.arc.Core; -import io.anuke.mindustry.core.GameState.State; -import io.anuke.mindustry.game.Stats.RankResult; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.type.Item.Icon; +import io.anuke.arc.*; +import io.anuke.mindustry.core.GameState.*; +import io.anuke.mindustry.game.Stats.*; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.type.Item.*; import static io.anuke.mindustry.Vars.*; From f4f4cf394765901e30ab5f64ccf94bf14291feb9 Mon Sep 17 00:00:00 2001 From: Samuele Esposito Date: Sat, 17 Aug 2019 23:00:20 +0200 Subject: [PATCH 5/8] Possibly a small typo? (#592) --- core/assets/bundles/bundle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 5f19cec78d..99669a7b73 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -371,7 +371,7 @@ zone.crags.name = Crags zone.fungalPass.name = Fungal Pass zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. -zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. +zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The frigid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. zone.desertWastes.description = These wastes are vast, unpredictable, and criss-crossed with derelict sector structures.\nCoal is present in the region. Burn it for power, or synthesize graphite.\n\n[lightgray]This landing location cannot be guaranteed. zone.saltFlats.description = On the outskirts of the desert lie the Salt Flats. Few resources can be found in this location.\n\nThe enemy has erected a resource storage complex here. Eradicate their core. Leave nothing standing. zone.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. From 7d9b6a41fc7facb36f33b9c00f12d91357ce6ed6 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 17 Aug 2019 20:26:17 -0400 Subject: [PATCH 6/8] Actual prediction fix --- core/src/io/anuke/mindustry/entities/Predict.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/io/anuke/mindustry/entities/Predict.java b/core/src/io/anuke/mindustry/entities/Predict.java index c4143a80b8..ef385cbd26 100644 --- a/core/src/io/anuke/mindustry/entities/Predict.java +++ b/core/src/io/anuke/mindustry/entities/Predict.java @@ -55,7 +55,7 @@ public class Predict{ * See {@link #intercept(float, float, float, float, float, float, float)}. */ public static Vector2 intercept(TargetTrait src, TargetTrait dst, float v){ - return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getTargetVelocityX() - src.getTargetVelocityX(), dst.getTargetVelocityY() - src.getTargetVelocityY(), v); + return intercept(src.getX(), src.getY(), dst.getX(), dst.getY(), dst.getTargetVelocityX() - src.getTargetVelocityX()/2f, dst.getTargetVelocityY() - src.getTargetVelocityY()/2f, v); } private static Vector2 quad(float a, float b, float c){ From 452a8aaa0c4e785cf4bcb2887792aeee6c93eb19 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 18 Aug 2019 10:16:31 -0400 Subject: [PATCH 7/8] Fixed dialog scrolling --- core/assets/sprites/uiskin.json | 3 +- .../mindustry/ui/dialogs/FileChooser.java | 37 +++++++------------ .../mindustry/ui/dialogs/FloatingDialog.java | 15 +------- 3 files changed, 18 insertions(+), 37 deletions(-) diff --git a/core/assets/sprites/uiskin.json b/core/assets/sprites/uiskin.json index 30e049a889..b929cf8457 100644 --- a/core/assets/sprites/uiskin.json +++ b/core/assets/sprites/uiskin.json @@ -188,7 +188,8 @@ up: button, over: button-over, imageDisabledColor: gray, - imageUpColor: white + imageUpColor: white, + disabled: button-disabled }, node: { up: button-over, diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java index d5ddbb1233..e81c312347 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java @@ -31,7 +31,6 @@ public class FileChooser extends FloatingDialog{ private Predicate filter; private Consumer selectListener; private boolean open; - private int lastWidth = Core.graphics.getWidth(), lastHeight = Core.graphics.getHeight(); public static final Predicate pngFiles = str -> str.equals("png"); public static final Predicate anyMapFiles = str -> str.equals(oldMapExtension) || str.equals(mapExtension); @@ -44,12 +43,14 @@ public class FileChooser extends FloatingDialog{ this.filter = filter; this.selectListener = result; - update(() -> { - if(Core.graphics.getWidth() != lastWidth || Core.graphics.getHeight() != lastHeight){ - updateFiles(false); - lastHeight = Core.graphics.getHeight(); - lastWidth = Core.graphics.getWidth(); - } + onResize(() -> { + cont.clear(); + setupWidgets(); + }); + + shown(() -> { + cont.clear(); + setupWidgets(); }); } @@ -121,8 +122,9 @@ public class FileChooser extends FloatingDialog{ forward.resizeImage(isize); forward.clicked(() -> stack.forward()); - back.clicked(() -> stack.back()); + forward.setDisabled(() -> !stack.canForward()); + back.setDisabled(() -> !stack.canBack()); ImageButton home = new ImageButton("icon-home"); home.resizeImage(isize); @@ -206,7 +208,7 @@ public class FileChooser extends FloatingDialog{ //macs are confined to the Downloads/ directory if(!OS.isMac){ - Image upimage = new Image("icon-folder-parent"); + Image upimage = new Image("icon-folder-parent-small"); TextButton upbutton = new TextButton(".." + directory.toString(), "clear-toggle"); upbutton.clicked(() -> { directory = directory.parent(); @@ -214,7 +216,7 @@ public class FileChooser extends FloatingDialog{ updateFiles(true); }); - upbutton.left().add(upimage).padRight(4f).size(iconsize); + upbutton.left().add(upimage).padRight(4f).size(iconsizesmall).padLeft(4); upbutton.getLabel().setAlignment(Align.left); upbutton.getCells().reverse(); @@ -248,9 +250,9 @@ public class FileChooser extends FloatingDialog{ button.setChecked(filename.equals(filefield.getText())); }); - Image image = new Image(file.isDirectory() ? "icon-folder" : "icon-file-text"); + Image image = new Image(file.isDirectory() ? "icon-folder-small" : "icon-file-text-small"); - button.add(image).padRight(4f).size(iconsize); + button.add(image).padRight(4f).padLeft(4).size(iconsizesmall); button.getCells().reverse(); files.top().left().add(button).align(Align.topLeft).fillX().expandX() .height(50).pad(2).padTop(0).padBottom(0).colspan(2); @@ -273,17 +275,6 @@ public class FileChooser extends FloatingDialog{ } } - @Override - public Dialog show(){ - Time.runTask(2f, () -> { - cont.clear(); - setupWidgets(); - super.show(); - Core.scene.setScrollFocus(pane); - }); - return this; - } - public class FileHistory{ private Array history = new Array<>(); private int index; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java index 748d0e93a6..54a502627e 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FloatingDialog.java @@ -39,18 +39,6 @@ public class FloatingDialog extends Dialog{ state.set(State.paused); } }); - - boolean[] done = {false}; - - shown(() -> Core.app.post(() -> - forEach(child -> { - if(done[0]) return; - - if(child instanceof ScrollPane){ - Core.scene.setScrollFocus(child); - done[0] = true; - } - }))); } public FloatingDialog(String title){ @@ -59,8 +47,9 @@ public class FloatingDialog extends Dialog{ protected void onResize(Runnable run){ Events.on(ResizeEvent.class, event -> { - if(isShown()){ + if(isShown() && Core.scene.getDialog() == this){ run.run(); + updateScrollFocus(); } }); } From b2e70a44be778263534359a1e45b52546aa831ee Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 18 Aug 2019 12:31:54 -0400 Subject: [PATCH 8/8] Update TRANSLATING.md --- TRANSLATING.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/TRANSLATING.md b/TRANSLATING.md index 945fc76788..69065a91ba 100644 --- a/TRANSLATING.md +++ b/TRANSLATING.md @@ -1,8 +1,5 @@ ## Translating for Mindustry -**DISCLAIMER:** *Currently, 4.0 is far from done, which means that things such as block names, descriptions, and core text will be changing often. If you begin translating now, you might have to re-do large chunks of the bundle before final release.* - - To begin, log in to your GitHub account, or if you don't have one yet, create it [here](https://github.com/). Consult [this list](https://www.science.co.il/language/Locale-codes.php) to find the locale code for your language. Once you've found it,