Pioneer
Loading...
Searching...
No Matches
CargoBody.h
Go to the documentation of this file.
1// Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2// Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3
4#ifndef _CARGOBODY_H
5#define _CARGOBODY_H
6
7#include "DynamicBody.h"
8#include "libs.h"
9#include "lua/LuaRef.h"
10
11namespace Graphics {
12 class Renderer;
13}
14
15class CargoBody : public DynamicBody {
16public:
18 CargoBody() = delete;
19 CargoBody(const LuaRef &cargo, float selfdestructTimer = 86400.0f); // default to 24 h lifetime
20 CargoBody(const char *modelName, const LuaRef &cargo, float selfdestructTimer = 86400.0f); // default to 24 h lifetime
21 CargoBody(const Json &jsonObj, Space *space);
22 LuaRef GetCargoType() const { return m_cargo; }
23 virtual void SetLabel(const std::string &label) override;
24 virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override;
25 virtual void TimeStepUpdate(const float timeStep) override;
26 virtual bool OnCollision(Body *o, Uint32 flags, double relVel) override;
27 virtual bool OnDamage(Body *attacker, float kgDamage, const CollisionContact &contactData) override;
28
30
31protected:
32 virtual void SaveToJson(Json &jsonObj, Space *space) override;
33
34private:
35 void Init();
36 LuaRef m_cargo;
37 float m_hitpoints;
38 float m_selfdestructTimer;
39 bool m_hasSelfdestruct;
40};
41
42#endif /* _CARGOBODY_H */
nlohmann::json Json
Definition Json.h:8
Definition Body.h:57
Definition Camera.h:80
Definition CargoBody.h:15
LuaRef GetCargoType() const
Definition CargoBody.h:22
virtual void SaveToJson(Json &jsonObj, Space *space) override
Definition CargoBody.cpp:57
CargoBody()=delete
virtual void SetLabel(const std::string &label) override
Definition CargoBody.cpp:145
virtual bool OnDamage(Body *attacker, float kgDamage, const CollisionContact &contactData) override
Definition CargoBody.cpp:112
~CargoBody()
Definition CargoBody.h:29
virtual void TimeStepUpdate(const float timeStep) override
Definition CargoBody.cpp:92
OBJDEF(CargoBody, DynamicBody, CARGOBODY)
virtual bool OnCollision(Body *o, Uint32 flags, double relVel) override
Definition CargoBody.cpp:126
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
Definition CargoBody.cpp:140
Definition DynamicBody.h:15
Definition Renderer.h:44
Definition LuaRef.h:12
Definition Space.h:19
Definition Background.h:14
Definition CollisionContact.h:9