Merge branch 'bevy14'
This commit is contained in:
commit
d262796db0
1145
Cargo.lock
generated
1145
Cargo.lock
generated
File diff suppressed because it is too large
Load diff
21
Cargo.toml
21
Cargo.toml
|
@ -17,7 +17,7 @@ repository = "https://codeberg.org/outfly/outfly"
|
||||||
categories = ["game", "aerospace", "simulation"]
|
categories = ["game", "aerospace", "simulation"]
|
||||||
keywords = ["game", "space", "3d"]
|
keywords = ["game", "space", "3d"]
|
||||||
license = "GPL-3.0-only"
|
license = "GPL-3.0-only"
|
||||||
rust-version = "1.76.0"
|
rust-version = "1.79.0"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
# For parsing the game definition file, src/data/defs.txt
|
# For parsing the game definition file, src/data/defs.txt
|
||||||
|
@ -36,27 +36,18 @@ toml_edit = { version = "0.22", features = ["serde"] }
|
||||||
|
|
||||||
[dependencies.bevy]
|
[dependencies.bevy]
|
||||||
# The bevy game engine, the basis for this game
|
# The bevy game engine, the basis for this game
|
||||||
# We temporarily use a fork with a custom bug fix, see https://codeberg.org/outfly/bevy
|
version = "0.14"
|
||||||
version = "0.13.2"
|
|
||||||
git = "https://codeberg.org/outfly/bevy.git"
|
|
||||||
rev = "e4dc13639106aa86826f6243d58f3209e1e94b1b"
|
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["animation", "bevy_asset", "bevy_audio", "bevy_scene", "bevy_winit", "bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "bevy_render", "bevy_text", "bevy_ui", "jpeg", "multi-threaded", "png", "tonemapping_luts", "vorbis"]
|
features = ["animation", "bevy_asset", "bevy_audio", "bevy_scene", "bevy_winit", "bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "bevy_render", "bevy_text", "bevy_ui", "jpeg", "multi_threaded", "png", "tonemapping_luts", "vorbis"]
|
||||||
|
|
||||||
[dependencies.bevy_embedded_assets]
|
[dependencies.bevy_embedded_assets]
|
||||||
# For embedding assets into the binary, creating a self-sufficient executable
|
# For embedding assets into the binary, creating a self-sufficient executable
|
||||||
# We temporarily use a fork with a custom bug fix, see https://codeberg.org/outfly/bevy
|
version = "0.11"
|
||||||
version = "0.10.2"
|
|
||||||
git = "https://codeberg.org/outfly/bevy_embedded_assets.git"
|
|
||||||
rev = "2696fcc0319e8660c50d4601e7d4e530cf0bb981"
|
|
||||||
optional = true
|
optional = true
|
||||||
|
|
||||||
[dependencies.bevy_xpbd_3d]
|
[dependencies.bevy_xpbd_3d]
|
||||||
# For physics and collision handling
|
# For physics and collision handling
|
||||||
# We temporarily use a fork with a custom bug fix, see https://codeberg.org/outfly/bevy
|
version = "0.5"
|
||||||
version = "0.4.2"
|
|
||||||
git = "https://codeberg.org/outfly/bevy_xpbd.git"
|
|
||||||
rev = "b6a03d6ec41e409d56f6b876f654a14d0b33afa7"
|
|
||||||
default-features = false
|
default-features = false
|
||||||
features = ["3d", "f64", "parry-f64", "parallel", "async-collider"]
|
features = ["3d", "f64", "parry-f64", "parallel", "async-collider"]
|
||||||
|
|
||||||
|
@ -70,7 +61,7 @@ blend = "0.8.0"
|
||||||
[features]
|
[features]
|
||||||
default = ["x11", "embed_assets"]
|
default = ["x11", "embed_assets"]
|
||||||
dev_mode = []
|
dev_mode = []
|
||||||
dev = ["dev_mode", "bevy/dynamic_linking", "bevy/file_watcher"]
|
dev = ["dev_mode", "bevy/file_watcher"] #, "bevy/dynamic_linking"
|
||||||
release_linux = ["x11", "wayland", "embed_assets"]
|
release_linux = ["x11", "wayland", "embed_assets"]
|
||||||
release_windows = ["embed_assets"]
|
release_windows = ["embed_assets"]
|
||||||
wasm = ["bevy/webgl2"]
|
wasm = ["bevy/webgl2"]
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -12,6 +12,7 @@
|
||||||
// and manages the flow of conversations.
|
// and manages the flow of conversations.
|
||||||
|
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
|
use bevy::color::palettes::css;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_xpbd_3d::prelude::*;
|
use bevy_xpbd_3d::prelude::*;
|
||||||
use serde::Deserialize;
|
use serde::Deserialize;
|
||||||
|
@ -926,14 +927,14 @@ pub fn handle_chat_scripts(
|
||||||
}
|
}
|
||||||
ew_sfx.send(audio::PlaySfxEvent(audio::Sfx::WakeUp));
|
ew_sfx.send(audio::PlaySfxEvent(audio::Sfx::WakeUp));
|
||||||
ew_effect.send(visual::SpawnEffectEvent {
|
ew_effect.send(visual::SpawnEffectEvent {
|
||||||
class: visual::Effects::FadeIn(Color::CYAN),
|
class: visual::Effects::FadeIn(css::AQUA.into()),
|
||||||
duration: 1.0,
|
duration: 1.0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
"cryofadeout" => {
|
"cryofadeout" => {
|
||||||
ew_effect.send(visual::SpawnEffectEvent {
|
ew_effect.send(visual::SpawnEffectEvent {
|
||||||
class: visual::Effects::FadeOut(Color::CYAN),
|
class: visual::Effects::FadeOut(css::AQUA.into()),
|
||||||
duration: 5.1,
|
duration: 5.1,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -609,8 +609,8 @@ pub fn load_defs(mut ew_spawn: EventWriter<SpawnEvent>) {
|
||||||
}
|
}
|
||||||
["light", color_hex, brightness] => {
|
["light", color_hex, brightness] => {
|
||||||
if let Ok(brightness_float) = brightness.parse::<f32>() {
|
if let Ok(brightness_float) = brightness.parse::<f32>() {
|
||||||
if let Ok(color) = Color::hex(color_hex) {
|
if let Ok(color) = Srgba::hex(color_hex) {
|
||||||
state.light_color = Some(color);
|
state.light_color = Some(Color::Srgba(color));
|
||||||
state.light_brightness = brightness_float;
|
state.light_brightness = brightness_float;
|
||||||
} else {
|
} else {
|
||||||
error!("Can't parse hexadecimal color code: {line}");
|
error!("Can't parse hexadecimal color code: {line}");
|
||||||
|
@ -925,7 +925,7 @@ fn spawn_entities(
|
||||||
if state.is_sun {
|
if state.is_sun {
|
||||||
let (r, g, b) = nature::star_color_index_to_rgb(0.656);
|
let (r, g, b) = nature::star_color_index_to_rgb(0.656);
|
||||||
actor.insert(materials.add(StandardMaterial {
|
actor.insert(materials.add(StandardMaterial {
|
||||||
base_color: Color::rgb(r, g, b) * 13.0,
|
base_color: Color::srgb(r * 13.0, g * 13.0, b * 13.0),
|
||||||
unlit: true,
|
unlit: true,
|
||||||
..default()
|
..default()
|
||||||
}));
|
}));
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
// This module handles player input, and coordinates interplay between other modules
|
// This module handles player input, and coordinates interplay between other modules
|
||||||
|
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
|
use bevy::color::palettes::css;
|
||||||
use bevy::pbr::ExtendedMaterial;
|
use bevy::pbr::ExtendedMaterial;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy::scene::SceneInstance;
|
use bevy::scene::SceneInstance;
|
||||||
|
@ -304,21 +305,21 @@ fn handle_player_death(
|
||||||
actor::DamageType::Trauma => {
|
actor::DamageType::Trauma => {
|
||||||
settings.death_cause = "Trauma".to_string();
|
settings.death_cause = "Trauma".to_string();
|
||||||
ew_effect.send(visual::SpawnEffectEvent {
|
ew_effect.send(visual::SpawnEffectEvent {
|
||||||
class: visual::Effects::FadeIn(Color::MAROON),
|
class: visual::Effects::FadeIn(css::MAROON.into()),
|
||||||
duration: 1.0,
|
duration: 1.0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
actor::DamageType::GForce => {
|
actor::DamageType::GForce => {
|
||||||
settings.death_cause = "Trauma from excessive g forces".to_string();
|
settings.death_cause = "Trauma from excessive g forces".to_string();
|
||||||
ew_effect.send(visual::SpawnEffectEvent {
|
ew_effect.send(visual::SpawnEffectEvent {
|
||||||
class: visual::Effects::FadeIn(Color::MAROON),
|
class: visual::Effects::FadeIn(css::MAROON.into()),
|
||||||
duration: 1.0,
|
duration: 1.0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
_ => {
|
_ => {
|
||||||
settings.death_cause = "Unknown".to_string();
|
settings.death_cause = "Unknown".to_string();
|
||||||
ew_effect.send(visual::SpawnEffectEvent {
|
ew_effect.send(visual::SpawnEffectEvent {
|
||||||
class: visual::Effects::FadeIn(Color::MAROON),
|
class: visual::Effects::FadeIn(css::MAROON.into()),
|
||||||
duration: 1.0,
|
duration: 1.0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -970,7 +970,7 @@ fn update_hud(
|
||||||
LogLevel::Info => settings.hud_color_console_system,
|
LogLevel::Info => settings.hud_color_console_system,
|
||||||
_ => settings.hud_color_console,
|
_ => settings.hud_color_console,
|
||||||
};
|
};
|
||||||
chat.sections[row].style.color.set_a(opacity);
|
chat.sections[row].style.color.set_alpha(opacity);
|
||||||
row += 1;
|
row += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1134,7 +1134,7 @@ fn update_target_selectagon(
|
||||||
}
|
}
|
||||||
selectagon_trans.translation = target_trans.translation;
|
selectagon_trans.translation = target_trans.translation;
|
||||||
selectagon_trans.scale = target_trans.scale;
|
selectagon_trans.scale = target_trans.scale;
|
||||||
selectagon_trans.look_at(camera_trans.translation, camera_trans.up().into());
|
selectagon_trans.look_at(camera_trans.translation, camera_trans.up());
|
||||||
|
|
||||||
// Enlarge Selectagon to a minimum angular diameter
|
// Enlarge Selectagon to a minimum angular diameter
|
||||||
let (angular_diameter, _, _) =
|
let (angular_diameter, _, _) =
|
||||||
|
@ -1221,7 +1221,7 @@ fn update_poi_overlays(
|
||||||
if angular_diameter < min_angular_diameter {
|
if angular_diameter < min_angular_diameter {
|
||||||
trans.scale *= min_angular_diameter / angular_diameter;
|
trans.scale *= min_angular_diameter / angular_diameter;
|
||||||
}
|
}
|
||||||
trans.look_at(camera_trans.translation, camera_trans.up().into());
|
trans.look_at(camera_trans.translation, camera_trans.up());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ impl AsteroidSurface {
|
||||||
pub fn material() -> ExtendedMaterial<StandardMaterial, AsteroidSurface> {
|
pub fn material() -> ExtendedMaterial<StandardMaterial, AsteroidSurface> {
|
||||||
ExtendedMaterial {
|
ExtendedMaterial {
|
||||||
base: StandardMaterial {
|
base: StandardMaterial {
|
||||||
base_color: Color::rgb(0.29, 0.255, 0.208),
|
base_color: Color::srgb(0.29, 0.255, 0.208),
|
||||||
perceptual_roughness: 1.0,
|
perceptual_roughness: 1.0,
|
||||||
opaque_render_method: OpaqueRendererMethod::Auto,
|
opaque_render_method: OpaqueRendererMethod::Auto,
|
||||||
..default()
|
..default()
|
||||||
|
|
|
@ -186,7 +186,7 @@ pub fn setup(
|
||||||
MenuElement,
|
MenuElement,
|
||||||
NodeBundle {
|
NodeBundle {
|
||||||
style: style_fullscreen(),
|
style: style_fullscreen(),
|
||||||
background_color: Color::rgba(0.0, 0.0, 0.0, 0.8).into(),
|
background_color: Color::srgba(0.0, 0.0, 0.0, 0.8).into(),
|
||||||
visibility: Visibility::Hidden,
|
visibility: Visibility::Hidden,
|
||||||
..default()
|
..default()
|
||||||
},
|
},
|
||||||
|
@ -517,7 +517,7 @@ pub fn handle_input(
|
||||||
keyboard_input: Res<ButtonInput<KeyCode>>,
|
keyboard_input: Res<ButtonInput<KeyCode>>,
|
||||||
mut settings: ResMut<Settings>,
|
mut settings: ResMut<Settings>,
|
||||||
mut menustate: ResMut<MenuState>,
|
mut menustate: ResMut<MenuState>,
|
||||||
mut app_exit_events: ResMut<Events<bevy::app::AppExit>>,
|
mut app_exit_events: ResMut<Events<AppExit>>,
|
||||||
mut ew_game: EventWriter<game::GameEvent>,
|
mut ew_game: EventWriter<game::GameEvent>,
|
||||||
mut ew_playerdies: EventWriter<game::PlayerDiesEvent>,
|
mut ew_playerdies: EventWriter<game::PlayerDiesEvent>,
|
||||||
mut ew_sfx: EventWriter<audio::PlaySfxEvent>,
|
mut ew_sfx: EventWriter<audio::PlaySfxEvent>,
|
||||||
|
@ -601,7 +601,7 @@ pub fn handle_input(
|
||||||
ew_playerdies.send(game::PlayerDiesEvent(actor::DamageType::Depressurization));
|
ew_playerdies.send(game::PlayerDiesEvent(actor::DamageType::Depressurization));
|
||||||
}
|
}
|
||||||
MenuAction::Quit => {
|
MenuAction::Quit => {
|
||||||
app_exit_events.send(bevy::app::AppExit);
|
app_exit_events.send(AppExit::Success);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
36
src/var.rs
36
src/var.rs
|
@ -204,24 +204,24 @@ impl Default for Settings {
|
||||||
font_size_achievement_header: 32.0,
|
font_size_achievement_header: 32.0,
|
||||||
font_size_keybindings: 20.0,
|
font_size_keybindings: 20.0,
|
||||||
font_size_version: 20.0,
|
font_size_version: 20.0,
|
||||||
hud_color: Color::hex(COLOR_PRIMARY).unwrap(),
|
hud_color: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
|
||||||
hud_color_fps: Color::hex("#181818").unwrap(),
|
hud_color_fps: Srgba::hex("#181818").unwrap().into(),
|
||||||
hud_color_console: Color::hex(COLOR_PRIMARY).unwrap(),
|
hud_color_console: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
|
||||||
hud_color_console_achievement: Color::hex(COLOR_SUCCESS).unwrap(),
|
hud_color_console_achievement: Srgba::hex(COLOR_SUCCESS).unwrap().into(),
|
||||||
hud_color_console_warn: Color::hex(COLOR_WARNING).unwrap(),
|
hud_color_console_warn: Srgba::hex(COLOR_WARNING).unwrap().into(),
|
||||||
hud_color_console_system: Color::hex(COLOR_SECONDARY).unwrap(),
|
hud_color_console_system: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
|
||||||
hud_color_alert: Color::hex(COLOR_SECONDARY).unwrap(),
|
hud_color_alert: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
|
||||||
hud_color_subtitles: Color::hex(COLOR_SECONDARY).unwrap(),
|
hud_color_subtitles: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
|
||||||
hud_color_choices: Color::hex(COLOR_BODY).unwrap(),
|
hud_color_choices: Srgba::hex(COLOR_BODY).unwrap().into(),
|
||||||
hud_color_speedometer: Color::hex(COLOR_PRIMARY).unwrap(),
|
hud_color_speedometer: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
|
||||||
hud_color_deathpoem: Color::hex("#CC2200").unwrap(),
|
hud_color_deathpoem: Srgba::hex("#CC2200").unwrap().into(),
|
||||||
hud_color_achievement: Color::hex(COLOR_DIM).unwrap(),
|
hud_color_achievement: Srgba::hex(COLOR_DIM).unwrap().into(),
|
||||||
hud_color_achievement_accomplished: Color::hex(COLOR_SUCCESS).unwrap(),
|
hud_color_achievement_accomplished: Srgba::hex(COLOR_SUCCESS).unwrap().into(),
|
||||||
hud_color_achievement_header: Color::hex(COLOR_PRIMARY).unwrap(),
|
hud_color_achievement_header: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
|
||||||
hud_color_death: Color::hex(COLOR_SECONDARY).unwrap(),
|
hud_color_death: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
|
||||||
hud_color_death_achievements: Color::hex(COLOR_SECONDARY).unwrap(),
|
hud_color_death_achievements: Srgba::hex(COLOR_SECONDARY).unwrap().into(),
|
||||||
hud_color_keybindings: Color::hex(COLOR_DIM).unwrap(),
|
hud_color_keybindings: Srgba::hex(COLOR_DIM).unwrap().into(),
|
||||||
hud_color_version: Color::hex(COLOR_PRIMARY).unwrap(),
|
hud_color_version: Srgba::hex(COLOR_PRIMARY).unwrap().into(),
|
||||||
chat_speed: DEFAULT_CHAT_SPEED * if dev_mode { 2.5 } else { 1.0 },
|
chat_speed: DEFAULT_CHAT_SPEED * if dev_mode { 2.5 } else { 1.0 },
|
||||||
ar_avatar: 0,
|
ar_avatar: 0,
|
||||||
flashlight_active: false,
|
flashlight_active: false,
|
||||||
|
|
|
@ -12,6 +12,7 @@
|
||||||
|
|
||||||
use crate::prelude::*;
|
use crate::prelude::*;
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
|
use std::time::Duration;
|
||||||
|
|
||||||
pub struct VisualPlugin;
|
pub struct VisualPlugin;
|
||||||
|
|
||||||
|
@ -57,13 +58,36 @@ pub struct SpawnEffectEvent {
|
||||||
pub duration: f64,
|
pub duration: f64,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn setup(settings: Res<var::Settings>, mut ew_effect: EventWriter<SpawnEffectEvent>) {
|
#[derive(Resource)]
|
||||||
|
pub struct SuitAnimation {
|
||||||
|
index: AnimationNodeIndex,
|
||||||
|
graph: Handle<AnimationGraph>
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn setup(
|
||||||
|
settings: Res<var::Settings>,
|
||||||
|
asset_server: Res<AssetServer>,
|
||||||
|
mut commands: Commands,
|
||||||
|
mut ew_effect: EventWriter<SpawnEffectEvent>,
|
||||||
|
mut graphs: ResMut<Assets<AnimationGraph>>,
|
||||||
|
) {
|
||||||
if !settings.dev_mode {
|
if !settings.dev_mode {
|
||||||
ew_effect.send(SpawnEffectEvent {
|
ew_effect.send(SpawnEffectEvent {
|
||||||
class: Effects::FadeIn(Color::BLACK),
|
class: Effects::FadeIn(Color::BLACK),
|
||||||
duration: 4.0,
|
duration: 4.0,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let mut graph = AnimationGraph::new();
|
||||||
|
let index = graph.add_clip(
|
||||||
|
asset_server.load(GltfAssetLabel::Animation(0).from_asset("models/suit_v2/suit_v2.glb")),
|
||||||
|
1.0,
|
||||||
|
graph.root,
|
||||||
|
);
|
||||||
|
|
||||||
|
let graph = graphs.add(graph);
|
||||||
|
commands.insert_resource(SuitAnimation { index, graph });
|
||||||
|
|
||||||
// Blackout disabled for now
|
// Blackout disabled for now
|
||||||
// commands.spawn((
|
// commands.spawn((
|
||||||
// BlackOutOverlay,
|
// BlackOutOverlay,
|
||||||
|
@ -115,7 +139,7 @@ pub fn spawn_effects(
|
||||||
FadeOut,
|
FadeOut,
|
||||||
NodeBundle {
|
NodeBundle {
|
||||||
style: style_fullscreen(),
|
style: style_fullscreen(),
|
||||||
background_color: color.with_a(0.0).into(),
|
background_color: color.with_alpha(0.0).into(),
|
||||||
..default()
|
..default()
|
||||||
},
|
},
|
||||||
));
|
));
|
||||||
|
@ -136,7 +160,7 @@ pub fn update_fadein(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let alpha = (1.3 - 1.3 * (now - effect.start_time) / effect.duration).clamp(0.0, 1.0);
|
let alpha = (1.3 - 1.3 * (now - effect.start_time) / effect.duration).clamp(0.0, 1.0);
|
||||||
bgcolor.0.set_a(alpha as f32);
|
bgcolor.0.set_alpha(alpha as f32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -152,17 +176,22 @@ pub fn update_fadeout(
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
let alpha = ((now - effect.start_time) / effect.duration).clamp(0.0, 1.0);
|
let alpha = ((now - effect.start_time) / effect.duration).clamp(0.0, 1.0);
|
||||||
bgcolor.0.set_a(alpha as f32);
|
bgcolor.0.set_alpha(alpha as f32);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn play_animations(
|
fn play_animations(
|
||||||
mut players: Query<&mut AnimationPlayer, Added<AnimationPlayer>>,
|
mut commands: Commands,
|
||||||
asset_server: Res<AssetServer>,
|
mut players: Query<(Entity, &mut AnimationPlayer), Added<AnimationPlayer>>,
|
||||||
|
suit_animation: Res<SuitAnimation>,
|
||||||
) {
|
) {
|
||||||
for mut player in &mut players {
|
for (entity, mut player) in &mut players {
|
||||||
let animation = asset_server.load("models/suit_v2/suit_v2.glb#Animation0");
|
let mut transitions = AnimationTransitions::new();
|
||||||
player.play(animation.clone()).repeat();
|
transitions
|
||||||
|
.play(&mut player, suit_animation.index, Duration::ZERO)
|
||||||
|
.repeat();
|
||||||
|
commands.entity(entity).insert(suit_animation.graph.clone()).insert(transitions);
|
||||||
|
//player.play(suit_ani_node_index.0).repeat();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -175,6 +204,6 @@ fn play_animations(
|
||||||
// let threshold = 0.3;
|
// let threshold = 0.3;
|
||||||
// let factor = 1.0 / (1.0 - threshold);
|
// let factor = 1.0 / (1.0 - threshold);
|
||||||
// let alpha = (factor * (gforce.blackout - threshold)).clamp(0.0, 1.0);
|
// let alpha = (factor * (gforce.blackout - threshold)).clamp(0.0, 1.0);
|
||||||
// bgcolor.0.set_a(alpha as f32);
|
// bgcolor.0.set_alpha(alpha as f32);
|
||||||
// }
|
// }
|
||||||
//}
|
//}
|
||||||
|
|
|
@ -115,7 +115,7 @@ pub fn setup(
|
||||||
//(radius as f64 * nature::SOL_RADIUS).powf(0.02) as f32 *
|
//(radius as f64 * nature::SOL_RADIUS).powf(0.02) as f32 *
|
||||||
|
|
||||||
let star_color_handle = materials.add(StandardMaterial {
|
let star_color_handle = materials.add(StandardMaterial {
|
||||||
base_color: Color::rgb(scale_color(r), scale_color(g), scale_color(b)),
|
base_color: Color::srgb(scale_color(r), scale_color(g), scale_color(b)),
|
||||||
unlit: true,
|
unlit: true,
|
||||||
..default()
|
..default()
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue