MovingBlocks / TerasologyLauncher

Terasology Launcher is the official launcher for the open source game Terasology.
http://terasology.org/
Apache License 2.0
153 stars 76 forks source link

chore: introduce `Installation<T>` interface #710

Closed skaldarnar closed 9 months ago

skaldarnar commented 9 months ago

Contains

Both games and JREs will be "installed" and manage by the launcher in the future. I believe that both can share a common interface, and that this interface will help to find similarities in the respective manager classes.

Therefore, this PR introduces a new interface Installation<T> that's supposed to be parameterized with the identifier of installed component, for instance, Installation<Game> or Installation<Jre>.

Currently a drop-in refactoring without usages outside of the GameManager.

How to test

Ensure that the launcher is working as before.

Outstanding before merging

There are some TODOs and commented code. Those should at least be double-chcecked whether they need to be resolved right now or can be done in follow-ups.