[workspace]
members = ["macros"]

[workspace.package]
edition = "2024"
authors = ["IdanArye <idanarye@gmail.com>", "dexsper <dexsperpro@gmail.com>"]
license = "MIT OR Apache-2.0"
repository = "https://github.com/idanarye/bevy-yoleck"

[package]
name = "bevy-yoleck"
description = "Your Own Level Editor Creation Kit"
version = "0.31.0"
edition.workspace = true
authors.workspace = true
license.workspace = true
repository.workspace = true
documentation = "https://docs.rs/bevy-yoleck"
readme = "README.md"
categories = ["game-development"]
keywords = ["bevy", "gamedev", "level-editor"]
exclude = ["assets"]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
bevy-yoleck-macros = { version = "0.10.0", path = "macros" }
bevy = { version = "^0.18", default-features = false, features = [
    "bevy_state",
    "bevy_window",
    "bevy_asset",
    "bevy_log",
    "bevy_camera",
] }
bevy_egui = { version = "^0.39", default-features = false, features = [
    "default_fonts",
    "render",
] }
serde = "^1"
serde_json = "^1"
thiserror = "^2"
uuid = "1.9.1"
arboard = {version = "3.4", optional = true}

[features]
bevy_reflect = []
vpeol = []
vpeol_2d = ["vpeol", "bevy/bevy_text", "bevy/bevy_sprite", "bevy/png"]
vpeol_3d = ["vpeol", "bevy/bevy_pbr"]
# Support clipboard with the Arboard crate. Otherwise the clipboard will be internal.
arboard = ["dep:arboard"]
# Enable Wayland support in Arboard.
arboard_wayland = ["arboard", "arboard/wayland-data-control"]
_example2d_full = ["vpeol_2d", "bevy/bevy_gizmos", "bevy/bevy_sprite_render"]
_example3d_full = [
    "vpeol_3d",
    "bevy/bevy_scene",
    "bevy/bevy_gltf",
    "bevy/bevy_animation",
    "bevy/ktx2",
    "bevy/zstd_rust",
    "bevy/tonemapping_luts",
    "bevy/bevy_gizmos",
    "bevy/reflect_auto_register",
    "bevy/bevy_sprite_render",
]
_doors_to_other_levels_full = ["vpeol_2d", "bevy/bevy_sprite_render"]

[dev-dependencies]
bevy = { version = "^0.18", default-features = false, features = [
    "bevy_sprite",
    "x11",
    "bevy_window",
    "bevy_text",
    "bevy_render",
] }

[[example]]
name = "example2d"
required-features = ["_example2d_full"]

[[example]]
name = "example3d"
required-features = ["_example3d_full"]

[[example]]
name = "custom_camera3d"
required-features = ["_example3d_full"]

[[example]]
name = "doors_to_other_levels"
required-features = ["_doors_to_other_levels_full"]

[package.metadata.docs.rs]

all-features = true
features = [
    "bevy/x11",       # required for bevy_egui
    "bevy/bevy_gltf", # required for SceneRoot in vpeol_3d's doctests
]
