1 #ifndef WORM_HOLE_H 2 #define WORM_HOLE_H 3 4 #include "nebula.h" 5 #include "spaceObject.h" 6 #include "pathPlanner.h" 7 8 class WormHole : public SpaceObject, public Updatable 9 { 10 sf::Vector2f target_position = sf::Vector2f(0.0f, 0.0f); 11 float update_delta = 0.0f; 12 P<PathPlannerManager> pathPlanner; 13 14 int radar_visual; 15 static const int cloud_count = 5; 16 NebulaCloud clouds[cloud_count]; 17 18 ScriptSimpleCallback on_teleportation; 19 20 public: 21 WormHole(); 22 23 #if FEATURE_3D_RENDERING 24 virtual void draw3DTransparent() override; 25 #endif//FEATURE_3D_RENDERING 26 virtual void drawOnRadar(sf::RenderTarget& window, sf::Vector2f position, float scale, float rotation, bool long_range) override; 27 virtual void drawOnGMRadar(sf::RenderTarget& window, sf::Vector2f position, float scale, float rotation, bool long_range) override; 28 virtual void update(float delta) override; 29 virtual void collide(Collisionable* target, float force) override; 30 31 void setTargetPosition(sf::Vector2f v); /* Where to jump to */ 32 sf::Vector2f getTargetPosition(); 33 void onTeleportation(ScriptSimpleCallback callback); 34 getExportLine()35 virtual string getExportLine() override { return "WormHole():setPosition(" + string(getPosition().x, 0) + ", " + string(getPosition().y, 0) + "):setTargetPosition(" + string(target_position.x, 0) + ", " + string(target_position.y, 0) + ")"; } 36 }; 37 38 #endif//WORM_HOLE_H 39