<feed xmlns='http://www.w3.org/2005/Atom'>
<title>advtrains.git/advtrains/spec/wagons_spec.lua, branch release-2.7.1</title>
<subtitle>Advtrains mod for minetest.</subtitle>
<id>https://git.bananach.space/advtrains.git/atom?h=release-2.7.1</id>
<link rel='self' href='https://git.bananach.space/advtrains.git/atom?h=release-2.7.1'/>
<link rel='alternate' type='text/html' href='https://git.bananach.space/advtrains.git/'/>
<updated>2024-11-09T21:09:00+00:00</updated>
<entry>
<title>Address wagon aliasing issues</title>
<updated>2024-11-09T21:09:00+00:00</updated>
<author>
<name>Y. Wang</name>
<email>y5nw@protonmail.com</email>
</author>
<published>2024-09-19T18:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.bananach.space/advtrains.git/commit/?id=66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc'/>
<id>urn:sha1:66868e2eefe97b7a6d35fa3fecc895b9c7bbc4cc</id>
<content type='text'>
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")
</content>
</entry>
</feed>
