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
# 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
# Use wasm-bindgen to do some magic

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

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

@ -1,14 +1,24 @@
use super::*;
/// 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 {
fn build(&self, app: &mut App) {
app.add_plugins(DefaultPlugins.set(WindowPlugin {
primary_window: Some(Window {
fit_canvas_to_parent: true,
canvas: Some("game".into()),
canvas: Some(format!("#{}-canvas", self.name)),
..default()
}),
..default()

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

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

@ -5,13 +5,15 @@
mod mono;
use bevy::platform::hash::RandomState;
use std::hash::BuildHasher;
use games::*;
use mono::*;
use std::hash::BuildHasher;
fn main() {
App::new()
.add_plugins(BaseGamePlugin)
.add_plugins(BaseGamePlugin {
name: "trees".into(),
})
.add_plugins(MonologueAssetsPlugin)
.add_event::<DialogEvent>()
.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_assets = vec![
server.load("trees/red.mono"),
server.load("trees/green.mono"),
server.load("trees/blue.mono"),
];
}
fn spawn_debug_buttons(
@ -637,7 +651,7 @@ fn populate_tree(
mut materials: ResMut<Assets<StandardMaterial>>,
) {
if !trees.contains(trigger.target()) {
return
return;
}
// 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
#[cfg(not(target_arch = "wasm32"))]
fn toggle_rapier_debug_render(
state: Res<State<DebuggingState>>,
mut context: ResMut<DebugRenderContext>,
@ -232,10 +233,12 @@ fn hover_ui(
});
}
#[cfg(not(target_arch = "wasm32"))]
fn enable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) {
wireframe_config.global = true;
}
#[cfg(not(target_arch = "wasm32"))]
fn disable_wireframe(mut wireframe_config: ResMut<WireframeConfig>) {
wireframe_config.global = false;
}

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

Loading…
Cancel
Save