Piggyback on holomaps to generate runtime maps (#17731)

This commit is contained in:
ShadowLarkens
2025-05-29 13:03:16 +02:00
committed by GitHub
parent 928f82680e
commit 54e4fa3d6b
9 changed files with 39 additions and 42 deletions
+2 -2
View File
@@ -149,8 +149,8 @@ var/global/list/runlevel_flags = list(RUNLEVEL_LOBBY, RUNLEVEL_SETUP, RUNLEVEL_G
#define INIT_ORDER_DEFAULT 0
#define INIT_ORDER_LIGHTING 0
#define INIT_ORDER_AIR -1
#define INIT_ORDER_ASSETS -3
#define INIT_ORDER_HOLOMAPS -5
#define INIT_ORDER_HOLOMAPS -3
#define INIT_ORDER_ASSETS -5
#define INIT_ORDER_NIGHTSHIFT -6
#define INIT_ORDER_OVERLAY -7
#define INIT_ORDER_XENOARCH -20
+26
View File
@@ -22,3 +22,29 @@ SUBSYSTEM_DEF(holomaps)
if (!GLOB.Debug2)
return // Only show up in stat panel if debugging is enabled.
. = ..()
/datum/controller/subsystem/holomaps/proc/dump_nanomap_icons()
. = list()
for(var/z = 1 to world.maxz)
var/icon/base = icon(HOLOMAP_ICON, "blank") // start at 480x480
base.Scale(world.maxx, world.maxy) // scale down to perfectly fit the map size
var/icon/walls = icon(holoMiniMaps[z])
var/icon/areas = extraMiniMaps["[HOLOMAP_EXTRA_STATIONMAPAREAS]_[z]"]
base.Blend(walls, ICON_OVERLAY)
if(areas)
base.Blend(areas, ICON_OVERLAY)
var/fname = "data/spritesheets/minimap_[z].png"
// Copy to a file
fcopy(base, fname)
// Strip DMI metadata to prevent any ~issues~
var/error = rustg_dmi_strip_metadata(fname)
if(length(error))
stack_trace("Failed to strip [fname]: [error]")
.["minimap_[z].png"] = fname
@@ -0,0 +1,6 @@
/datum/asset/simple/holo_nanomap
keep_local_name = TRUE
/datum/asset/simple/holo_nanomap/register()
assets = SSholomaps.dump_nanomap_icons()
. = ..()
@@ -1,33 +0,0 @@
/datum/asset/simple/nanomaps
// It REALLY doesnt matter too much if these arent up to date
// They are relatively big
assets = list(
// VOREStation Edit: We don't need Southern Cross
// "southern_cross_nanomap_z1.png" = 'icons/_nanomaps/southern_cross_nanomap_z1.png',
// "southern_cross_nanomap_z10.png" = 'icons/_nanomaps/southern_cross_nanomap_z10.png',
// "southern_cross_nanomap_z2.png" = 'icons/_nanomaps/southern_cross_nanomap_z2.png',
// "southern_cross_nanomap_z3.png" = 'icons/_nanomaps/southern_cross_nanomap_z3.png',
// "southern_cross_nanomap_z5.png" = 'icons/_nanomaps/southern_cross_nanomap_z5.png',
// "southern_cross_nanomap_z6.png" = 'icons/_nanomaps/southern_cross_nanomap_z6.png',
"tether_nanomap_z1.png" = 'icons/_nanomaps/tether_nanomap_z1.png',
"tether_nanomap_z2.png" = 'icons/_nanomaps/tether_nanomap_z2.png',
"tether_nanomap_z3.png" = 'icons/_nanomaps/tether_nanomap_z3.png',
"tether_nanomap_z4.png" = 'icons/_nanomaps/tether_nanomap_z4.png',
"tether_nanomap_z5.png" = 'icons/_nanomaps/tether_nanomap_z5.png',
"tether_nanomap_z6.png" = 'icons/_nanomaps/tether_nanomap_z6.png',
"tether_nanomap_z7.png" = 'icons/_nanomaps/tether_nanomap_z7.png',
"stellardelight_nanomap_z1.png" = 'icons/_nanomaps/sd_deck1.png',
"stellardelight_nanomap_z2.png" = 'icons/_nanomaps/sd_deck2.png',
"stellardelight_nanomap_z3.png" = 'icons/_nanomaps/sd_deck3.png',
"groundbase_nanomap_z1.png" = 'icons/_nanomaps/gb1.png',
"groundbase_nanomap_z2.png" = 'icons/_nanomaps/gb2.png',
"groundbase_nanomap_z3.png" = 'icons/_nanomaps/gb3.png',
"groundbase_nanomap_z4.png" = 'icons/_nanomaps/gbnorth.png',
"groundbase_nanomap_z5.png" = 'icons/_nanomaps/gbsouth.png',
"groundbase_nanomap_z6.png" = 'icons/_nanomaps/gbeast.png',
"groundbase_nanomap_z7.png" = 'icons/_nanomaps/gbwest.png',
"groundbase_nanomap_z10.png" = 'icons/_nanomaps/gbmining.png',
// VOREStation Edit End
)
+1 -1
View File
@@ -36,7 +36,7 @@
/datum/tgui_module/atmos_control/ui_assets(mob/user)
. = ..()
. += get_asset_datum(/datum/asset/simple/nanomaps)
. += get_asset_datum(/datum/asset/simple/holo_nanomap)
/datum/tgui_module/atmos_control/tgui_interact(mob/user, datum/tgui/ui = null)
ui = SStgui.try_update_ui(user, src, ui)
+1 -1
View File
@@ -4,7 +4,7 @@
/datum/tgui_module/crew_monitor/ui_assets(mob/user)
return list(
get_asset_datum(/datum/asset/simple/nanomaps),
get_asset_datum(/datum/asset/simple/holo_nanomap),
)
/datum/tgui_module/crew_monitor/tgui_act(action, params, datum/tgui/ui)
-1
View File
@@ -280,7 +280,6 @@
),
//"refreshing" = refreshing,
"refreshing" = FALSE,
"map" = (using_map && using_map.path) ? using_map.path : "Unknown",
"mapZLevel" = map_z_level,
"window" = list(
"key" = window_key,
+2 -3
View File
@@ -180,9 +180,7 @@ export class NanoMap extends Component<Props, State> {
const { dragging, offsetX, offsetY, zoom = 1 } = this.state;
const { children } = this.props;
const mapUrl = resolveAsset(
config.map + '_nanomap_z' + config.mapZLevel + '.png',
);
const mapUrl = resolveAsset('minimap_' + config.mapZLevel + '.png');
// (x * zoom), x Needs to be double the turf- map size. (for virgo, 140x140)
const mapSize = this.props.zoomScale * zoom + 'px';
const newStyle: {} = {
@@ -192,6 +190,7 @@ export class NanoMap extends Component<Props, State> {
'margin-left': offsetX + 'px',
overflow: 'hidden',
position: 'relative',
'image-rendering': 'pixelated',
'background-image': 'url(' + mapUrl + ')',
'background-size': 'cover',
'background-repeat': 'no-repeat',
+1 -1
View File
@@ -2056,6 +2056,7 @@
#include "code\modules\asset_cache\assets\jquery.dm"
#include "code\modules\asset_cache\assets\lobby.dm"
#include "code\modules\asset_cache\assets\microwave.dm"
#include "code\modules\asset_cache\assets\nanomap.dm"
#include "code\modules\asset_cache\assets\ntos.dm"
#include "code\modules\asset_cache\assets\permissions.dm"
#include "code\modules\asset_cache\assets\preferences.dm"
@@ -2064,7 +2065,6 @@
#include "code\modules\asset_cache\assets\spritesheets\chat.dm"
#include "code\modules\asset_cache\assets\spritesheets\chem_master.dm"
#include "code\modules\asset_cache\assets\spritesheets\kitchen_recipes.dm"
#include "code\modules\asset_cache\assets\spritesheets\nanomaps.dm"
#include "code\modules\asset_cache\assets\spritesheets\pipes.dm"
#include "code\modules\asset_cache\assets\spritesheets\robot_icons.dm"
#include "code\modules\asset_cache\assets\spritesheets\stacks.dm"