diff --git a/src/components/map/SceneryLayer.js b/src/components/map/SceneryLayer.js index b799d7b..d7a5892 100644 --- a/src/components/map/SceneryLayer.js +++ b/src/components/map/SceneryLayer.js @@ -1,6 +1,7 @@ import React, { useContext, useMemo, memo } from "react"; import MainContext from "../../contexts/MainContext"; import SettingsContext from "../../contexts/SettingsContext"; +import Constants from "../../helpers/constants"; export default function SceneryLayer(props) { const { queueItem } = props; @@ -17,6 +18,8 @@ export default function SceneryLayer(props) { }, [scenery, category, isVisible]); if (!scenery || !isVisible) return null; + + const pointerEvents = Constants.map.forcePointerEvents || queueItem.pointerEvents || false; return ( ); } diff --git a/src/components/toolbar/FileSelect.js b/src/components/toolbar/FileSelect.js index 6eb2554..98af89a 100644 --- a/src/components/toolbar/FileSelect.js +++ b/src/components/toolbar/FileSelect.js @@ -4,9 +4,11 @@ import SceneryParser from "../../model/scenery-parser"; import { showCustomDialog } from "../../services/dialogService"; import SceneryLoadedDialog from "../scenery-loaded-dialog/SceneryLoadedDialog"; import SceneryParserLog from "../../model/scenery-parser-log"; +import { useZoomPanEmitter } from "../../hooks/useZoomPubSub"; export default function FileSelect() { const {setScenery, setIsLoading} = useContext(MainContext); + const { center } = useZoomPanEmitter(); const handleFileChange = (event) => { const file = event.target.files[0]; @@ -21,6 +23,9 @@ export default function FileSelect() { try { const scenery = SceneryParser.fromText(e.target?.result); setScenery(scenery); + + const mainSignalBoxPos = scenery.signalBoxes?.[0]?.pos || null; + if (mainSignalBoxPos) center(...mainSignalBoxPos.toSVGCoords()); } catch (error) { loadingError = error; setScenery(null); diff --git a/src/helpers/constants.js b/src/helpers/constants.js index a5dfefb..85b8126 100644 --- a/src/helpers/constants.js +++ b/src/helpers/constants.js @@ -2,7 +2,8 @@ const Constants = { map: { zoomSensitivity: 0.002, trackSlopeScale: 10, - trackMaxSpeedScale: 1.5 + trackMaxSpeedScale: 1.5, + pointerEvents: false }, parser: { forceAutoSwitches: false,