User Tools

Site Tools


dev:proposals:new-ks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
dev:proposals:new-ks [2022-11-02 10:28]
ywang Add linnks to individual files; remove link to recent commit as it is not particularly useful
dev:proposals:new-ks [2022-12-07 12:50]
ywang
Line 1: Line 1:
-====== Distant signaling (new-ks implementation) ======+====== Implementation: new-ks branch ======
 //Please refer to the source code for implementation details and API documentation. This information is provided here. The filenames provided below are relative to ''[[http://git.bananach.space/advtrains.git/tree/advtrains_interlocking?h=new-ks|/advtrains_interlocking]]''.// //Please refer to the source code for implementation details and API documentation. This information is provided here. The filenames provided below are relative to ''[[http://git.bananach.space/advtrains.git/tree/advtrains_interlocking?h=new-ks|/advtrains_interlocking]]''.//
  
Line 8: Line 8:
   * A ''[[http://git.bananach.space/advtrains.git/tree/advtrains_interlocking/README.md?h=new-ks|README.md]]'' file is added that gives some information on working with the new signaling system.   * A ''[[http://git.bananach.space/advtrains.git/tree/advtrains_interlocking/README.md?h=new-ks|README.md]]'' file is added that gives some information on working with the new signaling system.
  
 +**The changes break a few minor things:**
 +
 +  * The signal aspect formspec uses dropdown indexing, which requires Minetest 5.4.0 or later.
 +  * ''advtrains.interlocking.signal_get_aspect'' and ''advtrains.interlocking.signal_set_aspect'' are changed:
 +    * The results are cached.
 +    * The signal aspect is "adjusted" before being passed to the signal, i.e., the signal aspect passed to the signal is not guaranteed to be the same as the one passed to ''advtrains.interlocking.signal_set_aspect''.
 +    * ''advtrains.interlocking.signal_get_real_aspect'' gets the aspect of the signal directly from the node definitions. Note that, especially for Ks signals, the result is not guaranteed to be constant
 +    * There is no API for setting the signal aspect while bypassing the cache and signal aspect adjustments, as the latter is sometimes necessary with the introduction of type 2 signals. **Do not call the ''advtrains.set_aspect'' function in the node definitions directly as doing so is not guaranteed to give the expected result.**
 +
 +It is planned to merge the newly introduced signal aspect cache with its counterpart in the routesetting system.
 +
 +Please refer to the source code (listed above) for details.
 ====== Proposal: Distant signaling (second draft) ====== ====== Proposal: Distant signaling (second draft) ======
 //This draft has been superseded. Please refer to the actual implementation (mentioned above).// //This draft has been superseded. Please refer to the actual implementation (mentioned above).//
dev/proposals/new-ks.txt · Last modified: 2023-03-26 12:10 by ywang