#pragma once #include "../ComponentManager.h" #include "../Exception.h" #include "BehaviorScript.h" #include "Script.h" namespace crepe { template T & Script::get_component() const { std::vector> all_components = this->get_components(); if (all_components.size() < 1) throw Exception("Script: no component found with type = {}", typeid(T).name()); return all_components.back().get(); } template std::vector> Script::get_components() const { ComponentManager & mgr = ComponentManager::get_instance(); return mgr.get_components_by_id(this->parent->game_object_id); } } // namespace crepe