Pioneer
Loading...
Searching...
No Matches
CargoBody.h
Go to the documentation of this file.
1// Copyright © 2008-2024 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 "lua/LuaRef.h"
9
10namespace Graphics {
11 class Renderer;
12}
13
14class CargoBody : public DynamicBody {
15public:
17 CargoBody() = delete;
18 CargoBody(const LuaRef &cargo, float selfdestructTimer = 86400.0f); // default to 24 h lifetime
19 CargoBody(const char *modelName, const LuaRef &cargo, float selfdestructTimer = 86400.0f); // default to 24 h lifetime
20 CargoBody(const Json &jsonObj, Space *space);
21 LuaRef GetCargoType() const { return m_cargo; }
22 virtual void SetLabel(const std::string &label) override;
23 virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override;
24 virtual void TimeStepUpdate(const float timeStep) override;
25 virtual bool OnCollision(Body *o, Uint32 flags, double relVel) override;
26 virtual bool OnDamage(Body *attacker, float kgDamage, const CollisionContact &contactData) override;
27
29
30protected:
31 virtual void SaveToJson(Json &jsonObj, Space *space) override;
32
33private:
34 void Init();
35 LuaRef m_cargo;
36 float m_hitpoints;
37 float m_selfdestructTimer;
38 bool m_hasSelfdestruct;
39};
40
41#endif /* _CARGOBODY_H */
nlohmann::json Json
Definition: Json.h:8
Definition: Body.h:65
Definition: Camera.h:85
Definition: CargoBody.h:14
LuaRef GetCargoType() const
Definition: CargoBody.h:21
virtual void SaveToJson(Json &jsonObj, Space *space) override
Definition: CargoBody.cpp:58
CargoBody()=delete
virtual void SetLabel(const std::string &label) override
Definition: CargoBody.cpp:146
virtual bool OnDamage(Body *attacker, float kgDamage, const CollisionContact &contactData) override
Definition: CargoBody.cpp:113
~CargoBody()
Definition: CargoBody.h:28
virtual void TimeStepUpdate(const float timeStep) override
Definition: CargoBody.cpp:93
OBJDEF(CargoBody, DynamicBody, CARGOBODY)
virtual bool OnCollision(Body *o, Uint32 flags, double relVel) override
Definition: CargoBody.cpp:127
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
Definition: CargoBody.cpp:141
Definition: DynamicBody.h:15
Definition: Renderer.h:45
Definition: LuaRef.h:12
Definition: Space.h:19
Definition: Background.h:14
Definition: CollisionContact.h:9