Jelajahi Sumber

feature: main engine flame animation

wullewutz 2 tahun lalu
induk
melakukan
8709c3fb3e
8 mengubah file dengan 1724 tambahan dan 81 penghapusan
  1. 37 0
      Cargo.lock
  2. 5 0
      Cargo.toml
  3. TEMPAT SAMPAH
      assets/flame.png
  4. 791 0
      assets/flame.svg
  5. TEMPAT SAMPAH
      assets/ship.png
  6. 771 50
      assets/ship.svg
  7. 1 1
      src/main.rs
  8. 119 30
      src/ship.rs

+ 37 - 0
Cargo.lock

@@ -2623,6 +2623,12 @@ dependencies = [
  "unicode-xid",
 ]
 
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
 [[package]]
 name = "proc-macro-crate"
 version = "1.3.1"
@@ -2663,6 +2669,36 @@ version = "0.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b"
 
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
 [[package]]
 name = "range-alloc"
 version = "0.1.3"
@@ -3244,6 +3280,7 @@ name = "void"
 version = "0.1.0"
 dependencies = [
  "bevy",
+ "rand",
 ]
 
 [[package]]

+ 5 - 0
Cargo.toml

@@ -7,3 +7,8 @@ edition = "2021"
 
 [dependencies]
 bevy = "0.12"
+rand = "0.8.5"
+
+# enable max optimization for dependencies, but not for own code
+[profile.dev.package."*"]
+opt-level = 3

TEMPAT SAMPAH
assets/flame.png


+ 791 - 0
assets/flame.svg

@@ -0,0 +1,791 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+   width="1000"
+   height="1000"
+   viewBox="0 0 264.58343 264.58328"
+   version="1.1"
+   id="svg1"
+   inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
+   sodipodi:docname="flame.svg"
+   inkscape:export-filename="flame.png"
+   inkscape:export-xdpi="144"
+   inkscape:export-ydpi="144"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview1"
+     pagecolor="#505050"
+     bordercolor="#ffffff"
+     borderopacity="1"
+     inkscape:showpageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="true"
+     inkscape:deskcolor="#505050"
+     inkscape:document-units="px"
+     inkscape:zoom="0.45254834"
+     inkscape:cx="411.00582"
+     inkscape:cy="533.64465"
+     inkscape:window-width="1920"
+     inkscape:window-height="1001"
+     inkscape:window-x="1920"
+     inkscape:window-y="52"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="layer1"
+     showgrid="false"
+     shape-rendering="crispEdges" />
+  <defs
+     id="defs1">
+    <linearGradient
+       id="linearGradient59"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#ebebeb;stop-opacity:1;"
+         offset="0"
+         id="stop58" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.83501482"
+         id="stop59" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient57"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#e3e3e3;stop-opacity:1;"
+         offset="0"
+         id="stop56" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop57" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient55"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#d8d8d8;stop-opacity:1;"
+         offset="0"
+         id="stop54" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.87171263"
+         id="stop55" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient53"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#d7d7d7;stop-opacity:1;"
+         offset="0"
+         id="stop52" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop53" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient51"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#92d8f0;stop-opacity:1;"
+         offset="0"
+         id="stop50" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.92494565"
+         id="stop51" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient49"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#84c4e0;stop-opacity:1;"
+         offset="0"
+         id="stop48" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop49" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient47"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#acdfff;stop-opacity:1;"
+         offset="0"
+         id="stop46" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop47" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient45"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#a4e4f3;stop-opacity:0.94901961;"
+         offset="0"
+         id="stop44" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.871723"
+         id="stop45" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient43"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#34a6c9;stop-opacity:1;"
+         offset="0"
+         id="stop42" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop43" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient41"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#3abbe2;stop-opacity:1;"
+         offset="0"
+         id="stop40" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.85548276"
+         id="stop41" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient39"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#4bc3ff;stop-opacity:1;"
+         offset="0"
+         id="stop38" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop39" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient37"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#4bcfff;stop-opacity:1;"
+         offset="0"
+         id="stop36" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.87741184"
+         id="stop37" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient35"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#3d84e1;stop-opacity:1;"
+         offset="0"
+         id="stop34" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.91635877"
+         id="stop35" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient33"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#1662c6;stop-opacity:1;"
+         offset="0"
+         id="stop32" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop33" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient31"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#0d6cca;stop-opacity:1;"
+         offset="0"
+         id="stop30" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.87834543"
+         id="stop31" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient29"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#004cff;stop-opacity:1;"
+         offset="0"
+         id="stop28" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop29" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient27"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#ca892f;stop-opacity:1;"
+         offset="0"
+         id="stop26" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.84157401"
+         id="stop27" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient25"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#c1932c;stop-opacity:1;"
+         offset="0"
+         id="stop24" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop25" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient23"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#e2bb60;stop-opacity:1;"
+         offset="0"
+         id="stop22" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.85939211"
+         id="stop23" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient21"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#f2a44f;stop-opacity:1;"
+         offset="0"
+         id="stop20" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop21" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient97"
+       id="linearGradient98"
+       x1="415.108"
+       y1="998.44617"
+       x2="413.9006"
+       y2="1131.2222"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.17907246,0,0,0.26458333,-47.74726,-263.42444)" />
+    <linearGradient
+       id="linearGradient97"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#f2c04f;stop-opacity:1;"
+         offset="0"
+         id="stop97" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="0.86163861"
+         id="stop98" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient100"
+       id="linearGradient99"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25380633,0,0,0.26458333,-79.049614,-210.47839)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       id="linearGradient100"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#006eff;stop-opacity:1;"
+         offset="0"
+         id="stop99" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop100" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient102"
+       id="linearGradient101"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.41255389,0,0,0.35686399,-144.92024,-249.70162)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       id="linearGradient102"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#4bd5ff;stop-opacity:1;"
+         offset="0"
+         id="stop101" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop102" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient104"
+       id="linearGradient103"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.47907843,0,0,0.45591809,-172.27894,-295.60739)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       id="linearGradient104"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#aceaff;stop-opacity:1;"
+         offset="0"
+         id="stop103" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop104" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient106"
+       id="linearGradient105"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.53632569,0,0,0.55047647,-195.9715,-337.12517)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       id="linearGradient106"
+       inkscape:collect="always">
+      <stop
+         style="stop-color:#ffffff;stop-opacity:1;"
+         offset="0"
+         id="stop105" />
+      <stop
+         style="stop-color:#1c1c1c;stop-opacity:0;"
+         offset="1"
+         id="stop106" />
+    </linearGradient>
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient21"
+       id="linearGradient1"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.17907246,0,0,0.26458333,4.9927812,-263.33211)"
+       x1="415.108"
+       y1="998.44617"
+       x2="413.9006"
+       y2="1131.2222" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient29"
+       id="linearGradient2"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25380633,0,0,0.26458333,-26.017244,-210.38606)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient37"
+       id="linearGradient3"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.41255389,0,0,0.35686399,-91.88787,-249.60929)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient45"
+       id="linearGradient4"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.47907843,0,0,0.45591809,-119.11992,-295.51506)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient53"
+       id="linearGradient5"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.53632569,0,0,0.55047647,-143.1133,-337.03284)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient23"
+       id="linearGradient6"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.17907246,0,0,0.26458333,57.910033,-263.31175)"
+       x1="415.108"
+       y1="998.44617"
+       x2="413.9006"
+       y2="1131.2222" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient31"
+       id="linearGradient7"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25380633,0,0,0.26458333,26.900009,-210.3657)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient39"
+       id="linearGradient8"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.41255389,0,0,0.35686399,-38.970617,-249.58893)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient47"
+       id="linearGradient9"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.47907843,0,0,0.45591809,-66.583633,-295.4947)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient55"
+       id="linearGradient10"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.53632569,0,0,0.55047647,-90.341113,-337.01248)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient25"
+       id="linearGradient11"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.17907246,0,0,0.26458333,110.85722,-263.34117)"
+       x1="415.108"
+       y1="998.44617"
+       x2="413.9006"
+       y2="1131.2222" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient33"
+       id="linearGradient12"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25380633,0,0,0.26458333,79.847193,-210.39512)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient41"
+       id="linearGradient13"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.41255389,0,0,0.35686399,13.976563,-249.61835)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient49"
+       id="linearGradient14"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.47907843,0,0,0.45591809,-13.493908,-295.52412)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient57"
+       id="linearGradient15"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.53632569,0,0,0.55047647,-37.017465,-337.0419)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient27"
+       id="linearGradient16"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.17907246,0,0,0.26458333,163.75994,-263.39253)"
+       x1="415.108"
+       y1="998.44617"
+       x2="413.9006"
+       y2="1131.2222" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient35"
+       id="linearGradient17"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.25380633,0,0,0.26458333,132.74992,-210.44648)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient43"
+       id="linearGradient18"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.41255389,0,0,0.35686399,66.879296,-249.66971)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient51"
+       id="linearGradient19"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.47907843,0,0,0.45591809,39.559688,-295.57548)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient59"
+       id="linearGradient20"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.53632569,0,0,0.55047647,15.743779,-337.09326)"
+       x1="415.108"
+       y1="998.44617"
+       x2="414.71527"
+       y2="1129.9205" />
+  </defs>
+  <g
+     inkscape:label="Ebene 1"
+     inkscape:groupmode="layer"
+     id="layer1">
+    <path
+       style="fill:url(#linearGradient98);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.244553;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 25.792044,25.463339 c -0.161025,-0.0539 -0.422881,-0.15642 -0.581899,-0.22788 -0.371667,-0.16704 -1.106232,-0.1687 -1.701468,-0.004 -0.626377,0.17343 -1.056723,0.12515 -1.296857,-0.14547 -0.417531,-0.47054 -0.655684,-1.28172 -0.837113,-2.85131 -0.304013,-2.63006 -0.251919,-6.19331 0.136078,-9.30778 0.510722,-4.0995389 1.499265,-7.7754968 2.950472,-10.971475 l 0.505699,-1.11370885 h 1.595356 1.595355 l 0.3251,0.67944945 c 1.251216,2.6150282 2.271674,5.9773764 2.837239,9.3484944 0.455962,2.71783 0.615367,4.65286 0.615519,7.47184 1.79e-4,4.08498 -0.377442,6.32354 -1.159319,6.87173 -0.231207,0.16211 -0.618924,0.1628 -1.199305,0.003 -0.522899,-0.14475 -1.538482,-0.12882 -1.664853,0.0262 -0.244576,0.2999 -1.495472,0.43077 -2.120004,0.2218 z"
+       id="path97" />
+    <path
+       style="fill:url(#linearGradient99);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.291145;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 25.18048,78.409387 c -0.22823,-0.0539 -0.59937,-0.15642 -0.82475,-0.22788 -0.52678,-0.16704 -1.5679,-0.1687 -2.41155,-0.004 -0.88779,0.17343 -1.49774,0.12515 -1.83809,-0.14547 -0.59178,-0.47054 -0.92933,-1.28172 -1.18646,-2.85131 -0.4309,-2.63006 -0.35707,-6.19331 0.19287,-9.30778 0.72386,-4.09954 2.12495,-7.775497 4.1818,-10.971476 l 0.71675,-1.113708 h 2.26116 2.26116 l 0.46078,0.679449 c 1.773385,2.615028 3.219725,5.977376 4.021315,9.348495 0.64627,2.71783 0.8722,4.65286 0.8724,7.47184 2.6e-4,4.08498 -0.53495,6.32354 -1.64314,6.87173 -0.32769,0.16211 -0.87722,0.1628 -1.699825,0.003 -0.74112,-0.14475 -2.18055,-0.12882 -2.35966,0.0262 -0.34664,0.2999 -2.11959,0.43077 -3.00476,0.2218 z"
+       id="path97-7" />
+    <path
+       style="fill:url(#linearGradient101);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.431091;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 24.502365,139.94364 c -0.37098,-0.0727 -0.97426,-0.21097 -1.34061,-0.30735 -0.85626,-0.2253 -2.54857,-0.22754 -3.91989,-0.005 -1.44307,0.23392 -2.43453,0.1688 -2.98776,-0.19621 -0.96192,-0.63465 -1.5106,-1.72875 -1.92857,-3.84578 -0.7004,-3.54736 -0.58039,-8.35339 0.3135,-12.55412 1.17662,-5.52935 3.45406,-10.48742 6.7974,-14.79808 l 1.16506,-1.50215 h 3.67544 3.67543 l 0.74898,0.91643 c 2.88259,3.52709 5.23357,8.06215 6.53653,12.60904 1.05047,3.66575 1.41772,6.27567 1.41806,10.07785 4.2e-4,5.50973 -0.86956,8.52905 -2.67087,9.26843 -0.53267,0.21865 -1.42591,0.21958 -2.76302,0.004 -1.20467,-0.19524 -3.54441,-0.17375 -3.83555,0.0353 -0.56344,0.40449 -3.44532,0.58101 -4.88413,0.29916 z"
+       id="path97-7-5" />
+    <path
+       style="fill:url(#linearGradient103);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.525078;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 24.46328,202.19099 c -0.430801,-0.0928 -1.131363,-0.26953 -1.556783,-0.39266 -0.994333,-0.28784 -2.959524,-0.2907 -4.551965,-0.007 -1.675769,0.29884 -2.827103,0.21564 -3.469549,-0.25068 -1.117017,-0.81081 -1.754172,-2.20859 -2.239545,-4.91324 -0.813338,-4.532 -0.673975,-10.67203 0.364054,-16.03875 1.366336,-7.06382 4.011013,-13.39809 7.893482,-18.90525 l 1.352916,-1.91909 h 4.26811 4.268102 l 0.869755,1.1708 c 3.347409,4.50609 6.077488,10.29995 7.59055,16.1089 1.219861,4.68324 1.64633,8.0176 1.64672,12.87513 4.88e-4,7.03907 -1.009776,10.89645 -3.101545,11.84106 -0.618566,0.27934 -1.655839,0.28053 -3.20855,0.005 -1.398921,-0.24943 -4.115946,-0.22198 -4.454047,0.0451 -0.654305,0.51676 -4.000878,0.74228 -5.671705,0.38219 z"
+       id="path97-7-5-6" />
+    <path
+       style="fill:url(#linearGradient105);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.610465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 24.280423,263.91765 c -0.482282,-0.1121 -1.266553,-0.32543 -1.742812,-0.4741 -1.113148,-0.34754 -3.31317,-0.351 -5.095901,-0.008 -1.87601,0.36083 -3.164921,0.26037 -3.884136,-0.30267 -1.250495,-0.97897 -1.963792,-2.66666 -2.507162,-5.93226 -0.910528,-5.47194 -0.754508,-12.88543 0.407556,-19.36522 1.529603,-8.52923 4.490306,-16.17724 8.836713,-22.8266 l 1.514576,-2.31712 h 4.778129 4.778121 l 0.973679,1.41363 c 3.747411,5.44066 6.803719,12.43618 8.497585,19.44993 1.365624,5.65455 1.843056,9.68046 1.84349,15.54546 5.45e-4,8.49898 -1.13044,13.15639 -3.472158,14.29691 -0.692486,0.33728 -1.853705,0.33871 -3.591958,0.006 -1.566085,-0.30116 -4.607776,-0.26801 -4.986278,0.0544 -0.732494,0.62394 -4.478963,0.89623 -6.349444,0.46146 z"
+       id="path97-7-5-6-8" />
+    <path
+       style="fill:url(#linearGradient1);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.244553;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 78.53209,25.555675 c -0.16103,-0.0539 -0.42288,-0.15642 -0.5819,-0.22788 -0.37167,-0.16704 -1.10623,-0.1687 -1.70147,-0.004 -0.62638,0.17343 -1.05672,0.12515 -1.29686,-0.14547 -0.41753,-0.47054 -0.65568,-1.28172 -0.83711,-2.85131 -0.30401,-2.63006 -0.25192,-6.19331 0.13608,-9.30778 C 74.76155,8.9196963 75.75009,5.2437363 77.2013,2.0477563 L 77.707,0.93404626 h 1.59536 1.59535 l 0.3251,0.67945004 c 1.25122,2.61503 2.27168,5.97738 2.83724,9.3484987 0.45596,2.71783 0.61537,4.65286 0.61552,7.47184 1.8e-4,4.08498 -0.37744,6.32354 -1.15932,6.87173 -0.23121,0.16211 -0.61892,0.1628 -1.1993,0.003 -0.5229,-0.14475 -1.53849,-0.12882 -1.66486,0.0262 -0.24457,0.2999 -1.49547,0.43077 -2.12,0.2218 z"
+       id="path97-2" />
+    <path
+       style="fill:url(#linearGradient2);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.291145;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 78.21285,78.501725 c -0.22823,-0.0539 -0.59937,-0.15643 -0.82475,-0.22789 -0.52678,-0.16704 -1.5679,-0.1687 -2.41155,-0.004 -0.88779,0.17344 -1.49774,0.12515 -1.83809,-0.14547 -0.59178,-0.47053 -0.92933,-1.28172 -1.18646,-2.8513 -0.4309,-2.63006 -0.35707,-6.19331 0.19287,-9.30779 0.72386,-4.09954 2.12495,-7.77549 4.1818,-10.97147 l 0.71675,-1.11371 h 2.26116 2.26116 l 0.46078,0.67945 c 1.77338,2.61503 3.21972,5.97738 4.02131,9.3485 0.64627,2.71782 0.8722,4.65285 0.8724,7.47183 2.6e-4,4.08498 -0.53495,6.32354 -1.64314,6.87174 -0.32769,0.1621 -0.87722,0.1628 -1.69982,0.003 -0.74112,-0.14474 -2.18055,-0.12882 -2.35966,0.0262 -0.34664,0.29989 -2.11959,0.43077 -3.00476,0.22179 z"
+       id="path97-7-54" />
+    <path
+       style="fill:url(#linearGradient3);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.431091;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 77.53474,140.03597 c -0.37098,-0.0727 -0.97427,-0.21097 -1.34061,-0.30735 -0.85627,-0.2253 -2.54857,-0.22754 -3.91989,-0.005 -1.44307,0.23392 -2.43453,0.1688 -2.98777,-0.19621 -0.96191,-0.63465 -1.51059,-1.72875 -1.92856,-3.84578 -0.7004,-3.54736 -0.5804,-8.35339 0.31349,-12.55412 1.17662,-5.52935 3.45406,-10.48742 6.79741,-14.79808 l 1.16506,-1.50215 h 3.67543 3.67544 l 0.74897,0.91643 c 2.88259,3.52709 5.23357,8.06215 6.53653,12.60904 1.05047,3.66575 1.41772,6.27567 1.41806,10.07785 4.2e-4,5.50973 -0.86956,8.52905 -2.67087,9.26843 -0.53267,0.21865 -1.42591,0.21958 -2.76302,0.004 -1.20466,-0.19524 -3.54441,-0.17375 -3.83555,0.0353 -0.56344,0.40449 -3.44531,0.58101 -4.88412,0.29916 z"
+       id="path97-7-5-7" />
+    <path
+       style="fill:url(#linearGradient4);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.525078;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 77.622248,202.28332 c -0.430801,-0.0928 -1.131363,-0.26953 -1.556783,-0.39266 -0.994333,-0.28784 -2.959525,-0.2907 -4.551965,-0.007 -1.67577,0.29884 -2.827103,0.21564 -3.469549,-0.25068 -1.117017,-0.81081 -1.754175,-2.20859 -2.239548,-4.91324 -0.813338,-4.532 -0.673975,-10.67203 0.364054,-16.03875 1.366338,-7.06382 4.011016,-13.39809 7.893484,-18.90525 l 1.352917,-1.91909 h 4.26811 4.268102 l 0.869755,1.1708 c 3.347409,4.50609 6.077489,10.29995 7.59054,16.1089 1.219854,4.68324 1.646321,8.0176 1.646711,12.87513 4.9e-4,7.03907 -1.009774,10.89645 -3.101522,11.84106 -0.618571,0.27934 -1.655844,0.28053 -3.208555,0.005 -1.398921,-0.24943 -4.115945,-0.22198 -4.454046,0.0451 -0.654306,0.51676 -4.000878,0.74228 -5.671705,0.38219 z"
+       id="path97-7-5-6-4" />
+    <path
+       style="fill:url(#linearGradient5);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.610465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 77.138555,264.00998 c -0.482281,-0.1121 -1.266553,-0.32543 -1.742811,-0.4741 -1.113148,-0.34754 -3.313171,-0.351 -5.095901,-0.008 -1.876011,0.36083 -3.164921,0.26037 -3.884136,-0.30267 -1.250495,-0.97897 -1.963792,-2.66666 -2.507162,-5.93226 -0.910528,-5.47194 -0.754508,-12.88543 0.407556,-19.36522 1.529603,-8.52923 4.490306,-16.17724 8.836712,-22.8266 l 1.514576,-2.31712 h 4.778129 4.778121 l 0.97368,1.41363 c 3.747394,5.44066 6.803689,12.43618 8.497547,19.44993 1.365614,5.65455 1.843041,9.68046 1.843471,15.54546 5.5e-4,8.49898 -1.130424,13.15639 -3.472132,14.29691 -0.692484,0.33728 -1.853688,0.33871 -3.591939,0.006 -1.566071,-0.30116 -4.607765,-0.26801 -4.986267,0.0544 -0.732494,0.62394 -4.478963,0.89623 -6.349444,0.46146 z"
+       id="path97-7-5-6-8-4" />
+    <path
+       style="fill:url(#linearGradient6);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.244553;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 131.44934,25.576041 c -0.16103,-0.0539 -0.42288,-0.15642 -0.5819,-0.22788 -0.37167,-0.16704 -1.10623,-0.1687 -1.70147,-0.004 -0.62638,0.17343 -1.05672,0.12515 -1.29686,-0.14547 -0.41753,-0.470542 -0.65568,-1.281722 -0.83711,-2.851312 -0.30401,-2.63006 -0.25192,-6.19331 0.13608,-9.30778 0.51072,-4.0995335 1.49926,-7.7754915 2.95047,-10.9714695 l 0.5057,-1.11370931 h 1.59536 1.59535 l 0.3251,0.67945001 c 1.25122,2.6150283 2.27167,5.9773763 2.83724,9.3484908 0.45596,2.717828 0.61537,4.652858 0.61552,7.471838 1.8e-4,4.08498 -0.37744,6.32354 -1.15932,6.871732 -0.23121,0.16211 -0.61892,0.1628 -1.19931,0.003 -0.52289,-0.14475 -1.53848,-0.12882 -1.66485,0.0262 -0.24457,0.2999 -1.49547,0.43077 -2.12,0.2218 z"
+       id="path97-0" />
+    <path
+       style="fill:url(#linearGradient7);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.291145;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 131.1301,78.522091 c -0.22823,-0.0539 -0.59937,-0.15642 -0.82475,-0.22788 -0.52678,-0.16704 -1.5679,-0.1687 -2.41155,-0.004 -0.88779,0.17343 -1.49774,0.12515 -1.83809,-0.14547 -0.59178,-0.47054 -0.92933,-1.28172 -1.18646,-2.85131 -0.4309,-2.63006 -0.35707,-6.19331 0.19287,-9.30778 0.72386,-4.09954 2.12495,-7.7755 4.1818,-10.97148 l 0.71675,-1.11371 h 2.26116 2.26116 l 0.46078,0.67945 c 1.77338,2.61503 3.21972,5.97738 4.02131,9.3485 0.64627,2.71783 0.8722,4.65286 0.8724,7.47184 2.6e-4,4.08498 -0.53495,6.32354 -1.64314,6.87173 -0.32769,0.16211 -0.87722,0.1628 -1.69982,0.003 -0.74112,-0.14475 -2.18055,-0.12882 -2.35966,0.0262 -0.34664,0.2999 -2.11959,0.43077 -3.00476,0.2218 z"
+       id="path97-7-6" />
+    <path
+       style="fill:url(#linearGradient8);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.431091;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 130.45198,140.05633 c -0.37098,-0.0727 -0.97426,-0.21097 -1.34061,-0.30735 -0.85626,-0.2253 -2.54857,-0.22754 -3.91989,-0.005 -1.44307,0.23392 -2.43453,0.1688 -2.98776,-0.19621 -0.96192,-0.63465 -1.5106,-1.72875 -1.92857,-3.84578 -0.7004,-3.54736 -0.58039,-8.35339 0.3135,-12.55412 1.17662,-5.52935 3.45406,-10.48742 6.7974,-14.79808 l 1.16506,-1.50215 h 3.67544 3.67543 l 0.74898,0.91643 c 2.88259,3.52709 5.23357,8.06215 6.53653,12.60904 1.05047,3.66575 1.41772,6.27567 1.41806,10.07785 4.2e-4,5.50973 -0.86956,8.52905 -2.67087,9.26843 -0.53267,0.21865 -1.42591,0.21958 -2.76302,0.004 -1.20467,-0.19524 -3.54441,-0.17375 -3.83555,0.0353 -0.56344,0.40449 -3.44532,0.58101 -4.88413,0.29916 z"
+       id="path97-7-5-8" />
+    <path
+       style="fill:url(#linearGradient9);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.525078;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 130.15848,202.30368 c -0.4308,-0.0928 -1.13137,-0.26953 -1.55679,-0.39266 -0.99433,-0.28784 -2.95952,-0.2907 -4.55196,-0.007 -1.67577,0.29884 -2.8271,0.21564 -3.46955,-0.25068 -1.11702,-0.81081 -1.75417,-2.20859 -2.23955,-4.91324 -0.81333,-4.532 -0.67397,-10.67203 0.36406,-16.03875 1.36633,-7.06382 4.01101,-13.39809 7.89348,-18.90525 l 1.35292,-1.91909 h 4.26811 4.2681 l 0.86975,1.1708 c 3.34741,4.50609 6.07749,10.29995 7.59055,16.1089 1.21986,4.68324 1.64633,8.0176 1.64672,12.87513 4.9e-4,7.03907 -1.00977,10.89645 -3.10154,11.84106 -0.61857,0.27934 -1.65584,0.28053 -3.20855,0.005 -1.39892,-0.24943 -4.11595,-0.22198 -4.45405,0.0451 -0.6543,0.51676 -4.00088,0.74228 -5.6717,0.38219 z"
+       id="path97-7-5-6-9" />
+    <path
+       style="fill:url(#linearGradient10);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.610465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 129.91066,264.03034 c -0.48228,-0.1121 -1.26655,-0.32543 -1.74281,-0.4741 -1.11315,-0.34754 -3.31317,-0.351 -5.0959,-0.008 -1.87601,0.36083 -3.16492,0.26037 -3.88414,-0.30267 -1.25049,-0.97897 -1.96379,-2.66666 -2.50716,-5.93226 -0.91053,-5.47194 -0.7545,-12.88543 0.40756,-19.36522 1.5296,-8.52923 4.49031,-16.17724 8.83671,-22.8266 l 1.51458,-2.31712 h 4.77813 4.77812 l 0.97368,1.41363 c 3.74741,5.44066 6.80372,12.43618 8.49758,19.44993 1.36563,5.65455 1.84306,9.68046 1.84349,15.54546 5.5e-4,8.49898 -1.13044,13.15639 -3.47216,14.29691 -0.69248,0.33728 -1.8537,0.33871 -3.59195,0.006 -1.56609,-0.30116 -4.60778,-0.26801 -4.98628,0.0544 -0.7325,0.62394 -4.47897,0.89623 -6.34945,0.46146 z"
+       id="path97-7-5-6-8-2" />
+    <path
+       style="fill:url(#linearGradient11);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.244553;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 184.39653,25.546628 c -0.16103,-0.0539 -0.42288,-0.15642 -0.5819,-0.22788 -0.37167,-0.16704 -1.10623,-0.1687 -1.70147,-0.004 -0.62638,0.17343 -1.05672,0.12515 -1.29686,-0.14547 -0.41753,-0.47054 -0.65568,-1.28172 -0.83711,-2.85131 -0.30401,-2.63006 -0.25192,-6.19331 0.13608,-9.30778 0.51072,-4.0995428 1.49926,-7.7755004 2.95047,-10.9714784 l 0.5057,-1.11370925 h 1.59536 1.59535 l 0.3251,0.67945005 c 1.25122,2.6150282 2.27167,5.9773762 2.83724,9.3484936 0.45596,2.717834 0.61537,4.652864 0.61552,7.471844 1.8e-4,4.08498 -0.37744,6.32354 -1.15932,6.87173 -0.23121,0.16211 -0.61892,0.1628 -1.19931,0.003 -0.52289,-0.14475 -1.53848,-0.12882 -1.66485,0.0262 -0.24457,0.2999 -1.49547,0.43077 -2.12,0.2218 z"
+       id="path97-22" />
+    <path
+       style="fill:url(#linearGradient12);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.291145;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 184.07729,78.492668 c -0.22823,-0.0539 -0.59937,-0.15642 -0.82475,-0.22788 -0.52678,-0.16704 -1.5679,-0.1687 -2.41155,-0.004 -0.88779,0.17343 -1.49774,0.12515 -1.83809,-0.14547 -0.59178,-0.47054 -0.92933,-1.28172 -1.18646,-2.85131 -0.4309,-2.63006 -0.35707,-6.19331 0.19287,-9.30778 0.72386,-4.09954 2.12495,-7.77549 4.1818,-10.97147 l 0.71675,-1.11371 h 2.26116 2.26116 l 0.46078,0.67945 c 1.77338,2.61503 3.21972,5.97737 4.02131,9.34849 0.64627,2.71783 0.8722,4.65286 0.8724,7.47184 2.6e-4,4.08498 -0.53495,6.32354 -1.64314,6.87173 -0.32769,0.16211 -0.87722,0.1628 -1.69982,0.003 -0.74112,-0.14475 -2.18055,-0.12882 -2.35966,0.0262 -0.34664,0.2999 -2.11959,0.43077 -3.00476,0.2218 z"
+       id="path97-7-61" />
+    <path
+       style="fill:url(#linearGradient13);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.431091;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 183.39917,140.02691 c -0.37098,-0.0727 -0.97426,-0.21097 -1.34061,-0.30735 -0.85626,-0.2253 -2.54857,-0.22754 -3.91989,-0.005 -1.44307,0.23392 -2.43453,0.1688 -2.98776,-0.19621 -0.96192,-0.63465 -1.5106,-1.72875 -1.92857,-3.84578 -0.7004,-3.54736 -0.58039,-8.35339 0.3135,-12.55412 1.17662,-5.52935 3.45406,-10.48742 6.7974,-14.79808 l 1.16506,-1.50215 h 3.67544 3.67543 l 0.74898,0.91643 c 2.88259,3.52709 5.23357,8.06215 6.53653,12.60904 1.05047,3.66575 1.41772,6.27567 1.41806,10.07785 4.2e-4,5.50973 -0.86956,8.52905 -2.67087,9.26843 -0.53267,0.21865 -1.42591,0.21958 -2.76302,0.004 -1.20467,-0.19524 -3.54441,-0.17375 -3.83555,0.0353 -0.56344,0.40449 -3.44532,0.58101 -4.88413,0.29916 z"
+       id="path97-7-5-0" />
+    <path
+       style="fill:url(#linearGradient14);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.525078;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 183.24826,202.27426 c -0.4308,-0.0928 -1.13136,-0.26953 -1.55678,-0.39266 -0.99433,-0.28784 -2.95952,-0.2907 -4.55196,-0.007 -1.67577,0.29884 -2.82711,0.21564 -3.46955,-0.25068 -1.11702,-0.81081 -1.75418,-2.20859 -2.23955,-4.91324 -0.81334,-4.532 -0.67397,-10.67203 0.36406,-16.03875 1.36633,-7.06382 4.01101,-13.39809 7.89348,-18.90525 l 1.35291,-1.91909 h 4.26811 4.26811 l 0.86975,1.1708 c 3.34741,4.50609 6.07749,10.29995 7.59055,16.1089 1.21986,4.68324 1.64633,8.0176 1.64672,12.87513 4.9e-4,7.03907 -1.00977,10.89645 -3.10154,11.84106 -0.61857,0.27934 -1.65584,0.28053 -3.20855,0.005 -1.39893,-0.24943 -4.11595,-0.22198 -4.45405,0.0451 -0.65431,0.51676 -4.00088,0.74228 -5.67171,0.38219 z"
+       id="path97-7-5-6-6" />
+    <path
+       style="fill:url(#linearGradient15);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.610465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 183.23439,264.00092 c -0.48228,-0.1121 -1.26655,-0.32543 -1.74281,-0.4741 -1.11315,-0.34754 -3.31317,-0.351 -5.0959,-0.008 -1.87601,0.36083 -3.16492,0.26037 -3.88414,-0.30267 -1.25049,-0.97897 -1.96379,-2.66666 -2.50716,-5.93226 -0.91053,-5.47194 -0.75451,-12.88543 0.40756,-19.36522 1.5296,-8.52923 4.4903,-16.17724 8.83671,-22.8266 l 1.51457,-2.31712 h 4.77813 4.77812 l 0.97368,1.41363 c 3.74741,5.44066 6.80372,12.43618 8.49759,19.44993 1.36562,5.65455 1.84305,9.68046 1.84349,15.54546 5.4e-4,8.49898 -1.13044,13.15639 -3.47216,14.29691 -0.69248,0.33728 -1.8537,0.33871 -3.59196,0.006 -1.56608,-0.30116 -4.60777,-0.26801 -4.98628,0.0544 -0.73249,0.62394 -4.47896,0.89623 -6.34944,0.46146 z"
+       id="path97-7-5-6-8-1" />
+    <path
+       style="fill:url(#linearGradient16);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.244553;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 237.29925,25.495248 c -0.16103,-0.0539 -0.42288,-0.15642 -0.5819,-0.22788 -0.37167,-0.16704 -1.10623,-0.1687 -1.70147,-0.004 -0.62638,0.17343 -1.05672,0.12515 -1.29686,-0.14547 -0.41753,-0.47054 -0.65568,-1.28172 -0.83711,-2.85131 -0.30401,-2.63006 -0.25192,-6.19331 0.13608,-9.30778 0.51072,-4.0995388 1.49926,-7.7754985 2.95047,-10.9714785 l 0.5057,-1.11371005 h 1.59536 1.59535 l 0.3251,0.67945005 c 1.25122,2.61503 2.27167,5.97738 2.83724,9.3484985 0.45596,2.71783 0.61537,4.65286 0.61552,7.47184 1.8e-4,4.08498 -0.37744,6.32354 -1.15932,6.87173 -0.23121,0.16211 -0.61892,0.1628 -1.1993,0.003 -0.5229,-0.14475 -1.53849,-0.12882 -1.66486,0.0262 -0.24457,0.2999 -1.49547,0.43077 -2.12,0.2218 z"
+       id="path97-77" />
+    <path
+       style="fill:url(#linearGradient17);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.291145;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 236.98001,78.441298 c -0.22823,-0.0539 -0.59937,-0.15643 -0.82475,-0.22789 -0.52678,-0.16703 -1.5679,-0.1687 -2.41155,-0.004 -0.88779,0.17344 -1.49774,0.12515 -1.83809,-0.14547 -0.59178,-0.47053 -0.92933,-1.28172 -1.18646,-2.8513 -0.4309,-2.63006 -0.35707,-6.19331 0.19287,-9.30779 0.72386,-4.09954 2.12495,-7.77549 4.1818,-10.97147 l 0.71675,-1.11371 h 2.26116 2.26116 l 0.46078,0.67945 c 1.77339,2.61503 3.21972,5.97738 4.02132,9.3485 0.64626,2.71783 0.87219,4.65285 0.87239,7.47183 2.7e-4,4.08498 -0.53494,6.32354 -1.64314,6.87174 -0.32768,0.1621 -0.87722,0.1628 -1.69982,0.003 -0.74112,-0.14474 -2.18055,-0.12882 -2.35966,0.0262 -0.34664,0.29989 -2.11959,0.43077 -3.00476,0.22179 z"
+       id="path97-7-67" />
+    <path
+       style="fill:url(#linearGradient18);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.431091;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 236.3019,139.97555 c -0.37098,-0.0727 -0.97427,-0.21097 -1.34061,-0.30735 -0.85626,-0.2253 -2.54858,-0.22754 -3.91989,-0.005 -1.44308,0.23392 -2.43453,0.1688 -2.98777,-0.19621 -0.96191,-0.63465 -1.5106,-1.72875 -1.92856,-3.84578 -0.7004,-3.54736 -0.5804,-8.35339 0.31349,-12.55412 1.17662,-5.52935 3.45407,-10.48742 6.79741,-14.79808 l 1.16506,-1.50215 h 3.67543 3.67543 l 0.74899,0.91643 c 2.88259,3.52709 5.23356,8.06215 6.53652,12.60904 1.05047,3.66575 1.41773,6.27567 1.41807,10.07785 4.2e-4,5.50973 -0.86957,8.52905 -2.67087,9.26843 -0.53268,0.21865 -1.42592,0.21958 -2.76303,0.004 -1.20466,-0.19524 -3.5444,-0.17375 -3.83555,0.0353 -0.56343,0.40449 -3.44532,0.58101 -4.88412,0.29916 z"
+       id="path97-7-5-3" />
+    <path
+       style="fill:url(#linearGradient19);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.525078;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 236.30191,202.2229 c -0.4308,-0.0928 -1.13137,-0.26953 -1.55679,-0.39266 -0.99433,-0.28784 -2.95952,-0.2907 -4.55196,-0.007 -1.67577,0.29884 -2.8271,0.21564 -3.46955,-0.25068 -1.11702,-0.81081 -1.75417,-2.20859 -2.23955,-4.91324 -0.81333,-4.532 -0.67397,-10.67203 0.36406,-16.03875 1.36633,-7.06382 4.01101,-13.39809 7.89348,-18.90525 l 1.35292,-1.91909 h 4.26811 4.2681 l 0.86975,1.1708 c 3.34741,4.50609 6.07749,10.29995 7.59055,16.1089 1.21986,4.68324 1.64633,8.0176 1.64672,12.87513 4.9e-4,7.03907 -1.00977,10.89645 -3.10154,11.84106 -0.61857,0.27934 -1.65584,0.28053 -3.20855,0.005 -1.39892,-0.24943 -4.11595,-0.22198 -4.45405,0.0451 -0.6543,0.51676 -4.00088,0.74228 -5.6717,0.38219 z"
+       id="path97-7-5-6-65" />
+    <path
+       style="fill:url(#linearGradient20);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.610465;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:0;paint-order:stroke markers fill"
+       d="m 235.99572,263.94956 c -0.48229,-0.1121 -1.26656,-0.32543 -1.74282,-0.4741 -1.11314,-0.34754 -3.31317,-0.351 -5.0959,-0.008 -1.87601,0.36083 -3.16492,0.26037 -3.88413,-0.30267 -1.2505,-0.97897 -1.96379,-2.66666 -2.50716,-5.93226 -0.91053,-5.47194 -0.75451,-12.88543 0.40755,-19.36522 1.5296,-8.52923 4.49031,-16.17724 8.83671,-22.8266 l 1.51458,-2.31712 h 4.77813 4.77812 l 0.97368,1.41363 c 3.74741,5.44066 6.80372,12.43618 8.49758,19.44993 1.36563,5.65455 1.84306,9.68046 1.84349,15.54546 5.5e-4,8.49898 -1.13044,13.15639 -3.47215,14.29691 -0.69249,0.33728 -1.85371,0.33871 -3.59196,0.006 -1.56609,-0.30116 -4.60778,-0.26801 -4.98628,0.0544 -0.73249,0.62394 -4.47896,0.89623 -6.34944,0.46146 z"
+       id="path97-7-5-6-8-6" />
+    <g
+       id="g59"
+       transform="translate(-307.33309,2.6452162)">
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m -0.11596919,-16.139573 c 0,294.823953 0,294.823953 0,294.823953 h -0.0402713"
+         id="path1" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 158.68653,-16.139573 c 0,294.823953 0,294.823953 0,294.823953 h -0.0403"
+         id="path1-2" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 211.62069,-16.139573 c 0,294.823943 0,294.823943 0,294.823943 h -0.0403"
+         id="path1-2-9" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 264.55486,-16.139573 c 0,294.823953 0,294.823953 0,294.823953 h -0.0403"
+         id="path1-2-2" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 105.75236,-16.139573 c 0,294.823963 0,294.823963 0,294.823963 h -0.0403"
+         id="path1-3" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 52.818197,-16.139573 c 0,294.823943 0,294.823943 0,294.823943 h -0.0403"
+         id="path1-26" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 26.351114,-16.139573 c 0,294.823943 0,294.823943 0,294.823943 h -0.0403"
+         id="path1-26-19" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 185.15361,-16.139573 c 0,294.823953 0,294.823953 0,294.823953 h -0.0403"
+         id="path1-2-7" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 238.08778,-16.139573 c 0,294.823943 0,294.823943 0,294.823943 h -0.0403"
+         id="path1-2-9-3" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 132.21945,-16.139573 c 0,294.823963 0,294.823963 0,294.823963 h -0.0403"
+         id="path1-3-6" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 79.28528,-16.139573 c 0,294.823943 0,294.823943 0,294.823943 h -0.0403"
+         id="path1-26-1" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,0.06146158 c -294.823251,0 -294.823251,0 -294.823251,0 v -0.0403"
+         id="path1-4" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,158.86392 c -294.823251,0 -294.823251,0 -294.823251,0 v -0.0403"
+         id="path1-2-5" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,211.79808 c -294.823241,0 -294.823241,0 -294.823241,0 v -0.0403"
+         id="path1-2-9-0" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,264.73225 c -294.823251,0 -294.823251,0 -294.823251,0 v -0.0403"
+         id="path1-2-2-3" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,105.92975 c -294.823261,0 -294.823261,0 -294.823261,0 v -0.0403"
+         id="path1-3-61" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,52.995628 c -294.823241,0 -294.823241,0 -294.823241,0 v -0.0403"
+         id="path1-26-0" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,26.528538 c -294.823241,0 -294.823241,0 -294.823241,0 v -0.0403"
+         id="path1-26-19-6" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,185.331 c -294.823251,0 -294.823251,0 -294.823251,0 v -0.0403"
+         id="path1-2-7-3" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,238.26517 c -294.823241,0 -294.823241,0 -294.823241,0 v -0.0403"
+         id="path1-2-9-3-2" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,132.39684 c -294.823261,0 -294.823261,0 -294.823261,0 v -0.0403"
+         id="path1-3-6-0" />
+      <path
+         style="fill:none;stroke:#000000;stroke-width:0.264583px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+         d="m 273.85902,79.462708 c -294.823241,0 -294.823241,0 -294.823241,0 v -0.0403"
+         id="path1-26-1-6" />
+    </g>
+  </g>
+</svg>

TEMPAT SAMPAH
assets/ship.png


+ 771 - 50
assets/ship.svg

@@ -2,16 +2,16 @@
 <!-- Created with Inkscape (http://www.inkscape.org/) -->
 
 <svg
-   width="210mm"
-   height="297mm"
-   viewBox="0 0 210 297"
+   width="273.51352"
+   height="963.49164"
+   viewBox="0 0 72.367119 254.92383"
    version="1.1"
    id="svg1"
    sodipodi:docname="ship.svg"
    inkscape:version="1.3 (0e150ed6c4, 2023-07-21)"
-   inkscape:export-filename="flame.png"
-   inkscape:export-xdpi="300"
-   inkscape:export-ydpi="300"
+   inkscape:export-filename="ship.png"
+   inkscape:export-xdpi="150"
+   inkscape:export-ydpi="150"
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    xmlns:xlink="http://www.w3.org/1999/xlink"
@@ -27,13 +27,13 @@
      inkscape:pagecheckerboard="1"
      inkscape:deskcolor="#505050"
      inkscape:document-units="mm"
-     inkscape:zoom="0.84100811"
-     inkscape:cx="485.72659"
-     inkscape:cy="929.24193"
+     inkscape:zoom="2.8284271"
+     inkscape:cx="107.83378"
+     inkscape:cy="881.23182"
      inkscape:window-width="1920"
-     inkscape:window-height="949"
+     inkscape:window-height="1001"
      inkscape:window-x="1920"
-     inkscape:window-y="104"
+     inkscape:window-y="52"
      inkscape:window-maximized="1"
      inkscape:current-layer="layer1" />
   <defs
@@ -153,10 +153,10 @@
        inkscape:collect="always"
        xlink:href="#linearGradient91"
        id="radialGradient93"
-       cx="99.549764"
-       cy="131.88755"
-       fx="99.549764"
-       fy="131.88755"
+       cx="99.549767"
+       cy="131.88754"
+       fx="99.549767"
+       fy="131.88754"
        r="21.466106"
        gradientTransform="matrix(1,0,0,4.1858757,9.3124254,-433.37777)"
        gradientUnits="userSpaceOnUse" />
@@ -952,121 +952,839 @@
        r="74.326805"
        gradientTransform="matrix(0.26458333,0,0,0.02027074,39.325698,228.95506)"
        gradientUnits="userSpaceOnUse" />
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter1"
+       x="-0.0090821746"
+       y="-0.002281066"
+       width="1.018215"
+       height="1.0045507">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix1"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix31" />
+      <feColorMatrix
+         id="feColorMatrix32"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter2"
+       x="-0.037808324"
+       y="-0.0010483277"
+       width="1.0393703"
+       height="1.0020967">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix2"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix33" />
+      <feColorMatrix
+         id="feColorMatrix34"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter3"
+       x="-0.037808324"
+       y="-0.0010483277"
+       width="1.0393703"
+       height="1.0020967">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix3"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix35" />
+      <feColorMatrix
+         id="feColorMatrix36"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter4"
+       x="-0.037808324"
+       y="-0.0010483277"
+       width="1.0393703"
+       height="1.0020967">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix4"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix37" />
+      <feColorMatrix
+         id="feColorMatrix38"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter5"
+       x="-0.037808324"
+       y="-0.0010483277"
+       width="1.0393703"
+       height="1.0020967">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix5"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix39" />
+      <feColorMatrix
+         id="feColorMatrix40"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter6"
+       x="-0.0023072309"
+       y="-0.031178777"
+       width="1.0045647"
+       height="1.0623394">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix6"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix41" />
+      <feColorMatrix
+         id="feColorMatrix42"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter7"
+       x="-0.0026514825"
+       y="-0.023371868"
+       width="1.0049809"
+       height="1.0467437">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix7"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix43" />
+      <feColorMatrix
+         id="feColorMatrix44"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter8"
+       x="-0.0028753164"
+       y="-0.023734814"
+       width="1.0058977"
+       height="1.0474543">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix8"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix45" />
+      <feColorMatrix
+         id="feColorMatrix46"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter9"
+       x="-0.0026539241"
+       y="-0.02338617"
+       width="1.006138"
+       height="1.0467569">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix9"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix47" />
+      <feColorMatrix
+         id="feColorMatrix48"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter10"
+       x="-0.0030043315"
+       y="-0.023720546"
+       width="1.0060087"
+       height="1.0474411">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix10"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix49" />
+      <feColorMatrix
+         id="feColorMatrix50"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter11"
+       x="-0.018175459"
+       y="-0.10896631"
+       width="1.0363509"
+       height="1.2179323">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix11"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix51" />
+      <feColorMatrix
+         id="feColorMatrix52"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter12"
+       x="-0.024256974"
+       width="1.0485139"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix12"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix53" />
+      <feColorMatrix
+         id="feColorMatrix54"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter13"
+       x="-0.024880033"
+       width="1.0497601"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix13"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix55" />
+      <feColorMatrix
+         id="feColorMatrix56"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter14"
+       x="-0.026014693"
+       width="1.0520294"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix14"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix57" />
+      <feColorMatrix
+         id="feColorMatrix58"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter15"
+       x="-0.027662683"
+       width="1.0553254"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix15"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix59" />
+      <feColorMatrix
+         id="feColorMatrix60"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter16"
+       x="-0.029970634"
+       width="1.0599413"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix16"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix61" />
+      <feColorMatrix
+         id="feColorMatrix62"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter17"
+       x="-0.036657761"
+       width="1.0733155"
+       y="-inf"
+       height="inf">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix17"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix63" />
+      <feColorMatrix
+         id="feColorMatrix64"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter18"
+       x="-0.0019357991"
+       y="-3.7020502"
+       width="1.0038716"
+       height="8.4041004">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix18"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix65" />
+      <feColorMatrix
+         id="feColorMatrix66"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter19"
+       x="-0.024431321"
+       y="-0.0055425957"
+       width="1.048862"
+       height="1.01117">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix19"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix67" />
+      <feColorMatrix
+         id="feColorMatrix68"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter20"
+       x="-0.00043535589"
+       y="-416.66645"
+       width="1.0008707"
+       height="834.3329">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix20"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix69" />
+      <feColorMatrix
+         id="feColorMatrix70"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter21"
+       x="-9.1427812e-05"
+       y="-18.691543"
+       width="1.0001829"
+       height="38.383086">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix21"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix71" />
+      <feColorMatrix
+         id="feColorMatrix72"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter22"
+       x="-0.09911009"
+       y="-2.8398873e-05"
+       width="1.1984508"
+       height="1.0000284">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix22"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix73" />
+      <feColorMatrix
+         id="feColorMatrix74"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter23"
+       x="-0.099340741"
+       y="-2.839853e-05"
+       width="1.1984509"
+       height="1.0000284">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix23"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix75" />
+      <feColorMatrix
+         id="feColorMatrix76"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter24"
+       x="-0.0062881238"
+       y="-0.046498099"
+       width="1.0477609"
+       height="1.0697867">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix24"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix77" />
+      <feColorMatrix
+         id="feColorMatrix78"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter25"
+       x="-0.041472821"
+       y="-0.046498099"
+       width="1.0477609"
+       height="1.0697867">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix25"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix79" />
+      <feColorMatrix
+         id="feColorMatrix80"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter26"
+       x="-0.076413127"
+       y="-0.31258404"
+       width="1.1471649"
+       height="1.4728642">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix26"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix81" />
+      <feColorMatrix
+         id="feColorMatrix82"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter27"
+       x="-0.064414696"
+       y="-0.028364141"
+       width="1.0816128"
+       height="1.0312163">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix27"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix83" />
+      <feColorMatrix
+         id="feColorMatrix84"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter28"
+       x="-0.017415795"
+       y="-0.028234164"
+       width="1.0821203"
+       height="1.0310492">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix28"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix85" />
+      <feColorMatrix
+         id="feColorMatrix86"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter29"
+       x="-0.037023954"
+       y="-0.0023172865"
+       width="1.0800653"
+       height="1.0064624">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix29"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix87" />
+      <feColorMatrix
+         id="feColorMatrix88"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
+    <filter
+       inkscape:label="Pixellize"
+       inkscape:menu="Pixel Tools"
+       inkscape:menu-tooltip="Reduce or remove antialiasing around shapes"
+       style="color-interpolation-filters:sRGB;"
+       id="filter30"
+       x="-0.043041356"
+       y="-0.0023172875"
+       width="1.0800653"
+       height="1.0064624">
+      <feColorMatrix
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         id="feColorMatrix30"
+         result="fbSourceGraphic" />
+      <feColorMatrix
+         result="fbSourceGraphicAlpha"
+         in="fbSourceGraphic"
+         values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+         id="feColorMatrix89" />
+      <feColorMatrix
+         id="feColorMatrix90"
+         values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1000 -500 "
+         in="fbSourceGraphic" />
+    </filter>
   </defs>
   <g
      inkscape:label="Ebene 1"
      inkscape:groupmode="layer"
-     id="layer1">
+     id="layer1"
+     transform="translate(-72.801581,-7.6133485)">
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter30)"
        d="m 103.59959,11.419095 -18.853726,31.801853 -3.69738,23.99497 V 167.84272 l 6.027862,8.20796 v 26.01847 l -6.710225,1.75794 v 20.23816 l 16.530404,7.42417"
        id="path1" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter29)"
        d="m 114.30662,11.288216 18.85372,31.80186 3.69738,23.99497 V 167.71184 l -6.02786,8.20796 v 26.01847 l 6.71022,1.75794 v 20.23816 l -16.5304,7.42417"
        id="path1-5" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
-       d="M 157.30975,175.16278 Z"
-       id="path2" />
-    <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter28)"
        d="M 130.39674,262.43855 C 126.61173,224.2475 115.01721,227.47083 115.01721,227.47083"
        id="path3" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:1.99183;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:1.99183;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter27)"
        d="m 88.717284,262.39697 c 3.786181,-37.86814 15.384286,-34.67206 15.384286,-34.67206"
        id="path3-2" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter26)"
        d="m 103.37449,11.812488 c 2.56939,-4.3020351 8.19491,-4.1676341 11.23541,-0.183887"
        id="path4"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter25)"
        d="M 108.32215,29.184812 C 98.867843,30.440035 87.39182,50.50399 87.39182,50.50399"
        id="path5"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter24)"
        d="m 109.70276,29.17961 c 9.4543,1.255223 20.93033,21.319178 20.93033,21.319178"
        id="path5-6"
        sodipodi:nodetypes="cc" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter23)"
        d="m 87.443229,49.668111 -0.166428,36.655972 10.089787,7.272403 v 67.653774 l -8.352562,10.40429 7.787182,12.84634 v 25.0425"
        id="path6" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter22)"
        d="m 130.36076,49.59399 0.16643,36.65597 -10.08979,7.272406 v 67.653774 l 8.35256,10.40429 -7.78718,12.84634 v 25.0425"
        id="path6-6" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter21)"
        d="m 96.835406,208.56274 24.190074,-0.0535"
        id="path7" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter20)"
        d="m 107.9324,29.19127 2.34792,0.0024"
        id="path8" />
     <path
-       style="fill:url(#radialGradient93);stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient93);stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter19)"
        d="m 97.961789,195.94399 v -11.5975 l -3.810082,-6.30177 -3.810079,-6.30177 4.032538,-5.04199 4.032539,-5.04199 V 127.32968 93.000386 l -5.005298,-3.5986 -5.005297,-3.598608 7.94e-4,-14.822058 c 5.29e-4,-8.15213 0.06651,-16.258254 0.146812,-18.013614 l 0.145997,-3.191557 2.245966,-3.382159 c 3.147697,-4.740066 5.596276,-7.820085 8.69452,-10.936679 5.380701,-5.412567 8.700961,-6.692479 12.568861,-4.84511 4.23783,2.024059 9.77216,7.937179 15.22052,16.262273 l 1.90872,2.916518 v 17.996407 17.996408 l -5.0053,3.608339 -5.0053,3.60835 v 34.252524 34.25253 l 4.00424,4.99271 c 2.20233,2.746 4.00424,5.09084 4.00424,5.21078 0,0.11993 -1.65175,2.93958 -3.67055,6.26587 l -3.67053,6.04781 v 11.61427 11.61427 l -2.50265,0.14421 c -1.37646,0.0793 -6.3317,0.14466 -11.01166,0.14521 l -8.509001,0.001 z"
        id="path9" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter18)"
        d="m 103.80901,227.66145 11.8096,-0.27005"
        id="path13" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter17);fill-opacity:1"
        d="M 96.357187,233.33387 H 123.63654"
        id="path14" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter16);fill-opacity:1"
        d="M 93.035176,239.14131 H 126.40117"
        id="path16" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter15);fill-opacity:1"
        d="M 91.246047,244.94876 H 127.39583"
        id="path17" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter14);fill-opacity:1"
        d="M 90.359535,250.7562 H 128.79935"
        id="path18" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter13);fill-opacity:1"
        d="M 89.530228,256.56365 H 129.7231"
        id="path19" />
     <path
-       style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1"
+       style="fill:#000000;stroke:#000000;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter12);fill-opacity:1"
        d="M 89.167933,261.44362 H 130.39319"
        id="path20" />
     <path
-       style="fill:url(#radialGradient78);fill-rule:nonzero;stroke:#000000;stroke-width:0.841;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient78);fill-rule:nonzero;stroke:#000000;stroke-width:0.841;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter11)"
        d="m 98.073018,232.2352 c 0,-0.21299 1.753295,-1.95393 2.486032,-2.46851 1.50045,-1.05372 1.10487,-1.00029 8.74808,-1.18164 6.1986,-0.14707 6.78198,-0.14526 7.39672,0.0228 0.79299,0.21686 1.89636,0.85331 2.67773,1.54458 0.54155,0.47911 1.82703,1.96626 1.82703,2.11367 0,0.0391 -5.20551,0.071 -11.5678,0.071 -6.9399,0 -11.567792,-0.0408 -11.567792,-0.102 z"
        id="path22" />
     <path
-       style="fill:url(#radialGradient81);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient81);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter10)"
        d="m 94.875189,238.06376 c 0,-0.1078 0.617326,-1.47013 1.12698,-2.48702 l 0.606237,-1.20962 h 13.000514 13.0005 l 0.50487,1.01496 c 0.47217,0.94926 1.18092,2.54584 1.18092,2.66024 0,0.0308 -5.83516,0.051 -14.71001,0.051 -8.09051,0 -14.710011,-0.0133 -14.710011,-0.0295 z"
        id="path79" />
     <path
-       style="fill:url(#radialGradient85);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient85);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter9)"
        d="m 92.928684,243.88558 c 0,-0.083 0.4376,-1.55795 0.790377,-2.66408 l 0.341468,-1.07068 15.515491,0.014 15.51549,0.014 0.1601,0.47272 c 0.16969,0.501 0.68414,2.20203 0.87043,2.87804 l 0.1111,0.40321 h -16.65222 c -9.15873,0 -16.652236,-0.0213 -16.652236,-0.0472 z"
        id="path81" />
     <path
-       style="fill:url(#radialGradient86);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient86);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter8)"
        d="m 91.61711,249.48034 c 0.05186,-0.32788 0.395195,-1.92705 0.597027,-2.78081 l 0.167651,-0.70918 17.192222,0.014 17.19222,0.014 0.15799,0.69518 c 0.0869,0.38235 0.26647,1.21448 0.39905,1.84918 l 0.24106,1.154 h -17.9923 -17.992308 z"
        id="path82" />
     <path
-       style="fill:url(#radialGradient87);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient87);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter7)"
        d="m 90.612069,255.29204 c 0.01887,-0.14529 0.152498,-0.99619 0.296958,-1.89088 l 0.262652,-1.62673 h 18.385531 18.38553 l 0.12652,0.7647 c 0.20184,1.21996 0.45265,2.84644 0.45265,2.93539 0,0.0717 -2.32391,0.0817 -18.97208,0.0817 H 90.577761 Z"
        id="path83" />
     <path
-       style="fill:url(#radialGradient88);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient88);fill-rule:nonzero;stroke:#000000;stroke-width:0.176775;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter6)"
        d="m 89.985663,260.18611 c 0.0024,-0.11469 0.07132,-0.74663 0.15294,-1.40427 l 0.148397,-1.19571 19.25541,-0.014 19.25541,-0.014 0.0282,0.12522 c 0.0339,0.15047 0.30769,2.47777 0.30769,2.61499 0,0.0911 -1.04956,0.0963 -19.57628,0.0963 H 89.98112 Z"
        id="path84" />
     <g
        id="g94"
-       transform="matrix(0.49544618,0,0,0.49544618,74.285985,28.979469)">
+       transform="matrix(0.49544618,0,0,0.49544618,74.285985,28.979469)"
+       style="filter:url(#filter5)">
       <rect
          style="fill:#1c1c1c;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
          id="rect93"
@@ -1269,7 +1987,8 @@
     </g>
     <g
        id="g94-1"
-       transform="matrix(-0.49544618,0,0,0.49544618,143.64292,28.979468)">
+       transform="matrix(-0.49544618,0,0,0.49544618,143.64292,28.979468)"
+       style="filter:url(#filter4)">
       <rect
          style="fill:#1c1c1c;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
          id="rect93-5"
@@ -1472,7 +2191,8 @@
     </g>
     <g
        id="g94-2"
-       transform="matrix(0.49544618,0,0,0.49544618,75.14905,170.52248)">
+       transform="matrix(0.49544618,0,0,0.49544618,75.14905,170.52248)"
+       style="filter:url(#filter3)">
       <rect
          style="fill:#1c1c1c;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
          id="rect93-9"
@@ -1675,7 +2395,8 @@
     </g>
     <g
        id="g94-1-5"
-       transform="matrix(-0.49544618,0,0,0.49544618,142.82123,170.52248)">
+       transform="matrix(-0.49544618,0,0,0.49544618,142.82123,170.52248)"
+       style="filter:url(#filter2)">
       <rect
          style="fill:#1c1c1c;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
          id="rect93-5-8"
@@ -1877,7 +2598,7 @@
       </g>
     </g>
     <path
-       style="fill:url(#radialGradient90);fill-rule:nonzero;stroke:#000000;stroke-width:0.99999;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill"
+       style="fill:url(#radialGradient90);fill-rule:nonzero;stroke:#000000;stroke-width:0.99999;stroke-linecap:round;stroke-dasharray:none;stroke-opacity:1;paint-order:stroke markers fill;filter:url(#filter1)"
        d="m 88.9883,226.7449 -7.469042,-3.36416 -0.0028,-9.3473 -0.0028,-9.3473 1.179759,-0.30812 c 0.648867,-0.16946 2.135364,-0.55845 3.303328,-0.86442 l 2.123567,-0.55631 -0.0062,-13.69807 -0.0062,-13.69807 -2.982499,-4.07003 -2.9825,-4.07002 V 117.4448 67.468503 l 1.726073,-11.391014 c 0.949338,-6.265058 1.846085,-11.750744 1.992767,-12.19041 0.505135,-1.514096 18.667457,-31.920559 19.573507,-32.768987 1.0654,-0.99765 3.06162,-1.6120921 4.30224,-1.3242411 0.48232,0.111908 1.44323,0.5290511 2.13536,0.9269851 1.13194,0.650804 2.21126,2.331787 10.73961,16.726369 l 9.4812,16.002852 1.76698,11.471997 1.76698,11.472 -0.001,50.575006 -0.001,50.57501 -2.98872,4.05232 -2.98873,4.05232 v 13.55065 13.55066 l 1.33707,0.37068 c 0.73538,0.20388 2.25727,0.60763 3.38197,0.89722 l 2.04492,0.52653 0.0833,9.29414 0.0833,9.29414 -7.27561,3.28027 -7.27562,3.28026 -1.13137,-1.03629 c -0.62226,-0.56996 -1.74624,-1.33395 -2.49774,-1.69774 -1.29575,-0.62726 -1.75167,-0.6551 -8.82211,-0.5387 -8.34097,0.13733 -9.11545,0.31452 -11.398099,2.60781 -0.600213,0.60301 -1.232866,1.09285 -1.405898,1.08855 -0.173032,-0.004 -3.675671,-1.5217 -7.783645,-3.37199 z m 33.10916,-29.51898 v -12.46961 l 3.75748,-6.17726 c 2.06661,-3.3975 3.8519,-6.42332 3.9673,-6.72405 0.15336,-0.39966 -0.9423,-1.97269 -4.07208,-5.8462 l -4.28191,-5.29942 0.009,-33.31515 0.009,-33.315144 5.02464,-3.58446 5.02464,-3.584466 V 68.289634 49.669109 l -2.68692,-4.048937 c -7.41304,-11.17078 -14.496,-17.450332 -19.68292,-17.450332 -3.58061,0 -7.00088,2.003594 -11.615807,6.804552 -3.052511,3.17556 -5.535123,6.361379 -8.671549,11.127795 -1.19552,1.81683 -2.279854,3.350517 -2.409627,3.408193 -0.129773,0.05768 -0.235953,8.500581 -0.235953,18.762006 v 18.657139 l 4.954993,3.583161 4.954989,3.58315 0.0789,33.339494 0.0789,33.33949 -4.25972,5.32516 c -2.810216,3.5131 -4.195955,5.49131 -4.072329,5.81347 0.103063,0.26859 1.878256,3.2681 3.944871,6.6656 l 3.757483,6.17726 v 12.46961 12.46961 h 13.213309 13.21331 z"
        id="path89" />
   </g>

+ 1 - 1
src/main.rs

@@ -8,7 +8,7 @@ use ship::ShipsPlugin;
 
 fn main() {
     App::new()
-        .insert_resource(ClearColor(Color::rgb(0.3, 0.3, 0.4)))
+        .insert_resource(ClearColor(Color::rgb(0.1, 0.12, 0.2)))
         .add_plugins(CameraPlugin)
         .add_plugins((DefaultPlugins, ShipsPlugin))
         .run();

+ 119 - 30
src/ship.rs

@@ -1,5 +1,6 @@
 use crate::body::{Rotation, Thrust, Velocity};
 use bevy::prelude::*;
+use rand::{thread_rng, Rng};
 
 pub struct ShipsPlugin;
 
@@ -9,11 +10,25 @@ struct Ship;
 #[derive(Component)]
 struct Name(String);
 
+const SEQ_LEN: usize = 16;
+#[derive(Component)]
+struct RandomSequence {
+    seq: [usize; SEQ_LEN],
+    i: usize,
+}
+
+#[derive(Component, Deref, DerefMut)]
+struct AnimationTimer(Timer);
+
 #[derive(Resource)]
 struct TelemetryTimer(Timer);
 
-const RCS_THRUST: f32 = 0.5;
-const MAIN_THRUST: f32 = 0.1;
+const RCS_THRUST_INCR: f32 = 0.5;
+const MAIN_THRUST_INCR: f32 = 0.2;
+const MAIN_THRUST_MIN: f32 = 0.0;
+const MAIN_THRUST_MAX: f32 = 1.0;
+const MAIN_THRUST_ANIMATION_LEVELS: usize = 5;
+const MAIN_THRUST_SPRITES_PER_LEVEL: usize = 5;
 
 impl Plugin for ShipsPlugin {
     fn build(&self, app: &mut App) {
@@ -24,28 +39,59 @@ impl Plugin for ShipsPlugin {
         //.add_systems(Update, print_telemetry)
         .add_systems(Startup, spawn_ships)
         .add_systems(Update, rotate_ship)
-        .add_systems(Update, apply_thrust);
+        .add_systems(Update, apply_thrust)
+        .add_systems(Update, animate_thrust);
     }
 }
 
-fn spawn_ships(mut commands: Commands, asset_server: Res<AssetServer>) {
+fn spawn_ships(
+    mut commands: Commands,
+    asset_server: Res<AssetServer>,
+    mut texture_atlasses: ResMut<Assets<TextureAtlas>>,
+) {
     let ship_texture = asset_server.load("ship.png");
-    commands.spawn((
-        SpriteBundle {
-            texture: ship_texture,
-            transform: Transform::from_xyz(100., 100., 0.).with_scale(Vec3::new(0.2, 0.2, 0.2)),
-            ..default()
-        },
-        Ship,
-        Name("Player".to_string()),
-        Velocity {
-            v: Vec3::new(0., 0., 0.),
-        },
-        Rotation {
-            r: f32::to_radians(0.),
-        },
-        Thrust { t: 0. },
-    ));
+    let flame_texture = asset_server.load("flame.png");
+    let texture_atlas = TextureAtlas::from_grid(
+        flame_texture,
+        Vec2::new(300.0, 300.0),
+        MAIN_THRUST_SPRITES_PER_LEVEL,
+        MAIN_THRUST_ANIMATION_LEVELS,
+        None,
+        None,
+    );
+    let texture_atlas_handle = texture_atlasses.add(texture_atlas);
+
+    commands
+        .spawn((
+            SpriteBundle {
+                texture: ship_texture,
+                transform: Transform::from_xyz(100., 100., 0.).with_scale(Vec3::splat(0.2)),
+                ..default()
+            },
+            Ship,
+            Name("Player".to_string()),
+            Velocity { v: Vec3::ZERO },
+            Rotation {
+                r: f32::to_radians(0.),
+            },
+            Thrust { t: 0. },
+        ))
+        .with_children(|parent| {
+            parent.spawn((
+                SpriteSheetBundle {
+                    texture_atlas: texture_atlas_handle,
+                    transform: Transform::from_scale(Vec3::splat(2.0))
+                        .with_translation(Vec3::new(0.0, -950.0, -10.0)),
+                    ..default()
+                },
+                AnimationTimer(Timer::from_seconds(0.1, TimerMode::Repeating)),
+                RandomSequence {
+                    seq: [(); SEQ_LEN]
+                        .map(|_| thread_rng().gen_range(0..MAIN_THRUST_SPRITES_PER_LEVEL)),
+                    i: 0,
+                },
+            ));
+        });
 }
 
 fn apply_thrust(
@@ -56,14 +102,14 @@ fn apply_thrust(
     for (mut vel, mut thr, mut trans) in &mut q {
         for k in keyboard.get_pressed() {
             match k {
-                KeyCode::ShiftLeft => thr.t += MAIN_THRUST * time.delta_seconds(),
-                KeyCode::ControlLeft => thr.t -= MAIN_THRUST * time.delta_seconds(),
+                KeyCode::ShiftLeft => thr.t += MAIN_THRUST_INCR * time.delta_seconds(),
+                KeyCode::ControlLeft => thr.t -= MAIN_THRUST_INCR * time.delta_seconds(),
                 KeyCode::X => thr.t = 0.,
                 _ => (),
             }
         }
-        thr.t = thr.t.clamp(0., 100.);
-        vel.v += (trans.rotation * Vec3::Y) * thr.t;
+        thr.t = thr.t.clamp(MAIN_THRUST_MIN, MAIN_THRUST_MAX);
+        vel.v += (trans.rotation * Vec3::Y) * thr.t / 5.0;
         trans.translation += vel.v;
     }
 }
@@ -76,8 +122,8 @@ fn rotate_ship(
     for (mut rot, mut transform) in &mut q {
         for k in keyboard.get_pressed() {
             match k {
-                KeyCode::A => rot.r += f32::to_radians(RCS_THRUST) * time.delta_seconds(),
-                KeyCode::D => rot.r -= f32::to_radians(RCS_THRUST) * time.delta_seconds(),
+                KeyCode::A => rot.r += f32::to_radians(RCS_THRUST_INCR) * time.delta_seconds(),
+                KeyCode::D => rot.r -= f32::to_radians(RCS_THRUST_INCR) * time.delta_seconds(),
                 _ => (),
             }
         }
@@ -85,21 +131,64 @@ fn rotate_ship(
     }
 }
 
+fn animate_thrust(
+    time: Res<Time>,
+    mut q_child: Query<(
+        &mut AnimationTimer,
+        &mut TextureAtlasSprite,
+        &mut Visibility,
+        &mut RandomSequence,
+    )>,
+    q_parent: Query<&Thrust>,
+) {
+    for thrust in &q_parent {
+        for (mut timer, mut sprite, mut visible, mut seq) in &mut q_child {
+            timer.tick(time.delta());
+
+            *visible = if thrust.t < 0.001 {
+                Visibility::Hidden
+            } else {
+                Visibility::Visible
+            };
+
+            // Select the row of the sprite sheet
+            // that matches the current thrust level
+            let level = match thrust.t / MAIN_THRUST_MAX {
+                x if x < 0.2 * MAIN_THRUST_MAX => 0,
+                x if x < 0.4 * MAIN_THRUST_MAX => 1,
+                x if x < 0.6 * MAIN_THRUST_MAX => 2,
+                x if x < 0.8 * MAIN_THRUST_MAX => 3,
+                _ => 4,
+            };
+
+            if timer.just_finished() {
+                if seq.i >= SEQ_LEN - 1 {
+                    seq.i = 0;
+                } else {
+                    seq.i = seq.i + 1;
+                }
+                sprite.index = seq.seq[seq.i] + (level * MAIN_THRUST_SPRITES_PER_LEVEL);
+            }
+        }
+    }
+}
+
 #[allow(dead_code)]
 fn print_telemetry(
     time: Res<Time>,
     mut timer: ResMut<TelemetryTimer>,
-    q: Query<(&Name, &Velocity, &Rotation, &Transform), With<Ship>>,
+    q: Query<(&Name, &Velocity, &Rotation, &Transform, &Thrust), With<Ship>>,
 ) {
     if timer.0.tick(time.delta()).just_finished() {
-        for (name, vel, rot, trans) in &q {
+        for (name, vel, rot, trans, thrust) in &q {
             println!(
-                "{}: v={:.4?}, speed={:.4}, point={:.4?}, rot={:.4}",
+                "{}: v={:.4?}, speed={:.4}, dir={:.4?}, rot={:.4}, thrust={:.4}",
                 name.0,
                 vel.v.xy(),
                 vel.v.length(),
                 (trans.rotation * Vec3::Y).xy(),
-                rot.r
+                rot.r,
+                thrust.t,
             );
         }
     }