Compare commits
25 commits
fbf5581ea5
...
5c477286f5
Author | SHA1 | Date | |
---|---|---|---|
yuni | 5c477286f5 | ||
yuni | 528d528cd6 | ||
yuni | 5f3bc9009e | ||
yuni | cd078152c8 | ||
yuni | a1a4392eeb | ||
yuni | 6c85b1873f | ||
yuni | a11cdea7f7 | ||
yuni | e6f3e4711f | ||
yuni | bd155c0be5 | ||
yuni | 252966a9c5 | ||
yuni | 9b0970a011 | ||
yuni | fdacda2eab | ||
yuni | a49edac0ce | ||
yuni | 1ddb7675ea | ||
yuni | bd206be108 | ||
yuni | 3db5600b29 | ||
yuni | ab606220e3 | ||
yuni | 69670b9dd5 | ||
yuni | e350697125 | ||
yuni | b3f477656b | ||
yuni | 7f3f13876d | ||
yuni | 5847abc3ac | ||
yuni | b7d87f7e14 | ||
yuni | b795a706d8 | ||
yuni | 443bdeed33 |
47
LICENSE.md
|
@ -5,9 +5,7 @@
|
||||||
- 3D models: Original art, placed under the Creative Commons CC0 License
|
- 3D models: Original art, placed under the Creative Commons CC0 License
|
||||||
- Photographs of celestial bodies:
|
- Photographs of celestial bodies:
|
||||||
- Mercury: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
- Mercury: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
||||||
- Venus: [By Björn Jónsson, free to use, with attribution](https://bjj.mmedia.is/data/venus/venus.html)
|
- Venus: [By NASA, public domain](https://space.jpl.nasa.gov/tmaps/venus.html)
|
||||||
- To reduce the visibility of the ultraviolet features in Björn's original image, I applied GIMP's "Colors"→"Hue-Saturation" with Lightness=100 and Saturation=-20.
|
|
||||||
- Exported as 80% quality JPEG
|
|
||||||
- Earth: A simple addition of
|
- Earth: A simple addition of
|
||||||
- [base image, by NASA, public domain](https://visibleearth.nasa.gov/images/74318/april-blue-marble-next-generation-w-topography)
|
- [base image, by NASA, public domain](https://visibleearth.nasa.gov/images/74318/april-blue-marble-next-generation-w-topography)
|
||||||
- [clouds, by NASA, public domain](https://visibleearth.nasa.gov/images/57747/blue-marble-clouds)
|
- [clouds, by NASA, public domain](https://visibleearth.nasa.gov/images/57747/blue-marble-clouds)
|
||||||
|
@ -16,31 +14,32 @@
|
||||||
- Downscaled by 2x with LoHalo interpolation
|
- Downscaled by 2x with LoHalo interpolation
|
||||||
- Adjusted contrast with GIMP's "Colors"→"Curves", by pulling x=128/y=128 down to y=96.
|
- Adjusted contrast with GIMP's "Colors"→"Curves", by pulling x=128/y=128 down to y=96.
|
||||||
- Exported as 80% quality JPEG
|
- Exported as 80% quality JPEG
|
||||||
- Io: [By Björn Jónsson, free to use, with attribution](https://bjj.mmedia.is/data/io/io.html)
|
- Io: By NASA, public domain
|
||||||
- Europa: [By Björn Jónsson, free to use, with attribution](https://www.planetary.org/articles/0218-mapping-europa)
|
- Europa: By NASA, public domain
|
||||||
- Ganymede: [By Björn Jónsson, free to use, with attribution](https://bjj.mmedia.is/data/ganymede/index.html)
|
- Ganymede: By NASA, public domain
|
||||||
- Callisto: [By Björn Jónsson, free to use, with attribution](https://bjj.mmedia.is/data/callisto/index.html)
|
- Callisto: By NASA, public domain
|
||||||
- Saturn: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
- Saturn: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
||||||
- Uranus: [By Askaniy, CC BY-SA 3.0](https://www.deviantart.com/askaniy/art/Uranus-Texture-Map-763551816)
|
- Uranus: [By Askaniy, CC BY-SA 3.0](https://www.deviantart.com/askaniy/art/Uranus-Texture-Map-763551816)
|
||||||
- Neptune: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
- Neptune: [By Solar System Scope, CC BY 4.0](https://www.solarsystemscope.com/textures/)
|
||||||
- Icon: Creative Commons CC0 License
|
- Icon: Creative Commons CC0 License
|
||||||
- Original sound files:
|
- Original sound files by Yuni, Creative Commons CC0 License:
|
||||||
- wakeup.ogg: Creative Commons CC0 License
|
- click.ogg: Recorded the click of a Victorinox Swisstool Spirit, when closing the big flathead screw driver
|
||||||
- Other sound files: [Pixabay Content License](https://pixabay.com/service/license-summary)
|
- click2.ogg: Recorded the click of a Victorinox Swisstool Spirit, when opening the big flathead screw driver. The second click is slightly amplified, the delay between clicks slightly shortened.
|
||||||
- https://pixabay.com/sound-effects/typosonic-typing-192811
|
- connect.ogg: Tshhhhed into a microphone, pitch lowered by 15 semitones
|
||||||
- https://pixabay.com/sound-effects/click-button-140881
|
- crash.ogg: Hit a fire extinguisher with a chunk of metal. Changed speed (incl. pitch) to 1/2
|
||||||
- https://pixabay.com/sound-effects/data-transmission-sound-from-14664-72309
|
- electricmotor.ogg: A rotating razor without blades, shifted down an octave
|
||||||
- https://pixabay.com/sound-effects/thrusters-loopwav-14699
|
- ion.ogg: This consists of 2 overlaid parts:
|
||||||
- https://pixabay.com/sound-effects/rocket-loop-99748
|
- Medium-pitched: A foil razor at slow speed with blades but no foil, shifted down 2 octaves.
|
||||||
- https://pixabay.com/sound-effects/350cc-bike-firing-32391
|
- Low-pitched, combustion-motor-like: The same foil razor at max speed with blades removed, shifted down 3 octaves, changed speed (incl. pitch) to 1/2. Low-pass filtered at 1khz with 36db roll-off per octave.
|
||||||
- https://pixabay.com/sound-effects/electricity-6353
|
- gasp.ogg: Gasping for air
|
||||||
- https://pixabay.com/sound-effects/ducati-696-monster-33217
|
- gasprelief.ogg: Heavy breathing
|
||||||
- https://pixabay.com/sound-effects/high-energy-humming-195612
|
- growl.ogg: Growled into a Xaphoon (2024-09-13@18:21), lowered by an octave, added reverb
|
||||||
- https://pixabay.com/sound-effects/box-crash-106687
|
- thruster.ogg: Recorded laptop fan, applied low pass filter (3khz, 36db roll-off per octave), pitch shift by -3 octaves
|
||||||
- https://pixabay.com/sound-effects/electric-fan-motor-blades-removed-13169
|
- wakeup.ogg: Heavy breathing
|
||||||
- https://pixabay.com/sound-effects/whoosh-blow-flutter-shortwav-14678/
|
- woosh.ogg: Blew into the mic, pitch lowered by 24 semitones
|
||||||
- https://pixabay.com/sound-effects/dslr-camera-sounds-26117/
|
- zoom.ogg: Recorded a screw thread scraping against a saxophone ligature
|
||||||
- https://pixabay.com/sound-effects/beep-6-96243
|
- Other sounds:
|
||||||
|
- achieve.ogg: UI Completed Status Alert Notification SFX001.wav [by Headphaze, CC BY 4.0](https://freesound.org/s/277033/)
|
||||||
- Music:
|
- Music:
|
||||||
- JupiterRecording.ogg is an [actual Jupiter recording by NASA](https://archive.org/download/voyager-1-and-2-1990-jupiter-nasa-voyager-space-sounds-electronic), public domain.
|
- JupiterRecording.ogg is an [actual Jupiter recording by NASA](https://archive.org/download/voyager-1-and-2-1990-jupiter-nasa-voyager-space-sounds-electronic), public domain.
|
||||||
- Processed by cutting out min 1:47-3:47 and applying a 10s linear crossfade at the end. Exported as ogg with quality=3, see [.kdenlive file](src/audio/JupiterRecording.kdenlive).
|
- Processed by cutting out min 1:47-3:47 and applying a 10s linear crossfade at the end. Exported as ogg with quality=3, see [.kdenlive file](src/audio/JupiterRecording.kdenlive).
|
||||||
|
|
BIN
assets/sounds/click.ogg
Normal file
BIN
assets/sounds/click2.ogg
Normal file
BIN
assets/sounds/growl.ogg
Normal file
Before Width: | Height: | Size: 430 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 360 KiB After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 928 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 33 KiB After Width: | Height: | Size: 44 KiB |
5
build.rs
|
@ -22,7 +22,10 @@ fn main() -> std::io::Result<()> {
|
||||||
let file = File::create("src/data/scenes.in");
|
let file = File::create("src/data/scenes.in");
|
||||||
if let Ok(mut file) = file {
|
if let Ok(mut file) = file {
|
||||||
write!(&file, "// THIS FILE IS AUTOGENERATED BY build.rs BASED ON DATA IN src/blender/scene_*.blend FILES!\n")?;
|
write!(&file, "// THIS FILE IS AUTOGENERATED BY build.rs BASED ON DATA IN src/blender/scene_*.blend FILES!\n")?;
|
||||||
write!(&file, "// DO NOT MODIFY MANUALLY, CHANGES WILL BE OVERWRITTEN!\n")?;
|
write!(
|
||||||
|
&file,
|
||||||
|
"// DO NOT MODIFY MANUALLY, CHANGES WILL BE OVERWRITTEN!\n"
|
||||||
|
)?;
|
||||||
write!(&file, "[\n")?;
|
write!(&file, "[\n")?;
|
||||||
extract_scene(&mut file, "test", "src/blender/scene_test.blend")?;
|
extract_scene(&mut file, "test", "src/blender/scene_test.blend")?;
|
||||||
extract_scene(&mut file, "workshop", "src/blender/scene_workshop.blend")?;
|
extract_scene(&mut file, "workshop", "src/blender/scene_workshop.blend")?;
|
||||||
|
|
7
build/nix/README.md
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
Useful commands:
|
||||||
|
|
||||||
|
```
|
||||||
|
cd build/nix
|
||||||
|
nix flake update
|
||||||
|
nix build
|
||||||
|
```
|
|
@ -198,7 +198,6 @@ impl Default for Vehicle {
|
||||||
#[derive(Copy, Clone, PartialEq)]
|
#[derive(Copy, Clone, PartialEq)]
|
||||||
pub enum EngineType {
|
pub enum EngineType {
|
||||||
Monopropellant,
|
Monopropellant,
|
||||||
Rocket,
|
|
||||||
Ion,
|
Ion,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
16
src/audio.rs
|
@ -63,30 +63,21 @@ const PATHS: &[(SfxType, Sfx, &str)] = &[
|
||||||
"sounds/electricmotor.ogg",
|
"sounds/electricmotor.ogg",
|
||||||
),
|
),
|
||||||
(SfxType::LoopSfx, Sfx::Ion, "sounds/ion.ogg"),
|
(SfxType::LoopSfx, Sfx::Ion, "sounds/ion.ogg"),
|
||||||
(SfxType::LoopSfx, Sfx::Rocket, "sounds/rocket.ogg"),
|
|
||||||
(SfxType::LoopSfx, Sfx::Thruster, "sounds/thruster.ogg"),
|
(SfxType::LoopSfx, Sfx::Thruster, "sounds/thruster.ogg"),
|
||||||
(SfxType::LoopSfx, Sfx::Gasp, "sounds/gasp.ogg"),
|
(SfxType::LoopSfx, Sfx::Gasp, "sounds/gasp.ogg"),
|
||||||
(SfxType::OneOff, Sfx::GaspRelief, "sounds/gasprelief.ogg"),
|
(SfxType::OneOff, Sfx::GaspRelief, "sounds/gasprelief.ogg"),
|
||||||
(SfxType::OneOff, Sfx::Achieve, "sounds/achieve.ogg"),
|
(SfxType::OneOff, Sfx::Achieve, "sounds/achieve.ogg"),
|
||||||
(
|
(SfxType::OneOff, Sfx::Click, "sounds/click.ogg"),
|
||||||
SfxType::OneOff,
|
|
||||||
Sfx::Click,
|
|
||||||
"sounds/click-button-140881-crop.ogg",
|
|
||||||
),
|
|
||||||
(SfxType::OneOff, Sfx::Connect, "sounds/connect.ogg"),
|
(SfxType::OneOff, Sfx::Connect, "sounds/connect.ogg"),
|
||||||
(SfxType::OneOff, Sfx::Crash, "sounds/crash.ogg"),
|
(SfxType::OneOff, Sfx::Crash, "sounds/crash.ogg"),
|
||||||
(SfxType::OneOff, Sfx::EnterVehicle, "sounds/bikestart.ogg"),
|
(SfxType::OneOff, Sfx::EnterVehicle, "sounds/growl.ogg"),
|
||||||
(
|
(
|
||||||
SfxType::OneOff,
|
SfxType::OneOff,
|
||||||
Sfx::IncomingChatMessage,
|
Sfx::IncomingChatMessage,
|
||||||
"sounds/connect.ogg",
|
"sounds/connect.ogg",
|
||||||
),
|
),
|
||||||
(SfxType::OneOff, Sfx::Ping, "sounds/connect.ogg"),
|
(SfxType::OneOff, Sfx::Ping, "sounds/connect.ogg"),
|
||||||
(
|
(SfxType::OneOff, Sfx::Switch, "sounds/click2.ogg"),
|
||||||
SfxType::OneOff,
|
|
||||||
Sfx::Switch,
|
|
||||||
"sounds/typosonic-typing-192811-crop.ogg",
|
|
||||||
),
|
|
||||||
(SfxType::OneOff, Sfx::WakeUp, "sounds/wakeup.ogg"),
|
(SfxType::OneOff, Sfx::WakeUp, "sounds/wakeup.ogg"),
|
||||||
(SfxType::OneOff, Sfx::Woosh, "sounds/woosh.ogg"),
|
(SfxType::OneOff, Sfx::Woosh, "sounds/woosh.ogg"),
|
||||||
(SfxType::OneOff, Sfx::Zoom, "sounds/zoom.ogg"),
|
(SfxType::OneOff, Sfx::Zoom, "sounds/zoom.ogg"),
|
||||||
|
@ -107,7 +98,6 @@ pub enum Sfx {
|
||||||
IncomingChatMessage,
|
IncomingChatMessage,
|
||||||
Ion,
|
Ion,
|
||||||
Ping,
|
Ping,
|
||||||
Rocket,
|
|
||||||
Switch,
|
Switch,
|
||||||
Thruster,
|
Thruster,
|
||||||
WakeUp,
|
WakeUp,
|
||||||
|
|
|
@ -662,11 +662,6 @@ pub fn apply_input_to_player(
|
||||||
actor::EngineType::Monopropellant,
|
actor::EngineType::Monopropellant,
|
||||||
sinks.get(&audio::Sfx::Thruster),
|
sinks.get(&audio::Sfx::Thruster),
|
||||||
),
|
),
|
||||||
(
|
|
||||||
1.0,
|
|
||||||
actor::EngineType::Rocket,
|
|
||||||
sinks.get(&audio::Sfx::Rocket),
|
|
||||||
),
|
|
||||||
(1.4, actor::EngineType::Ion, sinks.get(&audio::Sfx::Ion)),
|
(1.4, actor::EngineType::Ion, sinks.get(&audio::Sfx::Ion)),
|
||||||
];
|
];
|
||||||
let seconds_to_max_vol = 0.05;
|
let seconds_to_max_vol = 0.05;
|
||||||
|
|
|
@ -979,10 +979,6 @@ pub fn update_chat_variables(
|
||||||
} else {
|
} else {
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
vars.set_in_scope(
|
vars.set_in_scope("$", "chefhat", wears_chefhat.to_string());
|
||||||
"$",
|
|
||||||
"chefhat",
|
|
||||||
wears_chefhat.to_string(),
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -557,9 +557,6 @@ pub fn load_defs(mut ew_spawn: EventWriter<SpawnEvent>) {
|
||||||
state.warmup_seconds = warmup_time_float;
|
state.warmup_seconds = warmup_time_float;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
["engine", "rocket"] => {
|
|
||||||
state.engine_type = actor::EngineType::Rocket;
|
|
||||||
}
|
|
||||||
["engine", "ion"] => {
|
["engine", "ion"] => {
|
||||||
state.engine_type = actor::EngineType::Ion;
|
state.engine_type = actor::EngineType::Ion;
|
||||||
}
|
}
|
||||||
|
|