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);
93 void DoLawAndOrder(
const double timeStep);
94 bool IsPortLocked(
const int bay)
const;
95 void LockPort(
const int bay,
const bool lockIt);
96 double GetDockAnimStageDuration(
const int bay,
const DockStage stage)
const;
97 double GetUndockAnimStageDuration(
const int bay,
const DockStage stage)
const;
99 struct shipDocking_t {
106 fromRot(1.0, 0.0, 0.0, 0.0),
118 typedef std::vector<shipDocking_t>::const_iterator constShipDockingIter;
119 typedef std::vector<shipDocking_t>::iterator shipDockingIter;
120 std::vector<shipDocking_t> m_shipDocking;
124 double m_oldAngDisplacement;
126 void SwitchToStage(Uint32 bay,
DockStage stage);
133 enum { NUM_STATIC_SLOTS = 4 };
134 bool m_staticSlot[NUM_STATIC_SLOTS];
137 double m_doorAnimationStep;
138 double m_doorAnimationState;
140 std::unique_ptr<NavLights> m_navLights;
nlohmann::json Json
Definition: Json.h:8
DockStage
Definition: SpaceStationType.h:22
@ NONE
Definition: WorldView.h:25
Definition: CityOnPlanet.h:37
Definition: Renderer.h:45
Definition: ModelBody.h:26
Definition: NavLights.h:21
Definition: Animation.h:19
Definition: SpaceStationType.h:68
std::vector< SPort > TPorts
Definition: SpaceStationType.h:91
float AngVel() const
Definition: SpaceStationType.h:152
unsigned int NumDockingPorts() const
Definition: SpaceStationType.h:155
Definition: SpaceStation.h:30
bool AllocateStaticSlot(int &slot)
Definition: SpaceStation.cpp:822
virtual void Render(Graphics::Renderer *r, const Camera *camera, const vector3d &viewCoords, const matrix4x4d &viewTransform) override
Definition: SpaceStation.cpp:781
virtual vector3d GetAngVelocity() const override
Definition: SpaceStation.h:47
OBJDEF(SpaceStation, ModelBody, SPACESTATION)
virtual void SaveToJson(Json &jsonObj, Space *space) override
Definition: SpaceStation.cpp:108
int NumShipsDocked() const
Definition: SpaceStation.cpp:263
bool LaunchShip(Ship *ship, const int port)
Definition: SpaceStation.cpp:320
virtual void PostLoadFixup(Space *space) override
Definition: SpaceStation.cpp:157
bool GetDockingClearance(Ship *s)
Definition: SpaceStation.cpp:363
bool DoShipDamage(Ship *s, Uint32 flags, double relVel)
Definition: SpaceStation.cpp:481
virtual void StaticUpdate(const float timeStep) override
Definition: SpaceStation.cpp:718
virtual void NotifyRemoved(const Body *const removedBody) override
Definition: SpaceStation.cpp:246
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:812
int GetDockingPortCount() const
Definition: SpaceStation.h:69
vector3d GetTargetIndicatorPosition() const override
Definition: SpaceStation.cpp:839
int GetMyDockingPort(const Ship *s) const
Definition: SpaceStation.cpp:255
int GetFreeDockingPort(const Ship *s) const
Definition: SpaceStation.cpp:273
void SetDocked(Ship *ship, const int port)
Definition: SpaceStation.cpp:293
static void Init()
Definition: SpaceStation.cpp:103
void SwapDockedShipsPort(const int oldPort, const int newPort)
Definition: SpaceStation.cpp:306
int GetNearbyTraffic(double radius)
Definition: SpaceStation.cpp:352
virtual ~SpaceStation()
Definition: SpaceStation.cpp:241
virtual bool OnCollision(Body *b, Uint32 flags, double relVel) override
Definition: SpaceStation.cpp:410
bool IsGroundStation() const
Definition: SpaceStation.cpp:773
DockingRefusedReason
Definition: SpaceStation.h:35
@ ClearanceAlreadyGranted
virtual void TimeStepUpdate(const float timeStep) override
Definition: SpaceStation.cpp:724
virtual void UpdateInterpTransform(double alpha) override
Definition: SpaceStation.cpp:762
Definition: SystemBody.h:137
Definition: Background.h:14
Definition: CityOnPlanet.h:32
vector3< double > vector3d
Definition: vector3.h:329