/* * JamSpookGame.h * * Created on: Aug 8, 2019 * Author: fredrick */ #ifndef JAMSPOOKGAME_H_ #define JAMSPOOKGAME_H_ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include "entities/LightingFactory.h" #include "entities/Jump180Factory.h" #include "entities/GoalFactory.h" #include "entities/BallFactory.h" #include "entities/BoxFactory.h" #include "entities/KartFactory.h" #include "entities/ResetTriggerFactory.h" namespace JamSpook { using std::unique_ptr; using std::make_unique; using std::shared_ptr; using std::make_shared; using std::static_pointer_cast; using std::dynamic_pointer_cast; using std::bind; using std::vector; using std::string; using std::to_string; using glm::ivec2; using glm::vec2; using glm::vec3; using glm::vec4; using glm::mat4; using glm::translate; using glm::normalize; using ecos::utility::getWorkingPath; using ecos::utility::getRealPath; using ecos::utility::getFloatInRange; using ecos::utility::getIntInRange; using ecos::core::logging::Log; using ecos::core::logging::LogLevel; using ecos::core::Game; using ecos::core::GameState; using ecos::core::IDCache; using ecos::core::SceneGraph; using ecos::core::SysCall; using ecos::core::BroadcastObservable; using ecos::core::Window; using ecos::core::CycleRegulationSystem; using ecos::asset::AssetSystem; using ecos::asset::AssetFileSystem; using ecos::asset::DataManagementMode; using ecos::physics::PhysicsSystem; using ecos::physics::CollisionShapeLoader; using ecos::animation::AnimationSystem; using ecos::camera::CameraSystem; using ecos::camera::CameraFactory; using ecos::camera::Camera; using ecos::interaction::InteractionSystem; using ecos::interaction::InputDeviceState; using ecos::interaction::ButtonState; using ecos::graphics::GraphicsSystem; using ecos::graphics::RenderLayer; using ecos::graphics::RenderLayerFactory; using ecos::graphics::ShaderAsset; using ecos::graphics::ShaderProgram; using ecos::graphics::ShaderProgramFactory; using ecos::graphics::DevILSystem; using ecos::graphics::Renderer; using ecos::graphics::GL4Renderer; using ecos::graphics::MeshLoader; using ecos::graphics::ShaderLoader; using ecos::graphics::ShaderProgramLoader; using ecos::graphics::TextureFileLoader; using ecos::graphics::TextureBlankLoader; using ecos::graphics::ShaderType; using ecos::graphics::ShaderAsset; using ecos::graphics::ShaderProgram; using ecos::sound::SoundSystem; using ecos::sound::SoundEffectLoader; /// class JamSpookGame: public Game { private: shared_ptr mWindow; BroadcastObservable::CallbackID mCallbackId; BroadcastObservable::CallbackID mInputDeviceCallbackId; shared_ptr mRenderer; shared_ptr mCamera; public: JamSpookGame(); virtual ~JamSpookGame(); virtual void load(); virtual void update(); void set(); void reset(); void menu(); void onSysCall(const SysCall sysCall); void onInputDeviceStateChange(const InputDeviceState inputDeviceState); }; } // namespace JamSpook #endif // JAMSPOOKGAME_H_