Invisible tracks indication
+Added prefab_name field in the Track class and track_prefab_name in the Switch class *Invisible tracks are now drawn in gray instead of being completely skipped
This commit is contained in:
parent
519ed7aa1d
commit
f95a38f96c
@ -52,7 +52,7 @@ function getTrackColor(object, trackColorMode) {
|
||||
switch (trackColorMode) {
|
||||
case "none":
|
||||
default:
|
||||
return "#aaa";
|
||||
return object.prefab_name.includes('trans-mat') ? "#444" : "#aaa";
|
||||
|
||||
case "type":
|
||||
switch (object.type) {
|
||||
|
||||
@ -11,8 +11,8 @@ export default class BezierTrack extends Track
|
||||
control2: Vector3.zero()
|
||||
};
|
||||
|
||||
constructor(id, start, control1, end, control2, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed) {
|
||||
super(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed);
|
||||
constructor(id, start, control1, end, control2, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed) {
|
||||
super(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed);
|
||||
|
||||
Object.assign(this.points, {
|
||||
start,
|
||||
@ -39,6 +39,7 @@ export default class BezierTrack extends Track
|
||||
values[17], // id_station
|
||||
...Track.slopesFromText(values[18]), // start_slope, end_slope
|
||||
values[21], // id_isolation
|
||||
values[23], // prefab_name
|
||||
parseFloat(values[24]), // maxspeed
|
||||
parseFloat(values[25]) // derailspeed
|
||||
);
|
||||
|
||||
@ -10,12 +10,12 @@ export default class PointTrack extends Track
|
||||
end: Vector3.zero()
|
||||
};
|
||||
|
||||
constructor(id, start, end, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed) {
|
||||
constructor(id, start, end, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed) {
|
||||
const ry = AngleHelper.radToDeg(start.atanY(end));
|
||||
const rot = new Vector3(0, ry, 0);
|
||||
// TODO: fix rx and rz = 0
|
||||
// TODO: calculate length
|
||||
super(id, start, rot, null, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed);
|
||||
super(id, start, rot, null, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed);
|
||||
|
||||
Object.assign(this.points, {
|
||||
start, end
|
||||
|
||||
@ -109,10 +109,6 @@ export default class Scenery
|
||||
}
|
||||
|
||||
static _parseTrack(text) {
|
||||
/// TODO: remove
|
||||
const values = text.split(";");
|
||||
if(values.includes("none-slp,trans-mat,trans-mat")) return null; // skip invisible tracks
|
||||
|
||||
const trackType = text.split(';', 4)[2];
|
||||
switch(trackType) {
|
||||
case 'Track':
|
||||
|
||||
@ -11,8 +11,8 @@ export default class StandardTrack extends Track
|
||||
circleCenter: Vector3.zero()
|
||||
};
|
||||
|
||||
constructor(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed) {
|
||||
super(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed);
|
||||
constructor(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed) {
|
||||
super(id, start, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed);
|
||||
this._calcPoints();
|
||||
}
|
||||
|
||||
@ -29,6 +29,7 @@ export default class StandardTrack extends Track
|
||||
values[13], // id_station
|
||||
...Track.slopesFromText(values[14]), // start_slope, end_slope
|
||||
values[17], // id_isolation
|
||||
values[19], // prefab_name
|
||||
parseFloat(values[20]), // maxspeed
|
||||
parseFloat(values[21]) // derailspeed
|
||||
);
|
||||
|
||||
@ -15,16 +15,18 @@ export default class Switch extends SceneryObject {
|
||||
category = "switches";
|
||||
type = "Switch";
|
||||
applied = false;
|
||||
track_prefab_name;
|
||||
trackA;
|
||||
trackB;
|
||||
|
||||
constructor(id, model, pos, rot, data, id_isolation, id_switch, maxspeed, derailspeed) {
|
||||
constructor(id, model, pos, rot, data, id_isolation, id_switch, maxspeed, derailspeed, track_prefab_name) {
|
||||
super(id, pos, rot);
|
||||
Object.assign(this, {
|
||||
model,
|
||||
data,
|
||||
id_switch, id_isolation,
|
||||
maxspeed, derailspeed
|
||||
maxspeed, derailspeed,
|
||||
track_prefab_name
|
||||
});
|
||||
|
||||
this.bare_model = model.split(',')[0]?.trim() || model.trim();
|
||||
@ -42,7 +44,8 @@ export default class Switch extends SceneryObject {
|
||||
values[10], // id_isolation
|
||||
values[11], // id_switch
|
||||
parseFloat(values[13]), // maxspeed
|
||||
parseFloat(values[14]) // derailspeed
|
||||
parseFloat(values[14]), // derailspeed
|
||||
values[15] // track_prefab_name
|
||||
);
|
||||
|
||||
return sw;
|
||||
@ -121,6 +124,7 @@ export default class Switch extends SceneryObject {
|
||||
0, // start_slope
|
||||
0, // end_slope
|
||||
this.id_isolation,
|
||||
this.track_prefab_name,
|
||||
this.maxspeed,
|
||||
this.derailspeed
|
||||
);
|
||||
|
||||
@ -13,9 +13,10 @@ export default class Track extends SceneryObject {
|
||||
previd;
|
||||
start_slope;
|
||||
end_slope;
|
||||
prefab_name;
|
||||
hide_isolation = false;
|
||||
|
||||
constructor(id, pos, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, maxspeed, derailspeed) {
|
||||
constructor(id, pos, rot, len, r, nextid, previd, id_station, start_slope, end_slope, id_isolation, prefab_name, maxspeed, derailspeed) {
|
||||
super(id, pos, rot);
|
||||
Object.assign(this, {
|
||||
len, r,
|
||||
@ -23,6 +24,7 @@ export default class Track extends SceneryObject {
|
||||
id_station,
|
||||
start_slope, end_slope,
|
||||
id_isolation,
|
||||
prefab_name,
|
||||
maxspeed, derailspeed
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user