use bevy_ecs::prelude::Event; use bevy_ecs::{event::Events, world::World}; use starkingdoms_common::packet::Packet; use starkingdoms_common::packet::Packet::{ DespawnPart, EnergyUpdate, LoginResponse, Message, OpenCraftingUi, PartPositions, PlanetPositions, PlayerLeave, PlayerList, SpawnPart, SpawnPlayer, }; use starkingdoms_common::PartType; pub mod handlers; pub mod websocket; fn texture_name(part_type: PartType, attached: bool) -> String { use PartType::*; if attached { match part_type { Placeholder => panic!("AHHHH PLACEHOLDER PANIC"), Hearty => "hearty.svg", Chassis => "chassis.svg", Hub => "hub_on.svg", LandingThruster => "landingthruster_on.svg", LandingThrusterSuspension => "landingleg.svg", } .to_string() } else { match part_type { Placeholder => panic!("AHHHH PLACEHOLDER PANIC"), Hearty => "hearty.svg", Chassis => "chassis.svg", Hub => "hub_off.svg", LandingThruster => "landingthruster_off.svg", LandingThrusterSuspension => "landingleg.svg", } .to_string() } } pub fn send_event(e: T, world: &mut World) { let mut events = world.resource_mut::>(); events.send(e); } pub fn send_packet_event(packet: Packet, world: &mut World) { match packet { Packet::ClientLogin(e) => send_event(e, world), Packet::SendMessage(e) => send_event(e, world), Packet::PlayerInput(e) => send_event(e, world), Packet::PlayerMouseInput(e) => send_event(e, world), Packet::RequestSave(e) => send_event(e, world), Packet::_SpecialDisconnect(e) => send_event(e, world), LoginResponse(e) => send_event(e, world), SpawnPlayer(e) => send_event(e, world), PlayerList(e) => send_event(e, world), PlanetPositions(e) => send_event(e, world), PartPositions(e) => send_event(e, world), SpawnPart(e) => send_event(e, world), DespawnPart(e) => send_event(e, world), PlayerLeave(e) => send_event(e, world), Message(e) => send_event(e, world), Packet::SaveEligibility(e) => send_event(e, world), Packet::SaveData(e) => send_event(e, world), EnergyUpdate(e) => send_event(e, world), OpenCraftingUi(e) => send_event(e, world), } }