Updated KD and ModulLoader
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -2,14 +2,6 @@
|
|||||||
"Version": 1,
|
"Version": 1,
|
||||||
"WorkspaceRootPath": "G:\\Coding\\Firebird2D\\",
|
"WorkspaceRootPath": "G:\\Coding\\Firebird2D\\",
|
||||||
"Documents": [
|
"Documents": [
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|g:\\coding\\firebird2d\\firebird2d.keymapper\\keymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|solutionrelative:firebird2d.keymapper\\keymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\ieventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\ieventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|g:\\coding\\firebird2d\\firebird2d.modulloader\\modulloader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|g:\\coding\\firebird2d\\firebird2d.modulloader\\modulloader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|solutionrelative:firebird2d.modulloader\\modulloader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|solutionrelative:firebird2d.modulloader\\modulloader.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
@@ -19,24 +11,60 @@
|
|||||||
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\igame.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\igame.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{AF025062-8AED-4E0B-91A4-CD4245F9DB46}|Firebird2D.Requirement\\Firebird2D.Requirement.csproj|g:\\coding\\firebird2d\\firebird2d.requirement\\require.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\iextensionbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{AF025062-8AED-4E0B-91A4-CD4245F9DB46}|Firebird2D.Requirement\\Firebird2D.Requirement.csproj|solutionrelative:firebird2d.requirement\\require.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\iextensionbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\scenesystem\\scenemanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|g:\\coding\\firebird2d\\firebird2d.modulloader\\moduletype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\scenesystem\\scenemanager.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|solutionrelative:firebird2d.modulloader\\moduletype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|g:\\coding\\firebird2d\\firebird2d.modulloader\\modules\\moduls.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
|
"AbsoluteMoniker": "D:0:0:{567FA588-5EE8-4B36-9C81-47C76C46D782}|Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj|g:\\coding\\firebird2d\\firebird2d.sfmlextensions\\floatrectangeextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|solutionrelative:firebird2d.modulloader\\modules\\moduls.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
|
"RelativeMoniker": "D:0:0:{567FA588-5EE8-4B36-9C81-47C76C46D782}|Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj|solutionrelative:firebird2d.sfmlextensions\\floatrectangeextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|g:\\coding\\firebird2d\\firebird2d.logger\\gamelogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|g:\\coding\\firebird2d\\firebird2d.logger\\gamelogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|solutionrelative:firebird2d.logger\\gamelogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|solutionrelative:firebird2d.logger\\gamelogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\datatypes\\moduletype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|g:\\coding\\firebird2d\\firebird2d.modulloader\\modules\\moduls.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
|
||||||
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\datatypes\\moduletype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{917F395C-6C2E-4F23-9ED1-B123E5F272E9}|Firebird2D.ModulLoader\\Firebird2D.ModulLoading.csproj|solutionrelative:firebird2d.modulloader\\modules\\moduls.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\datatypes\\firebirdevent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\datatypes\\firebirdevent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\ikeymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\ikeymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|g:\\coding\\firebird2d\\firebird2d.keymapper\\keymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|solutionrelative:firebird2d.keymapper\\keymapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\eventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\eventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\ipipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\ipipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\ieventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\ieventbus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\firebird2d.dataypesandinterfaces.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
||||||
|
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\firebird2d.dataypesandinterfaces.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"AbsoluteMoniker": "D:0:0:{AF025062-8AED-4E0B-91A4-CD4245F9DB46}|Firebird2D.Requirement\\Firebird2D.Requirement.csproj|g:\\coding\\firebird2d\\firebird2d.requirement\\require.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
|
"RelativeMoniker": "D:0:0:{AF025062-8AED-4E0B-91A4-CD4245F9DB46}|Firebird2D.Requirement\\Firebird2D.Requirement.csproj|solutionrelative:firebird2d.requirement\\require.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\core\\inputmapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\core\\inputmapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
@@ -50,46 +78,14 @@
|
|||||||
"AbsoluteMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|g:\\coding\\firebird2d\\firebird2d.logger\\ilogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|g:\\coding\\firebird2d\\firebird2d.logger\\ilogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|solutionrelative:firebird2d.logger\\ilogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|solutionrelative:firebird2d.logger\\ilogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\datatypes\\firebirdevent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\datatypes\\firebirdevent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|g:\\coding\\firebird2d\\firebird2d.interfaces\\interfaces\\ipipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}|FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj|solutionrelative:firebird2d.interfaces\\interfaces\\ipipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{567FA588-5EE8-4B36-9C81-47C76C46D782}|Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj|g:\\coding\\firebird2d\\firebird2d.sfmlextensions\\floatrectangeextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{567FA588-5EE8-4B36-9C81-47C76C46D782}|Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj|solutionrelative:firebird2d.sfmlextensions\\floatrectangeextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|g:\\coding\\firebird2d\\firebird2d.keymapper\\firebird2d.keymapping.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
"AbsoluteMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|g:\\coding\\firebird2d\\firebird2d.keymapper\\firebird2d.keymapping.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
|
||||||
"RelativeMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|solutionrelative:firebird2d.keymapper\\firebird2d.keymapping.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
"RelativeMoniker": "D:0:0:{38CCA723-C113-4E44-B074-F9B709B0EEB4}|Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj|solutionrelative:firebird2d.keymapper\\firebird2d.keymapping.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\eventarguments\\firebirdjoystickbuttoneventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\eventarguments\\firebirdjoystickbuttoneventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\eventarguments\\firebirdkeyeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\eventarguments\\firebirdkeyeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\eventarguments\\firebirdmousebuttoneventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\eventarguments\\firebirdmousebuttoneventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\core\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\core\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\core\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\core\\mainwindow.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"AbsoluteMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\eventarguments\\inputeventtype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
|
||||||
"RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\eventarguments\\inputeventtype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\game.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
"AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\game.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
|
||||||
"RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\game.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
"RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\game.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
|
||||||
@@ -106,63 +102,63 @@
|
|||||||
"DocumentGroups": [
|
"DocumentGroups": [
|
||||||
{
|
{
|
||||||
"DockedWidth": 200,
|
"DockedWidth": 200,
|
||||||
"SelectedChildIndex": 13,
|
"SelectedChildIndex": 14,
|
||||||
"Children": [
|
"Children": [
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 8,
|
"DocumentIndex": 3,
|
||||||
"Title": "ModuleType.cs",
|
"Title": "ModuleType.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Datatypes\\ModuleType.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModuleType.cs",
|
||||||
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Datatypes\\ModuleType.cs",
|
"RelativeDocumentMoniker": "Firebird2D.ModulLoader\\ModuleType.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Datatypes\\ModuleType.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModuleType.cs",
|
||||||
"RelativeToolTip": "FireBird2D.Interfaces\\Datatypes\\ModuleType.cs",
|
"RelativeToolTip": "Firebird2D.ModulLoader\\ModuleType.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAAVAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAACQAAABAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-22T16:50:37.241Z",
|
"WhenOpened": "2025-05-18T14:23:50.586Z",
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 6,
|
|
||||||
"Title": "Moduls.xml",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
|
||||||
"RelativeToolTip": "Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAcAAAAIAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|",
|
|
||||||
"WhenOpened": "2025-04-22T16:46:40.211Z",
|
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 2,
|
"DocumentIndex": 2,
|
||||||
"Title": "ModulLoader.cs",
|
"Title": "IExtensionBase.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModulLoader.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IExtensionBase.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.ModulLoader\\ModulLoader.cs",
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IExtensionBase.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModulLoader.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IExtensionBase.cs",
|
||||||
"RelativeToolTip": "Firebird2D.ModulLoader\\ModulLoader.cs",
|
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IExtensionBase.cs",
|
||||||
"ViewState": "AQIAABsAAAAAAAAAAAAowEMAAAAAAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAA0AAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-22T16:25:54.624Z",
|
"WhenOpened": "2025-05-18T14:16:38.035Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 8,
|
||||||
|
"Title": "IKeyMapper.cs",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IKeyMapper.cs",
|
||||||
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IKeyMapper.cs",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IKeyMapper.cs",
|
||||||
|
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IKeyMapper.cs",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABMAAAAmAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-05-18T11:27:47.81Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 10,
|
"DocumentIndex": 10,
|
||||||
"Title": "ISpatial.cs",
|
"Title": "EventBus.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Datatypes\\ISpatial.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventBus.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D\\Datatypes\\ISpatial.cs",
|
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventBus.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\Datatypes\\ISpatial.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventBus.cs",
|
||||||
"RelativeToolTip": "Firebird2D\\Datatypes\\ISpatial.cs",
|
"RelativeToolTip": "Firebird2D.EventPipelines\\EventBus.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAEAAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-22T16:22:51.196Z",
|
"WhenOpened": "2025-05-18T08:52:39.396Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 13,
|
"DocumentIndex": 7,
|
||||||
"Title": "FirebirdEvent.cs",
|
"Title": "FirebirdEvent.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Datatypes\\FirebirdEvent.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Datatypes\\FirebirdEvent.cs",
|
||||||
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Datatypes\\FirebirdEvent.cs",
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Datatypes\\FirebirdEvent.cs",
|
||||||
@@ -175,33 +171,72 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 1,
|
"DocumentIndex": 12,
|
||||||
"Title": "IEventBus.cs",
|
"Title": "IEventBus.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
||||||
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
||||||
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IEventBus.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAABHAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAA9AAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-22T16:13:30.421Z",
|
"WhenOpened": "2025-04-22T16:13:30.421Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 14,
|
"DocumentIndex": 11,
|
||||||
"Title": "IPipeline.cs",
|
"Title": "IPipeline.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
||||||
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
||||||
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IPipeline.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABIAAAAzAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAACUAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-22T16:09:44.914Z",
|
"WhenOpened": "2025-04-22T16:09:44.914Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 15,
|
"DocumentIndex": 1,
|
||||||
|
"Title": "IGame.cs",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
||||||
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
||||||
|
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAoAAAAaAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-04-21T16:58:17.745Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 5,
|
||||||
|
"Title": "GameLogger.cs",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\GameLogger.cs",
|
||||||
|
"RelativeDocumentMoniker": "Firebird2D.Logger\\GameLogger.cs",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\GameLogger.cs",
|
||||||
|
"RelativeToolTip": "Firebird2D.Logger\\GameLogger.cs",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAEUAAAAJAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-04-17T17:56:23.324Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 9,
|
||||||
|
"Title": "KeyMapper.cs",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\KeyMapper.cs",
|
||||||
|
"RelativeDocumentMoniker": "Firebird2D.KeyMapper\\KeyMapper.cs",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\KeyMapper.cs",
|
||||||
|
"RelativeToolTip": "Firebird2D.KeyMapper\\KeyMapper.cs",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABcAAAA5AAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-04-18T07:43:14.35Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 4,
|
||||||
"Title": "FloatRectangeExtension.cs",
|
"Title": "FloatRectangeExtension.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\FloatRectangeExtension.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\FloatRectangeExtension.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.SFMLExtensions\\FloatRectangeExtension.cs",
|
"RelativeDocumentMoniker": "Firebird2D.SFMLExtensions\\FloatRectangeExtension.cs",
|
||||||
@@ -214,33 +249,59 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 11,
|
"DocumentIndex": 13,
|
||||||
"Title": "ILogger.cs",
|
"Title": "Pipeline.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\ILogger.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Pipeline.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.Logger\\ILogger.cs",
|
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\Pipeline.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\ILogger.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Pipeline.cs",
|
||||||
"RelativeToolTip": "Firebird2D.Logger\\ILogger.cs",
|
"RelativeToolTip": "Firebird2D.EventPipelines\\Pipeline.cs",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAANAAAA",
|
"ViewState": "AQIAABwAAAAAAAAAAAAQwAkAAAAjAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-21T17:12:31.494Z",
|
"WhenOpened": "2025-04-17T19:45:23.048Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 3,
|
"DocumentIndex": 6,
|
||||||
"Title": "IGame.cs",
|
"Title": "Moduls.xml",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
||||||
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
"RelativeDocumentMoniker": "Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
||||||
"RelativeToolTip": "FireBird2D.Interfaces\\Interfaces\\IGame.cs",
|
"RelativeToolTip": "Firebird2D.ModulLoader\\Modules\\Moduls.xml",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAAAtAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAAAJAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|",
|
||||||
"WhenOpened": "2025-04-21T16:58:17.745Z",
|
"WhenOpened": "2025-04-22T16:46:40.211Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 9,
|
"DocumentIndex": 0,
|
||||||
|
"Title": "ModulLoader.cs",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModulLoader.cs",
|
||||||
|
"RelativeDocumentMoniker": "Firebird2D.ModulLoader\\ModulLoader.cs",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.ModulLoader\\ModulLoader.cs",
|
||||||
|
"RelativeToolTip": "Firebird2D.ModulLoader\\ModulLoader.cs",
|
||||||
|
"ViewState": "AQIAAGkAAAAAAAAAAAAIwCkAAAAJAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
|
"WhenOpened": "2025-04-22T16:25:54.624Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 14,
|
||||||
|
"Title": "Firebird2D.DataypesAndInterfaces",
|
||||||
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj",
|
||||||
|
"RelativeDocumentMoniker": "FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj",
|
||||||
|
"ToolTip": "G:\\Coding\\Firebird2D\\FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj",
|
||||||
|
"RelativeToolTip": "FireBird2D.Interfaces\\Firebird2D.DataypesAndInterfaces.csproj",
|
||||||
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
|
||||||
|
"WhenOpened": "2025-05-18T08:20:59.511Z",
|
||||||
|
"EditorCaption": ""
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"$type": "Document",
|
||||||
|
"DocumentIndex": 16,
|
||||||
"Title": "InputMapper.cs",
|
"Title": "InputMapper.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\InputMapper.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\InputMapper.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D\\Core\\InputMapper.cs",
|
"RelativeDocumentMoniker": "Firebird2D\\Core\\InputMapper.cs",
|
||||||
@@ -266,33 +327,33 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 0,
|
"DocumentIndex": 18,
|
||||||
"Title": "KeyMapper.cs",
|
"Title": "ILogger.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\KeyMapper.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\ILogger.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.KeyMapper\\KeyMapper.cs",
|
"RelativeDocumentMoniker": "Firebird2D.Logger\\ILogger.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\KeyMapper.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\ILogger.cs",
|
||||||
"RelativeToolTip": "Firebird2D.KeyMapper\\KeyMapper.cs",
|
"RelativeToolTip": "Firebird2D.Logger\\ILogger.cs",
|
||||||
"ViewState": "AQIAAAMAAAAAAAAAAAAAAB4AAAAJAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAANAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-18T07:43:14.35Z",
|
"WhenOpened": "2025-04-21T17:12:31.494Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 7,
|
"DocumentIndex": 17,
|
||||||
"Title": "GameLogger.cs",
|
"Title": "ISpatial.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\GameLogger.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Datatypes\\ISpatial.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.Logger\\GameLogger.cs",
|
"RelativeDocumentMoniker": "Firebird2D\\Datatypes\\ISpatial.cs",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\GameLogger.cs",
|
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\Datatypes\\ISpatial.cs",
|
||||||
"RelativeToolTip": "Firebird2D.Logger\\GameLogger.cs",
|
"RelativeToolTip": "Firebird2D\\Datatypes\\ISpatial.cs",
|
||||||
"ViewState": "AQIAABgAAAAAAAAAAAA1wEUAAAAJAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
||||||
"WhenOpened": "2025-04-17T17:56:23.324Z",
|
"WhenOpened": "2025-04-22T16:22:51.196Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 4,
|
"DocumentIndex": 15,
|
||||||
"Title": "Require.cs",
|
"Title": "Require.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Require.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Require.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.Requirement\\Require.cs",
|
"RelativeDocumentMoniker": "Firebird2D.Requirement\\Require.cs",
|
||||||
@@ -305,7 +366,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 16,
|
"DocumentIndex": 19,
|
||||||
"Title": "Firebird2D.KeyMapping.csproj",
|
"Title": "Firebird2D.KeyMapping.csproj",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj",
|
||||||
"RelativeDocumentMoniker": "Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj",
|
"RelativeDocumentMoniker": "Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj",
|
||||||
@@ -318,20 +379,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 12,
|
"DocumentIndex": 21,
|
||||||
"Title": "Pipeline.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Pipeline.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\Pipeline.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Pipeline.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D.EventPipelines\\Pipeline.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAVAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-17T19:45:23.048Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 22,
|
|
||||||
"Title": "Game.cs",
|
"Title": "Game.cs",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Game.cs",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Game.cs",
|
||||||
"RelativeDocumentMoniker": "Firebird2D\\Game.cs",
|
"RelativeDocumentMoniker": "Firebird2D\\Game.cs",
|
||||||
@@ -344,65 +392,13 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"$type": "Document",
|
"$type": "Document",
|
||||||
"DocumentIndex": 18,
|
"DocumentIndex": 22,
|
||||||
"Title": "FirebirdKeyEventArgs.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdKeyEventArgs.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventArguments\\FirebirdKeyEventArgs.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdKeyEventArgs.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D.EventPipelines\\EventArguments\\FirebirdKeyEventArgs.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAsAAABCAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-20T12:39:14.001Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 21,
|
|
||||||
"Title": "InputEventType.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\InputEventType.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventArguments\\InputEventType.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\InputEventType.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D.EventPipelines\\EventArguments\\InputEventType.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAwAAAAFAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-20T12:41:00.332Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 19,
|
|
||||||
"Title": "FirebirdMouseButtonEventArgs.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdMouseButtonEventArgs.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventArguments\\FirebirdMouseButtonEventArgs.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdMouseButtonEventArgs.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D.EventPipelines\\EventArguments\\FirebirdMouseButtonEventArgs.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABMAAAAAAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-20T12:45:04.054Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 17,
|
|
||||||
"Title": "FirebirdJoystickButtonEventArgs.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdJoystickButtonEventArgs.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventArguments\\FirebirdJoystickButtonEventArgs.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventArguments\\FirebirdJoystickButtonEventArgs.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D.EventPipelines\\EventArguments\\FirebirdJoystickButtonEventArgs.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAFAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-20T12:48:47.531Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 23,
|
|
||||||
"Title": "ClassDiagram.md",
|
"Title": "ClassDiagram.md",
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\ClassDiagram.md",
|
"DocumentMoniker": "G:\\Coding\\Firebird2D\\ClassDiagram.md",
|
||||||
"RelativeDocumentMoniker": "ClassDiagram.md",
|
"RelativeDocumentMoniker": "ClassDiagram.md",
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\ClassDiagram.md",
|
"ToolTip": "G:\\Coding\\Firebird2D\\ClassDiagram.md",
|
||||||
"RelativeToolTip": "ClassDiagram.md",
|
"RelativeToolTip": "ClassDiagram.md",
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAACcAAAAFAAAA",
|
"ViewState": "AQIAAAAAAAAAAAAAAAAAABQAAAAAAAAA",
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
|
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|",
|
||||||
"WhenOpened": "2025-04-17T17:57:06.258Z",
|
"WhenOpened": "2025-04-17T17:57:06.258Z",
|
||||||
"EditorCaption": ""
|
"EditorCaption": ""
|
||||||
@@ -410,40 +406,6 @@
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
{
|
|
||||||
"Orientation": 0,
|
|
||||||
"VerticalTabListWidth": 256,
|
|
||||||
"FloatingWindowState": {
|
|
||||||
"Id": "b14934ab-f70e-4c3b-af63-28d3e15ed402",
|
|
||||||
"Display": 0,
|
|
||||||
"X": 941,
|
|
||||||
"Y": 162,
|
|
||||||
"Width": 1981,
|
|
||||||
"Height": 1231,
|
|
||||||
"WindowState": 0
|
|
||||||
},
|
|
||||||
"DocumentGroups": [
|
|
||||||
{
|
|
||||||
"DockedWidth": 200,
|
|
||||||
"SelectedChildIndex": 0,
|
|
||||||
"Children": [
|
|
||||||
{
|
|
||||||
"$type": "Document",
|
|
||||||
"DocumentIndex": 5,
|
|
||||||
"Title": "SceneManager.cs",
|
|
||||||
"DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\SceneSystem\\SceneManager.cs",
|
|
||||||
"RelativeDocumentMoniker": "Firebird2D\\SceneSystem\\SceneManager.cs",
|
|
||||||
"ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\SceneSystem\\SceneManager.cs",
|
|
||||||
"RelativeToolTip": "Firebird2D\\SceneSystem\\SceneManager.cs",
|
|
||||||
"ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
|
|
||||||
"Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
|
|
||||||
"WhenOpened": "2025-04-22T16:40:39.645Z",
|
|
||||||
"EditorCaption": ""
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
+135
-33
@@ -1,44 +1,52 @@
|
|||||||
```mermaid
|
```mermaid
|
||||||
classDiagram
|
classDiagram
|
||||||
|
|
||||||
namespace EventPipelines{
|
namespace EventPipelines{
|
||||||
%% === Basisklassen ===
|
|
||||||
class FirebirdEventArgs {
|
|
||||||
<<abstract>>
|
|
||||||
}
|
|
||||||
|
|
||||||
class Pipeline~T~ {
|
class Pipeline~T~ {
|
||||||
- PipelineMaster : object
|
+ PiplineMaster : object{readonly}
|
||||||
+ OnEvent : EventHandler~T~
|
+ IsEventEmpty : bool{readonly}
|
||||||
|
+ Subscribe(handler : Delegate)
|
||||||
|
+ Unsubscribe(handler : Delegate)
|
||||||
+ SendEvent(sender : object, args : T)
|
+ SendEvent(sender : object, args : T)
|
||||||
}
|
}
|
||||||
|
|
||||||
class EventBus {
|
class EventBus {
|
||||||
- pipelines : Dictionary~FirebirdEvent, Pipeline~T~>
|
- pipelines : Dictionary~FirebirdEvent, Pipeline~T~>
|
||||||
- pendingHooks : Dictionary ~FirebirdEvent, List~Action~object~~
|
- pendingHooks : Dictionary~FirebirdEvent, List~Action~object~~
|
||||||
+ OnPipelineExist~T~(callback : Action<Pipeline~T~>, type : FirebirdEvent)
|
+ OnPipelineIsBuild(callback : Action~IPipelineBase~, firebirdEvent : FirebirdEvent )
|
||||||
+ BuildPipeline~T~(type : FirebirdEvent, master : object) : Pipeline~T~
|
+ GetOrBuildPipeline(type : FirebirdEvent, master : object) : IPipeline~T~
|
||||||
+ GetPipeline~T~(type : FirebirdEvent) : Pipeline~T~
|
+ GetPipeline(type : FirebirdEvent) : IPipelineBase?
|
||||||
|
+ DestroyPipeline(type : FirebirdEvent, master : object)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
%% === Spezialisierte Pipelines ===
|
namespace keymapping{
|
||||||
class KeyboardPipeline {
|
class KeyMapper{
|
||||||
<<inherits Pipeline~FirebirdKeyboardEventArgs~>>
|
- eventBus : IEventBus;
|
||||||
}
|
- inputEvents : Dictionary~string, Delegate~ ;
|
||||||
|
- eventTypes : Dictionary~string, Type~;
|
||||||
|
- inputMapping : Dictionary~string, FirebirdEvent~ ;
|
||||||
|
- cachedPipelines : Dictionary~FirebirdEvent, IPipeline~ ;
|
||||||
|
|
||||||
class MousePipeline {
|
+ KeyMapper(eventBus : IEventBus)
|
||||||
<<inherits Pipeline~FirebirdMouseEventArgs~>>
|
|
||||||
}
|
|
||||||
|
|
||||||
%% === EventArgs Spezialisierungen ===
|
+ RegisterEvent~T~(EventName : string , handler : EventHandler~T~ , eventNumber : FirebirdEvent )
|
||||||
class FirebirdKeyboardEventArgs {
|
+ Map(EventName : string , eventNumbe : FirebirdEvent)
|
||||||
<<inherits FirebirdEventArgs>>
|
- RemoveMapping(EventName : string)
|
||||||
}
|
- AjustPipeline(EventName : string, eventNumber : FirebirdEvent )
|
||||||
|
+ SaveMapping(Path : string)
|
||||||
class FirebirdMouseEventArgs {
|
+ LoadMapping(Path : string)
|
||||||
<<inherits FirebirdEventArgs>>
|
+ InvalidatePipelineCache(fbEvent : FirebirdEvent)
|
||||||
|
+ GetOrCachePipeline~T~(fbEvent : FirebirdEvent ) : Pipeline~T~?
|
||||||
|
+ HandleKeyboardInput(key : KeyEvent , type : KeyEvent)
|
||||||
|
+ HandleMouseInput(button : MouseButtonEvent, type : InputEventType)
|
||||||
|
+ HandleJoystickButtonInput(joystickButton : JoystickButtonEvent , type : InputEventType)
|
||||||
|
+ HandleMouseMovement(mouseMove : MouseMoveEvent)
|
||||||
|
+ HandleJoytickMove(joystickMove : JoystickMoveEvent)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace DatatypesAndInterfaces{
|
||||||
%% === Enum ===
|
%% === Enum ===
|
||||||
class FirebirdEvent {
|
class FirebirdEvent {
|
||||||
<<enum>>
|
<<enum>>
|
||||||
@@ -48,15 +56,109 @@ namespace EventPipelines{
|
|||||||
KeyboardInputs
|
KeyboardInputs
|
||||||
MouseInputs
|
MouseInputs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class ModuleType{
|
||||||
|
<<enum>>
|
||||||
|
Extension
|
||||||
|
EventSystem
|
||||||
|
KeyMapper
|
||||||
|
}
|
||||||
|
|
||||||
|
class IEventBus{
|
||||||
|
<<Interface>>
|
||||||
|
+ OnPipelineIsBuild(callback : Action~IPipelineBase~, firebirdEvent : FirebirdEvent )
|
||||||
|
+ GetOrBuildPipeline(type : FirebirdEvent, master : object) : IPipeline~T~
|
||||||
|
+ GetPipeline(type : FirebirdEvent) : IPipelineBase?
|
||||||
|
+ DestroyPipeline(type : FirebirdEvent, master : object)
|
||||||
|
}
|
||||||
|
|
||||||
|
class IPipelineBase {
|
||||||
|
<<Interface>>
|
||||||
|
+ PiplineMaster : object{readonly}
|
||||||
|
+ IsEventEmpty : bool{readonly}
|
||||||
|
+ Subscribe(handler : Delegate)
|
||||||
|
+ Unsubscribe(handler : Delegate)
|
||||||
|
}
|
||||||
|
|
||||||
|
class IPipeline~T~{
|
||||||
|
<<Interface>>
|
||||||
|
+ SendEvent(sender : object, args : T)
|
||||||
|
}
|
||||||
|
|
||||||
|
class IKeyMapper{
|
||||||
|
<<Interface>>
|
||||||
|
+ Map(EventName : string , eventNumbe : FirebirdEvent)
|
||||||
|
+ SaveMapping(Path : string)
|
||||||
|
+ LoadMapping(Path : string)
|
||||||
|
+ InvalidatePipelineCache(fbEvent : FirebirdEvent)
|
||||||
|
+ GetOrCachePipeline~T~(fbEvent : FirebirdEvent ) : Pipeline~T~?
|
||||||
|
+ HandleKeyboardInput(key : KeyEvent , type : KeyEvent)
|
||||||
|
+ HandleMouseInput(button : MouseButtonEvent, type : InputEventType)
|
||||||
|
+ HandleJoystickButtonInput(joystickButton : JoystickButtonEvent , type : InputEventType)
|
||||||
|
+ HandleMouseMovement(mouseMove : MouseMoveEvent)
|
||||||
|
+ HandleJoytickMove(joystickMove : JoystickMoveEvent)
|
||||||
|
}
|
||||||
|
|
||||||
|
class IExtensionBase{
|
||||||
|
<<Interface>>
|
||||||
|
+ Startup()
|
||||||
|
}
|
||||||
|
|
||||||
|
class IGame{
|
||||||
|
<<Interface>>
|
||||||
|
+ EventBus : IEventBus
|
||||||
|
+ KeyMapper : IKeyMapper
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
%% === Beziehungen ===
|
namespace ModulLoading{
|
||||||
Pipeline~T~ <|-- KeyboardPipeline
|
class Modul {
|
||||||
Pipeline~T~ <|-- MousePipeline
|
+ModuleType ModuleType
|
||||||
FirebirdEventArgs <|-- FirebirdKeyboardEventArgs
|
+string Name
|
||||||
FirebirdEventArgs <|-- FirebirdMouseEventArgs
|
+string RelativePath
|
||||||
EventBus -->Pipeline~T~
|
}
|
||||||
EventBus -->Pipeline~T~
|
|
||||||
|
class ModulList {
|
||||||
|
+List~Modul~ mods
|
||||||
|
}
|
||||||
|
|
||||||
|
class ModulLoader {
|
||||||
|
-ModulList? modulList
|
||||||
|
-static Dictionary~ExtensionDependencyInjection, (Type, Func<IGame, object>)~ providers
|
||||||
|
+ModulLoader(IGame)
|
||||||
|
+T? LoadSystemComponent<T>(ModuleType, IGame)
|
||||||
|
+void LoadExtensions(IGame)
|
||||||
|
-T? LoadModule<T>(ModuleType, IGame, string)
|
||||||
|
+void DeserialiseModulList()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
%% === Beziehungen ===
|
||||||
|
EventBus --> Pipeline~T~
|
||||||
|
EventBus --> IPipeline~T~
|
||||||
|
EventBus --> IPipelineBase
|
||||||
|
EventBus ..|> IEventBus
|
||||||
|
|
||||||
|
Pipeline~T~ ..|> IPipeline~T~
|
||||||
|
Pipeline~T~ ..|> IPipelineBase
|
||||||
|
|
||||||
|
KeyMapper --> IEventBus
|
||||||
|
KeyMapper --> FirebirdEvent
|
||||||
|
KeyMapper --> IPipeline~T~
|
||||||
|
KeyMapper ..|> IKeyMapper
|
||||||
|
|
||||||
|
IKeyMapper --> FirebirdEvent
|
||||||
|
IKeyMapper --> IPipeline~T~
|
||||||
|
|
||||||
|
ModulList --> Modul
|
||||||
|
ModulLoader --> ModulList
|
||||||
|
ModulLoader --> Modul
|
||||||
|
ModulLoader --> ModuleType
|
||||||
|
ModulLoader --> IGame
|
||||||
|
ModulLoader --> IExtensionBase
|
||||||
|
ModulLoader --> IEventBus
|
||||||
|
ModulLoader --> IKeyMapper
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -6,4 +6,8 @@
|
|||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="SFML.Net" Version="2.6.1" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ namespace Firebird2D.Interfaces
|
|||||||
{
|
{
|
||||||
public interface IEventBus
|
public interface IEventBus
|
||||||
{
|
{
|
||||||
public void OnPipelineIsBuild(Action<IPipeline> callback, FirebirdEvent firebirdEvent);
|
public void OnPipelineIsBuild(Action<IPipelineBase> callback, FirebirdEvent firebirdEvent);
|
||||||
|
|
||||||
public IPipeline GetOrBuildPipeline(FirebirdEvent type, Type argsType, object master);
|
public IPipeline<T> GetOrBuildPipeline<T>(FirebirdEvent type, object master) where T : EventArgs;
|
||||||
|
|
||||||
public IPipeline? GetPipeline(FirebirdEvent type, Type argsType);
|
public IPipelineBase GetPipeline(FirebirdEvent type);
|
||||||
|
|
||||||
public void DestroyPipeline(FirebirdEvent type, object master);
|
public void DestroyPipeline(FirebirdEvent type, object master);
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-5
@@ -4,12 +4,10 @@ using System.Linq;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace Firebird2D.Datatypes
|
namespace Firebird2D.DataypesAndInterfaces.Interfaces
|
||||||
{
|
{
|
||||||
public enum ModuleType
|
public interface IExtensionBase
|
||||||
{
|
{
|
||||||
Extension = 0,
|
public void Startup();
|
||||||
EventSystem = 1,
|
|
||||||
KeyMapper = 2
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
using Firebird2D.Interfaces;
|
using Firebird2D.DataypesAndInterfaces.Interfaces;
|
||||||
|
using Firebird2D.Interfaces;
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
@@ -10,5 +11,7 @@ namespace Firebird2D.Interfaces
|
|||||||
public interface IGame
|
public interface IGame
|
||||||
{
|
{
|
||||||
public IEventBus EventBus { get; set; }
|
public IEventBus EventBus { get; set; }
|
||||||
|
|
||||||
|
public IKeyMapper KeyMapper { get; set; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
using Firebird2D.Datatypes;
|
||||||
|
using Firebird2D.EventPipelines.EventArguments;
|
||||||
|
using Firebird2D.Interfaces;
|
||||||
|
using SFML.Window;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.Json;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Firebird2D.DataypesAndInterfaces.Interfaces
|
||||||
|
{
|
||||||
|
public interface IKeyMapper
|
||||||
|
{
|
||||||
|
void RegisterEvent<T>(string EventName, EventHandler<T> handler, FirebirdEvent eventNumber) where T : EventArgs;
|
||||||
|
void Map(string EventName, FirebirdEvent eventNumber);
|
||||||
|
void SaveMapping(string Path);
|
||||||
|
void LoadMapping(string Path);
|
||||||
|
void InvalidatePipelineCache(FirebirdEvent fbEvent);
|
||||||
|
void HandleKeyboardInput(KeyEvent key, InputEventType type);
|
||||||
|
void HandleMouseInput(MouseButtonEvent button, InputEventType type);
|
||||||
|
void HandleJoystickButtonInput(JoystickButtonEvent joystickButton, InputEventType type);
|
||||||
|
void HandleMouseMovement(MouseMoveEvent mouseMove);
|
||||||
|
public void HandleJoytickMove(JoystickMoveEvent joystickMove);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -6,10 +6,7 @@ using System.Threading.Tasks;
|
|||||||
|
|
||||||
namespace Firebird2D.Interfaces
|
namespace Firebird2D.Interfaces
|
||||||
{
|
{
|
||||||
/// <summary>
|
public interface IPipelineBase
|
||||||
/// Interface for the Firebird event Pipeline
|
|
||||||
/// </summary>
|
|
||||||
public interface IPipeline
|
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class witch owns the Pipeline and has the right to send events or delete the pipeline
|
/// Class witch owns the Pipeline and has the right to send events or delete the pipeline
|
||||||
@@ -30,6 +27,15 @@ namespace Firebird2D.Interfaces
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="handler">Handler witch should be removed from the Pipeline</param>
|
/// <param name="handler">Handler witch should be removed from the Pipeline</param>
|
||||||
void Unsubscribe(Delegate handler);
|
void Unsubscribe(Delegate handler);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Interface for the Firebird event Pipeline
|
||||||
|
/// </summary>
|
||||||
|
public interface IPipeline<T> : IPipelineBase where T : EventArgs
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
void SendEvent(object sender, T args);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,11 +15,11 @@ namespace Firebird2D.EventPipelines
|
|||||||
{
|
{
|
||||||
// Dictionary that stores various pipelines for specific FirebirdEvents.
|
// Dictionary that stores various pipelines for specific FirebirdEvents.
|
||||||
// The key is the event, and the value is the corresponding pipeline.
|
// The key is the event, and the value is the corresponding pipeline.
|
||||||
private Dictionary<FirebirdEvent, IPipeline> pipelines = new();
|
private Dictionary<FirebirdEvent, IPipelineBase> pipelines = new();
|
||||||
|
|
||||||
// Dictionary that stores a list of callbacks for each FirebirdEvent.
|
// Dictionary that stores a list of callbacks for each FirebirdEvent.
|
||||||
// These callbacks will be invoked when the event's pipeline is build.
|
// These callbacks will be invoked when the event's pipeline is build.
|
||||||
private Dictionary<FirebirdEvent, List<Action<IPipeline>>> pendingHooks = new();
|
private Dictionary<FirebirdEvent, List<Action<IPipelineBase>>> pendingHooks = new();
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Registers a callback (hook) for a specific event. The callback will be invoked when the pipeline for this event is built.
|
/// Registers a callback (hook) for a specific event. The callback will be invoked when the pipeline for this event is built.
|
||||||
@@ -27,7 +27,7 @@ namespace Firebird2D.EventPipelines
|
|||||||
/// <param name="callback">The function to be called when the pipeline for the event is built.</param>
|
/// <param name="callback">The function to be called when the pipeline for the event is built.</param>
|
||||||
/// <param name="type">The event for which the callback should be registered.</param>
|
/// <param name="type">The event for which the callback should be registered.</param>
|
||||||
/// <exception cref="ArgumentNullException">Thrown when the callback is null.</exception>
|
/// <exception cref="ArgumentNullException">Thrown when the callback is null.</exception>
|
||||||
public void OnPipelineIsBuild(Action<IPipeline> callback, FirebirdEvent type)
|
public void OnPipelineIsBuild(Action<IPipelineBase> callback, FirebirdEvent type)
|
||||||
{
|
{
|
||||||
if (callback == null) throw new ArgumentNullException(nameof(callback));
|
if (callback == null) throw new ArgumentNullException(nameof(callback));
|
||||||
|
|
||||||
@@ -46,16 +46,23 @@ namespace Firebird2D.EventPipelines
|
|||||||
/// Otherwise, a new pipeline is created and stored.
|
/// Otherwise, a new pipeline is created and stored.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">The event for which the pipeline should be created or retrieved.</param>
|
/// <param name="type">The event for which the pipeline should be created or retrieved.</param>
|
||||||
/// <param name="argsType">The type of the arguments to be passed to the pipeline.</param>
|
|
||||||
/// <param name="master">The master object used when creating the pipeline.</param>
|
/// <param name="master">The master object used when creating the pipeline.</param>
|
||||||
/// <returns>The pipeline for the given event.</returns>
|
/// <returns>The pipeline for the given event.</returns>
|
||||||
public IPipeline GetOrBuildPipeline(FirebirdEvent type, Type argsType, object master)
|
public IPipeline<T> GetOrBuildPipeline<T>(FirebirdEvent type, object master) where T : EventArgs
|
||||||
{
|
{
|
||||||
if (pipelines.TryGetValue(type, out var pipeline)) return pipeline;
|
if (pipelines.TryGetValue(type, out var pipeline)) return (IPipeline<T>)pipeline;
|
||||||
|
|
||||||
var genericPipelineType = typeof(Pipeline<>).MakeGenericType(argsType);
|
var pipelineInstance = new Pipeline<T>(master);
|
||||||
var pipelineInstance = (IPipeline)Activator.CreateInstance(genericPipelineType, master)!;
|
|
||||||
pipelines[type] = pipelineInstance;
|
pipelines[type] = pipelineInstance;
|
||||||
|
if (pendingHooks.TryGetValue(type, out var hookList)) return pipelineInstance;
|
||||||
|
|
||||||
|
if (hookList == null) return pipelineInstance;
|
||||||
|
|
||||||
|
foreach (Action<IPipelineBase> hook in hookList)
|
||||||
|
{
|
||||||
|
hook.Invoke(pipelineInstance);
|
||||||
|
}
|
||||||
|
|
||||||
return pipelineInstance;
|
return pipelineInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,9 +70,8 @@ namespace Firebird2D.EventPipelines
|
|||||||
/// Retrieves the pipeline for an event if it exists; otherwise, returns null.
|
/// Retrieves the pipeline for an event if it exists; otherwise, returns null.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="type">The event for which the pipeline should be retrieved.</param>
|
/// <param name="type">The event for which the pipeline should be retrieved.</param>
|
||||||
/// <param name="argsType">The type of the arguments for the pipeline.</param>
|
|
||||||
/// <returns>The pipeline for the event, or null if it does not exist.</returns>
|
/// <returns>The pipeline for the event, or null if it does not exist.</returns>
|
||||||
public IPipeline? GetPipeline(FirebirdEvent type, Type argsType)
|
public IPipelineBase? GetPipeline(FirebirdEvent type)
|
||||||
{
|
{
|
||||||
if (!pipelines.TryGetValue(type, out var pipeline)) return null;
|
if (!pipelines.TryGetValue(type, out var pipeline)) return null;
|
||||||
return pipeline;
|
return pipeline;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ namespace Firebird2D.EventPipelines
|
|||||||
/// Eventpypeline which transports an event to every Subscyber
|
/// Eventpypeline which transports an event to every Subscyber
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <typeparam name="T">Event Arguments for the Pipeline event</typeparam>
|
/// <typeparam name="T">Event Arguments for the Pipeline event</typeparam>
|
||||||
public class Pipeline <T> : IPipeline where T : EventArgs
|
public class Pipeline <T> : IPipeline<T> where T : EventArgs
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Class witch owns the Pipeline and has the right to send events or delete the pipeline
|
/// Class witch owns the Pipeline and has the right to send events or delete the pipeline
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\Firebird2D.EventPipelines\Firebird2D.EventPipelines.csproj" />
|
<ProjectReference Include="..\Firebird2D.EventPipelines\Firebird2D.EventPipelines.csproj" />
|
||||||
|
<ProjectReference Include="..\Firebird2D.Requirement\Firebird2D.Requirement.csproj" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
@@ -5,13 +5,15 @@ using System.Runtime.CompilerServices;
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Firebird2D.Interfaces;
|
using Firebird2D.Interfaces;
|
||||||
using Firebird2D.Datatypes;
|
using Firebird2D.Datatypes;
|
||||||
|
using Firebird2D.DataypesAndInterfaces.Interfaces;
|
||||||
|
using Firebird2D.Requirement;
|
||||||
|
|
||||||
namespace Firebird2D.KeyMapping
|
namespace Firebird2D.KeyMapping
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Maps input events (keyboard, mouse, joystick) to custom Firebird events and manages their pipelines.
|
/// Maps input events (keyboard, mouse, joystick) to custom Firebird events and manages their pipelines.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class KeyMapper
|
public class KeyMapper : IKeyMapper
|
||||||
{
|
{
|
||||||
private readonly IEventBus eventBus;
|
private readonly IEventBus eventBus;
|
||||||
|
|
||||||
@@ -25,7 +27,7 @@ namespace Firebird2D.KeyMapping
|
|||||||
private Dictionary<string, FirebirdEvent> inputMapping = [];
|
private Dictionary<string, FirebirdEvent> inputMapping = [];
|
||||||
|
|
||||||
// Caches active pipelines for performance.
|
// Caches active pipelines for performance.
|
||||||
private Dictionary<FirebirdEvent, IPipeline> cachedPipelines = [];
|
private Dictionary<FirebirdEvent, IPipelineBase> cachedPipelines = [];
|
||||||
|
|
||||||
public KeyMapper(IEventBus eventBus)
|
public KeyMapper(IEventBus eventBus)
|
||||||
{
|
{
|
||||||
@@ -72,7 +74,7 @@ namespace Firebird2D.KeyMapping
|
|||||||
if (!inputMapping.TryGetValue(EventName, out var firebirdEvent)) return;
|
if (!inputMapping.TryGetValue(EventName, out var firebirdEvent)) return;
|
||||||
if (!eventTypes.TryGetValue(EventName, out var type)) return;
|
if (!eventTypes.TryGetValue(EventName, out var type)) return;
|
||||||
|
|
||||||
IPipeline? pipeline = eventBus.GetPipeline(firebirdEvent, type);
|
IPipelineBase pipeline = eventBus.GetPipeline(firebirdEvent);
|
||||||
|
|
||||||
if (pipeline != null)
|
if (pipeline != null)
|
||||||
{
|
{
|
||||||
@@ -94,7 +96,7 @@ namespace Firebird2D.KeyMapping
|
|||||||
{
|
{
|
||||||
if (!eventTypes.TryGetValue(EventName, out var type)) return;
|
if (!eventTypes.TryGetValue(EventName, out var type)) return;
|
||||||
|
|
||||||
IPipeline pipeline = eventBus.GetOrBuildPipeline(eventNumber, type, this);
|
IPipeline<EventArgs> pipeline = eventBus.GetOrBuildPipeline<EventArgs>(eventNumber, this);
|
||||||
pipeline.Subscribe(inputEvents[EventName]);
|
pipeline.Subscribe(inputEvents[EventName]);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -146,12 +148,12 @@ namespace Firebird2D.KeyMapping
|
|||||||
/// Retrieves a cached pipeline or fetches and caches it.
|
/// Retrieves a cached pipeline or fetches and caches it.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||||
private Pipeline<T>? GetOrCachePipeline<T>(FirebirdEvent fbEvent) where T : EventArgs
|
private IPipeline<T>? GetOrCachePipeline<T>(FirebirdEvent fbEvent) where T : EventArgs
|
||||||
{
|
{
|
||||||
if (cachedPipelines.TryGetValue(fbEvent, out var pipelineObj) && pipelineObj is Pipeline<T> cached)
|
if (cachedPipelines.TryGetValue(fbEvent, out var pipelineObj) && pipelineObj is Pipeline<T> cached)
|
||||||
return cached;
|
return cached;
|
||||||
|
|
||||||
var pipeline = eventBus?.GetPipeline(fbEvent, typeof(T)) as Pipeline<T>;
|
var pipeline = eventBus?.GetPipeline(fbEvent) as Pipeline<T>;
|
||||||
|
|
||||||
if (pipeline != null)
|
if (pipeline != null)
|
||||||
cachedPipelines[fbEvent] = pipeline;
|
cachedPipelines[fbEvent] = pipeline;
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Dieser Code wurde von einem Tool generiert.
|
// This code was generated by a tool.
|
||||||
// Laufzeitversion:4.0.30319.42000
|
|
||||||
//
|
//
|
||||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// der Code erneut generiert wird.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -14,10 +13,10 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.Logger")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.Logger")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+766b2e414b907163c1fd34f3b22b1aa8ae51a9e2")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+47ddfed9bc856f69b96a5dee3963e56a0c0d269c")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.Logger")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.Logger")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.Logger")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.Logger")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
efa2647d90b080a7b266fbfa5ece1bdf184aafb101e1daf94499748c54e5b462
|
a9f3fdec0f3c349ed983a18d512fe6dc153bda16f51c4a0754a5ffc694000f43
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Firebird2D.Datatypes;
|
using Firebird2D.Datatypes;
|
||||||
|
using Firebird2D.DataypesAndInterfaces.Interfaces;
|
||||||
using Firebird2D.Interfaces;
|
using Firebird2D.Interfaces;
|
||||||
using Firebird2D.Logger;
|
using Firebird2D.Logger;
|
||||||
using Firebird2D.Requirement;
|
using Firebird2D.Requirement;
|
||||||
@@ -25,66 +26,122 @@ namespace Firebird2D.ModulLoading
|
|||||||
|
|
||||||
public class ModulLoader
|
public class ModulLoader
|
||||||
{
|
{
|
||||||
private readonly IGame gameInstance;
|
|
||||||
|
private static readonly Dictionary<ExtensionDependencyInjection, (Type type, Func<IGame, object> resolver)> providers = new()
|
||||||
|
{
|
||||||
|
[ExtensionDependencyInjection.game] = (typeof(IGame), game => game),
|
||||||
|
[ExtensionDependencyInjection.eventsystem] = (typeof(IEventBus), game => game.EventBus),
|
||||||
|
[ExtensionDependencyInjection.keymapper] = (typeof(IKeyMapper), game => game.KeyMapper),
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
private ModulList? modulList = null;
|
private ModulList? modulList = null;
|
||||||
|
|
||||||
|
|
||||||
public ModulLoader(IGame gameInstance)
|
public ModulLoader(IGame gameInstance)
|
||||||
{
|
{
|
||||||
this.gameInstance = gameInstance;
|
DeserialiseModulList();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LoadModules()
|
public T? LoadSystemComponent<T>(ModuleType moduleType, IGame gameInstance) where T : class
|
||||||
{
|
{
|
||||||
DeserialiseModulList();
|
if(modulList?.mods == null || modulList.mods.Count == 0) return null;
|
||||||
if (modulList == null) return;
|
|
||||||
List<Modul> eventModul = modulList.mods.Where(m => m.ModuleType == ModuleType.EventSystem).ToList();
|
|
||||||
|
|
||||||
if (eventModul.Count > 1) GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Warning, $"More then one EventModul defined first modul ist loaded");
|
List<Modul> systemModules = modulList.mods.Where(m => m.ModuleType == moduleType).ToList();
|
||||||
|
if (systemModules.Count > 1) GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Warning, $"More then one {moduleType.ToString()} defined, first loadable modul ist loaded");
|
||||||
|
if (systemModules.Count < 1) { GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Info, $"No {moduleType.ToString()} is Defined Basic Modul is Loaded"); return null; };
|
||||||
|
|
||||||
if (eventModul.Count != 0)
|
for(int i = 0; i < systemModules.Count; i++)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrWhiteSpace(systemModules[i].RelativePath)) continue;
|
||||||
|
T? modul = LoadModule<T>(moduleType, gameInstance, systemModules[i].RelativePath);
|
||||||
|
if (modul == null) continue;
|
||||||
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Info, $"{systemModules[i].RelativePath} is loeaded for {moduleType}.");
|
||||||
|
return modul;
|
||||||
|
}
|
||||||
|
|
||||||
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Error, $"None of the defined {moduleType} modules could be loaded.");
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void LoadExtensions(IGame gameInstance)
|
||||||
|
{
|
||||||
|
if (modulList?.mods == null || modulList.mods.Count == 0) return;
|
||||||
|
|
||||||
|
List<Modul> eventModul = modulList.mods.Where(m => m.ModuleType == ModuleType.Extension).ToList();
|
||||||
|
|
||||||
|
foreach (Modul modul in eventModul) {
|
||||||
|
if (string.IsNullOrWhiteSpace(modul.RelativePath)) continue;
|
||||||
|
|
||||||
|
IExtensionBase? extensionBase = LoadModule<IExtensionBase>(ModuleType.Extension, gameInstance, modul.RelativePath);
|
||||||
|
if (extensionBase != null)
|
||||||
|
{
|
||||||
|
extensionBase.Startup();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private T? LoadModule<T>(ModuleType moduleType, IGame gameInstance, string modulePath) where T : class
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Assembly eventAssembly = Assembly.Load(eventModul[0].RelativePath);
|
string basePath = AppContext.BaseDirectory;
|
||||||
|
string dllPath = Path.Combine(basePath, modulePath);
|
||||||
|
|
||||||
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Info, $"F{eventModul[0].Name} loaded.");
|
Assembly assembly = Assembly.LoadFrom(dllPath);
|
||||||
|
Type moduleClassType = assembly.GetTypes().First(t => typeof(T).IsAssignableFrom(t));
|
||||||
|
|
||||||
LinkEventAssembly(eventAssembly);
|
List<Type> dependencyInjectionTypes = [];
|
||||||
}
|
List<Object> dependencyInjections = [];
|
||||||
catch(Exception ex)
|
|
||||||
|
foreach (var neededParam in moduleType.getNeededDependencyInjection())
|
||||||
{
|
{
|
||||||
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Warning, $"Failed to load {eventModul[0].Name}, with exception {ex.Message}");
|
if (providers.TryGetValue(neededParam, out var entry))
|
||||||
}
|
{
|
||||||
|
dependencyInjectionTypes.Add(entry.type);
|
||||||
|
dependencyInjections.Add(entry.resolver(gameInstance));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Warning, $"More then one EventModul defined first modul ist loaded");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (modulList.mods.Count == 0) return;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void LinkEventAssembly(Assembly assembly)
|
|
||||||
{
|
{
|
||||||
Type? type = assembly.GetTypes().FirstOrDefault(t => typeof(IEventBus).IsAssignableFrom(t) && !t.IsInterface);
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Warning, $"No provider found for dependency: {neededParam}");
|
||||||
Require.NotNull(type,"type",0);
|
}
|
||||||
|
|
||||||
IEventBus? eventBus = Activator.CreateInstance(type) as IEventBus;
|
|
||||||
|
|
||||||
Require.NotNull(eventBus,"eventBus",0);
|
|
||||||
gameInstance.EventBus = eventBus;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void DeserialiseModulList()
|
ConstructorInfo? ctor = moduleClassType.GetConstructor(dependencyInjectionTypes.ToArray());
|
||||||
|
|
||||||
|
if (ctor == null)
|
||||||
|
{
|
||||||
|
string signature = string.Join(", ", dependencyInjectionTypes.Select(t => t.Name));
|
||||||
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Error, $"No constructor found matching: ({signature})");
|
||||||
|
return null;
|
||||||
|
};
|
||||||
|
|
||||||
|
T instance = (T)ctor.Invoke(dependencyInjections.ToArray());
|
||||||
|
Type expectedType = moduleType.getBasicModuleInterfaceType();
|
||||||
|
|
||||||
|
if (!expectedType.IsInstanceOfType(instance))
|
||||||
|
{
|
||||||
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Error, $"Instance does not implement {expectedType.Name}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
GameLogger.GetInstance(0).Log("ModuleLoader", LogType.Error, $"Error while loading event module {ex.ToString()}");
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void DeserialiseModulList()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
using (FileStream file = new FileStream("Modules/Moduls.xml", FileMode.Open))
|
string path = Path.Combine(AppContext.BaseDirectory, "Modules", "Moduls.xml");
|
||||||
|
using (FileStream file = new FileStream(path, FileMode.Open))
|
||||||
{
|
{
|
||||||
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ModulList));
|
XmlSerializer xmlSerializer = new XmlSerializer(typeof(ModulList));
|
||||||
modulList = (ModulList?)xmlSerializer.Deserialize(file);
|
modulList = (ModulList?)xmlSerializer.Deserialize(file);
|
||||||
@@ -92,7 +149,7 @@ namespace Firebird2D.ModulLoading
|
|||||||
}
|
}
|
||||||
catch(Exception ex) {
|
catch(Exception ex) {
|
||||||
modulList = null;
|
modulList = null;
|
||||||
GameLogger.GetInstance(0).Log("ModulLoader",LogType.Warning, $"Modul file not existing or invalid: {ex.Message}");
|
GameLogger.GetInstance(0).Log("ModulLoader",LogType.Warning, $"Modul file not existing or invalid: {ex.ToString()}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,47 @@
|
|||||||
|
using Firebird2D.DataypesAndInterfaces.Interfaces;
|
||||||
|
using Firebird2D.Interfaces;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace Firebird2D.ModulLoading
|
||||||
|
{
|
||||||
|
public enum ModuleType
|
||||||
|
{
|
||||||
|
Extension = 0,
|
||||||
|
EventSystem = 1,
|
||||||
|
KeyMapper = 2
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ExtensionDependencyInjection
|
||||||
|
{
|
||||||
|
game,
|
||||||
|
eventsystem,
|
||||||
|
keymapper
|
||||||
|
}
|
||||||
|
|
||||||
|
public static class ModuleTypeExtensions
|
||||||
|
{
|
||||||
|
public static Type getBasicModuleInterfaceType(this ModuleType moduleType)
|
||||||
|
{
|
||||||
|
return moduleType switch
|
||||||
|
{
|
||||||
|
ModuleType.Extension => typeof(IExtensionBase),
|
||||||
|
ModuleType.EventSystem => typeof(IEventBus),
|
||||||
|
ModuleType.KeyMapper => typeof(IKeyMapper)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ExtensionDependencyInjection[] getNeededDependencyInjection(this ModuleType moduleType)
|
||||||
|
{
|
||||||
|
return moduleType switch
|
||||||
|
{
|
||||||
|
ModuleType.Extension => [ExtensionDependencyInjection.game],
|
||||||
|
ModuleType.EventSystem => [ ],
|
||||||
|
ModuleType.KeyMapper => [ExtensionDependencyInjection.eventsystem]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -2,7 +2,9 @@
|
|||||||
<Moduls>
|
<Moduls>
|
||||||
<!--
|
<!--
|
||||||
<Modul>
|
<Modul>
|
||||||
<ModuleType>Plugin</ModuleType>
|
<ModuleType>Extension |
|
||||||
|
EventSystem |
|
||||||
|
KeyMapper</ModuleType>
|
||||||
<Name>Logger</Name>
|
<Name>Logger</Name>
|
||||||
<RelativePath>Modules/Logger</RelativePath>
|
<RelativePath>Modules/Logger</RelativePath>
|
||||||
</Modul>
|
</Modul>
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Dieser Code wurde von einem Tool generiert.
|
// This code was generated by a tool.
|
||||||
// Laufzeitversion:4.0.30319.42000
|
|
||||||
//
|
//
|
||||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// der Code erneut generiert wird.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -14,10 +13,10 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.Requirement")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.Requirement")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+766b2e414b907163c1fd34f3b22b1aa8ae51a9e2")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+47ddfed9bc856f69b96a5dee3963e56a0c0d269c")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.Requirement")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.Requirement")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.Requirement")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.Requirement")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
d930c16e48000b60c3592ab43be941a4270796fd5c53910ce4333c8a429ab31e
|
f581c37a3c854f5a860046d943afdf55d92d954e13f5fe1b8d2ca272db9ec0ac
|
||||||
|
|||||||
+5
-6
@@ -1,10 +1,9 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Dieser Code wurde von einem Tool generiert.
|
// This code was generated by a tool.
|
||||||
// Laufzeitversion:4.0.30319.42000
|
|
||||||
//
|
//
|
||||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// der Code erneut generiert wird.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -14,10 +13,10 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.SFMLExtensions")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.SFMLExtensions")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+766b2e414b907163c1fd34f3b22b1aa8ae51a9e2")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+47ddfed9bc856f69b96a5dee3963e56a0c0d269c")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.SFMLExtensions")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.SFMLExtensions")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.SFMLExtensions")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.SFMLExtensions")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
f626d59756ad26a054c1d1f23d861aa33ef4951843a64a2988b4cd5ed949a8c9
|
ead2f01976d183a4249a04181867bc7e061b626d8af29ab0f33a5be7ef71045d
|
||||||
|
|||||||
+6
-1
@@ -22,7 +22,12 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Firebird2D.KeyMapping", "Fi
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Firebird2D.DataypesAndInterfaces", "FireBird2D.Interfaces\Firebird2D.DataypesAndInterfaces.csproj", "{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Firebird2D.DataypesAndInterfaces", "FireBird2D.Interfaces\Firebird2D.DataypesAndInterfaces.csproj", "{7F6F9690-3BD3-4D44-BE62-3A7282DA671D}"
|
||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebird2D.ModulLoading", "Firebird2D.ModulLoader\Firebird2D.ModulLoading.csproj", "{917F395C-6C2E-4F23-9ED1-B123E5F272E9}"
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Firebird2D.ModulLoading", "Firebird2D.ModulLoader\Firebird2D.ModulLoading.csproj", "{917F395C-6C2E-4F23-9ED1-B123E5F272E9}"
|
||||||
|
EndProject
|
||||||
|
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Code Ideas", "Code Ideas", "{23904BA8-EE2E-421B-A320-2D51049C5936}"
|
||||||
|
ProjectSection(SolutionItems) = preProject
|
||||||
|
LoadDynamic and inject dependency.txt = LoadDynamic and inject dependency.txt
|
||||||
|
EndProjectSection
|
||||||
EndProject
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Dieser Code wurde von einem Tool generiert.
|
// This code was generated by a tool.
|
||||||
// Laufzeitversion:4.0.30319.42000
|
|
||||||
//
|
//
|
||||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// der Code erneut generiert wird.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -14,10 +13,10 @@ using System.Reflection;
|
|||||||
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D")]
|
[assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D")]
|
||||||
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
|
||||||
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
|
||||||
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+766b2e414b907163c1fd34f3b22b1aa8ae51a9e2")]
|
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+47ddfed9bc856f69b96a5dee3963e56a0c0d269c")]
|
||||||
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D")]
|
[assembly: System.Reflection.AssemblyProductAttribute("Firebird2D")]
|
||||||
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D")]
|
[assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D")]
|
||||||
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
|
||||||
|
|
||||||
// Von der MSBuild WriteCodeFragment-Klasse generiert.
|
// Generated by the MSBuild WriteCodeFragment class.
|
||||||
|
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
b58b950687c3bc10dc33b3f06fb727341820dba7c020e683d062fa25981537d0
|
25825266d81fcf1361d25892e26ada2edd110ab12acc96c200ef0eb2e4e09249
|
||||||
|
|||||||
@@ -128,6 +128,12 @@
|
|||||||
"frameworks": {
|
"frameworks": {
|
||||||
"net8.0": {
|
"net8.0": {
|
||||||
"targetAlias": "net8.0",
|
"targetAlias": "net8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"SFML.Net": {
|
||||||
|
"target": "Package",
|
||||||
|
"version": "[2.6.1, )"
|
||||||
|
}
|
||||||
|
},
|
||||||
"imports": [
|
"imports": [
|
||||||
"net461",
|
"net461",
|
||||||
"net462",
|
"net462",
|
||||||
@@ -181,6 +187,9 @@
|
|||||||
"projectReferences": {
|
"projectReferences": {
|
||||||
"G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": {
|
"G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": {
|
||||||
"projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj"
|
"projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj"
|
||||||
|
},
|
||||||
|
"G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": {
|
||||||
|
"projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1046,6 +1046,9 @@
|
|||||||
"Firebird2D.DataypesAndInterfaces/1.0.0": {
|
"Firebird2D.DataypesAndInterfaces/1.0.0": {
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"framework": ".NETCoreApp,Version=v8.0",
|
"framework": ".NETCoreApp,Version=v8.0",
|
||||||
|
"dependencies": {
|
||||||
|
"SFML.Net": "2.6.1"
|
||||||
|
},
|
||||||
"compile": {
|
"compile": {
|
||||||
"bin/placeholder/Firebird2D.DataypesAndInterfaces.dll": {}
|
"bin/placeholder/Firebird2D.DataypesAndInterfaces.dll": {}
|
||||||
},
|
},
|
||||||
@@ -1071,7 +1074,8 @@
|
|||||||
"type": "project",
|
"type": "project",
|
||||||
"framework": ".NETCoreApp,Version=v8.0",
|
"framework": ".NETCoreApp,Version=v8.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Firebird2D.EventPipelines": "1.0.0"
|
"Firebird2D.EventPipelines": "1.0.0",
|
||||||
|
"Firebird2D.Requirement": "1.0.0"
|
||||||
},
|
},
|
||||||
"compile": {
|
"compile": {
|
||||||
"bin/placeholder/Firebird2D.KeyMapping.dll": {}
|
"bin/placeholder/Firebird2D.KeyMapping.dll": {}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"version": 2,
|
"version": 2,
|
||||||
"dgSpecHash": "reTuevwexX0=",
|
"dgSpecHash": "Hckho++vxAc=",
|
||||||
"success": true,
|
"success": true,
|
||||||
"projectFilePath": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj",
|
"projectFilePath": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj",
|
||||||
"expectedPackageFiles": [
|
"expectedPackageFiles": [
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
Assembly assembly = Assembly.LoadFrom("plugin.dll");
|
||||||
|
Type pluginType = assembly.GetTypes().First(t => typeof(IPlugin).IsAssignableFrom(t));
|
||||||
|
|
||||||
|
ConstructorInfo ctor = pluginType.GetConstructor(new[] { typeof(IEventBus) });
|
||||||
|
|
||||||
|
if (ctor == null)
|
||||||
|
throw new InvalidOperationException("Kein passender Konstruktor gefunden.");
|
||||||
|
|
||||||
|
IPlugin instance = (IPlugin)ctor.Invoke(new object[] { eventBus });
|
||||||
|
|
||||||
Reference in New Issue
Block a user