~starkingdoms/starkingdoms

bca525acf0cd407c1cd9798be87d7e5b597d1d64 — ghostlyzsh 2 years ago 6fca7a4 + 805d601
ok git shut up
77 files changed, 48 insertions(+), 608 deletions(-)

M Cargo.lock
D assets/dist/spritesheet-125
D assets/dist/spritesheet-125.json
D assets/dist/spritesheet-125.png
D assets/dist/spritesheet-375
D assets/dist/spritesheet-375.json
D assets/dist/spritesheet-375.png
D assets/dist/spritesheet-full
D assets/dist/spritesheet-full.json
D assets/dist/spritesheet-full.png
D assets/final/125/autoplr_cfg.png
D assets/final/125/autoplr_error.png
D assets/final/125/autoplr_on.png
D assets/final/125/cargo_off.png
D assets/final/125/cargo_on.png
D assets/final/125/earth.png
D assets/final/125/ecothruster_on.png
D assets/final/125/hearty.png
D assets/final/125/hub_off.png
D assets/final/125/hub_on.png
D assets/final/125/landingleg.png
D assets/final/125/landingthruster_off.png
D assets/final/125/landingthruster_on.png
D assets/final/125/moon.png
D assets/final/125/powerhub_off.png
D assets/final/125/powerhub_on.png
D assets/final/125/starfield.png
D assets/final/125/superthruster_off.png
D assets/final/125/superthruster_on.png
D assets/final/125/thruster_off.png
D assets/final/125/thruster_on.png
D assets/final/375/autoplr_cfg.png
D assets/final/375/autoplr_error.png
D assets/final/375/autoplr_on.png
D assets/final/375/cargo_off.png
D assets/final/375/cargo_on.png
D assets/final/375/earth.png
D assets/final/375/ecothruster_on.png
D assets/final/375/hearty.png
D assets/final/375/hub_off.png
D assets/final/375/hub_on.png
D assets/final/375/landingleg.png
D assets/final/375/landingthruster_off.png
D assets/final/375/landingthruster_on.png
D assets/final/375/moon.png
D assets/final/375/powerhub_off.png
D assets/final/375/powerhub_on.png
D assets/final/375/starfield.png
D assets/final/375/superthruster_off.png
D assets/final/375/superthruster_on.png
D assets/final/375/thruster_off.png
D assets/final/375/thruster_on.png
D assets/final/full/autoplr_cfg.png
D assets/final/full/autoplr_error.png
D assets/final/full/autoplr_on.png
D assets/final/full/cargo_off.png
D assets/final/full/cargo_on.png
D assets/final/full/earth.png
D assets/final/full/ecothruster_on.png
D assets/final/full/hearty.png
D assets/final/full/hub_off.png
D assets/final/full/hub_on.png
D assets/final/full/landingleg.png
D assets/final/full/landingthruster_off.png
D assets/final/full/landingthruster_on.png
D assets/final/full/moon.png
D assets/final/full/powerhub_off.png
D assets/final/full/powerhub_on.png
D assets/final/full/starfield.png
D assets/final/full/superthruster_off.png
D assets/final/full/superthruster_on.png
D assets/final/full/thruster_off.png
D assets/final/full/thruster_on.png
M spacetime_rs/Cargo.toml
M spacetime_rs/src/commands/docker.rs
M spacetime_rs/src/configure/asset.rs
M spacetime_rs/src/main.rs
M Cargo.lock => Cargo.lock +10 -0
@@ 2991,6 2991,15 @@ dependencies = [
]

[[package]]
name = "sedregex"
version = "0.2.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "19411e23596093f03bbd11dc45603b6329bb4bfec77b9fd13e2b9fc9b02efe3e"
dependencies = [
 "regex",
]

[[package]]
name = "semver"
version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"


@@ 3167,6 3176,7 @@ dependencies = [
name = "spacetime"
version = "0.1.0"
dependencies = [
 "sedregex",
 "tabwriter",
 "which",
]

D assets/dist/spritesheet-125 => assets/dist/spritesheet-125 +0 -0
D assets/dist/spritesheet-125.json => assets/dist/spritesheet-125.json +0 -201
@@ 1,201 0,0 @@
{
  "frames": {
    "starfield.png": {
      "frame": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "moon.png": {
      "frame": { "x": 0, "y": 64, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "earth.png": {
      "frame": { "x": 0, "y": 128, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "autoplr_error.png": {
      "frame": { "x": 0, "y": 192, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "autoplr_cfg.png": {
      "frame": { "x": 0, "y": 256, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "hearty.png": {
      "frame": { "x": 0, "y": 320, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "superthruster_on.png": {
      "frame": { "x": 0, "y": 384, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "ecothruster_on.png": {
      "frame": { "x": 0, "y": 448, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "landingthruster_on.png": {
      "frame": { "x": 0, "y": 512, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "thruster_on.png": {
      "frame": { "x": 0, "y": 576, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "landingleg.png": {
      "frame": { "x": 0, "y": 640, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "autoplr_on.png": {
      "frame": { "x": 0, "y": 704, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "hub_on.png": {
      "frame": { "x": 0, "y": 768, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "powerhub_on.png": {
      "frame": { "x": 0, "y": 832, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "superthruster_off.png": {
      "frame": { "x": 0, "y": 896, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "landingthruster_off.png": {
      "frame": { "x": 0, "y": 960, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "thruster_off.png": {
      "frame": { "x": 0, "y": 1024, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "cargo_on.png": {
      "frame": { "x": 0, "y": 1088, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "cargo_off.png": {
      "frame": { "x": 0, "y": 1152, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "powerhub_off.png": {
      "frame": { "x": 0, "y": 1216, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    },
    "hub_off.png": {
      "frame": { "x": 0, "y": 1280, "w": 64, "h": 64 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 64, "h": 64 },
      "sourceSize": { "w": 64, "h": 64 },
      "pivot": { "x": 32, "y": 32 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 64, "h": 64 }
    }
  },
  "meta": {
    "app": "atlasify https://github.com/soimy/atlasify#readme",
    "version": "0.4.1",
    "image": "spritesheet-125.png",
    "format": "RGBA8888",
    "size": { "w": 4096, "h": 4096 },
    "scale": 1
  }
}
\ No newline at end of file

D assets/dist/spritesheet-125.png => assets/dist/spritesheet-125.png +0 -0
D assets/dist/spritesheet-375 => assets/dist/spritesheet-375 +0 -0
D assets/dist/spritesheet-375.json => assets/dist/spritesheet-375.json +0 -201
@@ 1,201 0,0 @@
{
  "frames": {
    "starfield.png": {
      "frame": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "moon.png": {
      "frame": { "x": 0, "y": 192, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "earth.png": {
      "frame": { "x": 0, "y": 384, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "autoplr_error.png": {
      "frame": { "x": 0, "y": 576, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "autoplr_cfg.png": {
      "frame": { "x": 0, "y": 768, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "hearty.png": {
      "frame": { "x": 0, "y": 960, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "superthruster_on.png": {
      "frame": { "x": 0, "y": 1152, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "ecothruster_on.png": {
      "frame": { "x": 0, "y": 1344, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "landingthruster_on.png": {
      "frame": { "x": 0, "y": 1536, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "thruster_on.png": {
      "frame": { "x": 0, "y": 1728, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "landingleg.png": {
      "frame": { "x": 0, "y": 1920, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "autoplr_on.png": {
      "frame": { "x": 0, "y": 2112, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "hub_on.png": {
      "frame": { "x": 0, "y": 2304, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "powerhub_on.png": {
      "frame": { "x": 0, "y": 2496, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "landingthruster_off.png": {
      "frame": { "x": 0, "y": 2688, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "superthruster_off.png": {
      "frame": { "x": 0, "y": 2880, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "thruster_off.png": {
      "frame": { "x": 0, "y": 3072, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "cargo_on.png": {
      "frame": { "x": 0, "y": 3264, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "cargo_off.png": {
      "frame": { "x": 0, "y": 3456, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "powerhub_off.png": {
      "frame": { "x": 0, "y": 3648, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    },
    "hub_off.png": {
      "frame": { "x": 0, "y": 3840, "w": 192, "h": 192 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 192, "h": 192 },
      "sourceSize": { "w": 192, "h": 192 },
      "pivot": { "x": 96, "y": 96 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 192, "h": 192 }
    }
  },
  "meta": {
    "app": "atlasify https://github.com/soimy/atlasify#readme",
    "version": "0.4.1",
    "image": "spritesheet-375.png",
    "format": "RGBA8888",
    "size": { "w": 4096, "h": 4096 },
    "scale": 1
  }
}
\ No newline at end of file

D assets/dist/spritesheet-375.png => assets/dist/spritesheet-375.png +0 -0
D assets/dist/spritesheet-full => assets/dist/spritesheet-full +0 -0
D assets/dist/spritesheet-full.json => assets/dist/spritesheet-full.json +0 -201
@@ 1,201 0,0 @@
{
  "frames": {
    "starfield.png": {
      "frame": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "moon.png": {
      "frame": { "x": 0, "y": 512, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "earth.png": {
      "frame": { "x": 0, "y": 1024, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "autoplr_error.png": {
      "frame": { "x": 0, "y": 1536, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "autoplr_cfg.png": {
      "frame": { "x": 0, "y": 2048, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "hearty.png": {
      "frame": { "x": 0, "y": 2560, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "superthruster_on.png": {
      "frame": { "x": 0, "y": 3072, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "ecothruster_on.png": {
      "frame": { "x": 0, "y": 3584, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "landingthruster_on.png": {
      "frame": { "x": 512, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "thruster_on.png": {
      "frame": { "x": 1024, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "landingleg.png": {
      "frame": { "x": 1536, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "autoplr_on.png": {
      "frame": { "x": 2048, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "hub_on.png": {
      "frame": { "x": 2560, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "powerhub_on.png": {
      "frame": { "x": 3072, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "superthruster_off.png": {
      "frame": { "x": 3584, "y": 0, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "landingthruster_off.png": {
      "frame": { "x": 512, "y": 512, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "thruster_off.png": {
      "frame": { "x": 512, "y": 1024, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "cargo_on.png": {
      "frame": { "x": 512, "y": 1536, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "cargo_off.png": {
      "frame": { "x": 512, "y": 2048, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "powerhub_off.png": {
      "frame": { "x": 512, "y": 2560, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    },
    "hub_off.png": {
      "frame": { "x": 512, "y": 3072, "w": 512, "h": 512 },
      "rotated": false,
      "trimmed": false,
      "spriteSourceSize": { "x": 0, "y": 0, "w": 512, "h": 512 },
      "sourceSize": { "w": 512, "h": 512 },
      "pivot": { "x": 256, "y": 256 },
      "9slicedFrame": { "x": 0, "y": 0, "w": 512, "h": 512 }
    }
  },
  "meta": {
    "app": "atlasify https://github.com/soimy/atlasify#readme",
    "version": "0.4.1",
    "image": "spritesheet-full.png",
    "format": "RGBA8888",
    "size": { "w": 4096, "h": 4096 },
    "scale": 1
  }
}
\ No newline at end of file

D assets/dist/spritesheet-full.png => assets/dist/spritesheet-full.png +0 -0
D assets/final/125/autoplr_cfg.png => assets/final/125/autoplr_cfg.png +0 -0
D assets/final/125/autoplr_error.png => assets/final/125/autoplr_error.png +0 -0
D assets/final/125/autoplr_on.png => assets/final/125/autoplr_on.png +0 -0
D assets/final/125/cargo_off.png => assets/final/125/cargo_off.png +0 -0
D assets/final/125/cargo_on.png => assets/final/125/cargo_on.png +0 -0
D assets/final/125/earth.png => assets/final/125/earth.png +0 -0
D assets/final/125/ecothruster_on.png => assets/final/125/ecothruster_on.png +0 -0
D assets/final/125/hearty.png => assets/final/125/hearty.png +0 -0
D assets/final/125/hub_off.png => assets/final/125/hub_off.png +0 -0
D assets/final/125/hub_on.png => assets/final/125/hub_on.png +0 -0
D assets/final/125/landingleg.png => assets/final/125/landingleg.png +0 -0
D assets/final/125/landingthruster_off.png => assets/final/125/landingthruster_off.png +0 -0
D assets/final/125/landingthruster_on.png => assets/final/125/landingthruster_on.png +0 -0
D assets/final/125/moon.png => assets/final/125/moon.png +0 -0
D assets/final/125/powerhub_off.png => assets/final/125/powerhub_off.png +0 -0
D assets/final/125/powerhub_on.png => assets/final/125/powerhub_on.png +0 -0
D assets/final/125/starfield.png => assets/final/125/starfield.png +0 -0
D assets/final/125/superthruster_off.png => assets/final/125/superthruster_off.png +0 -0
D assets/final/125/superthruster_on.png => assets/final/125/superthruster_on.png +0 -0
D assets/final/125/thruster_off.png => assets/final/125/thruster_off.png +0 -0
D assets/final/125/thruster_on.png => assets/final/125/thruster_on.png +0 -0
D assets/final/375/autoplr_cfg.png => assets/final/375/autoplr_cfg.png +0 -0
D assets/final/375/autoplr_error.png => assets/final/375/autoplr_error.png +0 -0
D assets/final/375/autoplr_on.png => assets/final/375/autoplr_on.png +0 -0
D assets/final/375/cargo_off.png => assets/final/375/cargo_off.png +0 -0
D assets/final/375/cargo_on.png => assets/final/375/cargo_on.png +0 -0
D assets/final/375/earth.png => assets/final/375/earth.png +0 -0
D assets/final/375/ecothruster_on.png => assets/final/375/ecothruster_on.png +0 -0
D assets/final/375/hearty.png => assets/final/375/hearty.png +0 -0
D assets/final/375/hub_off.png => assets/final/375/hub_off.png +0 -0
D assets/final/375/hub_on.png => assets/final/375/hub_on.png +0 -0
D assets/final/375/landingleg.png => assets/final/375/landingleg.png +0 -0
D assets/final/375/landingthruster_off.png => assets/final/375/landingthruster_off.png +0 -0
D assets/final/375/landingthruster_on.png => assets/final/375/landingthruster_on.png +0 -0
D assets/final/375/moon.png => assets/final/375/moon.png +0 -0
D assets/final/375/powerhub_off.png => assets/final/375/powerhub_off.png +0 -0
D assets/final/375/powerhub_on.png => assets/final/375/powerhub_on.png +0 -0
D assets/final/375/starfield.png => assets/final/375/starfield.png +0 -0
D assets/final/375/superthruster_off.png => assets/final/375/superthruster_off.png +0 -0
D assets/final/375/superthruster_on.png => assets/final/375/superthruster_on.png +0 -0
D assets/final/375/thruster_off.png => assets/final/375/thruster_off.png +0 -0
D assets/final/375/thruster_on.png => assets/final/375/thruster_on.png +0 -0
D assets/final/full/autoplr_cfg.png => assets/final/full/autoplr_cfg.png +0 -0
D assets/final/full/autoplr_error.png => assets/final/full/autoplr_error.png +0 -0
D assets/final/full/autoplr_on.png => assets/final/full/autoplr_on.png +0 -0
D assets/final/full/cargo_off.png => assets/final/full/cargo_off.png +0 -0
D assets/final/full/cargo_on.png => assets/final/full/cargo_on.png +0 -0
D assets/final/full/earth.png => assets/final/full/earth.png +0 -0
D assets/final/full/ecothruster_on.png => assets/final/full/ecothruster_on.png +0 -0
D assets/final/full/hearty.png => assets/final/full/hearty.png +0 -0
D assets/final/full/hub_off.png => assets/final/full/hub_off.png +0 -0
D assets/final/full/hub_on.png => assets/final/full/hub_on.png +0 -0
D assets/final/full/landingleg.png => assets/final/full/landingleg.png +0 -0
D assets/final/full/landingthruster_off.png => assets/final/full/landingthruster_off.png +0 -0
D assets/final/full/landingthruster_on.png => assets/final/full/landingthruster_on.png +0 -0
D assets/final/full/moon.png => assets/final/full/moon.png +0 -0
D assets/final/full/powerhub_off.png => assets/final/full/powerhub_off.png +0 -0
D assets/final/full/powerhub_on.png => assets/final/full/powerhub_on.png +0 -0
D assets/final/full/starfield.png => assets/final/full/starfield.png +0 -0
D assets/final/full/superthruster_off.png => assets/final/full/superthruster_off.png +0 -0
D assets/final/full/superthruster_on.png => assets/final/full/superthruster_on.png +0 -0
D assets/final/full/thruster_off.png => assets/final/full/thruster_off.png +0 -0
D assets/final/full/thruster_on.png => assets/final/full/thruster_on.png +0 -0
M spacetime_rs/Cargo.toml => spacetime_rs/Cargo.toml +2 -1
@@ 7,4 7,5 @@ edition = "2021"

[dependencies]
tabwriter = "1.2.1"
which = "4.4.0"
\ No newline at end of file
which = "4.4.0"
sedregex = "0.2.5"
\ No newline at end of file

M spacetime_rs/src/commands/docker.rs => spacetime_rs/src/commands/docker.rs +26 -0
@@ 3,8 3,10 @@ use crate::commands::client::build_client_prod;
use crate::commands::server::build_server_prod;
use crate::ninja::exec;
use std::error::Error;
use std::fs;
use std::path::PathBuf;
use std::process::Command;
use sedregex::find_and_replace;

fn _build(img: &str, channel: &str, root: &PathBuf) -> Result<(), Box<dyn Error>> {
    // compile the various thingies


@@ 13,6 15,30 @@ fn _build(img: &str, channel: &str, root: &PathBuf) -> Result<(), Box<dyn Error>
    } else if img == "api" {
        build_api_prod(vec![], root.clone())?;
    } else {
        // we need to swap out the urls
        // TODO
        // for now i am just adding all three to all clients

        // "s/let api_server = \"http:\\/\\/localhost:8080\";/let api_server = \"https:\\/\\/api.${1}.${2}\";/" "$SCRIPT_DIR/client/index.html"
        // "s/let servers = \[\"localhost:3000\"\];/let servers = [\"${1}.${2}\"];/" "$SCRIPT_DIR/client/index.html"

        let (a, b) = match channel {
            "stable" => ("starkingdoms", "tk"),
            _ => (channel, "starkingdoms.tk")
        };

        let index_html_path = root.clone().join("client/").join("index.html");

        let index_html_src = fs::read_to_string(&index_html_path)?;
        let index_html_patched = find_and_replace(&index_html_src, &[
            format!("s/let api_server = \"http:\\/\\/localhost:8080\";/let api_server = \"https:\\/\\/api.{}.{}\";/", a, b),
            format!("s/let servers = \\[\"localhost:3000\"\\];/let servers = [\"{}.{}\"];/", a, b)
        ])?;

        fs::write(&index_html_path, index_html_patched.as_bytes())?;

        fs::write(root.clone().join("client/").join("index.html.orig"), index_html_src)?;

        build_client_prod(vec![], root.clone())?
    }


M spacetime_rs/src/configure/asset.rs => spacetime_rs/src/configure/asset.rs +9 -3
@@ 17,6 17,7 @@ pub fn configure_assets(writer: &mut NinjaWriter<File>, root: &Path) -> Result<(
        let maybe_asset = maybe_asset?;
        if maybe_asset.file_name().to_str().unwrap().ends_with(".svg") {
            found_assets.push(maybe_asset.path());
            println!("[spacetime][DEBUG] asset: {:?}", maybe_asset.path());
        }
    }



@@ 26,7 27,7 @@ pub fn configure_assets(writer: &mut NinjaWriter<File>, root: &Path) -> Result<(
    );

    let default_asset_size = 512;
    let asset_overrides = HashMap::from([("earth.ink.svg", 2048), ("moon.ink.svg", 2048)]);
    let asset_overrides = HashMap::from([("earth.svg", 2048), ("moon.svg", 2048), ("starfield.svg", 2048)]);

    // generate an inkscape rule for all required asset sizes
    let mut written_rules_for = vec![];


@@ 84,7 85,7 @@ fn gen_packer_rule(
    writer.rule(
        "pack",
        &format!(
            "cd {} && atlasify -m 4096,4096 -o $out $in && touch $out",
            "cd {} && atlasify -m 8096,8096 -o $out $in && touch $out",
            root.join(ASSET_DIR)
                .join(ASSETS_DIST_SUBDIR)
                .to_string_lossy()


@@ 356,7 357,12 @@ fn gen_convert_rule(
}

fn asset_size(asset: &str, overrides: &HashMap<&str, i32>, default: i32) -> i32 {
    *overrides.get(asset).unwrap_or(&default)
    for (ov, size) in overrides {
        if asset.ends_with(ov) {
            return *size;
        }
    }
    default
}

fn gen_inkscape_rule(

M spacetime_rs/src/main.rs => spacetime_rs/src/main.rs +1 -1
@@ 243,7 243,7 @@ impl BuildCommandManager {
    }

    pub fn exec(&self, args: Vec<String>) -> Result<(), Box<dyn Error>> {
        if args.len() < 2 || args[1] == "help" || args[1] == "h" {
        if args.len() < 3 || args[1] == "help" || args[1] == "h" {
            self.help();
            return Ok(());
        }