what did i change
6 files changed, 132 insertions(+), 41 deletions(-) M server/src/main.rs A starkingdoms-client/shipeditor/index.html A starkingdoms-client/src/page_loaders/shipeditor.ts M starkingdoms-client/src/pages/Home.svelte A starkingdoms-client/src/pages/ShipEditor.svelte M starkingdoms-client/vite.config.ts
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