diff --git a/core/src/io/anuke/mindustry/core/Platform.java b/core/src/io/anuke/mindustry/core/Platform.java index 55c57e82a4..a689bbbd02 100644 --- a/core/src/io/anuke/mindustry/core/Platform.java +++ b/core/src/io/anuke/mindustry/core/Platform.java @@ -34,6 +34,9 @@ public interface Platform{ /** Steam: View a map listing on the workshop.*/ default void viewMapListing(Map map){} + /** Steam: View a map listing on the workshop.*/ + default void viewMapListing(String mapid){} + /** Steam: Open workshop for maps.*/ default void openWorkshop(){} diff --git a/core/src/io/anuke/mindustry/editor/MapEditor.java b/core/src/io/anuke/mindustry/editor/MapEditor.java index bf557eb640..ec32a94594 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditor.java +++ b/core/src/io/anuke/mindustry/editor/MapEditor.java @@ -16,7 +16,7 @@ import io.anuke.mindustry.maps.Map; import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.blocks.BlockPart; -import static io.anuke.mindustry.Vars.world; +import static io.anuke.mindustry.Vars.*; public class MapEditor{ public static final int[] brushSizes = {1, 2, 3, 4, 5, 9, 15, 20}; @@ -52,6 +52,9 @@ public class MapEditor{ loading = true; tags.putAll(map.tags); + if(map.file.parent().parent().name().equals("1127400") && steam){ + tags.put("steamid", map.file.parent().name()); + } MapIO.loadMap(map, context); checkLinkedTiles(); renderer.resize(width(), height()); diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index cc9dbdf821..abf08d50ef 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -147,6 +147,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ if(steam){ menu.cont.addImageTextButton("$editor.publish.workshop", Icon.linkSmall, () -> { + if(editor.getTags().containsKey("steamid")){ + platform.viewMapListing(editor.getTags().get("steamid")); + return; + } + Map map = save(); if(map == null) return; diff --git a/core/src/io/anuke/mindustry/maps/Maps.java b/core/src/io/anuke/mindustry/maps/Maps.java index 395ceafec6..71e5924960 100644 --- a/core/src/io/anuke/mindustry/maps/Maps.java +++ b/core/src/io/anuke/mindustry/maps/Maps.java @@ -106,7 +106,9 @@ public class Maps{ //workshop for(FileHandle file : platform.getExternalMaps()){ try{ - loadMap(file, false).workshop = true; + Map map = loadMap(file, false); + map.workshop = true; + map.tags.put("steamid", file.parent().name()); }catch(Exception e){ Log.err("Failed to load workshop map file '{0}'!", file); Log.err(e); diff --git a/core/src/io/anuke/mindustry/world/blocks/logic/MessageBlock.java b/core/src/io/anuke/mindustry/world/blocks/logic/MessageBlock.java index 2199d9335e..40a97e5dda 100644 --- a/core/src/io/anuke/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/logic/MessageBlock.java @@ -24,8 +24,8 @@ import java.io.*; import static io.anuke.mindustry.Vars.*; public class MessageBlock extends Block{ - protected static int maxTextLength = 170; - protected static int maxNewlines = 5; + protected static int maxTextLength = 220; + protected static int maxNewlines = 24; public MessageBlock(String name){ super(name); diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index d215e28d9c..9e6502a991 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -204,7 +204,12 @@ public class DesktopLauncher extends ClientLauncher{ @Override public void viewMapListing(Map map){ - SVars.net.friends.activateGameOverlayToWebPage("steam://url/CommunityFilePage/" + map.file.parent().name()); + viewMapListing(map.file.parent().name()); + } + + @Override + public void viewMapListing(String mapid){ + SVars.net.friends.activateGameOverlayToWebPage("steam://url/CommunityFilePage/" + mapid); } @Override