book testing
Some checks failed
Rust / build (pull_request) Has been cancelled

This commit is contained in:
Jaroslaw Konik 2025-05-26 22:45:50 +02:00
parent 08e177dacd
commit d505fb33aa
11 changed files with 2544 additions and 15 deletions

1
book/.gitignore vendored
View file

@ -1,2 +1,3 @@
book book
doctest_cache doctest_cache
target

2498
book/Cargo.lock generated Normal file

File diff suppressed because it is too large Load diff

6
book/Cargo.toml Normal file
View file

@ -0,0 +1,6 @@
[package]
name = "bevy_scriptum_book"
publish = false
[dependencies]
bevy_scriptum = { path = "../", features = ["ruby", "lua", "rhai"] }

View file

@ -4,9 +4,3 @@ language = "en"
multilingual = false multilingual = false
src = "src" src = "src"
title = "bevy_scriptum" title = "bevy_scriptum"
[preprocessor.keeper]
command = "mdbook-keeper"
manifest_dir = "../"
externs = ["bevy", "bevy_scriptum"]
build_features = ["lua", "rhai"]

0
book/src/lib.rs Normal file
View file

View file

@ -2,7 +2,10 @@
It is possible to split the definition of your callback functions up over multiple plugins. This enables you to split up your code by subject and keep the main initialization light and clean. It is possible to split the definition of your callback functions up over multiple plugins. This enables you to split up your code by subject and keep the main initialization light and clean.
This can be accomplished by using `add_scripting_api`. Be careful though, `add_scripting` has to be called before adding plugins. This can be accomplished by using `add_scripting_api`. Be careful though, `add_scripting` has to be called before adding plugins.
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;

View file

@ -20,14 +20,17 @@ bevy_scriptum provides following types that can be used in Lua:
### Example Lua usage ### Example Lua usage
``` ```lua
my_vec = Vec3(1, 2, 3) my_vec = Vec3(1, 2, 3)
set_translation(entity, my_vec) set_translation(entity, my_vec)
``` ```
### Example Rust usage ### Example Rust usage
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;
@ -69,7 +72,10 @@ pass_to_rust(entity)
### Example Rust usage ### Example Rust usage
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;

View file

@ -7,7 +7,11 @@ That allows you to do anything you would do in a Bevy system.
You could for example create a callback system function that prints names You could for example create a callback system function that prints names
of all entities with `Player` component. of all entities with `Player` component.
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_ecs;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;
@ -42,7 +46,11 @@ You can use functions that interact with Bevy entities and resources and
take arguments at the same time. It could be used for example to mutate a take arguments at the same time. It could be used for example to mutate a
component. component.
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_ecs;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;
@ -59,7 +67,7 @@ fn main() {
runtime.add_function( runtime.add_function(
String::from("hurt_player"), String::from("hurt_player"),
|In((hit_value,)): In<(i32,)>, mut players: Query<&mut Player>| { |In((hit_value,)): In<(i32,)>, mut players: Query<&mut Player>| {
let mut player = players.single_mut(); let mut player = players.single_mut().unwrap();
player.health -= hit_value; player.health -= hit_value;
}, },
); );

1
book/src/ruby/ruby.md Normal file
View file

@ -0,0 +1 @@
# Ruby

View file

@ -5,7 +5,7 @@
To enable live reload it should be enough to enable `file-watcher` feature To enable live reload it should be enough to enable `file-watcher` feature
within bevy dependency in `Cargo.toml` within bevy dependency in `Cargo.toml`
``` ```toml
bevy = { version = "0.16", features = ["file_watcher"] } bevy = { version = "0.16", features = ["file_watcher"] }
``` ```
@ -53,6 +53,9 @@ init()
The function calls can be implemented on Rust side the following way: The function calls can be implemented on Rust side the following way:
```rust ```rust
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;
@ -98,7 +101,10 @@ fn main() {}
And to tie this all together we do the following: And to tie this all together we do the following:
```rust ```rust,no_run
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::prelude::*; use bevy_scriptum::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;
@ -126,6 +132,9 @@ fn spawn_player() {} // Implemented elsewhere
`despawn` can be implemented as: `despawn` can be implemented as:
```rust ```rust
# extern crate bevy;
# extern crate bevy_scriptum;
use bevy::prelude::*; use bevy::prelude::*;
use bevy_scriptum::runtimes::lua::prelude::*; use bevy_scriptum::runtimes::lua::prelude::*;

3
book/test.sh Executable file
View file

@ -0,0 +1,3 @@
#!/bin/sh
CARGO_MANIFEST_DIR=$(pwd) cargo clean && cargo build && mdbook test -L target/debug/deps/