Compare commits
3 commits
fbc416796e
...
ca5ebf22d5
Author | SHA1 | Date | |
---|---|---|---|
yuni | ca5ebf22d5 | ||
yuni | 2876266008 | ||
yuni | 3e8d4bf6d7 |
|
@ -135,7 +135,32 @@ A variety of relatively simple game systems should interact with each other to c
|
||||||
|
|
||||||
# Inspiration
|
# Inspiration
|
||||||
|
|
||||||
TODO
|
- Outer Wilds (not Outer Worlds)
|
||||||
|
- Kerbal Space Program
|
||||||
|
- Fallout New Vegas
|
||||||
|
- Anathem
|
||||||
|
- Baldur's Gate 3
|
||||||
|
- Citizen Sleeper
|
||||||
|
- Delta V: Rings of Saturn
|
||||||
|
- Disco Elysium
|
||||||
|
- Elite: Dangerous
|
||||||
|
- Endless Sky
|
||||||
|
- Firefly (2002 series)
|
||||||
|
- Mass Effect
|
||||||
|
- Nethack
|
||||||
|
- Planescape: Torment
|
||||||
|
- Prey (2017 game)
|
||||||
|
- Project Hail Mary
|
||||||
|
- RimWorld
|
||||||
|
- Risk of Rain
|
||||||
|
- Robot and Monk series
|
||||||
|
- Shadowrun Returns: Dragonfall, Hong Kong
|
||||||
|
- Stardew Valley
|
||||||
|
- Stray (2022 game)
|
||||||
|
- System Shock 2
|
||||||
|
- The Expanse
|
||||||
|
- The Forgotten City
|
||||||
|
- The Red Strings Club
|
||||||
|
|
||||||
# Survival Mechanics
|
# Survival Mechanics
|
||||||
|
|
||||||
|
|
12
src/game.rs
12
src/game.rs
|
@ -481,7 +481,7 @@ fn debug(
|
||||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||||
// mut commands: Commands,
|
// mut commands: Commands,
|
||||||
// mut extended_materials: ResMut<
|
// mut extended_materials: ResMut<
|
||||||
// Assets<bevy::pbr::ExtendedMaterial<StandardMaterial, load::AsteroidSurface>>,
|
// Assets<bevy::pbr::ExtendedMaterial<StandardMaterial, load::AsteroidSurface>>,
|
||||||
// >,
|
// >,
|
||||||
mut achievement_tracker: ResMut<var::AchievementTracker>,
|
mut achievement_tracker: ResMut<var::AchievementTracker>,
|
||||||
vars: Res<var::GameVars>,
|
vars: Res<var::GameVars>,
|
||||||
|
@ -490,11 +490,11 @@ fn debug(
|
||||||
if settings.dev_mode && keyboard_input.just_pressed(KeyCode::KeyP) {
|
if settings.dev_mode && keyboard_input.just_pressed(KeyCode::KeyP) {
|
||||||
|
|
||||||
// for (entity, _name, mesh) in &materials {
|
// for (entity, _name, mesh) in &materials {
|
||||||
// dbg!(mesh);
|
// dbg!(mesh);
|
||||||
// let mut entity = commands.entity(entity);
|
// let mut entity = commands.entity(entity);
|
||||||
// entity.remove::<Handle<StandardMaterial>>();
|
// entity.remove::<Handle<StandardMaterial>>();
|
||||||
// let material = extended_materials.add(load::AsteroidSurface::material());
|
// let material = extended_materials.add(load::AsteroidSurface::material());
|
||||||
// entity.insert(material);
|
// entity.insert(material);
|
||||||
// }
|
// }
|
||||||
}
|
}
|
||||||
if settings.dev_mode && keyboard_input.just_pressed(KeyCode::KeyN) {
|
if settings.dev_mode && keyboard_input.just_pressed(KeyCode::KeyN) {
|
||||||
|
|
|
@ -128,6 +128,7 @@ pub fn setup(
|
||||||
|
|
||||||
pub fn spawn_effects(
|
pub fn spawn_effects(
|
||||||
mut commands: Commands,
|
mut commands: Commands,
|
||||||
|
settings: Res<var::Settings>,
|
||||||
mut er_effect: EventReader<SpawnEffectEvent>,
|
mut er_effect: EventReader<SpawnEffectEvent>,
|
||||||
mut materials: ResMut<Assets<StandardMaterial>>,
|
mut materials: ResMut<Assets<StandardMaterial>>,
|
||||||
mut meshes: ResMut<Assets<Mesh>>,
|
mut meshes: ResMut<Assets<Mesh>>,
|
||||||
|
@ -173,6 +174,7 @@ pub fn spawn_effects(
|
||||||
let texture = asset_server.load("textures/exhaust.png");
|
let texture = asset_server.load("textures/exhaust.png");
|
||||||
commands.spawn((
|
commands.spawn((
|
||||||
IsEffect,
|
IsEffect,
|
||||||
|
hud::ToggleableHudElement,
|
||||||
RigidBody::Kinematic,
|
RigidBody::Kinematic,
|
||||||
bevy::pbr::NotShadowCaster,
|
bevy::pbr::NotShadowCaster,
|
||||||
pos,
|
pos,
|
||||||
|
@ -205,6 +207,11 @@ pub fn spawn_effects(
|
||||||
alpha_mode: AlphaMode::Blend,
|
alpha_mode: AlphaMode::Blend,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
}),
|
}),
|
||||||
|
visibility: if settings.hud_active {
|
||||||
|
Visibility::Inherited
|
||||||
|
} else {
|
||||||
|
Visibility::Hidden
|
||||||
|
},
|
||||||
..default()
|
..default()
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
@ -258,11 +265,9 @@ pub fn update_fade_material(
|
||||||
if now > end_time {
|
if now > end_time {
|
||||||
material.base_color.set_alpha(data.value_end);
|
material.base_color.set_alpha(data.value_end);
|
||||||
commands.entity(entity).remove::<FadeMaterial>();
|
commands.entity(entity).remove::<FadeMaterial>();
|
||||||
}
|
} else if now < data.start_time {
|
||||||
else if now < data.start_time {
|
|
||||||
material.base_color.set_alpha(data.value_start);
|
material.base_color.set_alpha(data.value_start);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
let progress = ((now - data.start_time) / data.duration) as f32;
|
let progress = ((now - data.start_time) / data.duration) as f32;
|
||||||
let value = data.value_start + progress * (data.value_end - data.value_start);
|
let value = data.value_start + progress * (data.value_end - data.value_start);
|
||||||
material.base_color.set_alpha(value);
|
material.base_color.set_alpha(value);
|
||||||
|
@ -281,11 +286,9 @@ pub fn update_grow(
|
||||||
if now > end_time {
|
if now > end_time {
|
||||||
trans.scale = Vec3::splat(data.scale_end);
|
trans.scale = Vec3::splat(data.scale_end);
|
||||||
commands.entity(entity).remove::<Grow3DObject>();
|
commands.entity(entity).remove::<Grow3DObject>();
|
||||||
}
|
} else if now < data.start_time {
|
||||||
else if now < data.start_time {
|
|
||||||
trans.scale = Vec3::splat(data.scale_start);
|
trans.scale = Vec3::splat(data.scale_start);
|
||||||
}
|
} else {
|
||||||
else {
|
|
||||||
let progress = ((now - data.start_time) / data.duration) as f32;
|
let progress = ((now - data.start_time) / data.duration) as f32;
|
||||||
let scale = data.scale_start + progress * (data.scale_end - data.scale_start);
|
let scale = data.scale_start + progress * (data.scale_end - data.scale_start);
|
||||||
trans.scale = Vec3::splat(scale);
|
trans.scale = Vec3::splat(scale);
|
||||||
|
|
|
@ -38,7 +38,10 @@ impl Plugin for WorldPlugin {
|
||||||
fn build(&self, app: &mut App) {
|
fn build(&self, app: &mut App) {
|
||||||
app.add_systems(Startup, setup);
|
app.add_systems(Startup, setup);
|
||||||
app.add_systems(Update, handle_respawn.run_if(on_event::<RespawnEvent>()));
|
app.add_systems(Update, handle_respawn.run_if(on_event::<RespawnEvent>()));
|
||||||
app.add_systems(Update, handle_despawn_at.run_if(any_with_component::<DespawnAt>));
|
app.add_systems(
|
||||||
|
Update,
|
||||||
|
handle_despawn_at.run_if(any_with_component::<DespawnAt>),
|
||||||
|
);
|
||||||
app.add_plugins(PhysicsPlugins::default());
|
app.add_plugins(PhysicsPlugins::default());
|
||||||
//app.add_plugins(PhysicsDebugPlugin::default());
|
//app.add_plugins(PhysicsDebugPlugin::default());
|
||||||
app.insert_resource(Gravity(DVec3::splat(0.0)));
|
app.insert_resource(Gravity(DVec3::splat(0.0)));
|
||||||
|
|
Loading…
Reference in a new issue