#bevy #bevy-ecs #ecs #框架 #moonshine #非传统

moonshine-core

Bevy中的非传统游戏开发框架

4个版本

0.2.0 2024年7月21日
0.1.2 2024年7月5日
0.1.1 2024年5月5日
0.1.0 2024年5月4日

#2370 in 游戏开发

Download history 274/week @ 2024-05-01 10/week @ 2024-05-08 6/week @ 2024-05-15 20/week @ 2024-05-22 136/week @ 2024-07-03 6/week @ 2024-07-10 122/week @ 2024-07-17 44/week @ 2024-07-24 3/week @ 2024-07-31

177 每月下载量
用于 moonshine-view

MIT 许可证

9KB

🍸 Moonshine Core

Bevy中ECS驱动的开发更容易、更安全的非传统库。

查看各个包以获取详细文档和示例。

🍎 Moonshine Kind

crates.io downloads docs.rs license stars

Bevy实体的类型安全解决方案

use bevy::prelude::*;
use moonshine_core::prelude::*;

#[derive(Component)]
struct Fruit;

#[derive(Component)]
struct FruitBasket {
    fruits: Vec<Instance<Fruit>>
}

🌴 Moonshine Object

crates.io downloads docs.rs license stars

管理复杂实体层次结构的便利包装器

use bevy::prelude::*;
use moonshine_core::prelude::*;

#[derive(Component)]
struct Bird;

#[derive(Component)]
struct Flying;

fn setup_bird(birds: Objects<Bird, Added<Flying>>, mut commands: Commands) {
    for bird in birds.iter() {
        if let Some(wings) = bird.find_by_path("./Wings") {
            for wing in wings.children() {
                // TODO: Flap! Flap!
            }
        }
    }
}

💾 Moonshine Save

crates.io downloads docs.rs license stars

持久游戏状态的保存/加载框架

use bevy::prelude::*;
use moonshine_core::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins((SavePlugin, LoadPlugin))
        .add_systems(PreUpdate, save_default().into_file("world.ron").run_if(should_save))
        .add_systems(PreUpdate, load_from_file("world.ron").run_if(should_load))
        .run();
}

fn should_save(key: Res<ButtonInput<KeyCode>>) -> bool {
    key.just_pressed(KeyCode::KeyS)
}

fn should_load(key: Res<ButtonInput<KeyCode>>) -> bool {
    key.just_pressed(KeyCode::KeyL)
}

🥚 Moonshine Spawn

crates.io downloads docs.rs license stars

用于在没有系统的情况下生成实体层次结构的工具

use bevy::prelude::*;
use moonshine_spawn::prelude::*;

fn chicken() -> impl Bundle {
    Chicken.with_children(|chicken| {
        chicken.spawn(ChickenHead);
    })
}

#[derive(Component)]
struct Chicken;

#[derive(Component)]
struct ChickenHead;

🛠️ Moonshine Utilities

用于提高安全性、诊断和便利性的通用工具集合。

crates.io downloads docs.rs license stars

支持

提交问题以报告任何错误、问题或建议。

您也可以在官方Bevy Discord服务器上联系我,昵称@Zeenobit

依赖关系

~16–50MB
~858K SLoC