Skip to content

Classes

inkoalawetrust edited this page Sep 18, 2024 · 10 revisions

This is an inheritance tree diagram of all (Or most of) the classes that exist in the KAI library. Most of the nodes contain clickable links to their respective articles, which can be accessed by right clicking and opening the link in a new tab.

Legend

  • Classes with square borders inherit from or are inherited by another class.
  • Classes with rounded brackets are standalone, meaning they don't inherit from or get inherited by any other classes.
  • Dotted connections are between mixins and the classes that use them, as opposed to inheritance.
%% Legend
%% Nodes in [] have some sort of inheritance to another class.
%% Nodes in () are standalone, and do not inherit from anything else or vice versa.
%% -.-> connections are between mixins and the classes that use them.
flowchart LR
    %% Other classes
    subgraph Other Actors
    PlayerTurret[KAI_EmplacementPlayer]
    click PlayerTurret "https://github.com/inkoalawetrust/KAI/wiki/KAI_EmplacementPlayer" "The base player morph for when a player uses an emplacement"
    Turret[KAI_Emplacement]
    click Turret "https://github.com/inkoalawetrust/KAI/wiki/KAI_Emplacement" "The base emplacement class"
    MixAct(KAI_MixinActor)
    click MixAct "https://github.com/inkoalawetrust/KAI/wiki/KAI_MixinActor" "Mixin actor to make the KAI mixins usable for non-KAI actors"
    %% Technically it should be [] because it inherits from FastProjectile, but whatever.
    Proj(KAI_BaseProjectile)
    click Proj "https://github.com/inkoalawetrust/KAI/wiki/KAI_BaseProjectile" "The base projectile class for the library"
    Trail(KAI_Tracer)
    click Trail "https://github.com/inkoalawetrust/KAI/wiki/KAI_BaseProjectile#kai_tracer" "Base visual thinker trail class"
    TrailActor(KAI_TracerActor)
    click TrailActor "https://github.com/inkoalawetrust/KAI/wiki/KAI_BaseProjectile#kai_traceractor" "Base actor trail class"
    %% Again, technically inherits from a non-actor class, whatever.
    Token(KAI_DataToken)
    click Token "https://github.com/inkoalawetrust/KAI/wiki/KAI_DataToken" "Token used for cross-mod compatibility"
    end

    %% Raycasters
    subgraph Raycasters
    direction LR
    BaseRay[KAI_LOFRaycast]
    click BaseRay "https://github.com/inkoalawetrust/KAI/wiki/KAI_LOFRaycast" "The base LineTracer all KAI tracers inherit from"
    BaseRay --> SeeRay
    BaseRay --> FindRay
    BaseRay --> LOFCheck
    BaseRay --> HitChanceRay
    SeeRay[KAI_BasicSightCheck]
    click SeeRay "https://github.com/inkoalawetrust/KAI/wiki/KAI_BasicSightCheck" "A CheckSight() like tracer for sight checks"
    FindRay[KAI_LOFActorFinder]
    click FindRay "https://github.com/inkoalawetrust/KAI/wiki/KAI_LOFActorFinder" "Raycast that stores every actor it hits in an array"
    LOFCheck[KAI_ProjectileLOFCheck]
    click LOFCheck "https://github.com/inkoalawetrust/KAI/wiki/KAI_LOFProjectileCheck" "The basic LOF check tracer for projectiles"
    HitChanceRay[KAI_HitChanceTracer]
    click HitChanceRay "https://github.com/inkoalawetrust/KAI/wiki/KAI_HitChanceTracer" "The tracer fired by DetermineHitChance()'s Smart algorithm"
    end

    %% The NPC class tree, the star of the show.
    subgraph NPC Hierarchy
    NPCBase[KAI_Actor]
    click NPCBase "https://github.com/inkoalawetrust/KAI/wiki/KAI_Actor" "The base NPC class"
    NPCTurret[KAI_EmplacementNPC]
    click NPCTurret "https://github.com/inkoalawetrust/KAI/wiki/KAI_EmplacementNPC" "The base NPC morph for when an NPC uses an emplacement"
    NPCBase --> NPCTurret[KAI_EmplacementNPC]
    NPCBase --> Creature[KAI_Creature]
    click Creature "https://github.com/inkoalawetrust/KAI/wiki/KAI_Creature" "The base class for most NPCs"
    Creature --> Humanoid[KAI_Humanoid]
    click Humanoid "https://github.com/inkoalawetrust/KAI/wiki/KAI_Humanoid" "The base class for smarter NPCs"
    NPCBase --> VehicleBase[KAI_BaseVehicle]
    click VehicleBase "https://github.com/inkoalawetrust/KAI/wiki/KAI_BaseVehicle" "The base class for NPC vehicles"
    VehicleBase --> VehicleProp[KAI_BaseProp]
    VehicleBase --> VehicleTurretBase[KAI_BaseTurret]
    click VehicleTurretBase "https://github.com/inkoalawetrust/KAI/wiki/KAI_BaseTurret" "The base class for turrets attached to NPC vehicles"
    VehicleTurretBase --> VehicleTurretProp[KAI_BaseTurretProp]
    end

    subgraph Structs/Data classes
    MoveParams[KAIMoveParams]
    click MoveParams "https://github.com/inkoalawetrust/KAI/wiki/KAIMoveParams"
    ProjInfo[LOFProjInfo]
    click ProjInfo "https://github.com/inkoalawetrust/KAI/wiki/LOFProjInfo"
    Hazard[HazardInfo]
    click Hazard "https://github.com/inkoalawetrust/KAI/wiki/HazardInfo"
    NPCGroup[KAI_NPCGroup]
    click NPCGroup "https://github.com/inkoalawetrust/KAI/wiki/KAI_NPCGroup"
    end

    %% Code containers
    CheckFunctions -.-> Raycasters
    subgraph Utility
    Meth(KAI_Math)
    click Meth "https://github.com/inkoalawetrust/KAI/wiki/KAI_Math" "Container class for generic math functions"
    Handler(KAI_EventHandler)
    click Handler "https://github.com/inkoalawetrust/KAI/wiki/KAI_EventHandler" "Event handler used by the library"
        subgraph Mixins
        UFunctions(KAI_UniversalFunctions)
        UFunctions -.-> MixAct
        UFunctions -.-> Proj
        click UFunctions "https://github.com/inkoalawetrust/KAI/wiki/KAI_UniversalFunctions"
        CheckFunctions(KAI_CheckFunctions)
        CheckFunctions -.-> NPCBase
        CheckFunctions -.-> MixAct
        CheckFunctions -.-> Proj
        click CheckFunctions "https://github.com/inkoalawetrust/KAI/wiki/KAI_CheckFunctions" "Basic checks that can be used by any play or data scope class"
        end
    end
Loading
Clone this wiki locally