Commit Graph

315 Commits

Author SHA1 Message Date
dominik-korsa
e78c1ccde5
Add route track rendering 2025-07-12 15:36:13 +02:00
dominik-korsa
c4eac723ba
Add route parsing 2025-07-12 14:00:50 +02:00
dominik-korsa
32c39e189c
Merge remote-tracking branch 'upstream/main' into switch-tracks
# Conflicts:
#	src/model/defs/defined-switches.js
2025-07-12 13:34:51 +02:00
dominik-korsa
0b6514a6f8
Fix straight switch tracks 2025-07-12 13:19:54 +02:00
dominik-korsa
d93eae6985
Add slip switch prefab definitions 2025-07-12 13:14:02 +02:00
dominik-korsa
4342bb41e8
Add crossing prefab definitions 2025-07-12 10:48:06 +02:00
dominik-korsa
5d7cef846f
Run track connection test and resolve some errors 2025-07-12 02:02:53 +02:00
dominik-korsa
b79530ca71
Change purpose of TrackConnection 2025-07-12 01:19:55 +02:00
dominik-korsa
db273d2420
Change switch prefab definition format 2025-07-12 00:22:38 +02:00
izawartka
b3f0b1df74 Added W23 sign icon and def
+Added definition and icon for the W23 sign
2025-07-11 18:11:53 +02:00
izawartka
1f96889fc6 Added new switches definitions
+Added definitions for switches Rld 60E1-2500_250-1_8.5 R / L
2025-07-11 18:00:38 +02:00
izawartka
745d31e44a Added on-hover switches info
+TrackHoverInfoPopup now displays switch ID and model if the hovered track is part of a switch
*Fixed typo: renamed the "Switches names" layer to "Switch names"
2025-07-11 02:02:49 +02:00
izawartka
dfe90bfd2d Added isolations end markers
+Added isolation end markers rendering on the Isolations layer
*Renamed the “Isolations IDs” layer to “Isolations”
2025-07-11 01:28:41 +02:00
izawartka
2d5c0baba6 Added ElectificationResolver propagation queue
*ElectificationResolver now uses a propagation queue to handle propagations from all routes "simultaneously" and reduce conflicts propagation
2025-07-11 01:16:16 +02:00
izawartka
adb1a4078f Improved ElectrificationResolver
*Updated ElectrificationResolver to use the new tracks connections logic
*Improved ElectrificationResolver status propagation for switches
*Fixed an issue where ElectrificationResolver would sometimes overwrite tracks having the CONFLICT status
2025-07-11 01:12:49 +02:00
izawartka
db45de37b9 Added tracks connection logic
+Added connectTracks scenery parsing function that links Track objects together in the scenery model, including support for one‑to‑many connections (for switches)
2025-07-11 01:06:02 +02:00
izawartka
6ce9d75f28 Added map zoom bounds
+Added zoomMin and zoomMax Constants to restrict map zooming within defined bounds
2025-07-10 22:43:46 +02:00
izawartka
6be4503b93 Added Track start and end angle functions
+Added Track.getStartAngleXZ and .getEndAngleXZ function and implemented them in its child classes
2025-07-10 22:36:33 +02:00
izawartka
ccbc50054c Improved PointTrack calculations
*Improved PointTrack rotation calculations to include curved tracks
*Fixed PointTrack not having len property
*Fixed swaped arguments in Vector3.atanY
2025-07-10 22:30:40 +02:00
izawartka
930ff81f7c 1.3.1 Release tweaks
*Updated buildVersion to 1.3.1
2025-07-07 18:04:57 +02:00
izawartka
4db9fef68c Electrification resolution tweaks
+Added an option to disable electrification resolution conflicts propagation in Constants
*Tweaked non applied NEVP warning text
2025-07-07 18:03:14 +02:00
izawartka
7f908f24ab Improved switches aliases resolution
+Added an option to include additional aliases indexes in switches definitions
+Added additional aliases indexes for switches Rz 60E1-300-1_9 R / L and Rz 60E1-190-1_9 R / L
2025-07-07 18:01:40 +02:00
izawartka
479610aaaf Fixed negative slopes in TrackHoverInfo
*Made presented slope values absolute in the TrackHoverInfoPopup
2025-07-07 17:30:50 +02:00
izawartka
44b838dc1b Fixed Text components warnings
*Fixed AlwaysUpText and SimpleLabelText throwing warnings because off how props were passed. Now to set props of the inside text tag, you pass them as textProps
*Updated Object Renderers to use the new text props passing method
2025-07-07 17:29:35 +02:00
izawartka
55cbface5f 1.3.0 Release tweaks
*Updated buildVersion to 1.3.0
*Tweaked rotation sensitivity
*Updated README.md
2025-07-06 23:56:13 +02:00
izawartka
1e6cdf2bfb Auto labels rotation
+Added AlwaysUpText component that rotates text by 180 degrees if it is upside down (taking view rotation into account)
+Added SimpleLabelText component that always displays text horizontally relative to the view rotation
+Added mapRotationService which stores a subscribable view rotation value
*Refactored all ObjectRenderers to use the above components for object labels
2025-07-06 23:48:31 +02:00
izawartka
8db877c2e3 Added map rotation
+Added an option to rotate the map using ALT + mouse drag
2025-07-06 21:58:22 +02:00
izawartka
68c4a4bfa8 Refactored ZoomPanWrapper
*Refactored ZoomPanWrapper code to be cleaner and more efficient. It now uses refs instead of state and performs camera translation / zooming using transform svg attribute instead of changing the viewbox
2025-07-06 21:51:22 +02:00
izawartka
245d64b03a 1.2.1 Release tweaks
*Changed buildVersion to 1.2.1
*Updated README.md
2025-07-04 20:26:34 +02:00
izawartka
3b91ada3b1 New signalboxes defs
+Added definitions for signalboxes SignalBoxE_m and SignalBoxEmptyControlBase
2025-07-04 20:24:04 +02:00
izawartka
51f99d528f Extended signal renderer tweaks
*Cleaned up ExtendedSignalsHelper
*Moved extended signal signs height calculations to a separate function
*Fixed mechanical signals arms being rendered in a wrong position
2025-07-04 20:23:32 +02:00
izawartka
dd409b0533 Refactored SignalExtendedRenderer
*Split SignalExtendedRenderer into SignalExtendedRenderer (Components) and ExtendedSignalsHelper (Calculating points data etc.)
*Moved all the magic values from the SignalExtendedRenderer to ExtendedSignalsConstants
*Fixed some extended signals components having a fill while not needed
2025-07-04 19:42:15 +02:00
Igor Zawartka
12773a83ad
Merge pull request #2 from izawartka/extended-signals
Extended signals parsing and rendering
2025-07-03 17:07:12 +02:00
izawartka
fc498681b4 1.2.0 Release tweaks
*Tweaked buildVersion constant to 1.2.0
*Disabled attached signs logging
*Updated README.md
2025-07-03 17:05:15 +02:00
izawartka
96e8cd1eef Extended signal label position tweak
*Overhead signals in Extended signal rendering mode have now, just like standard signals, their labels rendered "below" them
*Cleaned up SignalExtendedRenderer's code a bit
2025-07-03 16:57:10 +02:00
izawartka
b54ce79888 Extended signal renderer and parser bugfixes
*Fixed mechanical distant signals not having the W1 sign
*Fixed useless ";" appearing in the SVG code of signal signs
*Fixed signal signs overlapping with mechanical signals' arms
2025-07-03 16:31:05 +02:00
izawartka
d5ff1a61e7 Added W21 signal sign def
+Added definitions and icons for two variants of the W21 signal sign: standard and LED
2025-07-03 16:29:28 +02:00
izawartka
920de35b60 Added extended signal signs text option
+Extended signal renderering: Signs mounted on signals can now have displayed text over them (i.e. W21 sign). During the parsing, the text string is extracted from the sign name using regex from the sign's def
2025-07-03 16:27:25 +02:00
izawartka
ce375cb7e2 Extended signals bugfixes
*Fixed double dwarf signals not being parsed correctly
*Flipped no signal unit icon in horizontal axis
2025-07-01 21:20:16 +02:00
izawartka
6fb032a70f Mechanical signals rendering
+Added support for mechanical signals in extended signals rendering mode
2025-07-01 21:18:37 +02:00
izawartka
e0149037cf Mechanical signals extended parser
+Added extended parser for mechanical signals
+Added SinalElementsEnums.Type.Mechanical
+Added SignalElements.mechType field and SignalElementsEnums.MechType enum
+Added SignalElements.isMechanical()
2025-07-01 21:17:16 +02:00
izawartka
b72dbe8f9a Signal signs rendering order and custom height
*Signal signs can now have custom height and will still be rendered with proper spacing
*Order of signs rendered on signal's pole is now defined by the order in the DefinedSignalSigns dictionary
2025-06-30 21:11:41 +02:00
izawartka
8f297df233 Attached signs rendering
+Added rendering of signs attached to signals. If a sign is attached to a signal, attachedAs is set in the sign's def and signal has SignalElements, the sign is no longer rendered on the Signs layer but appears on the signal pole (ifextended signal rendering is enabled)
+Added definitions and icons for signal signs W1 and W18
*Extracted sign attaching logic into attachSign function
2025-06-30 21:09:16 +02:00
izawartka
02a9a11dba Extended signal signs parsing and rendering
+Added signs support in the extended signals parser
+Added signal signs rendering in SignalExtendedRenderer
+Added definitions and icons for W19, W20 and W24 signal signs
*Replaced getPoleLength function of SignalExtendedRenderer with getPolePoints which gives y offsets for all major points of the pole
2025-06-30 20:13:42 +02:00
izawartka
d991cddf97 Fixed dawrf signals extended rendering
+Added SignalElements.isDwarf()
*Fixed dwarf signals being rendered as standard signals
2025-06-29 21:33:50 +02:00
izawartka
6bae0a31ea Overhead extended signals support
+Added overhead extended signals parsing and rendering
*Cleaned up SignalExtendedRenderer
*Dwarf signals now use SignalElementEnums.HeadPosition.DWARF instead of NO_POLE
*Minor bugfixes and tweaks related to extended signals
2025-06-29 21:29:58 +02:00
izawartka
fd1f3107ee Fixed signs attachment grid
*Fixed neighbouring grid cells occupation in attachSign not depending on Constants.parser.attachSignsMaxDistanceX
2025-06-28 13:12:13 +02:00
izawartka
7bf3f24fe3 Added signal bars extended renderer
+ExtendedSignalRenderer now also draws signal bars
+ExtendedSignalRenderer  automatically adjusts pole height based on the number of bars and head offset
*Tweaked pole rendering in the ExtendedSignalRenderer
*Signals are now back higher in the rendering queue than signs
*Extended signals no longer have transparent backgrounds
*Fixed missing constants related to signs attaching
2025-06-27 18:17:47 +02:00
izawartka
2d655676c9 Added signs attaching
+Added an attachSigns function that will attach signs near signals to these signals so in the future their icons can be rendered without overlapping
+Added Vector3.distanceSqExcludeY, .toLocal and .negate
*Fixed SceneryObject not returning valid render bounds
2025-06-27 17:40:56 +02:00
izawartka
05bacafb67 Added extended SK signals parsing
+Added extended signal parsers for all SK type signal prefabs
2025-06-27 16:22:33 +02:00