From 787db69380c20f710ad85d97ebe0065145ac9f70 Mon Sep 17 00:00:00 2001 From: Daid Date: Fri, 1 Nov 2024 12:50:27 +0100 Subject: [PATCH] One less TODO file --- src/spaceObjects/planet.cpp | 157 ------------------------------------ src/systems/planet.cpp | 9 +++ src/systems/planet.h | 4 +- 3 files changed, 12 insertions(+), 158 deletions(-) delete mode 100644 src/spaceObjects/planet.cpp diff --git a/src/spaceObjects/planet.cpp b/src/spaceObjects/planet.cpp deleted file mode 100644 index 5d312effda..0000000000 --- a/src/spaceObjects/planet.cpp +++ /dev/null @@ -1,157 +0,0 @@ -/*TODO - -REGISTER_MULTIPLAYER_CLASS(Planet, "Planet"); -Planet::Planet() -: SpaceObject(5000, "Planet") -{ - planet_size = 5000; - cloud_size = 5200; - planet_texture = ""; - cloud_texture = ""; - atmosphere_texture = ""; - atmosphere_size = 0; - distance_from_movement_plane = 0; - axial_rotation_time = 0.0; - orbit_target_id = -1; - orbit_time = 0.0f; - orbit_distance = 0.0f; - - collision_size = -2.0f; - - setRadarSignatureInfo(0.5f, 0.f, 0.3f); - - addComponent(); - registerMemberReplication(&planet_size); - registerMemberReplication(&cloud_size); - registerMemberReplication(&atmosphere_size); - registerMemberReplication(&planet_texture); - registerMemberReplication(&cloud_texture); - registerMemberReplication(&atmosphere_texture); - registerMemberReplication(&atmosphere_color); - registerMemberReplication(&distance_from_movement_plane); - registerMemberReplication(&axial_rotation_time); - addComponent(); - registerMemberReplication(&orbit_target_id); - registerMemberReplication(&orbit_time); - registerMemberReplication(&orbit_distance); - - if (entity) { - entity.getOrAddComponent(); - } -} - -void Planet::setPlanetAtmosphereColor(float r, float g, float b) -{ - atmosphere_color = glm::vec3{ r, g, b }; -} - -void Planet::setPlanetAtmosphereTexture(std::string_view texture_name) -{ - atmosphere_texture = texture_name; -} - -void Planet::setPlanetSurfaceTexture(std::string_view texture_name) -{ - planet_texture = texture_name; -} - -void Planet::setPlanetCloudTexture(std::string_view texture_name) -{ - cloud_texture = texture_name; -} - -float Planet::getPlanetRadius() -{ - return planet_size; -} - -float Planet::getCollisionSize() -{ - return collision_size; -} - -void Planet::setPlanetRadius(float size) -{ - this->planet_size = size; - this->cloud_size = size * 1.05f; - this->atmosphere_size = size * 1.2f; -} - -void Planet::setPlanetCloudRadius(float size) -{ - cloud_size = size; -} - -void Planet::setDistanceFromMovementPlane(float distance_from_movement_plane) -{ - this->distance_from_movement_plane = distance_from_movement_plane; -} - -void Planet::setAxialRotationTime(float time) -{ - axial_rotation_time = time; -} - -void Planet::setOrbit(P target, float orbit_time) -{ - if (!target) - return; - this->orbit_target_id = target->getMultiplayerId(); - this->orbit_distance = glm::length(getPosition() - target->getPosition()); - this->orbit_time = orbit_time; -} - -void Planet::update(float delta) -{ - if (collision_size == -2.0f) - { - updateCollisionSize(); - if (collision_size > 0.0f) { - entity.getOrAddComponent().range = collision_size; - } - } - - if (orbit_distance > 0.0f) - { - P orbit_target; - if (game_server) - orbit_target = game_server->getObjectById(orbit_target_id); - else - orbit_target = game_client->getObjectById(orbit_target_id); - if (orbit_target) - { - float angle = vec2ToAngle(getPosition() - orbit_target->getPosition()); - angle += delta / orbit_time * 360.0f; - setPosition(orbit_target->getPosition() + vec2FromAngle(angle) * orbit_distance); - } - } - - if (axial_rotation_time != 0.0f) - setRotation(getRotation() + delta / axial_rotation_time * 360.0f); -} - -void Planet::drawOnRadar(sp::RenderTarget& renderer, glm::vec2 position, float scale, float rotation, bool long_range) -{ - if (collision_size > 0) - { - renderer.fillCircle(position, collision_size * scale, glm::u8vec4(atmosphere_color * 255.f, 128)); - } -} - -void Planet::drawOnGMRadar(sp::RenderTarget& renderer, glm::vec2 position, float scale, float rotation, bool long_range) -{ - renderer.drawCircleOutline(position, planet_size * scale, 3, glm::u8vec4(255, 255, 255, 128)); -} - -void Planet::updateCollisionSize() -{ - if (std::abs(distance_from_movement_plane) >= planet_size) - { - collision_size = -1.0; - entity.removeComponent(); - }else{ - collision_size = sqrt((planet_size * planet_size) - (distance_from_movement_plane * distance_from_movement_plane)) * 1.1f; - entity.getOrAddComponent().setCircle(sp::Physics::Type::Static, collision_size); - } -} -*/ diff --git a/src/systems/planet.cpp b/src/systems/planet.cpp index e7e02c3210..67ad7edb64 100644 --- a/src/systems/planet.cpp +++ b/src/systems/planet.cpp @@ -138,6 +138,15 @@ void PlanetRenderSystem::render3D(sp::ecs::Entity e, sp::Transform& transform, P } } +void PlanetRenderSystem::renderOnRadar(sp::RenderTarget& renderer, sp::ecs::Entity e, glm::vec2 screen_position, float scale, float rotation, PlanetRender& component) +{ + auto physics = e.getComponent(); + if (physics) + { + renderer.fillCircle(screen_position, physics->getSize().x * scale, glm::u8vec4(component.atmosphere_color * 255.f, 128)); + } +} + void PlanetTransparentRenderSystem::update(float delta) { } diff --git a/src/systems/planet.h b/src/systems/planet.h index 9fc29b0626..4ca318a41e 100644 --- a/src/systems/planet.h +++ b/src/systems/planet.h @@ -1,13 +1,15 @@ #pragma once #include "systems/rendering.h" +#include "systems/radar.h" -class PlanetRenderSystem : public sp::ecs::System, public Render3DInterface +class PlanetRenderSystem : public sp::ecs::System, public Render3DInterface, public RenderRadarInterface { public: void update(float delta) override; void render3D(sp::ecs::Entity e, sp::Transform& transform, PlanetRender& pr) override; + void renderOnRadar(sp::RenderTarget& renderer, sp::ecs::Entity e, glm::vec2 screen_position, float scale, float rotation, PlanetRender& component) override; }; class PlanetTransparentRenderSystem : public sp::ecs::System, public Render3DInterface {