Commit Graph

152 Commits

Author SHA1 Message Date
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
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
izawartka
cdd1eb0a2f Added TOP signals extended renderer
+Added support for TOP signals in the SignalExtendedRenderer
2025-06-26 23:02:26 +02:00
izawartka
7b00881b06 Added remaining EHA/ERI extended parsers
+Added an extended parser for eha_top_r / eha_top_l signals
+Added an extended parser for v2 stanard EHA/ERI signals
2025-06-26 23:01:45 +02:00
izawartka
8f4b844f6a Double derailer fix
*Derailer prefabs containing _belka are now ignored to prevent doubled icons
*Removed outdated todo in the SceneryParser
2025-06-26 22:25:55 +02:00
izawartka
20c0cb092d Added extended signal rednerering
+Added basic SignalExtendedRenderer. It doesnt support TOPs, signs and overhead signals yet
+Added SignalElementsEnums.HeadPosition.NO_POLE (used by dwarf signals) and .OVERHEAD
*Empty extended signals signs entries are no more being stored in the array
2025-06-26 22:24:43 +02:00
izawartka
2c42291139 Extended signal rendering, minor tweaks
+Added extended signal rendering option (currently showing placeholder svg)
*Side menu CSS tweaks
*Track on-hover info is now enabled by default
2025-06-26 17:48:47 +02:00
izawartka
ac9e0493a1 Merge branch 'extended-signals' of https://github.com/izawartka/td2-visualizer into extended-signals 2025-06-26 17:24:27 +02:00
izawartka
c1342236f5 Extended parsing directory name change
*Changed directory name src/model/signal_elements signal-elements
2025-06-26 17:24:08 +02:00
izawartka
8f86e1b2b2 Double dwarfs extended parsing
+Added new SignalType.DWARF_DOUBLE
+Added extended parsing support for dwarf signals eha_ps_k and eri_ps_k
+Added simple extended parsing support for signals' signs
*Cutting off empty units at the end in SignalElementsParserCommon.getUnits now can be disabled with a param
2025-06-26 17:22:48 +02:00
Igor Zawartka
66b35d6536
Merge pull request #1 from izawartka/main
New switches defs
2025-06-26 16:57:31 +02:00
izawartka
e7073ffe62 New switches defs
+Added definitons for switches
    Rz 60E1-760-1_14 R / L
    Rlj 60E1-1200_300-1_7 R / L
2025-06-26 16:55:53 +02:00
izawartka
422c038cfa Added a frame for extended signals parsing
+Added SignalElements class parsing and storing extended information about signals
+Added support for standard and dwarf EHA/ERI signals extended parsing (excluding eha_top_l, eha_top_r, eha_ps_k and eri_ps_k prefabs) (signs are not being parsed yet)
+Added SignalElementsEnums const that will help to translate different signal types into one unified structure
2025-06-26 16:55:06 +02:00