Files
Firebird_2D/ClassDiagram.md
T

1.5 KiB

    classDiagram

namespace EventPipelines{
    %% === Basisklassen ===
    class FirebirdEventArgs {
        <<abstract>>
    }

    class Pipeline~T~ {
        - PipelineMaster : object
        + OnEvent : EventHandler~T~
        + SendEvent(sender : object, args : T)
    }

    class EventBus {
        - pipelines : Dictionary~FirebirdEvent, Pipeline~T~>
        - pendingHooks : Dictionary ~FirebirdEvent, List~Action~object~~
        + OnPipelineExist~T~(callback : Action<Pipeline~T~>, type : FirebirdEvent)
        + BuildPipeline~T~(type : FirebirdEvent, master : object) : Pipeline~T~
        + GetPipeline~T~(type : FirebirdEvent) : Pipeline~T~
    }

    %% === Spezialisierte Pipelines ===
    class KeyboardPipeline {
        <<inherits Pipeline~FirebirdKeyboardEventArgs~>>
    }

    class MousePipeline {
        <<inherits Pipeline~FirebirdMouseEventArgs~>>
    }

    %% === EventArgs Spezialisierungen ===
    class FirebirdKeyboardEventArgs {
        <<inherits FirebirdEventArgs>>
    }

    class FirebirdMouseEventArgs {
        <<inherits FirebirdEventArgs>>
    }

    %% === Enum ===
    class FirebirdEvent {
        <<enum>>
        Tick
        ModulesLoading
        Startup
        KeyboardInputs
        MouseInputs
    }
}

    %% === Beziehungen ===
    Pipeline~T~ <|-- KeyboardPipeline
    Pipeline~T~ <|-- MousePipeline
    FirebirdEventArgs <|-- FirebirdKeyboardEventArgs
    FirebirdEventArgs <|-- FirebirdMouseEventArgs
    EventBus -->Pipeline~T~
    EventBus -->Pipeline~T~