Änderung: Hinzufügung des Taxi-Minispiels und zugehöriger Funktionen

Änderungen:
- Integration des Taxi-Minispiels mit neuen Routen und Komponenten im Backend und Frontend.
- Erstellung von Modellen und Datenbank-Schemas für das Taxi-Spiel, einschließlich TaxiGameState, TaxiLevelStats und TaxiMap.
- Erweiterung der Navigationsstruktur und der Benutzeroberfläche, um das Taxi-Spiel und die zugehörigen Tools zu unterstützen.
- Aktualisierung der Übersetzungen für das Taxi-Minispiel in Deutsch und Englisch.

Diese Anpassungen erweitern die Funktionalität der Anwendung um ein neues Minispiel und verbessern die Benutzererfahrung durch neue Features und Inhalte.
This commit is contained in:
Torsten Schulz (local)
2025-09-15 17:59:42 +02:00
parent 4699488ce1
commit f230849a5c
72 changed files with 7698 additions and 133 deletions

View File

@@ -0,0 +1,183 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="200mm"
height="200mm"
viewBox="0 0 200 200"
version="1.1"
id="svg5"
inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
sodipodi:docname="fuelvertical.svg"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/ttop.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview7"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="3.1748379"
inkscape:cx="654.99407"
inkscape:cy="374.34982"
inkscape:window-width="1920"
inkscape:window-height="1009"
inkscape:window-x="1920"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="g15167"
width="200mm" />
<defs
id="defs2" />
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1">
<g
id="g15000"
transform="rotate(90,100,100)">
<rect
style="fill:#008000;fill-rule:evenodd;stroke:none;stroke-width:0.698168;stroke-miterlimit:3.3"
id="rect846"
width="200"
height="200"
x="-200"
y="0"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/topleft.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5"
transform="rotate(-90)" />
<rect
style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:0.157815;stroke-miterlimit:3.3"
id="rect986"
width="78.26664"
height="18.236031"
x="-45.734962"
y="73.212212"
ry="0"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/tbottom.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5"
transform="matrix(0.86824353,-0.49613826,0.66053269,0.75079729,0,0)" />
<rect
style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:0.157816;stroke-miterlimit:3.3"
id="rect986-2"
width="78.266777"
height="18.236101"
x="-197.8062"
y="-27.279419"
ry="0"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/tbottom.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5"
transform="matrix(-0.86824205,-0.49614084,-0.66053013,0.75079954,0,0)" />
<rect
style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:0.417732;stroke-miterlimit:3.3"
id="rect986-6"
width="200"
height="50"
x="-200"
y="-125"
ry="0"
transform="scale(-1)"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/topleft.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5" />
<rect
style="fill:#1a1a1a;fill-rule:evenodd;stroke:none;stroke-width:0.127179;stroke-miterlimit:3.3"
id="rect986-6-1"
width="45.189426"
height="20.511456"
x="-121.78027"
y="-59.338455"
ry="0"
transform="scale(-1)"
inkscape:export-filename="/home/torsten/Bilder/your-part/backgrounds/taxi/topleft.png"
inkscape:export-xdpi="63.5"
inkscape:export-ydpi="63.5" />
<g
id="g14862" />
<g
id="g14764">
<g
id="g14820" />
</g>
<g
id="g14769">
<g
id="g15167">
<g
id="g14862-3"
transform="rotate(-90,113.96513,37.337594)">
<path
style="fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:0.194838px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 130.33628,11.426511 c 0,0 0.33707,0.512496 0.50155,0.771355 0.13496,0.212401 0.27766,0.420492 0.39816,0.641417 0.14074,0.258031 0.24505,0.53449 0.37805,0.796591 0.12995,0.256086 0.28028,0.501493 0.41005,0.757668 0.11219,0.221453 0.21972,0.445458 0.31839,0.673254 0.1137,0.262489 0.22318,0.527348 0.31494,0.798289 0.0953,0.28146 0.18104,0.567026 0.24405,0.857432 0.0697,0.321297 0.14741,0.97524 0.14741,0.97524 v 0 c 0,0 -0.0508,0.623767 -0.0987,0.932723 -0.058,0.374029 -0.13406,0.745697 -0.22788,1.11238 -0.089,0.34795 -0.20736,0.687775 -0.31727,1.029702 -0.13665,0.425112 -0.27816,0.848705 -0.42537,1.270275 -0.15727,0.450359 -0.31167,0.90211 -0.48911,1.344908 -0.15378,0.383734 -0.32793,0.759028 -0.4983,1.135687 -0.19915,0.440274 -0.61235,1.313977 -0.61235,1.313977"
id="path11082"
sodipodi:nodetypes="caaaaaaacaaaaaaac" />
<path
id="rect848"
style="fill:#808000;fill-rule:evenodd;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
d="m 120.62148,7.9679532 h 7.80968 c 1.11877,0 2.02017,0.9006707 2.01944,2.0194407 l -0.0659,24.6965811 -1.95357,0.03899 h -7.80968 c -1.11877,0 -2.01944,-0.01573 -2.01944,-0.01573 V 9.9873939 c 0,-1.1187702 0.90067,-2.0194407 2.01944,-2.0194407 z"
sodipodi:nodetypes="sssccscsss" />
</g>
<g
id="g14764-6"
transform="rotate(-90,113.96513,37.337594)">
<g
id="g14820-7">
<rect
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2409"
width="7.9378052"
height="2.4928758"
x="119.64509"
y="10.18909" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:2.82222px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="121.62167"
y="12.491911"
id="text4107"><tspan
sodipodi:role="line"
id="tspan4105"
style="font-size:2.82222px;fill:#ffffff;stroke-width:0.264583px"
x="121.62167"
y="12.491911">58,2</tspan></text>
</g>
</g>
<g
id="g14769-5"
transform="rotate(-90,113.96513,37.337594)">
<rect
style="fill:#000000;fill-rule:evenodd;stroke:#000000;stroke-width:0.1;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
id="rect2409-3"
width="7.9378052"
height="2.4928758"
x="119.64509"
y="14.269464" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:2.82222px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
x="121.62168"
y="16.572287"
id="text4107-6"><tspan
sodipodi:role="line"
id="tspan4105-7"
style="font-size:2.82222px;fill:#ffffff;stroke-width:0.264583px"
x="121.62168"
y="16.572287">47,3</tspan></text>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 7.8 KiB