diff --git a/core/src/mindustry/ai/BaseAI.java b/core/src/mindustry/ai/BaseAI.java index bc089312a0..155dc554e1 100644 --- a/core/src/mindustry/ai/BaseAI.java +++ b/core/src/mindustry/ai/BaseAI.java @@ -114,6 +114,9 @@ public class BaseAI{ } calcPath.add(calcTile.pos()); + for(Point2 p : Geometry.d8){ + calcPath.add(Point2.pack(p.x + calcTile.x, p.y + calcTile.y)); + } //found the end. if(calcTile.build instanceof CoreBuild b && b.team == state.rules.defaultTeam){ diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java index 2677f95c22..b6ddcd6611 100644 --- a/core/src/mindustry/maps/generators/BaseGenerator.java +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -151,8 +151,17 @@ public class BaseGenerator{ //clear path for ground units for(Tile tile : cores){ Astar.pathfind(tile, spawn, t -> t.team() == state.rules.waveTeam && !t.within(tile, 25f * 8) ? 100000 : t.floor().hasSurface() ? 1 : 10, t -> !t.block().isStatic()).each(t -> { - if(t.team() == state.rules.waveTeam && !t.within(tile, 25f * 8)){ - t.setBlock(Blocks.air); + if(!t.within(tile, 25f * 8)){ + if(t.team() == state.rules.waveTeam){ + t.setBlock(Blocks.air); + } + + for(Point2 p : Geometry.d8){ + Tile other = t.nearby(p); + if(other != null && other.team() == state.rules.waveTeam){ + other.setBlock(Blocks.air); + } + } } }); } diff --git a/core/src/mindustry/ui/dialogs/JoinDialog.java b/core/src/mindustry/ui/dialogs/JoinDialog.java index 3c83a09f6f..27a68d9096 100644 --- a/core/src/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/mindustry/ui/dialogs/JoinDialog.java @@ -541,12 +541,14 @@ public class JoinDialog extends BaseDialog{ Log.info("Fetched @ community servers.", defaultServers.size); }catch(Throwable e){ Log.err("Failed to parse community servers."); + Log.err(e); } }); }catch(Throwable e){ Log.err("Failed to fetch community servers."); + Log.err(e); } - }, t -> {}); + }, Log::err); } private void saveServers(){ diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 63b94b277b..3e26dd8c3a 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -6,9 +6,12 @@ import arc.files.*; import arc.func.*; import arc.graphics.*; import arc.graphics.g2d.*; +import arc.scene.style.*; import arc.scene.ui.TextButton.*; +import arc.struct.*; import arc.util.*; import arc.util.io.*; +import mindustry.ctype.*; import mindustry.gen.*; import mindustry.graphics.*; import mindustry.mod.Mods.*; @@ -266,54 +269,73 @@ public class ModsDialog extends BaseDialog{ desc.add("@editor.description").padRight(10).color(Color.gray).top(); desc.row(); desc.add(mod.meta.description).growX().wrap().padTop(2); + desc.row(); } - //TODO add this when mods work properly - /* - Array all = Array.with(content.getContentMap()).flatten().select(c -> c.minfo.mod == mod && c instanceof UnlockableContent).as(UnlockableContent.class); + }).width(400f); + + //TODO maybe enable later + if(false){ + Seq all = Seq.with(content.getContentMap()).flatten().select(c -> c.minfo.mod == mod && c instanceof UnlockableContent).as(); if(all.any()){ - desc.add("@mod.content").padRight(10).color(Color.gray).top(); - desc.row(); - desc.pane(cs -> { + dialog.cont.row(); + dialog.cont.pane(cs -> { int i = 0; for(UnlockableContent c : all){ - cs.addImageButton(new TextureRegionDrawable(c.icon(Cicon.medium)), () -> { + cs.button(new TextureRegionDrawable(c.icon(Cicon.medium)), Styles.cleari, Cicon.medium.size, () -> { ui.content.show(c); + }).size(50f).with(im -> { + var click = im.getClickListener(); + im.update(() -> im.getImage().color.lerp(!click.isOver() ? Color.lightGray : Color.white, 0.4f * Time.delta)); }); if(++i % 8 == 0) cs.row(); } }).growX().minHeight(60f); - }*/ - }).width(400f); + } + } + + dialog.show(); } - private void githubImport(String branch, String repo, Cons err){ - Core.net.httpGet("http://api.github.com/repos/" + repo + "/zipball/" + branch, loc -> { - Core.net.httpGet(loc.getHeader("Location"), result -> { - if(result.getStatus() != HttpStatus.OK){ - err.get(result.getStatus()); - }else{ - try{ - Fi file = tmpDirectory.child(repo.replace("/", "") + ".zip"); - Streams.copy(result.getResultAsStream(), file.write(false)); - mods.importMod(file); - file.delete(); - Core.app.post(() -> { - try{ - setup(); - ui.loadfrag.hide(); - }catch(Throwable e){ - ui.showException(e); - } - }); - }catch(Throwable e){ - modError(e); - } + private void handleMod(String repo, HttpResponse result){ + try{ + Fi file = tmpDirectory.child(repo.replace("/", "") + ".zip"); + Streams.copy(result.getResultAsStream(), file.write(false)); + mods.importMod(file); + file.delete(); + Core.app.post(() -> { + try{ + setup(); + ui.loadfrag.hide(); + }catch(Throwable e){ + ui.showException(e); } - }, t2 -> Core.app.post(() -> modError(t2))); + }); + }catch(Throwable e){ + modError(e); + } + } + + private void githubImport(String branch, String repo, Cons err){ + Core.net.httpGet("https://api.github.com/repos/" + repo + "/zipball/" + branch, loc -> { + if(loc.getStatus() == HttpStatus.OK){ + if(loc.getHeader("Location") != null){ + Core.net.httpGet(loc.getHeader("Location"), result -> { + if(result.getStatus() != HttpStatus.OK){ + err.get(result.getStatus()); + }else{ + handleMod(repo, result); + } + }, t2 -> Core.app.post(() -> modError(t2))); + }else{ + handleMod(repo, loc); + } + }else{ + err.get(loc.getStatus()); + } }, t2 -> Core.app.post(() -> modError(t2))); } } diff --git a/desktop/packr_minimize.json b/desktop/packr_minimize.json index c83ed1757d..d18eb478a8 100644 --- a/desktop/packr_minimize.json +++ b/desktop/packr_minimize.json @@ -88,23 +88,13 @@ "jre/lib/amd64/libdt_socket.so", "jre/lib/amd64/libsplashscreen.so", "jre/lib/amd64/libunpack.so", - "jre/lib/amd64/liblcms.so", "jre/lib/amd64/libnpt.so", "jre/lib/amd64/libmlib_image.so", - "jre/lib/amd64/libjsig.so", "jre/lib/amd64/libinstrument.so", - "jre/lib/amd64/libjaas_unix.so", - "jre/lib/amd64/libj2pcsc.so", - "jre/lib/amd64/libsaproc.so", - "jre/lib/amd64/libsunec.so", - "jre/lib/amd64/libj2pkcs11.so", - "jre/lib/amd64/libjsdt.so", - "jre/lib/amd64/libjdwp.so", "jre/lib/amd64/libjava_crw_demo.so", "jre/lib/amd64/libfreetype.so", "jre/lib/amd64/libmanagement.so", "jre/lib/amd64/libsctp.so", - "jre/lib/amd64/libj2gss.so", "jre/lib/amd64/libjpeg.so", "jre/lib/amd64/libfreetype.so.6", "jre/lib/amd64/libjsoundalsa.so",