#pragma once #include #include #include "text/token.hpp" #include "utils/globals.hpp" namespace Nimbin { namespace Scene { namespace Placed { struct Word { std::string text; Vec3 pos {}; SDL_FColor color = Config::Color::floor; bool required = false; }; struct Plate { std::string tag; Vec3 pos; }; struct Platform { Vec3 pos; Vec3 half_extents { 1.0, 0.2, 1.0 }; SDL_FColor fill_color { 0.45f, 0.45f, 0.65f, 1.0f }; SDL_FColor wire_color { 0.70f, 0.70f, 0.90f, 1.0f }; }; struct Ai { std::string text; Vec3 pos; Text::Token::Ai::State initial_state = Text::Token::Ai::State::Attack; double aggressiveness = 1.0; }; } // namespace Placed:: struct Data { DynArray ai_seeds {}; DynArray plates {}; DynArray platforms{}; DynArray words {}; }; } // namespace Scene } // namespace Nimbin