Added SceneryParserLog

+Added SceneryParserLog class that filters warning messages
This commit is contained in:
izawartka 2025-06-01 00:47:23 +02:00
parent 24b05c95c8
commit b952b9c26d
5 changed files with 28 additions and 7 deletions

View File

@ -3,6 +3,13 @@ const Constants = {
useTrackColors: false,
zoomSensitivity: 0.002,
},
warnings: {
all: false, // enable all warnings
trackObjectCannotBeApplied: false,
switchInvalidTrackConnection: true,
unknownObjectType: true,
unknownTrackType: true,
},
layers: [
{
id: 'tracks',

View File

@ -0,0 +1,9 @@
import Constants from "../helpers/constants";
export default class SceneryParserLog {
static warn(type, message) {
if(!Constants.warnings[type] && !Constants.warnings.all) return;
console.warn(`[SceneryParserLog] ${message}`);
}
}

View File

@ -4,6 +4,7 @@ import BezierTrack from './bezier-track';
import TrackObject from './track-object';
import Signal from './signal';
import Route from './route';
import SceneryParserLog from './scenery-parser-log';
export default class Scenery
{
@ -74,7 +75,7 @@ export default class Scenery
case 'EndRoute':
return null;
default:
console.warn(`Unknown object type: ${type}`);
SceneryParserLog.warn('unknownObjectType', `Unknown object type: ${type}`);
return null;
};
}
@ -91,7 +92,7 @@ export default class Scenery
case 'BTrack':
return BezierTrack.fromText(text);
default:
console.warn(`Unknown track type: ${trackType}`);
SceneryParserLog.warn('unknownTrackType', `Unknown track type: ${trackType}`);
return null;
}
}

View File

@ -1,5 +1,7 @@
import Constants from "../helpers/constants.js";
import PointTrack from "./point-track.js";
import SceneryObject from "./scenery-object.js";
import SceneryParserLog from "./scenery-parser-log.js";
export default class Switch extends SceneryObject {
model;
@ -95,10 +97,10 @@ export default class Switch extends SceneryObject {
_createGetSwitchTrack(scenery, name, from, to, r) {
if(!from) {
console.error(`Switch #${this.id}, track ${name} has no 'from' track set!`);
SceneryParserLog.warn('switchInvalidTrackConnection', `Switch track ${name} has no 'from' track set`);
return null;
} else if(!to) {
console.error(`Switch #${this.id}, track ${name} has no 'to' track set!`);
SceneryParserLog.warn('switchInvalidTrackConnection', `Switch track ${name} has no 'to' track set`);
return null;
}
@ -106,10 +108,10 @@ export default class Switch extends SceneryObject {
const endTrack = scenery.getObject("tracks", to);
if(!startTrack) {
console.error(`Switch #${this.id}, track ${name}, 'from' track ${from} not found!`);
SceneryParserLog.warn('switchInvalidTrackConnection', `Switch track ${name}, 'from' track ${from} not found`);
return null;
} else if(!endTrack) {
console.error(`Switch #${this.id}, track ${name}, 'to' track ${to} not found!`);
SceneryParserLog.warn('switchInvalidTrackConnection', `Switch track ${name}, 'to' track ${to} not found`);
return null;
}

View File

@ -1,4 +1,6 @@
import Constants from '../helpers/constants';
import SceneryObject from './scenery-object';
import SceneryParserLog from './scenery-parser-log';
export default class TrackObject extends SceneryObject {
prefab_name;
@ -38,7 +40,7 @@ export default class TrackObject extends SceneryObject {
applyObject(scenery) {
const track = scenery.getObject('tracks', this.track_id);
if (!track) {
console.warn(`TrackObject ${this.id} cannot be applied: track ${this.track_id} not found.`);
SceneryParserLog.warn('trackObjectCannotBeApplied', `TrackObject ${this.id} cannot be applied: track ${this.track_id} not found`)
return;
}