11#define MAX_DOCKING_PORTS 240
48 virtual bool OnCollision(
Body *b, Uint32 flags,
double relVel)
override;
51 virtual void StaticUpdate(
const float timeStep)
override;
58 virtual void SetLabel(
const std::string &label)
override;
89 void DockingUpdate(
const double timeStep);
90 void PositionDockingShip(
Ship *ship,
int port)
const;
91 void PositionDockedShip(
Ship *ship,
int port)
const;
92 bool LevelShip(
Ship *ship,
int port,
const float timeStep)
const;
93 void DoLawAndOrder(
const double timeStep);
94 bool IsPortLocked(
const int bay)
const;
95 void LockPort(
const int bay,
const bool lockIt);
106 struct shipDocking_t {
113 fromRot(1.0, 0.0, 0.0, 0.0),
125 typedef std::vector<shipDocking_t>::const_iterator constShipDockingIter;
126 typedef std::vector<shipDocking_t>::iterator shipDockingIter;
127 std::vector<shipDocking_t> m_shipDocking;
131 double m_oldAngDisplacement;
137 enum { NUM_STATIC_SLOTS = 4 };
138 bool m_staticSlot[NUM_STATIC_SLOTS];
141 double m_doorAnimationStep;
142 double m_doorAnimationState;
144 std::unique_ptr<NavLights> m_navLights;
nlohmann::json Json
Definition Json.h:8
Definition CityOnPlanet.h:36
Definition ModelBody.h:25
Definition NavLights.h:21
Definition Animation.h:19
Definition SpaceStationType.h:16
std::vector< SPort > TPorts
Definition SpaceStationType.h:39
float AngVel() const
Definition SpaceStationType.h:87
unsigned int NumDockingPorts() const
Definition SpaceStationType.h:90
Definition SpaceStation.h:30
bool AllocateStaticSlot(int &slot)
Definition SpaceStation.cpp:785
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
Definition SpaceStation.cpp:739
virtual vector3d GetAngVelocity() const override
Definition SpaceStation.h:47
OBJDEF(SpaceStation, ModelBody, SPACESTATION)
virtual void SaveToJson(Json &jsonObj, Space *space) override
Definition SpaceStation.cpp:101
int NumShipsDocked() const
Definition SpaceStation.cpp:242
bool LaunchShip(Ship *ship, const int port)
Definition SpaceStation.cpp:299
virtual void PostLoadFixup(Space *space) override
Definition SpaceStation.cpp:144
bool GetDockingClearance(Ship *s)
Definition SpaceStation.cpp:334
bool DoShipDamage(Ship *s, Uint32 flags, double relVel)
Definition SpaceStation.cpp:453
virtual void StaticUpdate(const float timeStep) override
Definition SpaceStation.cpp:669
virtual void NotifyRemoved(const Body *const removedBody) override
Definition SpaceStation.cpp:225
const SpaceStationType * GetStationType() const
Definition SpaceStation.h:74
virtual const SystemBody * GetSystemBody() const override
Definition SpaceStation.h:54
virtual void SetLabel(const std::string &label) override
Definition SpaceStation.cpp:775
int GetDockingPortCount() const
Definition SpaceStation.h:69
vector3d GetTargetIndicatorPosition() const override
Definition SpaceStation.cpp:802
int GetMyDockingPort(const Ship *s) const
Definition SpaceStation.cpp:234
int GetFreeDockingPort(const Ship *s) const
Definition SpaceStation.cpp:252
void SetDocked(Ship *ship, const int port)
Definition SpaceStation.cpp:272
static void Init()
Definition SpaceStation.cpp:96
void SwapDockedShipsPort(const int oldPort, const int newPort)
Definition SpaceStation.cpp:285
int GetNearbyTraffic(double radius)
Definition SpaceStation.cpp:323
virtual ~SpaceStation()
Definition SpaceStation.cpp:220
virtual bool OnCollision(Body *b, Uint32 flags, double relVel) override
Definition SpaceStation.cpp:383
bool IsGroundStation() const
Definition SpaceStation.cpp:727
DockingRefusedReason
Definition SpaceStation.h:35
@ ClearanceAlreadyGranted
virtual void TimeStepUpdate(const float timeStep) override
Definition SpaceStation.cpp:675
virtual void UpdateInterpTransform(double alpha) override
Definition SpaceStation.cpp:716
Definition SystemBody.h:19
Definition Background.h:14
Definition CityOnPlanet.h:31
vector3< double > vector3d
Definition vector3.h:290