[package]
name = "oxide-script"
description = "Oxide 3D game engine — scripting module (rhai)"
version.workspace = true
edition.workspace = true
authors.workspace = true
license.workspace = true
rust-version.workspace = true

[dependencies]
oxide-engine = { path = "../engine" }
glam.workspace = true
hecs.workspace = true
serde.workspace = true
ron.workspace = true
thiserror.workspace = true
log.workspace = true

# The scripting backend. rhai is embeddable and sandboxed (no file/OS access by
# default), which is exactly what an in-engine, hot-reloaded game-logic language
# needs.
# - `sync` makes its handles `Send + Sync` so a compiled script can live in an
#   App resource alongside the rest of the engine state.
# - `f32_float` makes the script `FLOAT` type `f32`, matching `glam`, so the
#   engine math types (`Vec3`, angles, …) bridge into scripts with no casts.
rhai = { version = "1.21", features = ["sync", "f32_float"] }

[dev-dependencies]
ron.workspace = true
