Sector edges

This commit is contained in:
Anuken
2018-11-02 20:53:28 -04:00
parent 930e25e64a
commit f2c7a26ce0
6 changed files with 973 additions and 974 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 203 B

After

Width:  |  Height:  |  Size: 198 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 192 B

After

Width:  |  Height:  |  Size: 194 B

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 99 KiB

After

Width:  |  Height:  |  Size: 100 KiB

View File

@@ -30,7 +30,7 @@ import io.anuke.ucore.util.*;
import static io.anuke.mindustry.Vars.*; import static io.anuke.mindustry.Vars.*;
public class Sectors{ public class Sectors{
private static final int sectorImageSize = 32; public static final int sectorImageSize = 32;
private final GridMap<Sector> grid = new GridMap<>(); private final GridMap<Sector> grid = new GridMap<>();
private final SectorPresets presets = new SectorPresets(); private final SectorPresets presets = new SectorPresets();

View File

@@ -1,6 +1,7 @@
package io.anuke.mindustry.ui.dialogs; package io.anuke.mindustry.ui.dialogs;
import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.GridPoint2;
import com.badlogic.gdx.math.Vector2; import com.badlogic.gdx.math.Vector2;
import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Palette;
import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.graphics.Shaders;
@@ -12,6 +13,7 @@ import io.anuke.ucore.scene.event.InputEvent;
import io.anuke.ucore.scene.event.InputListener; import io.anuke.ucore.scene.event.InputListener;
import io.anuke.ucore.scene.ui.layout.Unit; import io.anuke.ucore.scene.ui.layout.Unit;
import io.anuke.ucore.scene.utils.Cursors; import io.anuke.ucore.scene.utils.Cursors;
import io.anuke.ucore.util.Geometry;
import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Mathf;
import static io.anuke.mindustry.Vars.world; import static io.anuke.mindustry.Vars.world;
@@ -37,31 +39,7 @@ public class SectorsDialog extends FloatingDialog{
buttons().bottom().margin(15); buttons().bottom().margin(15);
addCloseButton(); addCloseButton();
/*
content().label(() -> Bundles.format("text.sector", selected == null ? Bundles.get("text.none") :
(selected.x + ", " + selected.y + (!selected.complete && selected.saveID != -1 ? " " + Bundles.get("text.sector.locked") : ""))
+ (selected.saveID == -1 ? " " + Bundles.get("text.sector.unexplored") :
(selected.hasSave() ? " [accent]/[white] " + Bundles.format("text.sector.time", selected.getSave().getPlayTime()) : ""))));
content().row();
content().label(() -> Bundles.format("text.mission.main", selected == null || selected.completedMissions >= selected.missions.size
? Bundles.get("text.none") : selected.getDominantMission().menuDisplayString()));
content().row();*/
content().add(new SectorView()).grow(); content().add(new SectorView()).grow();
//content().row();
/*
buttons().addImageTextButton("$text.sector.abandon", "icon-cancel", 16*2, () ->
ui.showConfirm("$text.confirm", "$text.sector.abandon.confirm", () -> world.sectors.abandonSector(selected)))
.size(200f, 64f).disabled(b -> selected == null || !selected.hasSave());
buttons().row();
buttons().addImageTextButton("$text.sector.deploy", "icon-play", 10*3, () -> {
hide();
ui.loadLogic(() -> world.sectors.playSector(selected));
}).disabled(b -> selected == null)
.fillX().height(64f).colspan(2).update(t -> t.setText(selected != null && selected.hasSave() ? "$text.sector.resume" : "$text.sector.deploy"));*/
} }
void selectSector(Sector sector){ void selectSector(Sector sector){
@@ -128,53 +106,67 @@ public class SectorsDialog extends FloatingDialog{
int sectorX = offsetX + x; int sectorX = offsetX + x;
int sectorY = offsetY + y; int sectorY = offsetY + y;
float drawX = x + width/2f+ sectorX * padSectorSize - offsetX * padSectorSize - panX % padSectorSize + padSectorSize/2f; float drawX = x + width/2f+ sectorX * (padSectorSize-2) - offsetX * padSectorSize - panX % padSectorSize + padSectorSize/2f;
float drawY = y + height/2f + sectorY * padSectorSize - offsetY * padSectorSize - panY % padSectorSize + padSectorSize/2f; float drawY = y + height/2f + sectorY * (padSectorSize-2) - offsetY * padSectorSize - panY % padSectorSize + padSectorSize/2f;
Sector sector = world.sectors.get(sectorX, sectorY); Sector sector = world.sectors.get(sectorX, sectorY);
if(sector == null || sector.texture == null){ if(sector == null || sector.texture == null){
Draw.reset(); Draw.reset();
Draw.rect("empty-sector", drawX, drawY, sectorSize + 1f, sectorSize + 1f);
int i = 0;
for(GridPoint2 point : Geometry.d4){
Sector other = world.sectors.get(sectorX + point.x, sectorY + point.y);
if(other != null){
Draw.rect("sector-edge", drawX, drawY, padSectorSize, padSectorSize, i*90);
}
i ++;
}
continue; continue;
} }
Draw.colorl(!sector.complete ? 0.3f : 1f); Draw.colorl(!sector.complete ? 0.3f : 1f);
Draw.rect(sector.texture, drawX, drawY, sectorSize + 1f, sectorSize + 1f); Draw.rect(sector.texture, drawX, drawY, sectorSize, sectorSize);
if(sector.missions.size == 0) continue; if(sector.missions.size == 0) continue;
Draw.color(Color.BLACK);
Draw.alpha(0.75f);
Draw.rect("icon-mission-background", drawX, drawY, Unit.dp.scl(18f * 5), Unit.dp.scl(18f * 5));
String region = sector.getDominantMission().getIcon(); String region = sector.getDominantMission().getIcon();
if(sector.complete){ if(sector.complete){
region = "icon-mission-done"; region = "icon-mission-done";
} }
Color iconColor;
Color missionColor = Color.BLACK;
if(sector == selected){ if(sector == selected){
Draw.color(Color.WHITE); iconColor = Palette.accent;
}else if(Mathf.inRect(mouse.x, mouse.y, drawX - padSectorSize / 2f, drawY - padSectorSize / 2f, }else if(Mathf.inRect(mouse.x, mouse.y, drawX - padSectorSize / 2f, drawY - padSectorSize / 2f,
drawX + padSectorSize / 2f, drawY + padSectorSize / 2f)){ drawX + padSectorSize / 2f, drawY + padSectorSize / 2f)){
if(clicked){ if(clicked){
selectSector(sector); selectSector(sector);
} }
Draw.color(Palette.remove); iconColor = Color.WHITE;
}else if(sector.complete){ }else if(sector.complete){
Draw.color(Palette.accent); iconColor = missionColor = Color.CLEAR;
}else{ }else{
Draw.color(Color.LIGHT_GRAY); iconColor = Color.GRAY;
} }
Draw.color(missionColor);
Draw.alpha(0.75f * missionColor.a);
Draw.rect("icon-mission-background", drawX, drawY, Unit.dp.scl(18f * 5), Unit.dp.scl(18f * 5));
float size = Unit.dp.scl(10f * 5); float size = Unit.dp.scl(10f * 5);
Draw.color(iconColor);
Shaders.outline.color = Color.BLACK; Shaders.outline.color = Color.BLACK;
Shaders.outline.region = Draw.region(region); Shaders.outline.region = Draw.region(region);
Graphics.shader(Shaders.outline); //Graphics.shader(Shaders.outline);
Draw.rect(region, drawX, drawY, size, size); Draw.rect(region, drawX, drawY, size, size);
Graphics.shader(); //Graphics.shader();
} }
} }