bergerkiller/TrainCarts — pull request #1 by Thulinma (2011-10-26 00:35:27+00:00)
Title: Destinations system

Hierbij de beloofde code :-)

Ik heb dit al behoorlijk uitvoerig getest, maar er kunnen natuurlijk nog wat foutjes in zitten.
Ik heb geprobeerd om overal ongeveer jouw stijl aan te houden, zodat het een beetje één geheel blijft.

Zo werkt het allemaal:

* Onder de rails moeten nieuwe signs worden geplaatst zoals dit:
```
[train]
destination
naam van destination hier
```
Om de destinations te markeren voor de zoek code.
* Gebruik verder tag signs zoals normaal - de onderste twee regels mogen leeg zijn, maar dat hoeft niet.
* Als er op een trein nu met `/train destination X` een destination wordt ingesteld, zal deze trein tag signs anders verwerken dan normaal:
* Ze werken vanuit alle richtingen (negeren richting van de sign)
* Ze negeren de genoemde tags, en in plaats daarvan sturen de trein naar de richting waar de genoemde bestemming is, indien bekend.
* Mocht de bestemming niet herkend worden of onbereikbaar zijn, gaat de trein altijd noord, indien mogelijk.
* Kan dat niet (omdat de trein bijvoorbeeld komt uit de richting waar hij heen moet, en een 180 maken kan natuurlijk niet) dan zal de trein rechtdoor gaan.
* In het bestand destinations.yml zal worden bijgehouden wat voor elke tag/destination de bereikbare andere tags/destinations zijn, met afstand (om de kortste route te kunnen bepalen).
* Dit bestand is te "wissen" met het commando `/train reroute`.
* Het instellen van een destination kan ook door te klikken op een destination sign. Plaats deze dan niet onder de rails natuurlijk :-)

Wat ik later nog van plan ben toe te voegen:
* Betere ondersteuning voor tussenstations.
* Automatisch bijwerken van de destination cache en detecteren wanneer dat nodig is.
* Optionele meldingen aan treinbereiders met afstand tot hun bestemming en geschatte reistijd.

Laat me weten wat je ervan vind, zou ik zeggen, en probeer het zeker eens in-game uit. Het is behoorlijk indrukwekkend om in-game te zien vind ik :-)