~starkingdoms/starkingdoms

5fafa22a8a22f6fa8ec87f755b03cfa83bed6170 — ghostlyzsh 1 year, 11 months ago 68ea235
what did i change
M server/src/main.rs => server/src/main.rs +43 -41
@@ 271,27 271,27 @@ fn on_message(
                        0.0,
                    );
                    transform.rotate_z(angle);
                    let mut entity_id = commands
                        .spawn(PlayerBundle {
                            part: PartBundle {
                                part_type: PartType::Hearty,
                                transform: TransformBundle::from(transform),
                                flags: PartFlags { attached: false },
                            },
                            player: Player {
                                addr: *addr,
                                username: username.to_string(),
                                input: component::Input::default(),
                                selected: None,
                                save_eligibility: false,
                            },
                            attach: Attach {
                                associated_player: None,
                                parent: None,
                                children: [None, None, None, None],
                            },
                        });
                    entity_id.insert(Collider::cuboid(
                    let mut entity_id = commands.spawn(PlayerBundle {
                        part: PartBundle {
                            part_type: PartType::Hearty,
                            transform: TransformBundle::from(transform),
                            flags: PartFlags { attached: false },
                        },
                        player: Player {
                            addr: *addr,
                            username: username.to_string(),
                            input: component::Input::default(),
                            selected: None,
                            save_eligibility: false,
                        },
                        attach: Attach {
                            associated_player: None,
                            parent: None,
                            children: [None, None, None, None],
                        },
                    });
                    entity_id
                        .insert(Collider::cuboid(
                            PART_HALF_SIZE / SCALE,
                            PART_HALF_SIZE / SCALE,
                        ))


@@ 980,26 980,26 @@ fn load_savefile(
                offset = Vec2::new(-53., -53.);
                angle_offset = -PI / 2.;
            }
            let mut module = commands
                .spawn(PartBundle {
                    transform: TransformBundle::from(
                        Transform::from_xyz(
                            p_pos.x + offset.x / SCALE * angle.cos(),
                            p_pos.y + offset.y / SCALE * angle.sin(),
                            0.,
                        )
                        .with_rotation(Quat::from_euler(
                            EulerRot::ZYX,
                            angle + angle_offset,
                            0.,
                            0.,
                        )),
                    ),
                    part_type: child.part_type.into(),
                    flags: PartFlags { attached: true },
                });
            let mut module = commands.spawn(PartBundle {
                transform: TransformBundle::from(
                    Transform::from_xyz(
                        p_pos.x + offset.x / SCALE * angle.cos(),
                        p_pos.y + offset.y / SCALE * angle.sin(),
                        0.,
                    )
                    .with_rotation(Quat::from_euler(
                        EulerRot::ZYX,
                        angle + angle_offset,
                        0.,
                        0.,
                    )),
                ),
                part_type: child.part_type.into(),
                flags: PartFlags { attached: true },
            });
            let module_id = module.id();
            module.insert(RigidBody::Dynamic)
            module
                .insert(RigidBody::Dynamic)
                .with_children(|children| {
                    children
                        .spawn(Collider::cuboid(18.75 / SCALE, 23.4375 / SCALE))


@@ 1028,7 1028,9 @@ fn load_savefile(
                    attached_query,
                    part_query,
                )
            } else { [None, None, None, None] };
            } else {
                [None, None, None, None]
            };
            let joint = FixedJointBuilder::new()
                .local_anchor1(vec2(-53. / SCALE, 0. / SCALE))
                .local_basis2(-PI / 2.);

A starkingdoms-client/shipeditor/index.html => starkingdoms-client/shipeditor/index.html +20 -0
@@ 0,0 1,20 @@
<!-- DO NOT CHANGE THIS FILE! -->
<!-- UI is rendered by Svelte. The root of the component tree is src/pages/ShipEditor.svelte. -->
<!doctype html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta
      name="viewport"
      content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>StarKingdoms.IO</title>
  </head>
  <body>
    <div id="mount">
      <!-- Rendered by Svelte -->
    </div>

    <script type="module" src="../src/page_loaders/shipeditor.ts"></script>
  </body>
</html>

A starkingdoms-client/src/page_loaders/shipeditor.ts => starkingdoms-client/src/page_loaders/shipeditor.ts +10 -0
@@ 0,0 1,10 @@
// DO NOT CHANGE THIS FILE!
// It's only purpose is to initialize the Svelte component tree.
// Actual code is in src/pages/ShipEditor.svelte.
import ShipEditor from "../pages/ShipEditor.svelte";

const page = new ShipEditor({
  target: document.getElementById("mount")!,
});

export default page;

M starkingdoms-client/src/pages/Home.svelte => starkingdoms-client/src/pages/Home.svelte +8 -0
@@ 117,6 117,14 @@
  </form>
</Popup>

<span style="position: absolute; right: 0.5rem; top: 0.5rem; background-color: var(--bg-secondary-1);">
    <a href="/shipeditor/" style="color: var(--text)">
        <Button>
        Ship Editor
        </Button>
    </a>
</span>

<span class="footer-left">
  StarKingdoms Client {APP_VERSION} ({COMMIT_HASH})
</span>

A starkingdoms-client/src/pages/ShipEditor.svelte => starkingdoms-client/src/pages/ShipEditor.svelte +50 -0
@@ 0,0 1,50 @@
<script lang="ts">
  import { DEFAULT_CONFIG, loadConfig } from "../config.ts";
  import createDebug from "debug";
  import "../css/themes/catppuccin-mocha.scss";
  import "../css/style.scss";
  import { parseJwt } from "../jwt.ts";
  import HeartIcon from "../icons/HeartIcon.svelte";
  import Popup from "../components/ui/Popup.svelte";
  import Button from "../components/ui/Button.svelte";
  import TextInput from "../components/ui/TextInput.svelte";
  import PasswordInput from "../components/ui/PasswordInput.svelte";
  import tex_hearty from "../assets/hearty.svg";
  import tex_hub from "../assets/hub_off.svg";

  let config = DEFAULT_CONFIG;
  // Top-level await. Sets the default config, and overwrites it when the new config is avail. Thanks reactivity!
  (async () => {
    config = await loadConfig();
  })();

  const logger = createDebug("main");
  logger(
    `Hello, world! StarKingdoms ${APP_VERSION} (${COMMIT_HASH}) at your service!`,
  );
  logger("Current view: ShipEditor.svelte");
</script>

<span style="position: absolute; left: 0px; top: 0px; min-width: 20px; height: 100%; width: 250px; background-color: var(--bg-secondary-2)">
  <ul style="list-style-type: none; width: 100%; padding: 0px; display: inline-block;
                text-align: center; font-size: 48px; margin-block-start: 0px; margin-block-end: 0px;">
    <li style="padding-top: 20px;">
      <img src={tex_hearty} style="width: 50%" />
    </li>
    <li style="padding-top: 20px; vertical-align: middle; text-align: center">
      <span style="position: relative; display: inline-block; height: 2em; line-height: 2em">2</span>
      <img src={tex_hub} style="width: 2em" />
    </li>
  </ul>
</span>
<span style="position: absolute; bottom: 0px; right: 0px; width: calc(100% - 250px); height: 20%; background-color: var(--bg-secondary-1)">

</span>
<canvas id="shipeditor" />

<span class="footer-left">
  StarKingdoms Client {APP_VERSION} ({COMMIT_HASH})
</span>
<span class="footer-right">
  Made with <HeartIcon class="footer-icon" /> by the StarKingdoms team
</span>

M starkingdoms-client/vite.config.ts => starkingdoms-client/vite.config.ts +1 -0
@@ 25,6 25,7 @@ export default defineConfig({
        play: resolve(__dirname, "play/index.html"),
        signup: resolve(__dirname, "signup/index.html"),
        login: resolve(__dirname, "login/index.html"),
        shipeditor: resolve(__dirname, "shipeditor/index.html"),
      },
    },
  },