// ---------------------------------------------------------------- // From Game Programming in C++ by Sanjay Madhav // Copyright (C) 2017 Sanjay Madhav. All rights reserved. // // Released under the BSD License // See LICENSE in root directory for full details. // ---------------------------------------------------------------- #pragma once #include "Component.h" class MoveComponent : public Component { public: // Lower update order to update first MoveComponent(class Actor* owner, int updateOrder = 10); void Update(float deltaTime) override; float GetAngularSpeed() const { return mAngularSpeed; } float GetForwardSpeed() const { return mForwardSpeed; } float GetStrafeSpeed() const { return mStrafeSpeed; } void SetAngularSpeed(float speed) { mAngularSpeed = speed; } void SetForwardSpeed(float speed) { mForwardSpeed = speed; } void SetStrafeSpeed(float speed) { mStrafeSpeed = speed; } TypeID GetType() const override { return TMoveComponent; } void LoadProperties(const rapidjson::Value& inObj) override; void SaveProperties(rapidjson::Document::AllocatorType& alloc, rapidjson::Value& inObj) const override; protected: float mAngularSpeed; float mForwardSpeed; float mStrafeSpeed; };