diff options
author | Y. Wang <y5nw@protonmail.com> | 2024-09-19 18:39:19 +0000 |
---|---|---|
committer | orwell <orwell@bleipb.de> | 2024-11-09 22:09:00 +0100 |
commit | 66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc (patch) | |
tree | 5fdad135e06648875d9a050852c98e215192531d /assets/advtrains_wagon.png | |
parent | 86e80e4cfb0d7017ff962e40ab99a4ab6addf8f2 (diff) | |
download | advtrains-66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc.tar.gz advtrains-66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc.tar.bz2 advtrains-66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc.zip |
Address wagon aliasing issues
As it turns out, not fully testing new features is not necessarily a
good idea ...
This patch follows up 1F616EMO's patch by
* Making get_wagon_prototype return the resolved alias,
* Handling recursive wagon alises (in particular, loops), and
* Adding (partial) unittest for the wagon aliasing system. [v2]: The
testcases are complemented a bit more to cover situations where the
alias resolution system should return nil.
[v2]: This patch should hopefully also warn about not spawning wagons.
Note that this only warns about the missing wagon entity and does _not_
actually fix the issue.
How to test:
* In a world with both advtrains_train_subway and advtrains_train_japan
enabled, place a subway wagon, a Japanese engine, and a regular
Japanese wagon.
* Add the test mod to the world; do NOT remove advtrains_train_japan.
* Restart the world. Notice that the Japanese wagons still appear as
Japanese wagons despite being aliased to subway wagons.
* Restart the world without the advtrains_train_japan mod. Notice that
the engine appears as the subway wagon while the regular Japanese
wagon appears as the wagon placeholder. [v2]: Also note that the
warning message about the missing wagon prototype still mentions the
regular Japanese wagon.
* Restart the world again with the advtrains_train_japan mod. Notice
that both type of Japanese wagons reappear as Japanese wagons.
* Observe that unittests work.
Test mod:
advtrains.register_wagon_alias("advtrains:engine_japan", "advtrains:subway_wagon")
advtrains.register_wagon_alias("advtrains:wagon_japan", "advtrains:wagon_japan")
Diffstat (limited to 'assets/advtrains_wagon.png')
0 files changed, 0 insertions, 0 deletions