你对我的脚本架构是什么看法。有些是有点被遗忘的,很抱歉。以下是 Graphviz 代码供任何人查看:

digraph "Diagram" {
    splines  = ortho;
    fontname = "Inconsolata";
    node [colorscheme = ylgnbu4];
    edge [colorscheme = dark28, dir = both];

    ArtilleryDistanceEvaluator            [shape = box   , label = "ArtilleryDistanceEvaluator"];
    ArtilleryTurret                       [shape = box   , label = "ArtilleryTurret"];
    BallisticEntry                        [shape = box   , label = "BallisticEntry"];
    BuoyancyPoint                         [shape = box   , label = "BuoyancyPoint"];
    CameraManager                         [shape = box   , label = "CameraManager"];
    ChatBroadcast                         [shape = box   , label = "ChatBroadcast"];
    ChatManager                           [shape = box   , label = "ChatManager"];
    GuidanceType                          [shape = box   , label = "GuidanceType"];
    HighFidelitySphericalOrbitCinemachine [shape = box   , label = "HighFidelitySphericalOrbitCinemachine"];
    IDamageable                           [shape = box   , label = "IDamageable"];
    Missile                               [shape = box   , label = "Missile"];
    MissileCore                           [shape = box   , label = "MissileCore"];
    MissileEnvironment                    [shape = box   , label = "MissileEnvironment"];
    MissileLauncher                       [shape = box   , label = "MissileLauncher"];
    MissileMath                           [shape = box   , label = "MissileMath"];
    MovementType                          [shape = box   , label = "MovementType"];
    NetworkedHealthBase                   [shape = box   , label = "NetworkedHealthBase"];
    PayloadType                           [shape = box   , label = "PayloadType"];
    PlayerInitialization                  [shape = box   , label = "PlayerInitialization"];
    PlayerInputHandler                    [shape = box   , label = "PlayerInputHandler"];
    ShipBuoyancy                          [shape = box   , label = "ShipBuoyancy"];
    ShipController                        [shape = box   , label = "ShipController"];
    ShipHealth                            [shape = box   , label = "ShipHealth"];
    ShipInputHandler                      [shape = box   , label = "ShipInputHandler"];
    Team                                  [shape = box   , label = "Team"];
    TeamData                              [shape = box   , label = "TeamData"];
    TeamEntity                            [shape = box   , label = "TeamEntity"];
    TeamManager                           [shape = box   , label = "TeamManager"];
    ThrottleState                         [shape = box   , label = "ThrottleState"];
    WeaponBase                            [shape = box   , label = "WeaponBase"];
    WeaponBattery                         [shape = box   , label = "WeaponBattery"];
    WeaponManager                         [shape = box   , label = "WeaponManager"];

    ArtilleryDistanceEvaluator            -> BallisticEntry                        [color = "#955ae0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    ArtilleryTurret                       -> WeaponBase                            [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    CameraManager                         -> HighFidelitySphericalOrbitCinemachine [color = "#5fad65", style = dotted, arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    ChatManager                           -> ChatBroadcast                         [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    Missile                               -> GuidanceType                          [color = "#5fad65", style = dotted, arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    MissileCore                           -> IDamageable                           [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    MissileLauncher                       -> Missile                               [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    PlayerInitialization                  -> TeamEntity                            [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    PlayerInputHandler                    -> ShipInputHandler                      [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    ShipController                        -> ShipInputHandler                      [color = "#5fad65", style = dotted, arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    TeamManager                           -> TeamManager                           [color = "#955ae0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];
    WeaponManager                         -> MissileCore                           [color = "#3574f0", style = solid , arrowtail = none    , arrowhead = normal  , taillabel = "", label = "", headlabel = ""];

}

紫色表示这是单例实例。点状绿色表示使用或聚合,正常箭头表示使用。