Stardew Valley Mod Manager

../../knutsel/sdv-modman.png

Mods voor dit spel zijn opgebouwd als een verzameling bestanden die als één geheel in een zipfile gedownload kan worden en uitgepakt kan worden naar een directory op een bepaalde locatie onder de game directory. Zo'n mod is default geactiveerd en kan gedeactiveerd worden door de directorynaam te laten beginnen met een punt.

Voor de werking van zo'n mod kan het nodig zijn dat ook een andere mod aanwezig en geactiveerd is, dat noemen we een dependency. Ook dat kunnen we regelen met dit tool; omdat de relaties in de configuratie vastliggen hoef je dit niet zelf uit te zoeken en te onthouden (een van de redenen om dit ding te maken).

De "manager" is een scherm waarop de beschikbare mods getoond worden met een vinkje of ze actief moeten zijn of niet, en een aantal knoppen om bepaalde functies uit te voeren.

De achterliggende configuratie bestond aanvankelijk uit twee delen: een lijst met de namen van geïnstalleerde mods gekoppeld aan de installatiedirectory en een verzameling lijsten met per modnaam de namen van de mods die deze nodig heeft om te kunnen werken.

Bij het reorganiseren gebaseerd op de mod metadata is dit veranderd naar een mapping van mod namen (eigenlijk installatiedirectories) op verzamelingen gegevens waaronder een lijst met componenten; en een mapping van mod componenten op verzamelingen gegevens waaronder de afhankelijkheden. Later heb ik dit nog aangevuld met een mapping van savefiles op mod namen.

Of een mod aangezet is of niet wordt niet bijgehouden in de configuratie; daarvoor wordt gekeken naar de mod directories.

Oorspronkelijk...

...had ik alleen de volgende functies ingebouwd:

Edit config

Deze functie zat er niet eens vanaf het allereerste begin in. Hiermee kan de configuratie vanuit dit tool direct worden aangepast; hiervoor wordt een teksteditor geopend. Bij het wijzigen van hoe het opslagformaat van de configuratie van .ini naar json heb ik deze functie er uit gehaald. De JSON is wel leesbaar maar onoverzichtelijk en het zou niet meer nodig hoeven zijn dit handmatig aan te passen.

Check config

Bij handmatige wijzigingen kunnen fouten of onvolledigheden ontstaan; deze optie is om hierop te controleren voordat je de wijzigingen doorvoert en het spel mogelijk onspeelbaar maakt. Bij wijzigen via de dialoog (zie verderop bij uitbreidingen) is dit eigenlijk niet meer nodig. Daarom is ook deze functie is verwijderd.

Activeer wijzigingen

Hiermee wordt wat je in de configuratie hebt aangegeven "vertaald" naar welke mod directories een punt voor de naam moeten krijgen en welke niet. In de eerste incarnatie werd de app hierna direct afgesloten maar het leek me aardiger om de nieuwe stand nog even te tonen zodat je kon zien of je eventueel nog verdere wijzigingen aan wilt brengen.

Dit is waar het hele tool om beginnen was en deze functie is ook nog steeds aanwezig.

Klaar

Dit sluit de applicatie af. Was in het begin bedoeld om af te breken zonder wijzigingen door te voeren.

Uitbreidingen

op de oorspronkelijke versie:

Add mod to config

Deze functie was bedoeld om in een dialoog een mod aan de configuratie toe te voegen. Hij is inmiddels vervangen door "Install/Update" en "Mod Attributes".

Reorder mods on screen

Deze functie was bedoeld om in een dialoog de volgorde op scherm te kunnen aanpassen. Ik vond het toch meer moeite dan het me waard was.

Install / Update

Ik had bedacht dat ik de configuratie kon laten bijwerken bij toevoegen van een mod. Dit spaart bovendien handmatig installeren en zoeken naar de locatie uit.

Mod Attributes

Dialoog om achteraf dingen te kunnen veranderen en ook om informatie over de mod te kunnen bekijken.

Set Defaults

Dialoog om standaardinstellingen aan te passen.

Remove

Voor die enkele keer dat ik ook wel eens een mod wil kunnen weggooien, omdat-ie niet meer werkt en niet meer onderhouden wordt bijvoorbeeld.

Select Savefile

Deze functie kan een automatische selectie van te activeren mods maken gebaseerd op welke mods een savefile gebruikt.