From b99b13a6e4cf892dd3e9fecc8ac83204c7cf589c Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 24 Jul 2019 12:07:12 -0400 Subject: [PATCH] Added mirror tool for attack/PvP maps --- core/assets/bundles/bundle.properties | 1 + core/assets/maps/crags.msav | Bin 15701 -> 15800 bytes core/assets/maps/impact0078.msav | Bin 20864 -> 20824 bytes .../mindustry/editor/MapGenerateDialog.java | 19 ++++- .../editor/generation/FilterOption.java | 12 ++- .../editor/generation/GenerateFilter.java | 4 + .../editor/generation/MirrorFilter.java | 69 ++++++++++++++++++ core/src/io/anuke/mindustry/type/Loadout.java | 14 ++-- 8 files changed, 104 insertions(+), 15 deletions(-) create mode 100644 core/src/io/anuke/mindustry/editor/generation/MirrorFilter.java diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 846cd1b074..a9617ea0dd 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -277,6 +277,7 @@ filter.option.threshold = Threshold filter.option.circle-scale = Circle Scale filter.option.octaves = Octaves filter.option.falloff = Falloff +filter.option.angle = Angle filter.option.block = Block filter.option.floor = Floor filter.option.flooronto = Target Floor diff --git a/core/assets/maps/crags.msav b/core/assets/maps/crags.msav index 406168ec90420e3b4af3c179c39a576923df1d03..d3cb2b307a55e5a08efd6bdb301405bf82793eee 100644 GIT binary patch literal 15800 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 lP{&eSk#6?O_ywP)5vCn=5Hc~FkweOu+Bvy<3 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 CO!L(M literal 15701 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 literal 20864 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 b1)*JRFrM=2lQN#Lx+?+BYvlh0wuez7u@S2e diff --git a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java index 011c07d4d9..3a3dcc0ed4 100644 --- a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java @@ -30,7 +30,8 @@ import static io.anuke.mindustry.Vars.*; public class MapGenerateDialog extends FloatingDialog{ private final Supplier[] filterTypes = new Supplier[]{ NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new, - RiverNoiseFilter::new, OreFilter::new, MedianFilter::new, BlendFilter::new + RiverNoiseFilter::new, OreFilter::new, MedianFilter::new, BlendFilter::new, + MirrorFilter::new }; private final MapEditor editor; @@ -84,9 +85,19 @@ public class MapGenerateDialog extends FloatingDialog{ cont.clear(); cont.table(t -> { t.margin(8f); - t.stack(new BorderImage(texture){{ - setScaling(Scaling.fit); - }}, new Stack(){{ + t.stack(new BorderImage(texture){ + { + setScaling(Scaling.fit); + } + + @Override + public void draw(){ + super.draw(); + for(GenerateFilter filter : filters){ + filter.draw(this); + } + } + }, new Stack(){{ add(new Image("loadDim")); add(new Image("icon-refresh"){{ setScaling(Scaling.none); diff --git a/core/src/io/anuke/mindustry/editor/generation/FilterOption.java b/core/src/io/anuke/mindustry/editor/generation/FilterOption.java index 1ef160315e..3aa2441885 100644 --- a/core/src/io/anuke/mindustry/editor/generation/FilterOption.java +++ b/core/src/io/anuke/mindustry/editor/generation/FilterOption.java @@ -24,28 +24,32 @@ public abstract class FilterOption{ public abstract void build(Table table); - public Runnable changed = () -> { - }; + public Runnable changed = () -> {}; static class SliderOption extends FilterOption{ final String name; final FloatProvider getter; final FloatConsumer setter; - final float min, max; + final float min, max, step; SliderOption(String name, FloatProvider getter, FloatConsumer setter, float min, float max){ + this(name, getter, setter, min, max, (max - min) / 200); + } + + SliderOption(String name, FloatProvider getter, FloatConsumer setter, float min, float max, float step){ this.name = name; this.getter = getter; this.setter = setter; this.min = min; this.max = max; + this.step = step; } @Override public void build(Table table){ table.add("$filter.option." + name); table.row(); - Slider slider = table.addSlider(min, max, (max - min) / 200f, setter).growX().get(); + Slider slider = table.addSlider(min, max, step, setter).growX().get(); slider.setValue(getter.get()); if(updateEditorOnChange){ slider.changed(changed); diff --git a/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java b/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java index 9105a7b4e8..d06eb5fb82 100644 --- a/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java +++ b/core/src/io/anuke/mindustry/editor/generation/GenerateFilter.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.editor.generation; import io.anuke.arc.Core; import io.anuke.arc.math.Mathf; +import io.anuke.arc.scene.ui.*; import io.anuke.arc.util.Pack; import io.anuke.arc.util.noise.RidgedPerlin; import io.anuke.arc.util.noise.Simplex; @@ -20,6 +21,9 @@ public abstract class GenerateFilter{ protected abstract void apply(); + //draw any additional guides + public void draw(Image image){} + protected float noise(float x, float y, float scl, float mag){ return (float)in.noise.octaveNoise2D(1f, 0f, 1f / scl, x + o, y + o) * mag; } diff --git a/core/src/io/anuke/mindustry/editor/generation/MirrorFilter.java b/core/src/io/anuke/mindustry/editor/generation/MirrorFilter.java new file mode 100644 index 0000000000..159225708e --- /dev/null +++ b/core/src/io/anuke/mindustry/editor/generation/MirrorFilter.java @@ -0,0 +1,69 @@ +package io.anuke.mindustry.editor.generation; + +import io.anuke.arc.function.*; +import io.anuke.arc.graphics.g2d.*; +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.editor.generation.FilterOption.*; +import io.anuke.mindustry.graphics.*; + +import static io.anuke.mindustry.Vars.content; + +public class MirrorFilter extends GenerateFilter{ + private final Vector2 v1 = new Vector2(), v2 = new Vector2(), v3 = new Vector2(); + + float angle = 45; + + { + options(new SliderOption("angle", () -> angle, f -> angle = f, 0, 360, 45)); + } + + @Override + protected void apply(){ + v1.trns(angle - 90, 1f); + v2.set(v1).scl(-1f); + + v1.add(in.width/2f, in.height/2f); + v2.add(in.width/2f, in.height/2f); + + v3.set(in.x / in.scaling, in.y / in.scaling); + + 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); + } + } + + @Override + public void draw(Image image){ + super.draw(image); + float size = Math.max(image.getWidth() *2, image.getHeight()*2); + Consumer clamper = v -> v.clamp(image.getX(), image.getX() + image.getWidth(), image.getY(), image.getY() + image.getHeight()); + clamper.accept(Tmp.v1.trns(angle - 90, size).add(image.getWidth()/2f + image.getX(), image.getHeight()/2f + image.getY())); + clamper.accept(Tmp.v2.set(Tmp.v1).sub(image.getWidth()/2f + image.getX(), image.getHeight()/2f + image.getY()).rotate(180f).add(image.getWidth()/2f + image.getX(), image.getHeight()/2f + image.getY())); + + Lines.stroke(Unit.dp.scl(3f), Pal.accent); + Lines.line(Tmp.v1.x, Tmp.v1.y, Tmp.v2.x, Tmp.v2.y); + Draw.reset(); + } + + void mirror(Vector2 p, float x0, float y0, float x1, float y1){ + 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); + + 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){ + return ((b.x - a.x)*(c.y - a.y) - (b.y - a.y)*(c.x - a.x)) > 0; + } +} diff --git a/core/src/io/anuke/mindustry/type/Loadout.java b/core/src/io/anuke/mindustry/type/Loadout.java index b6a86bcb88..05339c3d1b 100644 --- a/core/src/io/anuke/mindustry/type/Loadout.java +++ b/core/src/io/anuke/mindustry/type/Loadout.java @@ -1,14 +1,12 @@ package io.anuke.mindustry.type; -import io.anuke.arc.collection.Array; -import io.anuke.arc.collection.IntMap; -import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.game.Content; +import io.anuke.arc.collection.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.game.*; import io.anuke.mindustry.world.*; -import io.anuke.mindustry.world.blocks.storage.CoreBlock; +import io.anuke.mindustry.world.blocks.storage.*; -import static io.anuke.mindustry.Vars.defaultTeam; -import static io.anuke.mindustry.Vars.world; +import static io.anuke.mindustry.Vars.*; public class Loadout extends Content{ private final Array outArray = new Array<>(); @@ -70,6 +68,8 @@ public class Loadout extends Content{ int rx = Pos.x(entry.key); int ry = Pos.y(entry.key); Tile tile = world.tile(x + rx, y + ry); + if(tile == null) continue; + world.setBlock(tile, entry.value.block, defaultTeam); tile.rotation((byte)entry.value.rotation); if(entry.value.ore != null){