Skip to content

Commit

Permalink
remove bevy vfx, add saved level
Browse files Browse the repository at this point in the history
  • Loading branch information
lee-orr committed Jan 2, 2023
1 parent 380c949 commit 105dfb5
Show file tree
Hide file tree
Showing 9 changed files with 52 additions and 30 deletions.
12 changes: 1 addition & 11 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ console_error_panic_hook = "0.1"
bevy_asset_loader = { version = "0.14", features = ["standard_dynamic_assets", "stageless" ]}
bevy_common_assets = { version = "0.4", features= [ "json", "yaml"]}
serde = "*"
serde_json = "*"
smooth-bevy-cameras = "*"
bevy_egui = "*"
bevy-inspector-egui = "*"
bevy-sequential-actions = "0.6.0"
bevy_mod_picking = "0.11.0"
bevy_prototype_lyon = "0.7.2"
bevy-vfx-bag = "*"
iyes_loopless = "*"

# Enable a small amount of optimization in debug mode
Expand Down
1 change: 1 addition & 0 deletions assets/levels/edited_level_1672697763.lvl.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"tiles":[{"x":0,"y":0,"z":0,"tile_type":"City"},{"x":0,"y":1,"z":1,"tile_type":"Land"},{"x":0,"y":2,"z":2,"tile_type":"Land"},{"x":0,"y":3,"z":0,"tile_type":"Land"},{"x":0,"y":4,"z":1,"tile_type":"Land"},{"x":0,"y":5,"z":2,"tile_type":"Land"},{"x":0,"y":6,"z":0,"tile_type":"Land"},{"x":0,"y":7,"z":1,"tile_type":"Land"},{"x":0,"y":8,"z":2,"tile_type":"Land"},{"x":0,"y":9,"z":0,"tile_type":"Land"},{"x":1,"y":0,"z":1,"tile_type":"Land"},{"x":1,"y":1,"z":2,"tile_type":"City"},{"x":1,"y":2,"z":0,"tile_type":"Land"},{"x":1,"y":3,"z":1,"tile_type":"Land"},{"x":1,"y":4,"z":2,"tile_type":"Land"},{"x":1,"y":5,"z":0,"tile_type":"Land"},{"x":1,"y":6,"z":1,"tile_type":"Land"},{"x":1,"y":7,"z":2,"tile_type":"Land"},{"x":1,"y":8,"z":0,"tile_type":"Land"},{"x":1,"y":9,"z":1,"tile_type":"Land"},{"x":2,"y":0,"z":2,"tile_type":"City"},{"x":2,"y":1,"z":0,"tile_type":"City"},{"x":2,"y":2,"z":1,"tile_type":"Land"},{"x":2,"y":3,"z":2,"tile_type":"Land"},{"x":2,"y":4,"z":0,"tile_type":"Land"},{"x":2,"y":5,"z":1,"tile_type":"Land"},{"x":2,"y":6,"z":2,"tile_type":"Land"},{"x":2,"y":7,"z":0,"tile_type":"Land"},{"x":2,"y":8,"z":1,"tile_type":"Land"},{"x":2,"y":9,"z":2,"tile_type":"Land"},{"x":3,"y":0,"z":0,"tile_type":"Land"},{"x":3,"y":1,"z":1,"tile_type":"Land"},{"x":3,"y":2,"z":2,"tile_type":"Land"},{"x":3,"y":3,"z":0,"tile_type":"Land"},{"x":3,"y":4,"z":1,"tile_type":"Land"},{"x":3,"y":5,"z":2,"tile_type":"Land"},{"x":3,"y":6,"z":0,"tile_type":"Land"},{"x":3,"y":7,"z":1,"tile_type":"Land"},{"x":3,"y":8,"z":2,"tile_type":"Land"},{"x":3,"y":9,"z":0,"tile_type":"Land"},{"x":4,"y":0,"z":1,"tile_type":"Land"},{"x":4,"y":1,"z":2,"tile_type":"Land"},{"x":4,"y":2,"z":0,"tile_type":"Land"},{"x":4,"y":3,"z":1,"tile_type":"Land"},{"x":4,"y":4,"z":2,"tile_type":"Land"},{"x":4,"y":5,"z":0,"tile_type":"Land"},{"x":4,"y":6,"z":1,"tile_type":"Land"},{"x":4,"y":7,"z":2,"tile_type":"Land"},{"x":4,"y":8,"z":0,"tile_type":"Land"},{"x":4,"y":9,"z":1,"tile_type":"Land"},{"x":5,"y":0,"z":2,"tile_type":"Land"},{"x":5,"y":1,"z":0,"tile_type":"Land"},{"x":5,"y":2,"z":1,"tile_type":"Land"},{"x":5,"y":3,"z":2,"tile_type":"Land"},{"x":5,"y":4,"z":0,"tile_type":"Land"},{"x":5,"y":5,"z":1,"tile_type":"Land"},{"x":5,"y":6,"z":2,"tile_type":"Land"},{"x":5,"y":7,"z":0,"tile_type":"Land"},{"x":5,"y":8,"z":1,"tile_type":"Land"},{"x":5,"y":9,"z":2,"tile_type":"Land"},{"x":6,"y":0,"z":0,"tile_type":"Land"},{"x":6,"y":1,"z":1,"tile_type":"Land"},{"x":6,"y":2,"z":2,"tile_type":"Land"},{"x":6,"y":3,"z":0,"tile_type":"Land"},{"x":6,"y":4,"z":1,"tile_type":"Land"},{"x":6,"y":5,"z":2,"tile_type":"Land"},{"x":6,"y":6,"z":0,"tile_type":"Land"},{"x":6,"y":7,"z":1,"tile_type":"Land"},{"x":6,"y":8,"z":2,"tile_type":"Land"},{"x":6,"y":9,"z":0,"tile_type":"Land"},{"x":7,"y":0,"z":1,"tile_type":"Land"},{"x":7,"y":1,"z":2,"tile_type":"Land"},{"x":7,"y":2,"z":0,"tile_type":"Land"},{"x":7,"y":3,"z":1,"tile_type":"Land"},{"x":7,"y":4,"z":2,"tile_type":"Land"},{"x":7,"y":5,"z":0,"tile_type":"Land"},{"x":7,"y":6,"z":1,"tile_type":"Land"},{"x":7,"y":7,"z":2,"tile_type":"Land"},{"x":7,"y":8,"z":0,"tile_type":"Land"},{"x":7,"y":9,"z":1,"tile_type":"Land"},{"x":8,"y":0,"z":2,"tile_type":"Land"},{"x":8,"y":1,"z":0,"tile_type":"Land"},{"x":8,"y":2,"z":1,"tile_type":"Land"},{"x":8,"y":3,"z":2,"tile_type":"Land"},{"x":8,"y":4,"z":0,"tile_type":"Land"},{"x":8,"y":5,"z":1,"tile_type":"Land"},{"x":8,"y":6,"z":2,"tile_type":"Land"},{"x":8,"y":7,"z":0,"tile_type":"Land"},{"x":8,"y":8,"z":1,"tile_type":"Land"},{"x":8,"y":9,"z":2,"tile_type":"Land"},{"x":9,"y":0,"z":0,"tile_type":"Land"},{"x":9,"y":1,"z":1,"tile_type":"Land"},{"x":9,"y":2,"z":2,"tile_type":"Land"},{"x":9,"y":3,"z":0,"tile_type":"Land"},{"x":9,"y":4,"z":1,"tile_type":"Land"},{"x":9,"y":5,"z":2,"tile_type":"Land"},{"x":9,"y":6,"z":0,"tile_type":"Land"},{"x":9,"y":7,"z":1,"tile_type":"Land"},{"x":9,"y":8,"z":2,"tile_type":"Land"},{"x":9,"y":9,"z":0,"tile_type":"Land"}]}
5 changes: 3 additions & 2 deletions src/game/board.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ use iyes_loopless::{
prelude::{AppLooplessStateExt, IntoConditionalSystem},
state::NextState,
};
use serde::{Deserialize, Serialize};

use crate::{
app_state::{AppLoadingState, AppState},
Expand Down Expand Up @@ -43,7 +44,7 @@ struct Board {
pub children: HashMap<(usize, usize), Entity>,
}

#[derive(Component, Default, Debug, Clone, Reflect)]
#[derive(Component, Default, Debug, Clone, Reflect, Serialize, Deserialize)]
#[reflect(Component)]
pub struct Tile {
pub x: usize,
Expand All @@ -52,7 +53,7 @@ pub struct Tile {
pub tile_type: TileType,
}

#[derive(Debug, Clone, Copy, Reflect, PartialEq, Eq, Hash)]
#[derive(Debug, Clone, Copy, Reflect, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum TileType {
Land,
City,
Expand Down
31 changes: 29 additions & 2 deletions src/game/editor_ui.rs
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
use bevy::prelude::*;
use std::io::Write;

use bevy::{asset::FileAssetIo, prelude::*};
use iyes_loopless::prelude::*;

use crate::ui::*;

use super::{
board::{Tile, TileEvent, TileType},
game_state::GameState,
level::Level,
};

pub struct EditorUiPlugin;
Expand Down Expand Up @@ -59,10 +62,12 @@ fn display_ui(mut commands: Commands) {
.spawn(
Div::new()
.position(Val::Auto, Val::Px(2.), Val::Px(2.), Val::Auto)
.horizontal()
.padding(1.),
)
.with_children(|parent| {
parent.spawn(GameButton::new("exit_editor", "X").style(ButtonStyle::Exit));
parent.spawn(GameButton::new("save", "Save").style(ButtonStyle::Small));
parent.spawn(GameButton::new("exit_editor", "X").style(ButtonStyle::Small));
});
});
});
Expand Down Expand Up @@ -92,6 +97,7 @@ fn button_pressed(
mut events: EventReader<ButtonClickEvent>,
mut commands: Commands,
operation: Res<CurrentState<EditorOperation>>,
tiles: Query<&Tile>,
) {
for event in events.iter() {
if event.0 == "exit_editor" {
Expand All @@ -111,6 +117,8 @@ fn button_pressed(
_ => TileType::Land,
};
commands.insert_resource(NextState(EditorOperation::ToggleType(next)));
} else if event.0 == "save" {
save(&tiles);
}
}
}
Expand Down Expand Up @@ -161,3 +169,22 @@ fn tile_hovered_set(
}
}
}

fn save(tiles: &Query<&Tile>) {
let level = Level {
tiles: tiles.iter().cloned().collect(),
};
let mut path = FileAssetIo::get_base_path();
path.push("assets");
path.push("levels");
if let Ok(time) = std::time::SystemTime::now().duration_since(std::time::UNIX_EPOCH) {
let time = time.as_secs();
path.push(format!("edited_level_{time:?}.lvl.json"));

if let Ok(json) = serde_json::to_string(&level) {
if let Ok(mut file) = std::fs::File::create(path) {
let _ = write!(&mut file, "{json}");
}
}
}
}
9 changes: 9 additions & 0 deletions src/game/level.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
use bevy::prelude::*;
use serde::{Deserialize, Serialize};

use super::board::Tile;

#[derive(Resource, Component, Serialize, Deserialize)]
pub struct Level {
pub tiles: Vec<Tile>,
}
1 change: 1 addition & 0 deletions src/game/mod.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
mod board;
mod editor_ui;
mod game_state;
mod level;
mod turn_start_ui;

use bevy::prelude::*;
Expand Down
9 changes: 1 addition & 8 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ use bevy::{
use bevy_asset_loader::prelude::*;
use bevy_mod_picking::{DefaultPickingPlugins, PickingCameraBundle};

use bevy_vfx_bag::PostProcessingInput;
use credits::CreditsPlugin;
use game::GamePlugin;
use iyes_loopless::prelude::*;
Expand Down Expand Up @@ -78,11 +77,6 @@ fn main() {
.add_startup_system(setup)
.add_enter_system(AppLoadingState::Loaded, on_loaded);

// #[cfg(not(target_family = "wasm"))]
// app.add_plugin(BevyVfxBagPlugin)
// .insert_resource(Mask::new_vignette())
// .add_plugin(MaskPlugin);

#[cfg(feature = "dev")]
app.add_plugin(bevy_egui::EguiPlugin)
.add_plugin(bevy_inspector_egui::WorldInspectorPlugin::new());
Expand All @@ -103,8 +97,7 @@ fn setup(mut commands: Commands) {
eye,
target,
))
.insert(PickingCameraBundle::default())
.insert(PostProcessingInput);
.insert(PickingCameraBundle::default());
commands.spawn(DirectionalLightBundle {
transform: Transform::from_rotation(Quat::from_euler(EulerRot::XYZ, -1., 1.2, 0.)),
..Default::default()
Expand Down
12 changes: 6 additions & 6 deletions src/ui/button.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ pub struct GameButton {
pub enum ButtonStyle {
Primary,
Secondary,
Exit,
Small,
}

impl Default for GameButton {
Expand Down Expand Up @@ -49,36 +49,36 @@ impl ButtonStyle {
match self {
Self::Primary => Color::rgb_u8(213, 194, 125),
Self::Secondary => Color::rgb_u8(244, 235, 201),
Self::Exit => Color::rgb_u8(213, 194, 125),
Self::Small => Color::rgb_u8(213, 194, 125),
}
}

fn hover_color(&self) -> Color {
match self {
Self::Primary => Color::rgb_u8(162, 147, 95),
Self::Secondary => Color::rgb_u8(193, 185, 158),
Self::Exit => Color::rgb_u8(162, 147, 95),
Self::Small => Color::rgb_u8(162, 147, 95),
}
}

fn click_color(&self) -> Color {
match self {
Self::Primary => Color::rgb_u8(110, 100, 65),
Self::Secondary => Color::rgb_u8(193, 185, 158),
Self::Exit => Color::rgb_u8(110, 100, 65),
Self::Small => Color::rgb_u8(110, 100, 65),
}
}

fn padding(&self) -> f32 {
match self {
Self::Exit => 5.,
Self::Small => 5.,
_ => 20.,
}
}

fn text_size(&self) -> f32 {
match self {
Self::Exit => 10.,
Self::Small => 10.,
_ => 25.,
}
}
Expand Down

0 comments on commit 105dfb5

Please sign in to comment.