SignalBox centering, debug pointerEvents toggle

+After loading a scenery, the view is now centered on its first SignalBox
+Added an option in Constants to forcibly enable pointerEvents on all map layers
This commit is contained in:
izawartka 2025-06-18 21:48:28 +02:00
parent 89b747f1b1
commit 56ffe221c0
3 changed files with 11 additions and 2 deletions

View File

@ -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;
@ -18,6 +19,8 @@ export default function SceneryLayer(props) {
if (!scenery || !isVisible) return null;
const pointerEvents = Constants.map.forcePointerEvents || queueItem.pointerEvents || false;
return (
<MemoizedSceneryLayer
name={name}
@ -25,7 +28,7 @@ export default function SceneryLayer(props) {
objects={objects}
type={type}
types={types}
pointerEvents={queueItem.pointerEvents || false}
pointerEvents={pointerEvents}
/>
);
}

View File

@ -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);

View File

@ -2,7 +2,8 @@ const Constants = {
map: {
zoomSensitivity: 0.002,
trackSlopeScale: 10,
trackMaxSpeedScale: 1.5
trackMaxSpeedScale: 1.5,
pointerEvents: false
},
parser: {
forceAutoSwitches: false,