From 8b7f439ef5faeb19e55333304a0990ec61c40146 Mon Sep 17 00:00:00 2001 From: Anuken Date: Mon, 24 Feb 2020 23:03:33 -0500 Subject: [PATCH] Unfinished sector selection --- core/assets/planets/TODO.dat | Bin 17469 -> 18372 bytes core/src/mindustry/core/World.java | 2 +- .../maps/planet/TestPlanetGenerator.java | 3 - core/src/mindustry/type/Sector.java | 14 ++- .../mindustry/ui/dialogs/PlanetDialog.java | 95 ++++++++++++++---- gradle.properties | 2 +- .../mindustry/tools/SectorDataGenerator.java | 2 +- 7 files changed, 89 insertions(+), 29 deletions(-) diff --git a/core/assets/planets/TODO.dat b/core/assets/planets/TODO.dat index 1e45afd783d7fcb5da00d1cdb50c8bd69c54fbe5..9f0778d11642707e7c49ae59af015e5a8efd377e 100644 GIT binary patch literal 18372 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

a<(XVdO|cE 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 sector.planet.generator.generate(tiles, sector)); } diff --git a/core/src/mindustry/maps/planet/TestPlanetGenerator.java b/core/src/mindustry/maps/planet/TestPlanetGenerator.java index 005415e57b..d1b93a57c6 100644 --- a/core/src/mindustry/maps/planet/TestPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/TestPlanetGenerator.java @@ -8,7 +8,6 @@ import arc.util.*; import arc.util.noise.*; import mindustry.content.*; import mindustry.maps.generators.*; -import mindustry.type.*; import mindustry.world.*; import static mindustry.Vars.*; @@ -17,8 +16,6 @@ public class TestPlanetGenerator extends PlanetGenerator{ Simplex noise = new Simplex(); RidgedPerlin rid = new RidgedPerlin(1, 2); float scl = 5f; - Sector sector; - Tiles tiles; //TODO generate array from planet image later Block[][] arr = { diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index fcaaef06b0..a7e78a45c0 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -3,9 +3,11 @@ package mindustry.type; import arc.math.geom.*; import arc.math3d.*; import arc.util.*; +import arc.util.ArcAnnotate.*; import arc.util.io.*; import mindustry.*; import mindustry.ctype.*; +import mindustry.game.Saves.*; import mindustry.graphics.PlanetGrid.*; import mindustry.world.*; @@ -30,6 +32,14 @@ public class Sector{ this.data = data; } + public int getSize(){ + return (int)(rect.radius * 3200); + } + + public @Nullable SaveSlot getSave(){ + return Vars.headless ? null : Vars.control.saves.getSectorSave(this); + } + //TODO implement public boolean isLaunchWave(int wave){ return metCondition() && wave % launchPeriod == 0; @@ -94,7 +104,7 @@ public class Sector{ /** Cached data about a sector. */ public static class SectorData{ - public Content[] resources = {}; + public UnlockableContent[] resources = {}; public int spawnX, spawnY; public Block[] floors = {}; @@ -116,7 +126,7 @@ public class Sector{ } public void read(Reads read){ - resources = new Content[read.s()]; + resources = new UnlockableContent[read.s()]; for(int i = 0; i < resources.length; i++){ resources[i] = Vars.content.getByID(ContentType.all[read.b()], read.s()); } diff --git a/core/src/mindustry/ui/dialogs/PlanetDialog.java b/core/src/mindustry/ui/dialogs/PlanetDialog.java index 2e7b1edb6b..4162ddf7ef 100644 --- a/core/src/mindustry/ui/dialogs/PlanetDialog.java +++ b/core/src/mindustry/ui/dialogs/PlanetDialog.java @@ -10,7 +10,9 @@ import arc.math.geom.*; import arc.scene.event.*; import arc.scene.ui.layout.*; import arc.util.*; +import arc.util.ArcAnnotate.*; import mindustry.content.*; +import mindustry.ctype.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.graphics.PlanetGrid.*; @@ -31,8 +33,8 @@ public class PlanetDialog extends FloatingDialog{ private Planet planet = Planets.starter; private float lastX, lastY; - private Sector selected, hovered; - private Table selectTable; + private @Nullable Sector selected, hovered; + private Table stable, infoTable; public PlanetDialog(){ super("", Styles.fullDialog); @@ -75,18 +77,23 @@ public class PlanetDialog extends FloatingDialog{ @Override public void tap(InputEvent event, float x, float y, int count, KeyCode button){ selected = hovered; + if(selected != null){ + updateSelected(); + } } }); - selectTable = new Table(t -> { - t.background(Tex.button); + infoTable = new Table(); + + stable = new Table(t -> { + t.background(Styles.black3); t.margin(12f); t.add("this is some arbitrary text."); }); - selectTable.act(1f); - selectTable.pack(); - selectTable.setPosition(0, 0, Align.center); + stable.act(1f); + stable.pack(); + stable.setPosition(0, 0, Align.center); shown(this::setup); } @@ -112,6 +119,7 @@ public class PlanetDialog extends FloatingDialog{ cam.lookAt(0, 0, 0); cam.update(); + projector.proj(cam.combined()); batch.proj(cam.combined()); PlanetMesh outline = outline(planet.size); @@ -130,25 +138,70 @@ public class PlanetDialog extends FloatingDialog{ if(selected != null){ drawSelection(selected); - - projector.proj(cam.combined()); - projector.setPlane( - //origin on sector position - Tmp.v33.set(selected.tile.v).setLength(outlineRad + 0.05f), - //face up - selected.plane.project(Tmp.v32.set(selected.tile.v).add(Vec3.Y)).sub(selected.tile.v).nor(), - //right vector - Tmp.v31.set(Tmp.v32).add(selected.tile.v).rotate(selected.tile.v, 90).sub(selected.tile.v).nor() - ); - - Draw.batch(projector, () -> { - selectTable.draw(); - }); } + Draw.batch(projector, () -> { + if(hovered != null){ + setPlane(hovered); + Fonts.outline.draw("" + hovered.id, 0, 0, Align.center); + } + + if(selected != null){ + setPlane(selected); + stable.draw(); + } + }); + + /* + Vec3 pos = cam.project(Tmp.v31.set(selected.tile.v).setLength(outlineRad)); + selectTable.setPosition(pos.x, pos.y, Align.center); + selectTable.draw(); + */ + Gl.disable(Gl.depthTest); } + private void updateSelected(){ + stable.clear(); + stable.background(Styles.black6); + + //TODO add strings to bundle after prototyping is done + + stable.add("[accent]" + selected.id).row(); + stable.addImage().color(Pal.accent).fillX().height(3f).pad(3f).row(); + stable.add(selected.getSave() != null ? selected.getSave().getPlayTime() : "[lightgray]Unexplored").row(); + + stable.add("Resources:").row(); + stable.table(t -> { + t.left(); + int idx = 0; + int max = 5; + for(UnlockableContent c : selected.data.resources){ + t.addImage(c.icon(Cicon.small)).padRight(3); + if(++idx % max == 0) t.row(); + } + + for(int i = 0; i < Math.min(selected.data.floorCounts.length, 3); i++){ + t.addImage(selected.data.floors[i].icon(Cicon.small)).padRight(3); + if(++idx % max == 0) t.row(); + } + }).fillX().row(); + + stable.pack(); + stable.setPosition(0, 0, Align.center); + } + + private void setPlane(Sector sector){ + projector.setPlane( + //origin on sector position + Tmp.v33.set(sector.tile.v).setLength(outlineRad + 0.001f), + //face up + sector.plane.project(Tmp.v32.set(sector.tile.v).add(Vec3.Y)).sub(sector.tile.v).nor(), + //right vector + Tmp.v31.set(Tmp.v32).add(sector.tile.v).rotate(sector.tile.v, 90).sub(sector.tile.v).nor() + ); + } + private void drawHover(Sector sector){ for(Corner c : sector.tile.corners){ batch.color(outlineColor); diff --git a/gradle.properties b/gradle.properties index 08c8a34a64..c14da3278b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=5b1a532e4d5630a39cf83a4f3263dc265f609a20 +archash=c6cf22b91f58e7f050574885e18d2b1d9640563f diff --git a/tools/src/mindustry/tools/SectorDataGenerator.java b/tools/src/mindustry/tools/SectorDataGenerator.java index cd2188abba..ec1688f32f 100644 --- a/tools/src/mindustry/tools/SectorDataGenerator.java +++ b/tools/src/mindustry/tools/SectorDataGenerator.java @@ -77,7 +77,7 @@ public class SectorDataGenerator{ data.floors[i] = entries.get(i).key; } - data.resources = content.asArray().sort(Structs.comps(Structs.comparing(Content::getContentType), Structs.comparingInt(c -> c.id))).toArray(Content.class); + data.resources = content.asArray().sort(Structs.comps(Structs.comparing(Content::getContentType), Structs.comparingInt(c -> c.id))).toArray(UnlockableContent.class); if(count[0]++ % 10 == 0){ Log.info("&lyDone with sector &lm{0}/{1}", count[0], planet.sectors.size);