From 666e3e51a3e3d3987cd65037f4db0639e9b0be3c Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 28 Jul 2019 10:53:26 -0400 Subject: [PATCH] Bugfixes --- core/assets/maps/frozenForest.msav | Bin 9707 -> 9743 bytes core/src/io/anuke/mindustry/Vars.java | 2 - .../io/anuke/mindustry/content/Blocks.java | 4 +- .../src/io/anuke/mindustry/content/Items.java | 2 +- core/src/io/anuke/mindustry/core/UI.java | 1 + core/src/io/anuke/mindustry/core/World.java | 4 +- .../mindustry/editor/MapGenerateDialog.java | 24 +++++++++-- .../mindustry/maps/filters/BlendFilter.java | 14 +++---- .../mindustry/maps/filters/DistortFilter.java | 16 ++++---- .../maps/filters/GenerateFilter.java | 5 +-- .../mindustry/maps/filters/MedianFilter.java | 14 +++---- .../mindustry/maps/filters/MirrorFilter.java | 38 ++++++++++-------- .../mindustry/ui/dialogs/ZoneInfoDialog.java | 4 +- 13 files changed, 70 insertions(+), 58 deletions(-) diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav index b1dcac3001b213ad3f49a5a18c29d7cccc3ba9a1..8e6ab8fdc96a458a6cfeb2f755624cdc6c06e826 100644 GIT binary patch delta 9603 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 delta 9562 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 gtile.set(tiles[x][y])); + input.begin(filter, width(), height(), (x, y) -> tiles[x][y]); //actually apply the filter for(int x = 0; x < width(); x++){ diff --git a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java index a78d342366..545cc4004e 100644 --- a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java @@ -48,6 +48,13 @@ public class MapGenerateDialog extends FloatingDialog{ private GenTile[][] buffer1, buffer2; private Consumer> applier; + private CachedTile ctile = new CachedTile(){ + //nothing. + @Override + protected void changed(){ + + } + }; /** @param applied whether or not to use the applied in-game mode. */ public MapGenerateDialog(MapEditor editor, boolean applied){ @@ -84,7 +91,7 @@ public class MapGenerateDialog extends FloatingDialog{ hidden(this::apply); } - onResize(() -> rebuildFilters()); + onResize(this::rebuildFilters); } public void show(Array filters, Consumer> applier){ @@ -109,7 +116,7 @@ public class MapGenerateDialog extends FloatingDialog{ } for(GenerateFilter filter : filters){ - input.begin(filter, editor.width(), editor.height(), (x, y) -> dset(editor.tile(x, y))); + input.begin(filter, editor.width(), editor.height(), editor::tile); //write to buffer for(int x = 0; x < editor.width(); x++){ for(int y = 0; y < editor.height(); y++){ @@ -363,7 +370,7 @@ public class MapGenerateDialog extends FloatingDialog{ } for(GenerateFilter filter : copy){ - input.begin(filter, editor.width(), editor.height(), (x, y) -> buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1)][Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)]); + input.begin(filter, editor.width(), editor.height(), (x, y) -> buffer1[Mathf.clamp(x / scaling, 0, pixmap.getWidth()-1)][Mathf.clamp(y / scaling, 0, pixmap.getHeight()-1)].tile()); //read from buffer1 and write to buffer2 for(int px = 0; px < pixmap.getWidth(); px++){ for(int py = 0; py < pixmap.getHeight(); py++){ @@ -411,7 +418,7 @@ public class MapGenerateDialog extends FloatingDialog{ }); } - public static class GenTile{ + private class GenTile{ public byte team, rotation; public short block, floor, ore; @@ -435,5 +442,14 @@ public class MapGenerateDialog extends FloatingDialog{ set(other.floor(), other.block(), other.overlay(), other.getTeam(), other.rotation()); return this; } + + Tile tile(){ + ctile.setFloor((Floor)content.block(floor)); + ctile.setBlock(content.block(block)); + ctile.setOverlay(content.block(ore)); + ctile.rotation(rotation); + ctile.setTeam(Team.all[team]); + return ctile; + } } } diff --git a/core/src/io/anuke/mindustry/maps/filters/BlendFilter.java b/core/src/io/anuke/mindustry/maps/filters/BlendFilter.java index cbb62f46eb..f1f16e7800 100644 --- a/core/src/io/anuke/mindustry/maps/filters/BlendFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/BlendFilter.java @@ -1,11 +1,9 @@ package io.anuke.mindustry.maps.filters; -import io.anuke.arc.math.Mathf; -import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.editor.MapGenerateDialog.*; -import io.anuke.mindustry.maps.filters.FilterOption.BlockOption; -import io.anuke.mindustry.maps.filters.FilterOption.SliderOption; -import io.anuke.mindustry.world.Block; +import io.anuke.arc.math.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.maps.filters.FilterOption.*; +import io.anuke.mindustry.world.*; import static io.anuke.mindustry.maps.filters.FilterOption.*; @@ -34,9 +32,9 @@ public class BlendFilter extends GenerateFilter{ for(int x = -rad; x <= rad; x++){ for(int y = -rad; y <= rad; y++){ if(Mathf.dst2(x, y) > rad*rad) continue; - GenTile tile = in.tile(in.x + x, in.y + y); + Tile tile = in.tile(in.x + x, in.y + y); - if(tile.floor == block.id || tile.block == block.id || tile.ore == block.id){ + if(tile.floor() == block || tile.block() == block || tile.overlay() == block){ found = true; break outer; } diff --git a/core/src/io/anuke/mindustry/maps/filters/DistortFilter.java b/core/src/io/anuke/mindustry/maps/filters/DistortFilter.java index a2aa5f853c..4da9afaefb 100644 --- a/core/src/io/anuke/mindustry/maps/filters/DistortFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/DistortFilter.java @@ -1,10 +1,8 @@ package io.anuke.mindustry.maps.filters; -import io.anuke.mindustry.editor.MapGenerateDialog.GenTile; -import io.anuke.mindustry.maps.filters.FilterOption.SliderOption; -import io.anuke.mindustry.world.blocks.Floor; - -import static io.anuke.mindustry.Vars.content; +import io.anuke.mindustry.maps.filters.FilterOption.*; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.*; public class DistortFilter extends GenerateFilter{ float scl = 40, mag = 5; @@ -19,10 +17,10 @@ public class DistortFilter extends GenerateFilter{ @Override public void apply(){ - GenTile tile = in.tile(in.x + noise(in.x, in.y, scl, mag) - mag / 2f, in.y + noise(in.x, in.y + o, scl, mag) - mag / 2f); + Tile tile = in.tile(in.x + noise(in.x, in.y, scl, mag) - mag / 2f, in.y + noise(in.x, in.y + o, scl, mag) - mag / 2f); - in.floor = content.block(tile.floor); - if(!content.block(tile.block).synthetic() && !in.block.synthetic()) in.block = content.block(tile.block); - if(!((Floor)in.floor).isLiquid) in.ore = content.block(tile.ore); + in.floor = tile.floor(); + if(!tile.block().synthetic() && !in.block.synthetic()) in.block = tile.block(); + if(!((Floor)in.floor).isLiquid) in.ore = tile.overlay(); } } diff --git a/core/src/io/anuke/mindustry/maps/filters/GenerateFilter.java b/core/src/io/anuke/mindustry/maps/filters/GenerateFilter.java index 007f2c1dbb..2ab84d2864 100644 --- a/core/src/io/anuke/mindustry/maps/filters/GenerateFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/GenerateFilter.java @@ -6,7 +6,6 @@ import io.anuke.arc.scene.ui.*; import io.anuke.arc.util.*; import io.anuke.arc.util.noise.*; import io.anuke.mindustry.content.*; -import io.anuke.mindustry.editor.MapGenerateDialog.*; import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.blocks.*; @@ -95,12 +94,12 @@ public abstract class GenerateFilter{ pnoise.setSeed((int)(filter.seed + 1)); } - GenTile tile(float x, float y){ + Tile tile(float x, float y){ return buffer.get(Mathf.clamp((int)x, 0, width - 1), Mathf.clamp((int)y, 0, height - 1)); } public interface TileProvider{ - GenTile get(int x, int y); + Tile get(int x, int y); } } } diff --git a/core/src/io/anuke/mindustry/maps/filters/MedianFilter.java b/core/src/io/anuke/mindustry/maps/filters/MedianFilter.java index 0ebba247e3..9cc4606d20 100644 --- a/core/src/io/anuke/mindustry/maps/filters/MedianFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/MedianFilter.java @@ -1,9 +1,9 @@ package io.anuke.mindustry.maps.filters; -import io.anuke.arc.collection.IntArray; -import io.anuke.arc.math.Mathf; -import io.anuke.mindustry.editor.MapGenerateDialog.GenTile; -import io.anuke.mindustry.maps.filters.FilterOption.SliderOption; +import io.anuke.arc.collection.*; +import io.anuke.arc.math.*; +import io.anuke.mindustry.maps.filters.FilterOption.*; +import io.anuke.mindustry.world.*; import static io.anuke.mindustry.Vars.content; @@ -29,9 +29,9 @@ public class MedianFilter extends GenerateFilter{ for(int y = -rad; y <= rad; y++){ if(Mathf.dst2(x, y) > rad*rad) continue; - GenTile tile = in.tile(in.x + x, in.y + y); - blocks.add(tile.block); - floors.add(tile.floor); + Tile tile = in.tile(in.x + x, in.y + y); + blocks.add(tile.block().id); + floors.add(tile.floor().id); } } diff --git a/core/src/io/anuke/mindustry/maps/filters/MirrorFilter.java b/core/src/io/anuke/mindustry/maps/filters/MirrorFilter.java index 9397f9bf03..866dc791f1 100644 --- a/core/src/io/anuke/mindustry/maps/filters/MirrorFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/MirrorFilter.java @@ -6,19 +6,17 @@ import io.anuke.arc.math.geom.*; import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; -import io.anuke.mindustry.editor.MapGenerateDialog.*; -import io.anuke.mindustry.maps.filters.FilterOption.*; import io.anuke.mindustry.graphics.*; - -import static io.anuke.mindustry.Vars.content; +import io.anuke.mindustry.maps.filters.FilterOption.*; +import io.anuke.mindustry.world.*; public class MirrorFilter extends GenerateFilter{ private final Vector2 v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2(); - float angle = 45; + int angle = 45; { - options(new SliderOption("angle", () -> angle, f -> angle = f, 0, 360, 45)); + options(new SliderOption("angle", () -> angle, f -> angle = (int)f, 0, 360, 45)); } @Override @@ -33,10 +31,10 @@ public class MirrorFilter extends GenerateFilter{ if(!left(v1, v2, v3)){ mirror(v3, v1.x, v1.y, v2.x, v2.y); - GenTile tile = in.tile(v3.x, v3.y); - in.floor = content.block(tile.floor); - in.block = content.block(tile.block); - in.ore = content.block(tile.ore); + Tile tile = in.tile(v3.x, v3.y); + in.floor = tile.floor(); + in.block = tile.block(); + in.ore = tile.overlay(); } } @@ -45,8 +43,8 @@ public class MirrorFilter extends GenerateFilter{ super.draw(image); Vector2 vsize = Scaling.fit.apply(image.getDrawable().getMinWidth(), image.getDrawable().getMinHeight(), image.getWidth(), image.getHeight()); - float imageWidth = vsize.x; - float imageHeight = vsize.y; + float imageWidth = Math.max(vsize.x, vsize.y); + float imageHeight = Math.max(vsize.y, vsize.x); float size = Math.max(image.getWidth() *2, image.getHeight()*2); Consumer clamper = v -> @@ -65,13 +63,19 @@ public class MirrorFilter extends GenerateFilter{ } void mirror(Vector2 p, float x0, float y0, float x1, float y1){ - float dx = x1 - x0; - float dy = y1 - y0; + //special case: uneven map mirrored at 45 degree angle + if(in.width != in.height && angle % 90 != 0){ + p.x = (p.x - in.width/2f) * -1 + in.width/2f; + p.y = (p.y - in.height/2f) * -1 + in.height/2f; + }else{ + float dx = x1 - x0; + float dy = y1 - y0; - float a = (dx * dx - dy * dy) / (dx * dx + dy*dy); - float b = 2 * dx * dy / (dx*dx + dy*dy); + float a = (dx * dx - dy * dy) / (dx * dx + dy * dy); + float b = 2 * dx * dy / (dx * dx + dy * dy); - p.set((a * (p.x - x0) + b*(p.y - y0) + x0), (b * (p.x - x0) - a*(p.y - y0) + y0)); + p.set((a * (p.x - x0) + b * (p.y - y0) + x0), (b * (p.x - x0) - a * (p.y - y0) + y0)); + } } boolean left(Vector2 a, Vector2 b, Vector2 c){ diff --git a/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java index 0d0d653184..9f89cd2406 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/ZoneInfoDialog.java @@ -103,8 +103,8 @@ public class ZoneInfoDialog extends FloatingDialog{ cont.addImage("whiteui").color(Pal.accent).height(3).pad(6).growX(); cont.row(); cont.table(desc -> { - desc.left().defaults().left().width(400f); - desc.add(zone.description).wrap().padBottom(8f); + desc.left().defaults().left().width(500f); + desc.add(zone.description).wrap().pad(2).padBottom(8f); desc.row(); desc.table(t -> {