# -*- coding:utf-8 -*-
# title           :小行星
# description     :小行星
# author          :Python超人
# date            :2023-02-11
# link            :https://gitcode.net/pythoncr/
# python_version  :3.8
# ==============================================================================
from bodies.body import Body, AU


class Asteroid(Body):
    """
    小行星
    质量 (kg):~4.1×1010 kg
    密度 :2.3±0.3 g/cm&sup3;
    ------------------------
    小行星带距离太阳约2.17-3.64天文单位的空间区域内，聚集了大约50万颗以上的小行星。
    这么多小行星能够被凝聚在小行星带中，除了太阳的引力作用以外，木星的引力也起着作用。
    [小行星25143的数据如下]:
     远日点距离: 253.520Gm (1.695AU)
     近日点距离: 142.568Gm (0.953AU)
       逃逸速度: 0.0002 km/s
     　公转速度: 25.37 km/s
     　天体质量: 4.1✕10¹⁰ kg
     　平均密度: 2.3✕10³ kg/m³
    """

    def __init__(self, name="小行星", mass=4.1e10,
                 init_position=[0, 0, 1.6 * AU],
                 init_velocity=[-25.37, 0, 0],
                 texture="", size_scale=1.0, distance_scale=1.0):
        params = {
            "name": name,
            "mass": mass,
            "init_position": init_position,
            "init_velocity": init_velocity,
            "density": 2.3e10,
            "color": (179, 231, 255),
            "texture": texture,
            "size_scale": size_scale,
            "distance_scale": distance_scale
        }
        super().__init__(**params)

    @property
    def show_trail(self):
        return False

    def ignore_gravity_with(self, body):
        """
        是否忽略指定天体的引力
        @param body:
        @return:
        """
        # 小行星只对恒星有引力，忽略其他行星的引力
        if body.is_fixed_star:
            return False

        return True


if __name__ == '__main__':
    asteroid = Asteroid()
    print(asteroid)
