Let’s Code mit Jens Episode 14 released

Ich habe Episode 14 meiner Videoreihe “Let’s Code mit Jens” veröffentlicht:

Aktuelles Thema: Posteingang
Ich sorge diese Folge dafür, dass das Fenster, welches seit der letzten Folge den Posteingang darstellen soll, auch wieder geschlossen werden kann. Dafür führe ich ein neues Interface und eine StrangeIoC View-Klasse ein.
Nun liegt die Logik zum Öffnen des Fensters an einer anderen Stelle, wie das Schließen des Fensters. Das heißt, zwei unterschiedliche Klassen haben das Wissen, wie man den Posteingang anzeigt bzw. schließt. Das passt so nicht.

Ich unterbreche die Aufnahme um über das Softwaredesign nachzudenken…

und komme mit einem Refactoring der Logik zum Anzeigen von Fenstern zurück. Das heißt, vieles aus der vorherigen Folge wird überarbeitet. Zum Beispiel hat das HUD nichts mehr mit dem Öffnen des Posteingangs zu tun. Der WindowService, welcher Anfragen zum Öffnen des Posteingangs einfach nur an das HUD weitergeleitet hat, erhält mehr Logik und außerdem registriert sich beim Start des Spiels der Posteingang beim WindowService selbst. Da wird die Folge dann doch länger, wie ursprünglich gedacht…

In der nächsten Folge werde ich damit beginnen ein List-Control zu erstellen, um die Transportanfragen übersichtlich im Posteingang darstellen zu können. Unity bietet solch ein Control nicht fertig an, weshalb man dies selbst erledigen muss. Da in weiteren Fenstern auch Listen benötigt werden, liegt der Fokus darauf eine für Logistician allgemeingültige Liste zu erstellen.

Zur Erinnerung: Der Posteingang
Über den Posteingang erhält der Spieler Transportanfragen und später auch Rechnungen und Bewerbungen. Erreicht wird der Posteingang über das Kontextmenü der Städte, sofern die jeweilige Stadt eine Filiale beherbergt. Der Posteingang wird durch ein Fenster dargstellt. Eine Liste zeigt eine Übersicht aller unbearbeiteten Eingänge. Vorerst sind das ausschließlich Transportanfragen. Wählt der Spieler einen Eintrag in der Liste aus, werden in einer Detailansicht die genauen Einzelheiten angezeigt. Bei Transportanfragen sind das Details, wie zum Beispiel die Menge, die Art und das Ziel der Fracht, sowie die Bezahlung. Über Schaltflächen in der Detailansicht kann der Spieler die Transportanfrage annehmen oder ablehnen.


I released episode 14 of my German series “Let’s Code mit Jens”: https://youtu.be/oqaZ8xtduu8

Actual topic: Mailbox
This episode is about the closing of the window, which shows the mailbox. Therefore I introduce a new interface and a StrangeIoC View class.
The logic for the opening of the window is placed at a different area then the closing. This means, one class knows how to open the mailbox and another completely different class knows how to close the mailbox again. No way. Can’t leave it this way.

I take a break to think about the software design…

and come back with a refactoring of the display of windows. Much of the last episode is changed. For example the HUD does not know anything about the opening of the mailbox anymore. The window service, which dispatched requests for opening of the mailbox to the HUD, gets more logic and the mailbox registers itself at the window service at the start of the game. Therefore this episode gets longer than thought…

In the next episode I will begin to create a list control, which shall show the transport requests in an overview. Unity does not have such a control, so I have to do it myself. Because I will need more windows with lists, the control will become generic.

Quick reminder for the mailbox:
The player gets transport requests and later bills and job applications through the mailbox. The player can open the mailbox via the context menu of a city, provided that the city locates a branch office of the cooperation. The mailbox is displayed inside a window. There a list shows an overview of all open entries. For the beginning entries are only transport requests. If the player selects such an entry, details of it are shown at a detail view of the mailbox. If the entry is a transport request these details will be information such as the amount, the type and the destination of the freight and also the payment for transportation. With the help of buttons, which are located inside the detail view, the player can accept or decline the transport request.