Skip to content

Commit

Permalink
WIP: edit / save level
Browse files Browse the repository at this point in the history
  • Loading branch information
sim82 committed Dec 31, 2023
1 parent 8c60ffa commit f84a9b9
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 9 deletions.
7 changes: 5 additions & 2 deletions src/camera.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,10 @@ use bevy::{
core_pipeline::{bloom::BloomSettings, tonemapping::Tonemapping},
prelude::*,
};
use bevy_mouse_tracking_plugin::{mouse_pos::InitMouseTracking, MainCamera};
use bevy_mouse_tracking_plugin::{
mouse_pos::{InitMouseTracking, InitWorldTracking},
MainCamera,
};
// use bevy_mouse_tracking_plugin::prelude::*;

#[derive(Component, Default)]
Expand All @@ -22,7 +25,7 @@ fn setup_camera_system(mut commands: Commands) {
// BloomSettings::SCREEN_BLUR,
BloomSettings::default(),
))
.add(InitMouseTracking)
.add(InitWorldTracking)
.insert(MainCamera);
}

Expand Down
38 changes: 35 additions & 3 deletions src/edit.rs
Original file line number Diff line number Diff line change
@@ -1,13 +1,45 @@
use crate::{portal::PortalToggleRequest, prelude::*, HEX_LAYOUT};
use bevy::prelude::*;
use bevy_mouse_tracking_plugin::{MousePos, MousePosWorld};
use hexagon_tiles::{hexagon::HexRound, layout::LayoutTool, point::Point};
use std::io::Write;

fn mouse_input_system(mouse_pos: Res<MousePosWorld>) {
info!("mouse pos: {:?}", mouse_pos);
fn mouse_input_system(
mut commands: Commands,
mouse_pos: Res<MousePosWorld>,
buttons: Res<Input<MouseButton>>,
) {
if buttons.just_pressed(MouseButton::Left) {
let hex_pos = LayoutTool::pixel_to_hex(
HEX_LAYOUT,
Point {
x: mouse_pos.x.into(),
y: mouse_pos.y.into(),
},
);
// info!("press: {mouse_pos:?}")

commands.spawn((
TilePos(hex_pos.round()),
// PortalToggleRequest::boundary_only(),
PortalToggleRequest::default(),
));
}
}

fn edit_command_system(input: Res<Input<KeyCode>>, tile_query: Query<&TilePos>) {
if input.just_pressed(KeyCode::F5) {
if let Ok(mut file) = std::fs::File::create("/tmp/level.txt") {
for tile in &tile_query {
write!(file, "{} {} {}\n", tile.0.q(), tile.0.r(), tile.0.s());
}
}
}
}

pub struct EditPlugin;
impl Plugin for EditPlugin {
fn build(&self, app: &mut App) {
app.add_systems(Update, mouse_input_system);
app.add_systems(Update, (mouse_input_system, edit_command_system));
}
}
9 changes: 5 additions & 4 deletions src/input.rs
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,22 @@ fn apply_input_system_8dir(
}
fn apply_input_system_portal_toggle(
mut commands: Commands,
query: Query<&Transform, With<InputTarget>>,
query: Query<&GlobalTransform, With<InputTarget>>,
keyboard_input: Res<Input<KeyCode>>,
) {
for transform in &query {
if keyboard_input.just_pressed(KeyCode::H) {
let hex_pos = LayoutTool::pixel_to_hex(
HEX_LAYOUT,
Point {
x: transform.translation.x.into(),
y: transform.translation.y.into(),
x: transform.translation().x.into(),
y: transform.translation().y.into(),
},
);
commands.spawn((
TilePos(hex_pos.round()),
PortalToggleRequest::boundary_only(),
// PortalToggleRequest::boundary_only(),
PortalToggleRequest::default(),
));
}
}
Expand Down

0 comments on commit f84a9b9

Please sign in to comment.