sdl_runtime_compiler git · main
SDL3 game for running and compiling code at runtime
C++ 72.3% C 26.2%git clone https://git.christianimmanuel.de/sdl-graphics/sdl_runtime_compiler.gitwget https://git.christianimmanuel.de/sdl-graphics/sdl_runtime_compiler/archive/sdl_runtime_compiler.tar.gzsrc/systems/pult_system.hpp raw
#pragma once
#include <optional>
#include "entities/camera.hpp"
#include "entities/game_object.hpp"
#include "entities/pult.hpp"
#include "utils/globals.hpp"
namespace
Nimbin
{
class GlRenderer;
struct Light;
struct Player;
struct ProjectileContactEvent;
namespace Text { class Handler; }
class PultSystem
{
DynArray<Pult*> _pults;
Pult* _connect_program { nullptr };
Pult* _connect_editor { nullptr };
public:
void init (DynArray<GameObjectPtr>& scenery,
DynArray<PultButton*>& buttons_out,
float world_scale);
void update (double dt, const Camera& camera);
void draw_Labels (GlRenderer& gl, const Camera& camera, const Light& light) const;
std::optional<PultAction>
try_Activate (GameObject* obj,
const DynArray<PultButton*>& buttons);
std::optional<PultAction>
handle_ProjectileContact(const ProjectileContactEvent& ev,
const DynArray<PultButton*>& buttons);
std::optional<PultAction>
handle_PlayerContact (const Player& player,
const DynArray<PultButton*>& buttons);
Vec3 get_ConnectProgramPos () const;
Vec3 get_ConnectEditorPos () const;
DynArray<Text::Handler*>
get_Labels () const;
};
} // namespace Nimbin