Compare commits
10 commits
8a143f746c
...
3ae4843db4
Author | SHA1 | Date | |
---|---|---|---|
|
3ae4843db4 | ||
|
72a8a42870 | ||
|
718f5f7c78 | ||
|
4375bc0884 | ||
c27cfdbb22 | |||
|
a597b09970 | ||
|
d2f3691e93 | ||
|
0a04622787 | ||
|
e4a8f65652 | ||
|
191077de03 |
|
@ -1,6 +1,6 @@
|
||||||
[target.x86_64-unknown-linux-gnu]
|
[target.x86_64-unknown-linux-gnu]
|
||||||
linker = "clang"
|
# linker = "clang"
|
||||||
rustflags = [
|
# rustflags = [
|
||||||
"-C", "link-arg=-fuse-ld=mold",
|
# "-C", "link-arg=-fuse-ld=mold",
|
||||||
]
|
# ]
|
||||||
|
|
||||||
|
|
1107
Cargo.lock
generated
|
@ -5,8 +5,8 @@ edition = "2021"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
bevy = { version = "0.14.2" }
|
bevy = { version = "0.14.2" }
|
||||||
bevy_rapier2d = {version = "0.27.0", features = ["debug-render-2d", "simd-stable", "parallel"]}
|
bevy_rapier2d = {version = "0.27.0", features = ["debug-render-2d", "simd-stable"]}
|
||||||
bevy_editor_pls = "0.10"
|
# bevy_editor_pls = "0.10"
|
||||||
readformat = "0.1.2"
|
readformat = "0.1.2"
|
||||||
|
|
||||||
# Enable a small amount of optimization in the dev profile.
|
# Enable a small amount of optimization in the dev profile.
|
||||||
|
@ -17,3 +17,5 @@ opt-level = 1
|
||||||
[profile.dev.package."*"]
|
[profile.dev.package."*"]
|
||||||
opt-level = 3
|
opt-level = 3
|
||||||
|
|
||||||
|
[target.wasm32-unknown-unknown]
|
||||||
|
runner = "wasm-server-runner"
|
||||||
|
|
Before Width: | Height: | Size: 863 KiB After Width: | Height: | Size: 863 KiB |
BIN
assets/Dragon_p1.png
Normal file
After Width: | Height: | Size: 202 KiB |
BIN
assets/Dragon_p2.png
Normal file
After Width: | Height: | Size: 474 KiB |
BIN
assets/Dragon_p3.png
Normal file
After Width: | Height: | Size: 404 KiB |
BIN
assets/Dragon_p4.png
Normal file
After Width: | Height: | Size: 283 KiB |
BIN
assets/Dragon_p5.png
Normal file
After Width: | Height: | Size: 212 KiB |
Before Width: | Height: | Size: 186 KiB After Width: | Height: | Size: 189 KiB |
Before Width: | Height: | Size: 146 KiB After Width: | Height: | Size: 150 KiB |
Before Width: | Height: | Size: 541 KiB After Width: | Height: | Size: 551 KiB |
Before Width: | Height: | Size: 420 KiB After Width: | Height: | Size: 431 KiB |
BIN
assets/platform.png
Normal file
After Width: | Height: | Size: 529 KiB |
Before Width: | Height: | Size: 328 KiB After Width: | Height: | Size: 333 KiB |
Before Width: | Height: | Size: 285 KiB After Width: | Height: | Size: 290 KiB |
|
@ -2,14 +2,15 @@ header
|
||||||
parallax.size = 2000x1000
|
parallax.size = 2000x1000
|
||||||
parallax.tiles = 2
|
parallax.tiles = 2
|
||||||
parallax.factor.y = 100000
|
parallax.factor.y = 100000
|
||||||
|
parallax.offset = 200
|
||||||
parallax.tex = BG0_himmel_blau_smallest.png
|
parallax.tex = BG0_himmel_blau_smallest.png
|
||||||
parallax.factor = 30
|
parallax.factor = 30
|
||||||
parallax.depth = 10
|
parallax.depth = 10
|
||||||
parallax.offset = -200
|
|
||||||
parallax.enable = true
|
parallax.enable = true
|
||||||
parallax.tex = BG1_Berge_blau_small.png
|
parallax.tex = BG1_Berge_blau_small.png
|
||||||
parallax.factor = 10
|
parallax.factor = 10
|
||||||
parallax.depth = 9
|
parallax.depth = 9
|
||||||
|
parallax.offset = -200
|
||||||
parallax.enable = true
|
parallax.enable = true
|
||||||
parallax.tex = BG2_Berge_gau_small.png
|
parallax.tex = BG2_Berge_gau_small.png
|
||||||
parallax.factor = 8
|
parallax.factor = 8
|
||||||
|
@ -34,6 +35,12 @@ header
|
||||||
., = _erdblock_upper.png
|
., = _erdblock_upper.png
|
||||||
.a = _tree1_greenish.png
|
.a = _tree1_greenish.png
|
||||||
.O = ~Kugel2.png
|
.O = ~Kugel2.png
|
||||||
|
.DRAGON1 = _Dragon_p1.png
|
||||||
|
.DRAGON2 = _Dragon_p2.png
|
||||||
|
.DRAGON3 = _Dragon_p3.png
|
||||||
|
.DRAGON4 = _Dragon_p4.png
|
||||||
|
.DRAGON5 = _Dragon_p5.png
|
||||||
|
.D = Blockgrau.png
|
||||||
links
|
links
|
||||||
|
|
||||||
blocks
|
blocks
|
||||||
|
@ -49,27 +56,27 @@ blocks
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T TTT T T T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T TTT T T T T
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T S T T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T S T T T
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TT TTTTTTT T T T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TT TTTTTTT T T T T
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T T T T TTT
|
||||||
TTTTTTTTTTTTTTTTTTTTTTT T TTTTTTTTTT T T T T
|
TTTTTTTTTTTTTTTTTTTTTTT T TTTTTTTTTT T T T T T T T T
|
||||||
TTTTTTTTTTTTTTTTTTTTTTT T TTTTTTTTTTttTTTTTTTTT TT TTTTTT T T T T T T T T
|
TTTTTTTTTTTTTTTTTTTTTTT T TTTTTTTTTTttTTTTTTTTT TT TTTTTT T TT T T T T T T T T
|
||||||
TTTTTTTTTT TTT T tttttttttttttTTTTTTTT TTT T T T T T T T T
|
TTTTTTTTTT TTT T tttttttttttttTTTTTTTT TTT T T T T T T T T T
|
||||||
TTTTTTTTTT ttt TTTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTT TTT T T T T T T
|
TTTTTTTTTT ttt TTTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTT TTT T T T T T T T
|
||||||
TTTTTTTTTT ttt TT T TTT T T TTTTTTTTTTT T
|
TTTTTTTTTT ttt TT T TTT T T TTTTTTTTTTT T
|
||||||
TTTTTTTTTT TTttTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTTT T T T T
|
TTTTTTTTTT TTttTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TGGGGGGGGGGGGGGGGGGGGGGGGGGGGGTTT T TT T T
|
||||||
TTTTTTTTTT T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETTT T T TT
|
TTTTTTTTTT T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETTT T T S TT T T
|
||||||
TTTTTTTTTT T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T T
|
TTTTTTTTTT T TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T T T
|
||||||
TTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T T T T T T
|
TTTTTTTTTT TTTTTTTTTTT TEEEEEEEEEEEEEEEEEEEEEEEEEEEEETT T T T T T T T T DRAGON1
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTT TTTTT TTT T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTTTTTTTTTT TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT TTTT TTTT TTT T S DRAGON2
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T TTTTT T
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT T T T TTTTT T S _______________________________ ___ DRAGON3
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTttttttttttttttttttt _ S T T ____________________TTTTTTT T___________________________________________________________________________________________________
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTttttttttttttttttttt _ S T T ____________________TTTTTTT T_____GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG GGG______________________ DRAGON4_ _____________________________________________________________
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTtt T _T TT T GGGGGGGGGGGGGGGGGGGGGGGGGGG TGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTtt T _T TT T GGGGGGGGGGGGGGGGGGGGGGGGGGG TGGGGGEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEGGGGGGGGGGGGGGGGGGGGGDDDDDDDDDDDDDDGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T T _________GT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T T _________GT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TGGGGGGGGGET T T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TGGGGGGGGGET T T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TTEEEEEEEEEET T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TTEEEEEEEEEET T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T TTTTTTTTTTTTTT T T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T T TTTTTTTTTTTTTT T T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTtTTTTTTTTTTTTTTTTTT T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE TEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
T T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
T T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
T T T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
T T T TT T T T EEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
|
||||||
T O S OT T T T T
|
T O S OT T T T T
|
||||||
T O T _______ T T T T
|
T O T _______ T T T T
|
||||||
T O S T S _GGGGGGGTTT T T T
|
T O S T S _GGGGGGGTTT T T T
|
||||||
|
|
|
@ -22,7 +22,11 @@
|
||||||
flake-utils.lib.eachDefaultSystem (system: let
|
flake-utils.lib.eachDefaultSystem (system: let
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
rs-toolchain = with fenix.packages.${system}; combine [stable.toolchain];
|
rs-toolchain = with fenix.packages.${system}; combine [
|
||||||
|
stable.toolchain
|
||||||
|
targets.wasm32-unknown-unknown.stable.rust-src
|
||||||
|
targets.x86_64-pc-windows-gnu.stable.rust-src
|
||||||
|
];
|
||||||
in {
|
in {
|
||||||
devShells.default = pkgs.mkShell rec {
|
devShells.default = pkgs.mkShell rec {
|
||||||
buildInputs = with pkgs; [
|
buildInputs = with pkgs; [
|
||||||
|
|
BIN
idle_egg.png
Before Width: | Height: | Size: 189 KiB |
BIN
idle_empty.png
Before Width: | Height: | Size: 150 KiB |
BIN
jump_egg.png
Before Width: | Height: | Size: 551 KiB |
BIN
jump_empty.png
Before Width: | Height: | Size: 431 KiB |
|
@ -7,7 +7,7 @@ use crate::AppState;
|
||||||
|
|
||||||
mod player;
|
mod player;
|
||||||
mod scene;
|
mod scene;
|
||||||
mod set;
|
pub mod set;
|
||||||
|
|
||||||
pub const WORLD_DEPTH: f32 = 0.5;
|
pub const WORLD_DEPTH: f32 = 0.5;
|
||||||
pub const PLAYER_DEPTH: f32 = 0.4;
|
pub const PLAYER_DEPTH: f32 = 0.4;
|
||||||
|
|
|
@ -59,7 +59,8 @@ pub(super) fn player_plugin(app: &mut App) {
|
||||||
move_player,
|
move_player,
|
||||||
debug_player_pos,
|
debug_player_pos,
|
||||||
run_animations::<PlayerAnimations>,
|
run_animations::<PlayerAnimations>,
|
||||||
),
|
)
|
||||||
|
.in_set(IngameSet),
|
||||||
)
|
)
|
||||||
.init_resource::<PlayerSpawnOneshot>();
|
.init_resource::<PlayerSpawnOneshot>();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ use crate::parallax::{parallax, Parallax};
|
||||||
use crate::AppState;
|
use crate::AppState;
|
||||||
|
|
||||||
use super::player::PlayerSpawnOneshot;
|
use super::player::PlayerSpawnOneshot;
|
||||||
|
use super::set::IngameSet;
|
||||||
use super::{PLAYER_DEPTH, PLAYER_SIZE_FRACTION};
|
use super::{PLAYER_DEPTH, PLAYER_SIZE_FRACTION};
|
||||||
|
|
||||||
#[derive(Component)]
|
#[derive(Component)]
|
||||||
|
@ -52,7 +53,7 @@ impl From<PlayerCoords> for Transform {
|
||||||
pub(super) fn scene_plugin(app: &mut App) {
|
pub(super) fn scene_plugin(app: &mut App) {
|
||||||
// app.add_plugins(EditorPlugin::default());
|
// app.add_plugins(EditorPlugin::default());
|
||||||
// app.add_systems(, )
|
// app.add_systems(, )
|
||||||
app.add_systems(Startup, (import_text_world,));
|
app.add_systems(Startup, (import_text_world,).in_set(IngameSet));
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Default, Resource)]
|
#[derive(Default, Resource)]
|
||||||
|
@ -69,7 +70,7 @@ pub(super) fn import_text_world(
|
||||||
mut materials: ResMut<Assets<ColorMaterial>>,
|
mut materials: ResMut<Assets<ColorMaterial>>,
|
||||||
mut player_spawn_oneshot: Res<PlayerSpawnOneshot>,
|
mut player_spawn_oneshot: Res<PlayerSpawnOneshot>,
|
||||||
) {
|
) {
|
||||||
let world_string = fs::read_to_string("assets/world.txt").expect("need a world to load");
|
let world_string = include_str!("../../assets/world.txt");
|
||||||
let [info_string, links_string, world_string] =
|
let [info_string, links_string, world_string] =
|
||||||
&readf("header\n{}\nlinks\n{}\nblocks\n{}", &world_string)
|
&readf("header\n{}\nlinks\n{}\nblocks\n{}", &world_string)
|
||||||
.expect("world does not have sections")[..]
|
.expect("world does not have sections")[..]
|
||||||
|
@ -197,7 +198,11 @@ fn spawn_block(
|
||||||
transform: Transform::from_xyz(
|
transform: Transform::from_xyz(
|
||||||
x + block_size * ((len as f32 - 1.) / 2.),
|
x + block_size * ((len as f32 - 1.) / 2.),
|
||||||
y,
|
y,
|
||||||
WORLD_DEPTH,
|
if fixed {
|
||||||
|
WORLD_DEPTH
|
||||||
|
} else {
|
||||||
|
WORLD_DEPTH - 0.01
|
||||||
|
},
|
||||||
),
|
),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|
116
src/main.rs
|
@ -1,7 +1,8 @@
|
||||||
#![allow(unused)]
|
#![allow(unused)]
|
||||||
|
|
||||||
use bevy::prelude::*;
|
use bevy::prelude::*;
|
||||||
use bevy_rapier2d::prelude::*;
|
use bevy_rapier2d::prelude::*;
|
||||||
use game::game_plugin;
|
use game::{game_plugin, set::IngameSet};
|
||||||
use parallax::parallax_plugin;
|
use parallax::parallax_plugin;
|
||||||
|
|
||||||
mod game;
|
mod game;
|
||||||
|
@ -13,6 +14,7 @@ const METER: f32 = 100.;
|
||||||
enum AppState {
|
enum AppState {
|
||||||
#[default]
|
#[default]
|
||||||
MainMenu,
|
MainMenu,
|
||||||
|
StoryPics,
|
||||||
InGame,
|
InGame,
|
||||||
GameOver,
|
GameOver,
|
||||||
}
|
}
|
||||||
|
@ -24,6 +26,15 @@ enum PausedState {
|
||||||
Running,
|
Running,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(States, Debug, Clone, PartialEq, Eq, Hash, Default)]
|
||||||
|
enum StoryPics {
|
||||||
|
#[default]
|
||||||
|
Pic0,
|
||||||
|
Pic1,
|
||||||
|
Pic2,
|
||||||
|
Pic3,
|
||||||
|
}
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let rapier_config = RapierConfiguration {
|
let rapier_config = RapierConfiguration {
|
||||||
scaled_shape_subdivision: 2,
|
scaled_shape_subdivision: 2,
|
||||||
|
@ -40,17 +51,116 @@ fn main() {
|
||||||
App::new()
|
App::new()
|
||||||
.add_plugins(DefaultPlugins)
|
.add_plugins(DefaultPlugins)
|
||||||
.add_plugins(RapierPhysicsPlugin::<NoUserData>::pixels_per_meter(METER))
|
.add_plugins(RapierPhysicsPlugin::<NoUserData>::pixels_per_meter(METER))
|
||||||
.add_plugins(RapierDebugRenderPlugin::default())
|
// .add_plugins(RapierDebugRenderPlugin::default())
|
||||||
.add_systems(Startup, setup_camera)
|
.add_systems(Startup, setup_camera)
|
||||||
.add_plugins(game_plugin)
|
.add_plugins(game_plugin)
|
||||||
.add_plugins(parallax_plugin)
|
.add_plugins(parallax_plugin)
|
||||||
.init_state::<AppState>()
|
.init_state::<AppState>()
|
||||||
.init_state::<PausedState>()
|
.init_state::<PausedState>()
|
||||||
.insert_state(AppState::InGame) // TODO dont
|
.insert_state(AppState::StoryPics) // TODO dont
|
||||||
|
.init_state::<StoryPics>()
|
||||||
.insert_resource(rapier_config)
|
.insert_resource(rapier_config)
|
||||||
|
.configure_sets(Update, IngameSet.run_if(in_state(AppState::InGame)))
|
||||||
|
.add_systems(OnEnter(AppState::StoryPics), setup_storypics)
|
||||||
|
.add_systems(
|
||||||
|
Update,
|
||||||
|
(storypic_next_thingy, update_storypics).run_if(in_state(AppState::StoryPics)),
|
||||||
|
)
|
||||||
|
.add_systems(OnExit(AppState::StoryPics), cleanup_storypics)
|
||||||
.run();
|
.run();
|
||||||
}
|
}
|
||||||
|
|
||||||
fn setup_camera(mut commands: Commands) {
|
fn setup_camera(mut commands: Commands) {
|
||||||
commands.spawn(Camera2dBundle::default());
|
commands.spawn(Camera2dBundle::default());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Component)]
|
||||||
|
struct StoryPicMarker;
|
||||||
|
#[derive(Component)]
|
||||||
|
struct StoryPicNextBtnMarker;
|
||||||
|
|
||||||
|
fn setup_storypics(mut commands: Commands, asset_server: Res<AssetServer>) {
|
||||||
|
let pic0 = asset_server.load("SC01_Once upon a time.png");
|
||||||
|
// force preloads
|
||||||
|
let _pic1: Handle<Image> = asset_server.load("SC02_Gargels_Tower.png");
|
||||||
|
let _pic2: Handle<Image> = asset_server.load("SC03_The Egg.png");
|
||||||
|
let _pic3: Handle<Image> = asset_server.load("SC04_The Letter.png");
|
||||||
|
commands
|
||||||
|
.spawn(ImageBundle {
|
||||||
|
image: UiImage {
|
||||||
|
texture: pic0,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
style: Style {
|
||||||
|
width: Val::Percent(100.),
|
||||||
|
height: Val::Percent(100.),
|
||||||
|
|
||||||
|
justify_content: JustifyContent::End,
|
||||||
|
align_items: AlignItems::End,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
..Default::default()
|
||||||
|
})
|
||||||
|
.insert(StoryPicMarker)
|
||||||
|
.with_children(|parent| {
|
||||||
|
parent
|
||||||
|
.spawn((ButtonBundle {
|
||||||
|
..Default::default()
|
||||||
|
},))
|
||||||
|
.insert(StoryPicNextBtnMarker)
|
||||||
|
.with_children(|parent| {
|
||||||
|
parent.spawn(TextBundle::from_section(
|
||||||
|
"Weiter...",
|
||||||
|
TextStyle {
|
||||||
|
font_size: 64.,
|
||||||
|
..Default::default()
|
||||||
|
},
|
||||||
|
));
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
fn storypic_next_thingy(
|
||||||
|
interaction_query: Query<&Interaction, (Changed<Interaction>, With<StoryPicNextBtnMarker>)>,
|
||||||
|
cur_pic: Res<State<StoryPics>>,
|
||||||
|
mut pic_switcher: ResMut<NextState<StoryPics>>,
|
||||||
|
mut game_state: ResMut<NextState<AppState>>,
|
||||||
|
) {
|
||||||
|
let Ok(interaction) = interaction_query.get_single() else {
|
||||||
|
return ();
|
||||||
|
};
|
||||||
|
if *interaction == Interaction::Pressed && *cur_pic == StoryPics::Pic3 {
|
||||||
|
game_state.set(AppState::InGame);
|
||||||
|
} else if *interaction == Interaction::Pressed {
|
||||||
|
pic_switcher.set(match cur_pic.clone() {
|
||||||
|
StoryPics::Pic0 => StoryPics::Pic1,
|
||||||
|
StoryPics::Pic1 => StoryPics::Pic2,
|
||||||
|
StoryPics::Pic2 => StoryPics::Pic3,
|
||||||
|
StoryPics::Pic3 => unreachable!(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn update_storypics(
|
||||||
|
mut commands: Commands,
|
||||||
|
mut cur_pic: Query<&mut UiImage, With<StoryPicMarker>>,
|
||||||
|
cur_pic_state: Res<State<StoryPics>>,
|
||||||
|
asset_server: Res<AssetServer>,
|
||||||
|
) {
|
||||||
|
if cur_pic_state.is_changed() {
|
||||||
|
let mut pic = cur_pic.single_mut();
|
||||||
|
|
||||||
|
pic.texture = asset_server.load(match cur_pic_state.clone() {
|
||||||
|
StoryPics::Pic0 => "SC01_Once upon a time.png",
|
||||||
|
StoryPics::Pic1 => "SC02_Gargels_Tower.png",
|
||||||
|
StoryPics::Pic2 => "SC03_The Egg.png",
|
||||||
|
StoryPics::Pic3 => "SC04_The Letter.png",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn cleanup_storypics(mut commands: Commands, to_delete: Query<Entity, With<StoryPicMarker>>) {
|
||||||
|
for e in &to_delete {
|
||||||
|
commands.entity(e).despawn_recursive();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
BIN
walk_egg.png
Before Width: | Height: | Size: 333 KiB |
BIN
walk_empty.png
Before Width: | Height: | Size: 290 KiB |