nightshade-api 0.43.0

Procedural high level API for the nightshade game engine
Documentation
use nightshade_api::prelude::*;

fn main() {
    run_scene(|world| {
        set_background(world, Background::Color([0.02, 0.02, 0.04, 1.0]));
        show_grid(world, false);
        set_bloom(world, true);
        spawn_floor(world, 12.0);

        for row in 0..5 {
            for column in 0..5 {
                let sphere = spawn_sphere(
                    world,
                    vec3(column as f32 * 1.5 - 3.0, 0.5, row as f32 * 1.5 - 3.0),
                );
                set_color(world, sphere, RED);
                set_metallic_roughness(world, sphere, row as f32 / 4.0, column as f32 / 4.0);
            }
        }

        let lineup = [
            spawn_cube(world, vec3(-5.5, 0.5, 4.5)),
            spawn_cylinder(world, vec3(-4.0, 0.5, 4.5)),
            spawn_cone(world, vec3(-2.5, 0.5, 4.5)),
        ];
        for (index, entity) in lineup.into_iter().enumerate() {
            set_color(world, entity, [GOLD, TEAL, PURPLE][index]);
        }
        let checkered = spawn_cube(world, vec3(-5.5, 0.5, 2.5));
        set_texture(world, checkered, "checkerboard");

        let torus = spawn_torus(world, vec3(0.0, 2.5, 0.0));
        set_emissive(world, torus, [1.0, 0.6, 0.1], 6.0);

        orbit_camera(world, vec3(0.0, 1.0, 0.0), 12.0);
    })
    .unwrap();
}