~starkingdoms/starkingdoms

dcd05507bc9dd1bc908b24e307e45cae474bcc01 — ghostly_zsh 8 months ago 4c612ac
crafing gui exists and follows modules
M crates/client/src/components.rs => crates/client/src/components.rs +3 -0
@@ 82,6 82,9 @@ pub struct Part(pub bool); // Part(attached)
#[derive(Component, Debug, Clone, Copy)]
pub struct ServerId(pub u32);

#[derive(Component, Debug, Clone, Copy)]
pub struct Menu;

#[derive(Event, Clone, PartialEq)]
pub struct SendPacket(pub Packet);
#[derive(Event, Clone, PartialEq)]

M crates/client/src/lib.rs => crates/client/src/lib.rs +1 -1
@@ 1,5 1,5 @@
use bevy_ecs::{event::Events, world::World};
use components::{Camera, Chat, Part, Player, RecvPacket, SendPacket, Texture, Transform};
use components::{Camera, Chat, Menu, Part, Player, RecvPacket, SendPacket, Texture, Transform};
use nalgebra::{Rotation2, Rotation3, Scale2, Scale3, Translation2, Translation3, Vector3};
use networking::ws::Ws;
use rendering::{assets::Assets, App};

M crates/client/src/networking/mod.rs => crates/client/src/networking/mod.rs +1 -1
@@ 9,7 9,7 @@ use bevy_ecs::{
use nalgebra::{Rotation2, Scale2, Scale3, Translation3};
use starkingdoms_common::{packet::Packet, PartType, PlanetType};

use crate::components::{Camera, Chat, Part, Planet, Player, PlayerResources, RecvPacket, SendPacket, ServerId, SpriteBundle, Texture, Transform};
use crate::components::{Camera, Chat, Menu, Part, Planet, Player, PlayerResources, RecvPacket, SendPacket, ServerId, SpriteBundle, Texture, Transform};

#[cfg(target_arch = "wasm32")]
#[path = "ws_wasm.rs"]

M crates/client/src/ui/mod.rs => crates/client/src/ui/mod.rs +17 -1
@@ 3,12 3,13 @@ mod widgets;

use std::f32;

use bevy_ecs::entity::Entity;
use bevy_ecs::event::Events;
use bevy_ecs::prelude::With;
use bevy_ecs::world::World;
use egui::{Align, Align2, CornerRadius, CursorIcon, Layout, Margin, Order, ProgressBar, RichText, Shadow, Stroke, Visuals};
use starkingdoms_common::packet::Packet;
use crate::components::{Chat, Player, PlayerResources, SendPacket, Transform};
use crate::components::{Camera, Chat, Menu, Player, PlayerResources, SendPacket, Transform};
use crate::ui::widgets::{progress_bar, RichTextExt};

pub fn init_ui(ctx: egui::Context) {


@@ 55,6 56,7 @@ pub fn init_ui(ctx: egui::Context) {
pub fn draw_ui(ctx: &egui::Context, world: &mut World, send_packet_events: &mut Events<SendPacket>) {
    draw_status_bar(ctx, world);
    draw_chat(ctx, world, send_packet_events);
    draw_crafting(ctx, world);
}

pub fn draw_status_bar(ctx: &egui::Context, world: &mut World) {


@@ 131,3 133,17 @@ pub fn draw_chat(ctx: &egui::Context, world: &mut World, send_packet_events: &mu
            });
        });
}

pub fn draw_crafting(ctx: &egui::Context, world: &mut World) {
    let mut menus = world.query_filtered::<(Entity, &Transform), With<Menu>>();
    let camera = world.resource::<Camera>();
    for (entity, menu) in menus.iter(&world) {
        egui::Window::new("Crafting")
            .id(format!("Crafting{}", entity.index()).into())
            .pivot(Align2::LEFT_BOTTOM)
            .fixed_pos(((menu.translation.x + camera.x) * camera.zoom + camera.width as f32 / 2.0,
                (menu.translation.y + camera.y) * camera.zoom + camera.height as f32 / 2.0))
            .show(ctx, |ui| {
            });
    }
}