diff --git a/code/modules/tgui/modules/crew_monitor.dm b/code/modules/tgui/modules/crew_monitor.dm
index e781732edb3..4941d267b8c 100644
--- a/code/modules/tgui/modules/crew_monitor.dm
+++ b/code/modules/tgui/modules/crew_monitor.dm
@@ -21,7 +21,7 @@
/datum/tgui_module/crew_monitor/tgui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/tgui_state/state = GLOB.tgui_default_state)
var/z = get_z(tgui_host())
- var/list/map_levels = using_map.get_map_levels(z, TRUE)
+ var/list/map_levels = using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE)
if(!map_levels.len)
to_chat(user, "The crew monitor doesn't seem like it'll work here.")
@@ -31,8 +31,7 @@
ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
if(!ui)
- // The 557 may seem random, but its the perfectsize for margins on the nanomap
- ui = new(user, src, ui_key, "CrewMonitor", name, 1400, 557, master_ui, state)
+ ui = new(user, src, ui_key, "CrewMonitor", name, 800, 600, master_ui, state)
ui.autoupdate = TRUE
ui.open()
@@ -43,7 +42,7 @@
data["isAI"] = isAI(user)
var/z = get_z(tgui_host())
- var/list/map_levels = uniquelist(using_map.get_map_levels(z, TRUE))
+ var/list/map_levels = uniquelist(using_map.get_map_levels(z, TRUE, om_range = DEFAULT_OVERMAP_RANGE))
data["map_levels"] = map_levels
data["crewmembers"] = list()
diff --git a/tgui/packages/tgui/components/NanoMap.js b/tgui/packages/tgui/components/NanoMap.js
index a1d8500073c..02440f75446 100644
--- a/tgui/packages/tgui/components/NanoMap.js
+++ b/tgui/packages/tgui/components/NanoMap.js
@@ -6,9 +6,13 @@ export class NanoMap extends Component {
constructor(props) {
super(props);
+ // Auto center based on window size
+ const Xcenter = (window.innerWidth / 2) - 256;
+
this.state = {
- offsetX: 0,
+ offsetX: Xcenter,
offsetY: 0,
+ transform: 'none',
dragging: false,
originX: null,
originY: null,
@@ -33,7 +37,7 @@ export class NanoMap extends Component {
this.handleDragMove = e => {
this.setState(prevState => {
- const state = { ... prevState };
+ const state = { ...prevState };
const newOffsetX = e.screenX - state.originX;
const newOffsetY = e.screenY - state.originY;
if (prevState.dragging) {
@@ -63,21 +67,12 @@ export class NanoMap extends Component {
render() {
const { config } = useBackend(this.context);
- let { offsetX, offsetY } = this.state;
+ const { offsetX, offsetY } = this.state;
const { children, zoom, reset } = this.props;
- if (reset) {
- this.setState({
- offsetX: 0,
- offsetY: 0,
- });
- offsetX = 0;
- offsetY = 0;
- }
-
const newStyle = {
- width: 508 * zoom + 'px',
- height: 508 * zoom + 'px',
+ width: '512px',
+ height: '512px',
"margin-top": offsetY + 'px',
"margin-left": offsetX + 'px',
"overflow": "hidden",
@@ -86,21 +81,27 @@ export class NanoMap extends Component {
"background-image":
"url("+config.map+"_nanomap_z"+config.mapZLevel+".png)",
"background-size": "cover",
+ "text-align": "center",
+ "transform-origin": "center center",
+ "transform": "scale(" + zoom + ")",
};
return (