Add name to base game, clean up for web release

main
Elijah Voigt 4 months ago
parent 7b813b54f9
commit a96e86ea9b

@ -7,7 +7,7 @@ dist/trees:
mkdir -p dist/trees mkdir -p dist/trees
# Build the web version # Build the web version
release/trees/web: release/trees/web: src/bin/trees/main.rs src/bin/trees/mono.rs
cargo build --bin trees --release --target wasm32-unknown-unknown cargo build --bin trees --release --target wasm32-unknown-unknown
# Use wasm-bindgen to do some magic # Use wasm-bindgen to do some magic

@ -11,7 +11,7 @@ use games::*;
/// This shows how to do that. /// This shows how to do that.
fn main() { fn main() {
App::new() App::new()
.add_plugins(BaseGamePlugin) .add_plugins(BaseGamePlugin::default())
.init_resource::<InsideArea>() .init_resource::<InsideArea>()
.add_systems( .add_systems(
Startup, Startup,

@ -3,7 +3,7 @@ use games::*;
fn main() { fn main() {
App::new() App::new()
.init_resource::<Thing>() .init_resource::<Thing>()
.add_plugins(BaseGamePlugin) .add_plugins(BaseGamePlugin::default())
.add_systems(Startup, init_ui) .add_systems(Startup, init_ui)
.add_systems( .add_systems(
Update, Update,

@ -1,14 +1,24 @@
use super::*; use super::*;
/// A good starting place for creating a game building on top of the base Bevy app /// A good starting place for creating a game building on top of the base Bevy app
pub struct BaseGamePlugin; pub struct BaseGamePlugin {
pub name: String,
}
impl Default for BaseGamePlugin {
fn default() -> Self {
BaseGamePlugin {
name: "mygame".into(),
}
}
}
impl Plugin for BaseGamePlugin { impl Plugin for BaseGamePlugin {
fn build(&self, app: &mut App) { fn build(&self, app: &mut App) {
app.add_plugins(DefaultPlugins.set(WindowPlugin { app.add_plugins(DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window { primary_window: Some(Window {
fit_canvas_to_parent: true, fit_canvas_to_parent: true,
canvas: Some("game".into()), canvas: Some(format!("#{}-canvas", self.name)),
..default() ..default()
}), }),
..default() ..default()

@ -1,5 +1,7 @@
use games::*; use games::*;
fn main() { fn main() {
App::new().add_plugins(BaseGamePlugin).run(); App::new()
.add_plugins(BaseGamePlugin { name: "hum".into() })
.run();
} }

@ -1,5 +1,9 @@
use games::*; use games::*;
fn main() { fn main() {
App::new().add_plugins(BaseGamePlugin).run(); App::new()
.add_plugins(BaseGamePlugin {
name: "tetris-rpg".into(),
})
.run();
} }

@ -5,13 +5,15 @@
mod mono; mod mono;
use bevy::platform::hash::RandomState; use bevy::platform::hash::RandomState;
use std::hash::BuildHasher;
use games::*; use games::*;
use mono::*; use mono::*;
use std::hash::BuildHasher;
fn main() { fn main() {
App::new() App::new()
.add_plugins(BaseGamePlugin) .add_plugins(BaseGamePlugin {
name: "trees".into(),
})
.add_plugins(MonologueAssetsPlugin) .add_plugins(MonologueAssetsPlugin)
.add_event::<DialogEvent>() .add_event::<DialogEvent>()
.init_state::<DialogState>() .init_state::<DialogState>()
@ -523,8 +525,20 @@ fn delete_tree(trigger: Trigger<Pointer<Click>>, mut commands: Commands) {
} }
} }
fn load_monologues(server: ResMut<AssetServer>, mut loaded_folder: Local<Handle<LoadedFolder>>) { /// Load all monologues so they are in the asset store and trigger on-load events
fn load_monologues(
server: ResMut<AssetServer>,
mut loaded_folder: Local<Handle<LoadedFolder>>,
mut loaded_assets: Local<Vec<Handle<Monologue>>>,
) {
// TODO: Figure out a programatic way to load all assets in the web version...
// Likely a mega asset that points to all sub-assets or something silly
*loaded_folder = server.load_folder("trees"); *loaded_folder = server.load_folder("trees");
*loaded_assets = vec![
server.load("trees/red.mono"),
server.load("trees/green.mono"),
server.load("trees/blue.mono"),
];
} }
fn spawn_debug_buttons( fn spawn_debug_buttons(
@ -637,7 +651,7 @@ fn populate_tree(
mut materials: ResMut<Assets<StandardMaterial>>, mut materials: ResMut<Assets<StandardMaterial>>,
) { ) {
if !trees.contains(trigger.target()) { if !trees.contains(trigger.target()) {
return return;
} }
// Generate "random" X and Y Coordinates for this tree // Generate "random" X and Y Coordinates for this tree

@ -125,6 +125,7 @@ fn toggle_debug_state(
} }
/// Simple system that enables/disables rapier debug visuals when the debugging state changes /// Simple system that enables/disables rapier debug visuals when the debugging state changes
#[cfg(not(target_arch = "wasm32"))]
fn toggle_rapier_debug_render( fn toggle_rapier_debug_render(
state: Res<State<DebuggingState>>, state: Res<State<DebuggingState>>,
mut context: ResMut<DebugRenderContext>, mut context: ResMut<DebugRenderContext>,
@ -232,10 +233,12 @@ fn hover_ui(
}); });
} }
#[cfg(not(target_arch = "wasm32"))]
fn enable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) { fn enable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) {
wireframe_config.global = true; wireframe_config.global = true;
} }
#[cfg(not(target_arch = "wasm32"))]
fn disable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) { fn disable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) {
wireframe_config.global = false; wireframe_config.global = false;
} }

@ -1,6 +1,7 @@
<!doctype html> <!doctype html>
<html lang="en"> <html lang="en">
<body> <body>
<canvas id="trees-canvas"></canvas>
<script type="module"> <script type="module">
import init from './trees.js' import init from './trees.js'

Loading…
Cancel
Save