#pragma once #include "../ComponentManager.h" #include "BehaviorScript.h" #include "Script.h" namespace crepe { template T & Script::get_component() const { using namespace std; vector> all_components = this->get_components(); if (all_components.size() < 1) throw runtime_error( format("Script: no component found with type = {}", typeid(T).name())); return all_components.back().get(); } template std::vector> Script::get_components() const { auto & mgr = *this->component_manager_ref; return mgr.get_components_by_id(this->game_object_id); } template void Script::logf(Args &&... args) { Log::logf(std::forward(args)...); } } // namespace crepe