hello base app working

master
Joey Pollack 1 year ago
parent 97602b5f39
commit ba1cf60570

45
.gitattributes vendored

@ -0,0 +1,45 @@
# Normalize EOL for all files that Git considers text files.
* text=auto eol=lf
# Godot specific binaries
*.res filter=lfs diff=lfs merge=lfs -text
# Image formats
*.bmp filter=lfs diff=lfs merge=lfs -text
*.dds filter=lfs diff=lfs merge=lfs -text
*.exr filter=lfs diff=lfs merge=lfs -text
*.hdr filter=lfs diff=lfs merge=lfs -text
*.jpg filter=lfs diff=lfs merge=lfs -text
*.jpeg filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.tga filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
*.webp filter=lfs diff=lfs merge=lfs -text
# Audio and Video formats
*.mp3 filter=lfs diff=lfs merge=lfs -text
*.wav filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.ogx filter=lfs diff=lfs merge=lfs -text
*.ogv filter=lfs diff=lfs merge=lfs -text
# 3D formats
*.gltf filter=lfs diff=lfs merge=lfs -text
*.blend filter=lfs diff=lfs merge=lfs -text
*.blend1 filter=lfs diff=lfs merge=lfs -text
*.glb filter=lfs diff=lfs merge=lfs -text
*.dae filter=lfs diff=lfs merge=lfs -text
*.obj filter=lfs diff=lfs merge=lfs -text
*.fbx filter=lfs diff=lfs merge=lfs -text
# Build
*.dll filter=lfs diff=lfs merge=lfs -text
# Packaging
*.zip filter=lfs diff=lfs merge=lfs -text
*.7z filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.rar filter=lfs diff=lfs merge=lfs -text
*.tar filter=lfs diff=lfs merge=lfs -text
*.file filter=lfs diff=lfs merge=lfs -text
*.dylib filter=lfs diff=lfs merge=lfs -text

3
.gitignore vendored

@ -6,11 +6,10 @@ target/
# Remove Cargo.lock from gitignore if creating an executable, leave it for libraries # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
# More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
Cargo.lock # Cargo.lock
# These are backup files generated by rustfmt # These are backup files generated by rustfmt
**/*.rs.bk **/*.rs.bk
# MSVC Windows builds of rustc generate these, which store debugging information # MSVC Windows builds of rustc generate these, which store debugging information
*.pdb *.pdb

4303
Cargo.lock generated

File diff suppressed because it is too large Load Diff

@ -0,0 +1,39 @@
[package]
name = "bevy_template"
version = "0.1.0"
edition = "2021"
[workspace]
resolver = "2" # Important! wgpu/Bevy needs this!
members = ["crates/hello"]
# Enable a small amount of optimization in debug mode
[profile.dev]
opt-level = 1
# Enable high optimizations for dependencies (incl. Bevy), but not for our code:
[profile.dev.package."*"]
opt-level = 3
###################
# The following are causing "unused manifest key" warnings on build
# so for now they are disabled
##
## for Linux
# [target.x86_64-unknown-linux-gnu]
# linker = "clang"
# rustflags = ["-C", "link-arg=-fuse-ld=lld"]
## for Windows
# [target.x86_64-pc-windows-msvc]
# linker = "rust-lld.exe"
################################
[dependencies]
bevy = { workspace = true }
hello = { workspace = true }
[workspace.dependencies]
bevy = { version = "0.14.0" }
hello = { path = "crates/hello" }

@ -0,0 +1,11 @@
[package]
name = "hello"
description = "A Test Module For the Bevy App"
version = "0.1.0"
edition = "2021"
[dependencies]
bevy = { workspace = true }

@ -0,0 +1,67 @@
use bevy::prelude::*;
pub struct HelloPlugin;
impl Plugin for HelloPlugin
{
fn build(&self, app: &mut App)
{
app.insert_resource(GreetTimer(Timer::from_seconds(2.0, TimerMode::Repeating)))
.add_systems(Startup, add_people)
.add_systems(Update, (hello_world, (update_people, greet_people).chain()));
}
}
#[derive(Resource)]
struct GreetTimer(Timer);
#[derive(Component)]
struct Person;
#[derive(Component)]
struct Name(String);
fn add_people(mut commands: Commands)
{
commands.spawn((Person, Name("Elaina Proctor".to_string())));
commands.spawn((Person, Name("Renzo Hume".to_string())));
commands.spawn((Person, Name("Zayna Nieves".to_string())));
}
// Just reading the timer in this one since greet_people already ticks it
// We could use ().chain() to force hello_world to happen after greet_people
// so the print out is always on the same frame.
fn hello_world(timer: ResMut<GreetTimer>,)
{
if timer.0.finished()
{
println!("hello world!");
}
}
fn greet_people(time: Res<Time>, mut timer: ResMut<GreetTimer>, query: Query<&Name, With<Person>>)
{
// update our timer with the time elapsed since the last update
// if that caused the timer to finish, we say hello to everyone
if timer.0.tick(time.delta()).just_finished()
{
for name in &query
{
println!("hello {}!", name.0);
}
}
}
fn update_people(mut query: Query<&mut Name, With<Person>>)
{
for mut name in &mut query
{
if name.0 == "Elaina Proctor"
{
name.0 = "Elaina Hume".to_string();
break; // We dont need to change any other names
}
}
}

@ -0,0 +1,3 @@
pub mod hello;

@ -0,0 +1,12 @@
use bevy::prelude::*;
use hello::hello::HelloPlugin;
fn main()
{
// NOTE: HelloPlugin requires DefaultPlugins otherwise
// the Timer resource will not be available
App::new()
.add_plugins((DefaultPlugins, HelloPlugin))
.run();
}
Loading…
Cancel
Save