From 08f66af16e4e69ef68fc92c31377a24d4453a927 Mon Sep 17 00:00:00 2001 From: Mueller Wayan Date: Fri, 18 Apr 2025 21:54:07 +0200 Subject: [PATCH] Added Event Pipeline System --- .vs/Firebird2D/DesignTimeBuild/.dtbcache.v2 | Bin 166053 -> 189448 bytes ...2a7d3a25-2a0b-4413-bea8-93bd330e65a8.vsidx | Bin 13727 -> 0 bytes ...b6616c4d-55c4-43e9-8112-8e89a42ad6a1.vsidx | Bin 54695 -> 0 bytes ...b6e73397-5055-47b3-bdf6-b50d7d5bebe1.vsidx | Bin 8786 -> 0 bytes ...cb4175b0-1412-46b2-9cfe-044f20aa07ca.vsidx | Bin 6262 -> 0 bytes ...f37dd64a-7e74-4c25-b956-52d48cec43c4.vsidx | Bin 15878 -> 0 bytes .vs/Firebird2D/v17/.futdcache.v2 | Bin 1004 -> 1913 bytes .vs/Firebird2D/v17/.suo | Bin 68096 -> 138752 bytes .vs/Firebird2D/v17/DocumentLayout.json | 215 ++++++++- .../firebird2d.metadata.v8.bin | Bin 2121 -> 2953 bytes .../firebird2d.projects.v8.bin | Bin 251348 -> 608303 bytes .../firebird2d.strings.v8.bin | Bin 141424 -> 158596 bytes Firebird2D.EventPipelines/EventBus.cs | 51 ++ .../Firebird2D.EventPipelines.csproj | 17 + Firebird2D.EventPipelines/FirebirdEvent.cs | 441 ++++++++++++++++++ Firebird2D.EventPipelines/I_Pipeline.cs | 17 + Firebird2D.EventPipelines/Pipeline.cs | 44 ++ .../Firebird2D.KeyMapping.csproj | 13 + Firebird2D.KeyMapper/KeyMapper.cs | 161 +++++++ .../net8.0/Firebird2D.Logger.AssemblyInfo.cs | 2 +- ...Firebird2D.Logger.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../net8.0/Firebird2D.Logger.assets.cache | Bin 228 -> 228 bytes ...Firebird2D.Logger.csproj.nuget.dgspec.json | 10 +- Firebird2D.Logger/obj/project.assets.json | 6 +- Firebird2D.Logger/obj/project.nuget.cache | 4 +- .../Firebird2D.Requirement.AssemblyInfo.cs | 2 +- ...ird2D.Requirement.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../Firebird2D.Requirement.assets.cache | Bin 228 -> 228 bytes ...ird2D.Requirement.csproj.nuget.dgspec.json | 22 +- .../obj/project.assets.json | 10 +- .../obj/project.nuget.cache | 4 +- .../Firebird2D.SFMLExtensions.AssemblyInfo.cs | 2 +- ...2D.SFMLExtensions.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../Firebird2D.SFMLExtensions.assets.cache | Bin 57599 -> 57599 bytes ...2D.SFMLExtensions.csproj.nuget.dgspec.json | 10 +- .../obj/project.assets.json | 6 +- .../obj/project.nuget.cache | 4 +- Firebird2D.sln | 12 + Firebird2D/Firebird2D.csproj | 6 +- Firebird2D/Game.cs | 50 ++ Firebird2D/GameSystem.cs | 40 -- .../Debug/net8.0/Firebird2D.AssemblyInfo.cs | 2 +- .../Firebird2D.AssemblyInfoInputs.cache | 2 +- ....GeneratedMSBuildEditorConfig.editorconfig | 2 +- .../obj/Debug/net8.0/Firebird2D.assets.cache | Bin 66629 -> 66629 bytes .../Firebird2D.csproj.AssemblyReference.cache | Bin 9655 -> 9655 bytes .../obj/Firebird2D.csproj.nuget.dgspec.json | 206 ++++++-- Firebird2D/obj/project.assets.json | 172 ++++--- Firebird2D/obj/project.nuget.cache | 20 +- 52 files changed, 1368 insertions(+), 197 deletions(-) delete mode 100644 .vs/Firebird2D/FileContentIndex/2a7d3a25-2a0b-4413-bea8-93bd330e65a8.vsidx delete mode 100644 .vs/Firebird2D/FileContentIndex/b6616c4d-55c4-43e9-8112-8e89a42ad6a1.vsidx delete mode 100644 .vs/Firebird2D/FileContentIndex/b6e73397-5055-47b3-bdf6-b50d7d5bebe1.vsidx delete mode 100644 .vs/Firebird2D/FileContentIndex/cb4175b0-1412-46b2-9cfe-044f20aa07ca.vsidx delete mode 100644 .vs/Firebird2D/FileContentIndex/f37dd64a-7e74-4c25-b956-52d48cec43c4.vsidx create mode 100644 Firebird2D.EventPipelines/EventBus.cs create mode 100644 Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj create mode 100644 Firebird2D.EventPipelines/FirebirdEvent.cs create mode 100644 Firebird2D.EventPipelines/I_Pipeline.cs create mode 100644 Firebird2D.EventPipelines/Pipeline.cs create mode 100644 Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj create mode 100644 Firebird2D.KeyMapper/KeyMapper.cs create mode 100644 Firebird2D/Game.cs delete mode 100644 Firebird2D/GameSystem.cs diff --git a/.vs/Firebird2D/DesignTimeBuild/.dtbcache.v2 b/.vs/Firebird2D/DesignTimeBuild/.dtbcache.v2 index cf1aed50c5de5c0116d96c07d23073ec2dfbe8c4..5a113d9e4d9f0137ffb77f1444dbd383b34848e6 100644 GIT binary patch literal 189448 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 literal 166053 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 diff --git a/.vs/Firebird2D/FileContentIndex/2a7d3a25-2a0b-4413-bea8-93bd330e65a8.vsidx b/.vs/Firebird2D/FileContentIndex/2a7d3a25-2a0b-4413-bea8-93bd330e65a8.vsidx deleted file mode 100644 index 57b85eaa9fe03cf85339d43813fbb796c0e094fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13727 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 dM<@TMA0-n1#~Apz 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 diff --git a/.vs/Firebird2D/FileContentIndex/cb4175b0-1412-46b2-9cfe-044f20aa07ca.vsidx b/.vs/Firebird2D/FileContentIndex/cb4175b0-1412-46b2-9cfe-044f20aa07ca.vsidx deleted file mode 100644 index 4076b394a370d14c644e8c2548ab13e02571bcea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6262 zcma)=cVOIQ8OMJIrG!!_WpCPJ^iskV$|?9IKv8zTWw_iK4X?%2I{OawKqm90S%EspSc+wO-)p; zTE$7_G893!3TNc9<b|BCU9>u zYNZmDPlwOL(Y1!TD+*Pfn&hKa^Pq-P(X~qEwI(XnY9MXlro_^O%U>mmusa&cO^=F@ z(vvL*edLhbR4%&^4l2>-;;_?5739{4EFT%t9WfipU$ydA1gUDJ8n_%}r1E^!%1z~J zI~~TX7>=@4dEtLD(F|xfs#T$yD-Ee07e*`DyINrtN}nC^sK~0)Mm62h{6S zg*7+`SHn7Nz$P4m!*C5;3rFBOxE_we4e%1U5nc+%;ALxE)>%p9Cl1B)kS*3!e7Wh!KcG#z-Pi|!5iSS;d9_~;f?Sncr$z+ zoPy7XJKzi83*n34i{VS)E%2rAW$@+j74VhtRq)mDHSo3Yb@27@4e*U{C%hHD3BDQb zf^UIug}1@m;oIOeyaVorZ-?)I?}YDy?}qPz?}hJ!?}s0Ncft?C55W(^kHEX&N8!id z$Kfa7-S8gxN%$#vFZ?w84E!wo9J~*H9)1CS5q=5Y55Ei_fM0=Mg{1toz{u=%U{ucfY{vQ4T z{t^BOJ_`Q~{{sICAA^5`e~15o|Aha7|Azm8zLfRxyI4?f48eV&Ue@AyKR6Ta5A~7} z^#?$`o5b^ha5g*$9t`I|y(oqMT&P#gcs>js4v&CG!lR(xNW=dacq}{)>QyxAPk<-F zli)l!ALil7@Dz9|JPj^@1*mtd=tnPR!P8*}JOdWtB6ub|3oeFd!*k%d@H}`vTmmnE zOJOIx5H5okLA^;vp37kuTmidb5A20~umt;I8Lot@U$rET6UO*V-vvrr*5Ed!!|O^I0XUWrgr9 zM2)qi64w->RUzwBoPxepY4UGmP1((?E*;Lgq#IS!o)y)$L;uY%ARW=7GYKmEJwpLmaixIylKid^OS?yno2+i#@eG7dRWUraL1|rmb;)~Gs9QNt zYk#QYdoEU}r@GXmTcPZ0(h+$%rw(aFe%6|_ro5~bX-Jt_g&!07oqaL<>e5OkAWVP+{RZ=fLe+}*Cl4A9Tj)-1`{urlsL8rWZ zQp%b=Yc=Azz3p=7>d=PN>zh{EYJZ>Kvc6rRF7YY0+FmDJC7(|9;eFjYlU`5T1EJN> z!BG1+FRRNPqoUum-X&SJh~rhM#2TaD}fCt2F~v^=*I8SXG%j z1Lx^Hxhs}UV0HgqVQVAQ_f}c0eYPFPeOg`XGT(QOS=Y#{BT~kp`Gf<>*96FOMTX?y`d=&+nx*m9kT5fKL6=2dM(~2 VEHm_-!;}9N=bwjMsGrBEcpP8`MGOD{ diff --git a/.vs/Firebird2D/FileContentIndex/f37dd64a-7e74-4c25-b956-52d48cec43c4.vsidx b/.vs/Firebird2D/FileContentIndex/f37dd64a-7e74-4c25-b956-52d48cec43c4.vsidx deleted file mode 100644 index c548e78b7c0fb45110ff6bd3a240928ef45b641b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15878 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 V{|?~;i2hyTzq|Wy{wPiV{ugc47F_@U diff --git a/.vs/Firebird2D/v17/.futdcache.v2 b/.vs/Firebird2D/v17/.futdcache.v2 index a286d909964d170eb15c506c1aad1763267a31e3..58a806a791c305455b4962e759582480fb780a5f 100644 GIT binary patch delta 456 zcmaFE{*#Z9ZzJPtW>J54s~G3}l+3*J7`M!#)TGR!6eE|(){N<@3~0a}tIB+)a1526 zSXI7f6rcQ_(F;ShAy(CsnO&pnosy-F%+-kSsk_Soa|~AZA~{{pwJbHSBp|aOH77GK zwHTMo#0!Rj%{#U~JGQE|bR&}SuGk!dY>0PirEg+EL23~e!O0Vu3`0JM78^M9REGK@ Wnd(M~slce2Xs<5ONfR5 delta 10 Rcmey#_lBL3eIw&*W&jqP1ET-{ diff --git a/.vs/Firebird2D/v17/.suo b/.vs/Firebird2D/v17/.suo index a76990bb66774e2b17765087725f70528beaf47e..2afb6cfd9befbaabd24aaa2cd1e12c955c1bde42 100644 GIT binary patch literal 138752 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 NW|7aHCCY@<{{hJP04M+e diff --git a/.vs/Firebird2D/v17/DocumentLayout.json b/.vs/Firebird2D/v17/DocumentLayout.json index 2a8dce4..cd54b67 100644 --- a/.vs/Firebird2D/v17/DocumentLayout.json +++ b/.vs/Firebird2D/v17/DocumentLayout.json @@ -1,12 +1,221 @@ { "Version": 1, - "WorkspaceRootPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\", - "Documents": [], + "WorkspaceRootPath": "G:\\Coding\\Firebird2D\\", + "Documents": [ + { + "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}" + }, + { + "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\\firebirdevent.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\firebirdevent.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}" + }, + { + "AbsoluteMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|g:\\coding\\firebird2d\\firebird2d\\core\\inputmapper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{487A2EF7-6F5F-4F03-B355-82EF8BA45530}|Firebird2D\\Firebird2D.csproj|solutionrelative:firebird2d\\core\\inputmapper.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\\firebird2d.logger.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|", + "RelativeMoniker": "D:0:0:{106D6D21-E153-476B-AE52-4B2C899F6928}|Firebird2D.Logger\\Firebird2D.Logger.csproj|solutionrelative:firebird2d.logger\\firebird2d.logger.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\\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:{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:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|g:\\coding\\firebird2d\\firebird2d.eventpipelines\\i_pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}", + "RelativeMoniker": "D:0:0:{FB2B6835-02BF-4AE7-B85F-290472787ED3}|Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj|solutionrelative:firebird2d.eventpipelines\\i_pipeline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}" + }, + { + "AbsoluteMoniker": "D:0:0:{8B04689D-A8E2-494B-922E-06F5EF313297}|Documentation{8B04689D-A8E2-494B-922E-06F5EF313297}|G:\\Coding\\Firebird2D\\ClassDiagram.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}", + "RelativeMoniker": "D:0:0:{8B04689D-A8E2-494B-922E-06F5EF313297}|Documentation{8B04689D-A8E2-494B-922E-06F5EF313297}|solutionrelative:ClassDiagram.md||{EFC0BB08-EA7D-40C6-A696-C870411A895B}" + }, + { + "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:{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}" + } + ], "DocumentGroupContainers": [ { "Orientation": 0, "VerticalTabListWidth": 256, - "DocumentGroups": [] + "DocumentGroups": [ + { + "DockedWidth": 200, + "SelectedChildIndex": 8, + "Children": [ + { + "$type": "Document", + "DocumentIndex": 5, + "Title": "Firebird2D.Logger", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "RelativeDocumentMoniker": "Firebird2D.Logger\\Firebird2D.Logger.csproj", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "RelativeToolTip": "Firebird2D.Logger\\Firebird2D.Logger.csproj", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|", + "WhenOpened": "2025-04-18T19:04:18.723Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 4, + "Title": "InputMapper.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\InputMapper.cs", + "RelativeDocumentMoniker": "Firebird2D\\Core\\InputMapper.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\InputMapper.cs", + "RelativeToolTip": "Firebird2D\\Core\\InputMapper.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAuwAsAAAAUAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-18T07:43:42.972Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 3, + "Title": "MainWindow.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\MainWindow.cs", + "RelativeDocumentMoniker": "Firebird2D\\Core\\MainWindow.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\Core\\MainWindow.cs", + "RelativeToolTip": "Firebird2D\\Core\\MainWindow.cs", + "ViewState": "AQIAAAwAAAAAAAAAAAAAAFUAAAAwAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-18T07:43:27.389Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 1, + "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": "AQIAAAAAAAAAAAAAAAAAAAUAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-18T07:43:14.35Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 8, + "Title": "I_Pipeline.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\I_Pipeline.cs", + "RelativeDocumentMoniker": "Firebird2D.EventPipelines\\I_Pipeline.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\I_Pipeline.cs", + "RelativeToolTip": "Firebird2D.EventPipelines\\I_Pipeline.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAABEAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T20:10:17.86Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 7, + "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": "AQIAAAAAAAAAAAAAAAAAABsAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T19:45:23.048Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 2, + "Title": "FirebirdEvent.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\FirebirdEvent.cs", + "RelativeDocumentMoniker": "Firebird2D.EventPipelines\\FirebirdEvent.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\FirebirdEvent.cs", + "RelativeToolTip": "Firebird2D.EventPipelines\\FirebirdEvent.cs", + "ViewState": "AQIAAH8BAAAAAAAAAAAAwK4BAAAVAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T19:42:10.988Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 6, + "Title": "EventBus.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventBus.cs", + "RelativeDocumentMoniker": "Firebird2D.EventPipelines\\EventBus.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\EventBus.cs", + "RelativeToolTip": "Firebird2D.EventPipelines\\EventBus.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAACMAAAAJAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T19:40:01.999Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 0, + "Title": "Game.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D\\Game.cs", + "RelativeDocumentMoniker": "Firebird2D\\Game.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D\\Game.cs", + "RelativeToolTip": "Firebird2D\\Game.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAB0AAAAwAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-18T07:15:00.042Z", + "EditorCaption": "" + }, + { + "$type": "Document", + "DocumentIndex": 9, + "Title": "ClassDiagram.md", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\ClassDiagram.md", + "RelativeDocumentMoniker": "ClassDiagram.md", + "ToolTip": "G:\\Coding\\Firebird2D\\ClassDiagram.md", + "RelativeToolTip": "ClassDiagram.md", + "ViewState": "AQIAAAAAAAAAAAAAAAAAACcAAAAFAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001818|", + "WhenOpened": "2025-04-17T17:57:06.258Z" + }, + { + "$type": "Document", + "DocumentIndex": 10, + "Title": "Require.cs", + "DocumentMoniker": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Require.cs", + "RelativeDocumentMoniker": "Firebird2D.Requirement\\Require.cs", + "ToolTip": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Require.cs", + "RelativeToolTip": "Firebird2D.Requirement\\Require.cs", + "ViewState": "AQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T17:56:35.49Z" + }, + { + "$type": "Document", + "DocumentIndex": 11, + "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": "AQIAAAMAAAAAAAAAAIBJwAAAAAAAAAAA", + "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|", + "WhenOpened": "2025-04-17T17:56:23.324Z" + } + ] + } + ] } ] } \ No newline at end of file diff --git a/.vs/ProjectEvaluation/firebird2d.metadata.v8.bin b/.vs/ProjectEvaluation/firebird2d.metadata.v8.bin index cec818a872b342885b8ceeeb316bc45802b72e17..d54165981d5798479b2d3b35d0d1b80bd02c42e6 100644 GIT binary patch delta 738 zcma))-77CQT#edOJZH1Ej)_yBQ@_*c`+1)4Id|@8t)VICSC#p<-r1>?BN8{FniEZ; zz(>5I$mM|+FI&W*s2TO@R8!2WhO{?77|)@U!v?PkpNe)B9jb6M#R7hXRHzz z87FJRNer@1CddZaBwJ*ggkFFe8|=_^htHXQ9ZoRPgyt z-*6z;&qbeq^1f6*zo1RfD(L#d*T>m;XQ7*dfo#7>TBk2&cVzqZ@cwu&7Kb=2A^$1Oe%6HPOQv$ZZu%0j(Vw+7Tnmzdgy8mj%`bH1f2G&|`s%*` Dm5==! delta 30 mcmeAaKPkY+!tlp}k>U0QIT@$B95oyHI$0Q5H!oq?$P56LR0*m8 diff --git a/.vs/ProjectEvaluation/firebird2d.projects.v8.bin b/.vs/ProjectEvaluation/firebird2d.projects.v8.bin index 78e82f1bd646e381c54d04369d1e7b5e49daf8ba..21be9672ec7adfec577056611bf8a7141daaec8b 100644 GIT binary patch delta 16077 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 I%?i- pipelines = new(); + + private Dictionary>> pendingHooks = new(); + + public void OnPipelineExists(Action callback, FirebirdEvent type) + { + if (callback == null) throw new ArgumentNullException(nameof(callback)); + + if (!pendingHooks.TryGetValue(type, out var hookList)) + { + hookList = new(); + pendingHooks[type] = hookList; + } + + hookList.Add(callback); + } + + public I_Pipeline GetOrBuildPipeline(FirebirdEvent type, Type argsType, object master) + { + if (pipelines.TryGetValue(type, out var pipeline)) return pipeline; + + var genericPipelineType = typeof(Pipeline<>).MakeGenericType(argsType); + var pipelineInstance = (I_Pipeline)Activator.CreateInstance(genericPipelineType, master)!; + pipelines[type] = pipelineInstance; + return pipelineInstance; + } + + public I_Pipeline? GetPipeline(FirebirdEvent type, Type argsType) + { + if (!pipelines.TryGetValue(type, out var pipeline)) return null; + return pipeline; + } + + public void DestroyPipeline(FirebirdEvent type, object master) + { + if (!pipelines.ContainsKey(type)) return; + if (!pipelines[type].PipelineMaster.Equals(master)) throw new InvalidDataException("Only the pipeline master is allowed to delete this pipeline."); + pipelines.Remove(type); + } + } +} diff --git a/Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj b/Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj new file mode 100644 index 0000000..1a5b4a4 --- /dev/null +++ b/Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj @@ -0,0 +1,17 @@ + + + + net8.0 + enable + enable + + + + + + + + + + + diff --git a/Firebird2D.EventPipelines/FirebirdEvent.cs b/Firebird2D.EventPipelines/FirebirdEvent.cs new file mode 100644 index 0000000..538d41d --- /dev/null +++ b/Firebird2D.EventPipelines/FirebirdEvent.cs @@ -0,0 +1,441 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Firebird2D.EventPipelines +{ + public enum FirebirdEvent + { + A = 0, + // + // Zusammenfassung: + // The B key + B = 1, + // + // Zusammenfassung: + // The C key + C = 2, + // + // Zusammenfassung: + // The D key + D = 3, + // + // Zusammenfassung: + // The E key + E = 4, + // + // Zusammenfassung: + // The F key + F = 5, + // + // Zusammenfassung: + // The G key + G = 6, + // + // Zusammenfassung: + // The H key + H = 7, + // + // Zusammenfassung: + // The I key + I = 8, + // + // Zusammenfassung: + // The J key + J = 9, + // + // Zusammenfassung: + // The K key + K = 10, + // + // Zusammenfassung: + // The L key + L = 11, + // + // Zusammenfassung: + // The M key + M = 12, + // + // Zusammenfassung: + // The N key + N = 13, + // + // Zusammenfassung: + // The O key + O = 14, + // + // Zusammenfassung: + // The P key + P = 15, + // + // Zusammenfassung: + // The Q key + Q = 16, + // + // Zusammenfassung: + // The R key + R = 17, + // + // Zusammenfassung: + // The S key + S = 18, + // + // Zusammenfassung: + // The T key + T = 19, + // + // Zusammenfassung: + // The U key + U = 20, + // + // Zusammenfassung: + // The V key + V = 21, + // + // Zusammenfassung: + // The W key + W = 22, + // + // Zusammenfassung: + // The X key + X = 23, + // + // Zusammenfassung: + // The Y key + Y = 24, + // + // Zusammenfassung: + // The Z key + Z = 25, + // + // Zusammenfassung: + // The 0 key + Num0 = 26, + // + // Zusammenfassung: + // The 1 key + Num1 = 27, + // + // Zusammenfassung: + // The 2 key + Num2 = 28, + // + // Zusammenfassung: + // The 3 key + Num3 = 29, + // + // Zusammenfassung: + // The 4 key + Num4 = 30, + // + // Zusammenfassung: + // The 5 key + Num5 = 31, + // + // Zusammenfassung: + // The 6 key + Num6 = 32, + // + // Zusammenfassung: + // The 7 key + Num7 = 33, + // + // Zusammenfassung: + // The 8 key + Num8 = 34, + // + // Zusammenfassung: + // The 9 key + Num9 = 35, + // + // Zusammenfassung: + // The Escape key + Escape = 36, + // + // Zusammenfassung: + // The left Control key + LControl = 37, + // + // Zusammenfassung: + // The left Shift key + LShift = 38, + // + // Zusammenfassung: + // The left Alt key + LAlt = 39, + // + // Zusammenfassung: + // The left OS specific key: window (Windows and Linux), apple (macOS), ... + LSystem = 40, + // + // Zusammenfassung: + // The right Control key + RControl = 41, + // + // Zusammenfassung: + // The right Shift key + RShift = 42, + // + // Zusammenfassung: + // The right Alt key + RAlt = 43, + // + // Zusammenfassung: + // The right OS specific key: window (Windows and Linux), apple (macOS), ... + RSystem = 44, + // + // Zusammenfassung: + // The Menu key + Menu = 45, + // + // Zusammenfassung: + // The [ key + LBracket = 46, + // + // Zusammenfassung: + // The ] key + RBracket = 47, + // + // Zusammenfassung: + // The ; key + Semicolon = 48, + // + // Zusammenfassung: + // The , key + Comma = 49, + // + // Zusammenfassung: + // The . key + Period = 50, + // + // Zusammenfassung: + // The ' key + Apostrophe = 51, + // + // Zusammenfassung: + // The / key + Slash = 52, + // + // Zusammenfassung: + // The \ key + Backslash = 53, + // + // Zusammenfassung: + // The ~ key + Grave = 54, + // + // Zusammenfassung: + // The = key + Equal = 55, + // + // Zusammenfassung: + // The - key + Hyphen = 56, + // + // Zusammenfassung: + // The Space key + Space = 57, + // + // Zusammenfassung: + // The Return key + Enter = 58, + // + // Zusammenfassung: + // The Backspace key + Backspace = 59, + // + // Zusammenfassung: + // The Tabulation key + Tab = 60, + // + // Zusammenfassung: + // The Page up key + PageUp = 61, + // + // Zusammenfassung: + // The Page down key + PageDown = 62, + // + // Zusammenfassung: + // The End key + End = 63, + // + // Zusammenfassung: + // The Home key + Home = 64, + // + // Zusammenfassung: + // The Insert key + Insert = 65, + // + // Zusammenfassung: + // The Delete key + Delete = 66, + // + // Zusammenfassung: + // The + key + Add = 67, + // + // Zusammenfassung: + // The - key + Subtract = 68, + // + // Zusammenfassung: + // The * key + Multiply = 69, + // + // Zusammenfassung: + // The / key + Divide = 70, + // + // Zusammenfassung: + // Left arrow + Left = 71, + // + // Zusammenfassung: + // Right arrow + Right = 72, + // + // Zusammenfassung: + // Up arrow + Up = 73, + // + // Zusammenfassung: + // Down arrow + Down = 74, + // + // Zusammenfassung: + // The numpad 0 key + Numpad0 = 75, + // + // Zusammenfassung: + // The numpad 1 key + Numpad1 = 76, + // + // Zusammenfassung: + // The numpad 2 key + Numpad2 = 77, + // + // Zusammenfassung: + // The numpad 3 key + Numpad3 = 78, + // + // Zusammenfassung: + // The numpad 4 key + Numpad4 = 79, + // + // Zusammenfassung: + // The numpad 5 key + Numpad5 = 80, + // + // Zusammenfassung: + // The numpad 6 key + Numpad6 = 81, + // + // Zusammenfassung: + // The numpad 7 key + Numpad7 = 82, + // + // Zusammenfassung: + // The numpad 8 key + Numpad8 = 83, + // + // Zusammenfassung: + // The numpad 9 key + Numpad9 = 84, + // + // Zusammenfassung: + // The F1 key + F1 = 85, + // + // Zusammenfassung: + // The F2 key + F2 = 86, + // + // Zusammenfassung: + // The F3 key + F3 = 87, + // + // Zusammenfassung: + // The F4 key + F4 = 88, + // + // Zusammenfassung: + // The F5 key + F5 = 89, + // + // Zusammenfassung: + // The F6 key + F6 = 90, + // + // Zusammenfassung: + // The F7 key + F7 = 91, + // + // Zusammenfassung: + // The F8 key + F8 = 92, + // + // Zusammenfassung: + // The F9 key + F9 = 93, + // + // Zusammenfassung: + // The F10 key + F10 = 94, + // + // Zusammenfassung: + // The F11 key + F11 = 95, + // + // Zusammenfassung: + // The F12 key + F12 = 96, + // + // Zusammenfassung: + // The F13 key + F13 = 97, + // + // Zusammenfassung: + // The F14 key + F14 = 98, + // + // Zusammenfassung: + // The F15 key + F15 = 99, + // + // Zusammenfassung: + // The Pause key + Pause = 100, + + MouseLeft = 101, + // + // Zusammenfassung: + // The right mouse button + MouseRight = 102, + // + // Zusammenfassung: + // The middle (wheel) mouse button + MouseMiddle = 103, + // + // Zusammenfassung: + // The first extra mouse button + MouseXButton1 = 104, + // + // Zusammenfassung: + // The second extra mouse button + MouseXButton2 = 105, + JoystickButton, + JoystickMove, + Tick, + Startup, + ModulesLoading, + SceneLoading, + FullyLoaded, + SceneLoaded, + MouseWheel, + MouseMove + } +} diff --git a/Firebird2D.EventPipelines/I_Pipeline.cs b/Firebird2D.EventPipelines/I_Pipeline.cs new file mode 100644 index 0000000..3fda8b0 --- /dev/null +++ b/Firebird2D.EventPipelines/I_Pipeline.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Firebird2D.EventPipelines +{ + public interface I_Pipeline + { + object PipelineMaster { get; } + bool IsEventEmpty { get; } + void Subscribe(Delegate handler); + void Unsubscribe(Delegate handler); + + } +} diff --git a/Firebird2D.EventPipelines/Pipeline.cs b/Firebird2D.EventPipelines/Pipeline.cs new file mode 100644 index 0000000..244dd46 --- /dev/null +++ b/Firebird2D.EventPipelines/Pipeline.cs @@ -0,0 +1,44 @@ + +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Mail; +using System.Text; +using System.Threading.Tasks; + +namespace Firebird2D.EventPipelines +{ + public class Pipeline : I_Pipeline where T : EventArgs + { + public object PipelineMaster { get; } + + private event EventHandler? OnEvent; + + public Pipeline(object pipelineMaster) + { + PipelineMaster = pipelineMaster; + } + + public bool IsEventEmpty { get { return OnEvent != null; } } + + public void Subscribe(Delegate handler) + { + OnEvent += (EventHandler)handler; + } + + public void Unsubscribe(Delegate handler) + { + OnEvent -= (EventHandler)handler; + } + + public void SendEvent(object sender, T args) + { + if (sender == null || args == null) throw new ArgumentNullException(nameof(sender)); + if (args is not T) throw new ArgumentException($"Invalid EventArgs type. Expected {typeof(T)}"); + if (sender.Equals(PipelineMaster)) throw new InvalidDataException("Only the pipeline master is allowed to send events through this pipeline."); + + OnEvent?.Invoke(sender, args); + + } + } +} diff --git a/Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj b/Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj new file mode 100644 index 0000000..ae81bf0 --- /dev/null +++ b/Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj @@ -0,0 +1,13 @@ + + + + net8.0 + enable + enable + + + + + + + diff --git a/Firebird2D.KeyMapper/KeyMapper.cs b/Firebird2D.KeyMapper/KeyMapper.cs new file mode 100644 index 0000000..b9d9c84 --- /dev/null +++ b/Firebird2D.KeyMapper/KeyMapper.cs @@ -0,0 +1,161 @@ +using Firebird2D.EventPipelines; +using SFML.System; +using SFML.Window; +using System.Runtime.CompilerServices; +using System.Text.Json; + + +namespace Firebird2D.KeyMapping +{ + public class KeyMapper + { + private EventBus eventBus; + + private Dictionary inputEvents = []; + + private Dictionary eventTypes = []; + + private Dictionary inputMapping = []; + + private Dictionary cachedPipelines = []; + + public KeyMapper(EventBus eventBus) + { + if (eventBus == null) throw new NullReferenceException(nameof(eventBus)); + this.eventBus = eventBus; + } + + public void RegisterEvent(string EventName, EventHandler handler, FirebirdEvent eventNumber) where T : EventArgs + { + if (inputEvents.ContainsKey(EventName)) throw new ArgumentException($"Event {EventName} exist Already."); + inputEvents.Add(EventName, handler); + + eventTypes.Add(EventName, typeof(T)); + + Map(EventName, eventNumber); + } + + public void Map(string EventName, FirebirdEvent eventNumber) + { + if (inputMapping.ContainsKey(EventName)) + { + RemoveMapping(EventName); + inputMapping[EventName] = eventNumber; + AjustPipeline(EventName, eventNumber); + } + else + { + inputMapping.Add(EventName, eventNumber); + AjustPipeline(EventName, eventNumber); + } + } + + private void RemoveMapping(string EventName) + { + if (!inputMapping.TryGetValue(EventName, out var firebirdEvent)) return; + if (!eventTypes.TryGetValue(EventName, out var type)) return; + + I_Pipeline? pipeline = eventBus.GetPipeline(firebirdEvent, type); + + if (pipeline != null) + { + pipeline.Unsubscribe(inputEvents[EventName]); + if (pipeline.IsEventEmpty) + { + eventBus.DestroyPipeline(firebirdEvent, this); + cachedPipelines.Remove(firebirdEvent); + } + } + inputMapping.Remove(EventName); + } + + private void AjustPipeline(string EventName, FirebirdEvent eventNumber) + { + if (!eventTypes.TryGetValue(EventName, out var type)) return; + + I_Pipeline pipeline = eventBus.GetOrBuildPipeline(eventNumber, type, this); + pipeline.Subscribe(inputEvents[EventName]); + } + + public void SaveMapping(string Path) + { + string json = JsonSerializer.Serialize(inputMapping); + File.WriteAllText(Path, json); + } + + public void LoadMapping(string Path) + { + string json = File.ReadAllText(Path); + Dictionary? keyValuePairs = JsonSerializer.Deserialize>(json); + if (keyValuePairs == null) throw new FileLoadException("Unable to deserialize Inputmapping"); + + cachedPipelines.Clear(); + + foreach (var kvp in inputMapping) + { + RemoveMapping(kvp.Key); + } + + inputMapping = keyValuePairs; + + foreach (var kvp in inputMapping) + { + if (inputEvents.ContainsKey(kvp.Key)) + { + AjustPipeline(kvp.Key, kvp.Value); + } + } + } + + public void InvalidatePipelineCache(FirebirdEvent fbEvent) + { + cachedPipelines.Remove(fbEvent); + } + + + [MethodImpl(MethodImplOptions.AggressiveInlining)] + private Pipeline? GetOrCachePipeline(FirebirdEvent fbEvent) where T : EventArgs + { + if (cachedPipelines.TryGetValue(fbEvent, out var pipelineObj) && pipelineObj is Pipeline cached) + return cached; + + var pipeline = eventBus?.GetPipeline(fbEvent, typeof(T)) as Pipeline; + + if (pipeline != null) + cachedPipelines[fbEvent] = pipeline; + + return pipeline; + } + + + public void HandleKeyboardInput(KeyEvent key) + { + var pipeline = GetOrCachePipeline((FirebirdEvent)key.Code); + pipeline?.SendEvent(this, new KeyEventArgs(key)); + } + + public void HandleMouseInput(MouseButtonEvent button) + { + var pipeline = GetOrCachePipeline((FirebirdEvent)(button.Button + 101)); + pipeline?.SendEvent(this, new MouseButtonEventArgs(button)); + } + + public void HandleJoystickButtonInput(JoystickButtonEvent joystickButton) + { + var pipeline = GetOrCachePipeline(FirebirdEvent.JoystickButton); + pipeline?.SendEvent(this, new JoystickButtonEventArgs(joystickButton)); + } + + public void HandleMouseMovement(MouseMoveEvent mouseMove) + { + var pipeline = GetOrCachePipeline(FirebirdEvent.MouseMove); + pipeline?.SendEvent(this, new MouseMoveEventArgs(mouseMove)); + } + + public void HandleJoytickMove(JoystickMoveEvent joystickMove) + { + var pipeline = GetOrCachePipeline(FirebirdEvent.JoystickMove); + pipeline?.SendEvent(this, new JoystickMoveEventArgs(joystickMove)); + } + } +} diff --git a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfo.cs b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfo.cs index 951f669..1692793 100644 --- a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfo.cs +++ b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.Logger")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b4d5afc4ba4c2fb1fde6fb769da0e6c84003d734")] [assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.Logger")] [assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.Logger")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfoInputs.cache b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfoInputs.cache index ba86a2f..b52536c 100644 --- a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfoInputs.cache +++ b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.AssemblyInfoInputs.cache @@ -1 +1 @@ -32e3d814a80a310d5a0cc6d3cec91f5ef8b52ebe1ee92cb41b060cf5867c209a +affe20a17e8e88d1b9a30dd26c0c5847166b5692d8b48ab665b103d74ddc8438 diff --git a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.GeneratedMSBuildEditorConfig.editorconfig b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.GeneratedMSBuildEditorConfig.editorconfig index c2679ac..1d006de 100644 --- a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.GeneratedMSBuildEditorConfig.editorconfig +++ b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.GeneratedMSBuildEditorConfig.editorconfig @@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Firebird2D.Logger -build_property.ProjectDir = C:\Users\wayan\source\repos\SFML_Test\Firebird2D.Logger\ +build_property.ProjectDir = G:\Coding\Firebird2D\Firebird2D.Logger\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.assets.cache b/Firebird2D.Logger/obj/Debug/net8.0/Firebird2D.Logger.assets.cache index 053f7b09ea40abf2d00d9be9d2113956b77e7885..6f23c919364f777e099c090d2b4fc50ae0656649 100644 GIT binary patch delta 55 zcmV-70LcI30ptNGP)kQa3;+NCn&P)jvb2o~A^1R!u)}SurXzqE+XyHcr-&g95aJ_1 N;E^#Skw6HMRFG4P6(~vk!UYr^^j)qk*rO*OAaC N;E^#Skw6HMRFGf67iIte delta 55 zcmV-70LcI30ptNGP)kQa3;+NCE+o41YGPnZV0Q9rE9aH>M^i|@;)CVNTA`j=@9g9K N;E^#Skw6HMRFH*B8Q=f_ diff --git a/Firebird2D.Requirement/obj/Firebird2D.Requirement.csproj.nuget.dgspec.json b/Firebird2D.Requirement/obj/Firebird2D.Requirement.csproj.nuget.dgspec.json index ab34de0..ecf7b85 100644 --- a/Firebird2D.Requirement/obj/Firebird2D.Requirement.csproj.nuget.dgspec.json +++ b/Firebird2D.Requirement/obj/Firebird2D.Requirement.csproj.nuget.dgspec.json @@ -1,17 +1,17 @@ { "format": 1, "restore": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": {} + "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": {} }, "projects": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", "projectName": "Firebird2D.Logger", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -71,14 +71,14 @@ } } }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "projectName": "Firebird2D.Requirement", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -102,8 +102,8 @@ "net8.0": { "targetAlias": "net8.0", "projectReferences": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj" } } } diff --git a/Firebird2D.Requirement/obj/project.assets.json b/Firebird2D.Requirement/obj/project.assets.json index c4f75d5..59992ea 100644 --- a/Firebird2D.Requirement/obj/project.assets.json +++ b/Firebird2D.Requirement/obj/project.assets.json @@ -33,11 +33,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "projectName": "Firebird2D.Requirement", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -61,8 +61,8 @@ "net8.0": { "targetAlias": "net8.0", "projectReferences": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj" } } } diff --git a/Firebird2D.Requirement/obj/project.nuget.cache b/Firebird2D.Requirement/obj/project.nuget.cache index b627b00..9693734 100644 --- a/Firebird2D.Requirement/obj/project.nuget.cache +++ b/Firebird2D.Requirement/obj/project.nuget.cache @@ -1,8 +1,8 @@ { "version": 2, - "dgSpecHash": "HpwrRtPzXm8=", + "dgSpecHash": "Cnwm1cp4iIM=", "success": true, - "projectFilePath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectFilePath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "expectedPackageFiles": [], "logs": [] } \ No newline at end of file diff --git a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfo.cs b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfo.cs index 75f14d3..5bce199 100644 --- a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfo.cs +++ b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D.SFMLExtensions")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b4d5afc4ba4c2fb1fde6fb769da0e6c84003d734")] [assembly: System.Reflection.AssemblyProductAttribute("Firebird2D.SFMLExtensions")] [assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D.SFMLExtensions")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfoInputs.cache b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfoInputs.cache index 16d9333..ccb5cd9 100644 --- a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfoInputs.cache +++ b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.AssemblyInfoInputs.cache @@ -1 +1 @@ -b0cfbdeb581dd84b837d01c67326fd0d91e22d0b785b6f432a1f367680a4d1b5 +cc9869897aeaa6a5dfabc87ead78ab52b0a4f6484df7ba1391f0a03cd3a7749c diff --git a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.GeneratedMSBuildEditorConfig.editorconfig b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.GeneratedMSBuildEditorConfig.editorconfig index f8dbd58..7d3779d 100644 --- a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.GeneratedMSBuildEditorConfig.editorconfig +++ b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.GeneratedMSBuildEditorConfig.editorconfig @@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Firebird2D.SFMLExtensions -build_property.ProjectDir = C:\Users\wayan\source\repos\SFML_Test\Firebird2D.SFMLExtensions\ +build_property.ProjectDir = G:\Coding\Firebird2D\Firebird2D.SFMLExtensions\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.assets.cache b/Firebird2D.SFMLExtensions/obj/Debug/net8.0/Firebird2D.SFMLExtensions.assets.cache index 7a029eec54d6df486997c89ff702bbc82647dca9..2e7bcf1d305b74265f2a128035b499def74199ac 100644 GIT binary patch delta 60 zcmex=koo^XX59d9cSjxu28O~(g+b=u1NgFTEH7f%%=II-_zJr~j?_mDlXR_}+ue&7 QR09=FKEM*Yv8(g}0LzgV?EnA( delta 60 zcmex=koo^XX59d9cSjxu28MS3d3OXYpH1Yu^xIxLGTY^-q^HHFC%+3)k4C1lZ?525 QPz_Wx`2b7o#;(!_0QZy`XaE2J diff --git a/Firebird2D.SFMLExtensions/obj/Firebird2D.SFMLExtensions.csproj.nuget.dgspec.json b/Firebird2D.SFMLExtensions/obj/Firebird2D.SFMLExtensions.csproj.nuget.dgspec.json index 8e7aee1..bf5015f 100644 --- a/Firebird2D.SFMLExtensions/obj/Firebird2D.SFMLExtensions.csproj.nuget.dgspec.json +++ b/Firebird2D.SFMLExtensions/obj/Firebird2D.SFMLExtensions.csproj.nuget.dgspec.json @@ -1,17 +1,17 @@ { "format": 1, "restore": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": {} + "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": {} }, "projects": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "projectName": "Firebird2D.SFMLExtensions", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" diff --git a/Firebird2D.SFMLExtensions/obj/project.assets.json b/Firebird2D.SFMLExtensions/obj/project.assets.json index 9177956..b4caf59 100644 --- a/Firebird2D.SFMLExtensions/obj/project.assets.json +++ b/Firebird2D.SFMLExtensions/obj/project.assets.json @@ -1081,11 +1081,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "projectName": "Firebird2D.SFMLExtensions", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" diff --git a/Firebird2D.SFMLExtensions/obj/project.nuget.cache b/Firebird2D.SFMLExtensions/obj/project.nuget.cache index 5c478c1..dea6dc3 100644 --- a/Firebird2D.SFMLExtensions/obj/project.nuget.cache +++ b/Firebird2D.SFMLExtensions/obj/project.nuget.cache @@ -1,8 +1,8 @@ { "version": 2, - "dgSpecHash": "uGVcjkrdvPM=", + "dgSpecHash": "IPYFqKuYbQ8=", "success": true, - "projectFilePath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectFilePath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "expectedPackageFiles": [ "C:\\Users\\wayan\\.nuget\\packages\\csfml\\2.6.1\\csfml.2.6.1.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\sfml.audio\\2.6.0\\sfml.audio.2.6.0.nupkg.sha512", diff --git a/Firebird2D.sln b/Firebird2D.sln index e1c3944..e119f4f 100644 --- a/Firebird2D.sln +++ b/Firebird2D.sln @@ -16,6 +16,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Documentation", "Documentat ClassDiagram.md = ClassDiagram.md EndProjectSection EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Firebird2D.EventPipelines", "Firebird2D.EventPipelines\Firebird2D.EventPipelines.csproj", "{FB2B6835-02BF-4AE7-B85F-290472787ED3}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Firebird2D.KeyMapping", "Firebird2D.KeyMapper\Firebird2D.KeyMapping.csproj", "{38CCA723-C113-4E44-B074-F9B709B0EEB4}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -38,6 +42,14 @@ Global {106D6D21-E153-476B-AE52-4B2C899F6928}.Debug|Any CPU.Build.0 = Debug|Any CPU {106D6D21-E153-476B-AE52-4B2C899F6928}.Release|Any CPU.ActiveCfg = Release|Any CPU {106D6D21-E153-476B-AE52-4B2C899F6928}.Release|Any CPU.Build.0 = Release|Any CPU + {FB2B6835-02BF-4AE7-B85F-290472787ED3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FB2B6835-02BF-4AE7-B85F-290472787ED3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FB2B6835-02BF-4AE7-B85F-290472787ED3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FB2B6835-02BF-4AE7-B85F-290472787ED3}.Release|Any CPU.Build.0 = Release|Any CPU + {38CCA723-C113-4E44-B074-F9B709B0EEB4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {38CCA723-C113-4E44-B074-F9B709B0EEB4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {38CCA723-C113-4E44-B074-F9B709B0EEB4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {38CCA723-C113-4E44-B074-F9B709B0EEB4}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Firebird2D/Firebird2D.csproj b/Firebird2D/Firebird2D.csproj index 06f9d1c..093819f 100644 --- a/Firebird2D/Firebird2D.csproj +++ b/Firebird2D/Firebird2D.csproj @@ -8,13 +8,15 @@ - + - + + + diff --git a/Firebird2D/Game.cs b/Firebird2D/Game.cs new file mode 100644 index 0000000..55b7fdd --- /dev/null +++ b/Firebird2D/Game.cs @@ -0,0 +1,50 @@ +using SFML.Graphics; +using SFML.Window; +using SFML.System; +using Microsoft.Extensions.Configuration; +using System.Text; +using Firebird2D.Core; +using Firebird2D.Configuration; +using Firebird2D.Logger; +using Firebird2D.SceneSystem; +using Firebird2D.EventPipelines; +using Firebird2D.KeyMapping; + +namespace Firebird2D +{ + public static class Game + { + + public static MainWindow? mainWindow {get; private set;} + + public static GameConfig gameConfig = new GameConfig(); + + public static EventBus? eventBus { get; private set;} + + public static KeyMapper? keyMapper { get; private set;} + + static void Main(string[] args) + { + eventBus = new EventBus(); + + keyMapper = new KeyMapper(eventBus); + + //GameLogger.Initalize(); + + //if (VideoMode.DesktopMode.Width < gameConfig.VideoMode.Width || VideoMode.DesktopMode.Height < gameConfig.VideoMode.Height) + //{ + // gameConfig.VideoMode = VideoMode.DesktopMode; + //} + + //Styles style = gameConfig.FullScreen ? Styles.Fullscreen : Styles.Default; + + //mainWindow = new MainWindow(gameConfig.VideoMode, "testgame", style); + + //SceneManager.LoadScenes(mainWindow); + + //mainWindow.Gameloop(); + + } + } +} + diff --git a/Firebird2D/GameSystem.cs b/Firebird2D/GameSystem.cs deleted file mode 100644 index a1d4554..0000000 --- a/Firebird2D/GameSystem.cs +++ /dev/null @@ -1,40 +0,0 @@ -using SFML.Graphics; -using SFML.Window; -using SFML.System; -using Microsoft.Extensions.Configuration; -using System.Text; -using Firebird2D.Core; -using Firebird2D.Configuration; -using Firebird2D.Logger; -using Firebird2D.SceneSystem; - -namespace Firebird2D -{ - public static class GameSystem - { - - public static MainWindow? mainWindow {get; private set;} - - public static GameConfig gameConfig = new GameConfig(); - - static void Main(string[] args) - { - GameLogger.Initalize(); - - if (VideoMode.DesktopMode.Width < gameConfig.VideoMode.Width || VideoMode.DesktopMode.Height < gameConfig.VideoMode.Height) - { - gameConfig.VideoMode = VideoMode.DesktopMode; - } - - Styles style = gameConfig.FullScreen ? Styles.Fullscreen : Styles.Default; - - mainWindow = new MainWindow(gameConfig.VideoMode, "testgame", style); - - SceneManager.LoadScenes(mainWindow); - - mainWindow.Gameloop(); - - } - } -} - diff --git a/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfo.cs b/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfo.cs index 03bb2eb..92d98be 100644 --- a/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfo.cs +++ b/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfo.cs @@ -14,7 +14,7 @@ using System.Reflection; [assembly: System.Reflection.AssemblyCompanyAttribute("Firebird2D")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+b4d5afc4ba4c2fb1fde6fb769da0e6c84003d734")] [assembly: System.Reflection.AssemblyProductAttribute("Firebird2D")] [assembly: System.Reflection.AssemblyTitleAttribute("Firebird2D")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfoInputs.cache b/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfoInputs.cache index fe3fb1c..ec709c2 100644 --- a/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfoInputs.cache +++ b/Firebird2D/obj/Debug/net8.0/Firebird2D.AssemblyInfoInputs.cache @@ -1 +1 @@ -34789a2313a02eb3bf9ca4688175c16f412592a6383e7e87cd64b1ac4632e7a2 +c0a24d86bf21784cd90312be0fc44d53210fd1ff433ae25e4a8ab483ba3e79a7 diff --git a/Firebird2D/obj/Debug/net8.0/Firebird2D.GeneratedMSBuildEditorConfig.editorconfig b/Firebird2D/obj/Debug/net8.0/Firebird2D.GeneratedMSBuildEditorConfig.editorconfig index 288795e..c4fba96 100644 --- a/Firebird2D/obj/Debug/net8.0/Firebird2D.GeneratedMSBuildEditorConfig.editorconfig +++ b/Firebird2D/obj/Debug/net8.0/Firebird2D.GeneratedMSBuildEditorConfig.editorconfig @@ -8,6 +8,6 @@ build_property.PlatformNeutralAssembly = build_property.EnforceExtendedAnalyzerRules = build_property._SupportedPlatformList = Linux,macOS,Windows build_property.RootNamespace = Firebird2D -build_property.ProjectDir = C:\Users\wayan\source\repos\SFML_Test\Firebird2D\ +build_property.ProjectDir = G:\Coding\Firebird2D\Firebird2D\ build_property.EnableComHosting = build_property.EnableGeneratedComInterfaceComImportInterop = diff --git a/Firebird2D/obj/Debug/net8.0/Firebird2D.assets.cache b/Firebird2D/obj/Debug/net8.0/Firebird2D.assets.cache index f6520f00703f27c223ddfd3f8126e8424142809a..65711478d780e188f88c88c566835addb996dd32 100644 GIT binary patch literal 66629 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 literal 66629 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 DQ)Y!3 diff --git a/Firebird2D/obj/Debug/net8.0/Firebird2D.csproj.AssemblyReference.cache b/Firebird2D/obj/Debug/net8.0/Firebird2D.csproj.AssemblyReference.cache index fc66ffe3c663c93cc004c624a34894a9d96bfa4b..f0fd46862700e03b155824df0596434aad83d094 100644 GIT binary patch delta 405 zcmdn)z1@3)AEU|ShfMkt>p0oEuGiHh-JRGw4=8kiO@DJVV=E(A)|HLfr5Y$Txsh9H zVgcV|0cM`b3Ct}JWk8w2US*Iu z6NRUPHG`!$hluQ9oqSPTc(SY<`(!OCel~?C7T!^JC)-O&FfvYFBP~0*RLXqvLpCBy_Rvr#j%05|EMjx!)X7Vjr)yeB*xMA81f-8$l zQgadRvVUg;G=hVXk&!#t&DTc{BG1SKbTS*r*F$XdXSE|S%T8*KnJR$Kw%aD*}8 cnRzMs$qhn7VrVN zJd+ccTP9obC_%V_ldE`6z+_^0!#BsVe&+@1RGPe6m`gw}B`1fGkpTz}?O;Fr{m$fx z!qb7~gC#eIi0olyG?*+XrNQR6Tkc%Poyqo65{wL!*GS7wE|oF|O0AW0n(V}+I$1>8 z3#?Fba)q=IoA||JAjK1;rNN5B!3rfO%gX3O6-!LMC967loeVcblRM<$KrweMWK3 diff --git a/Firebird2D/obj/Firebird2D.csproj.nuget.dgspec.json b/Firebird2D/obj/Firebird2D.csproj.nuget.dgspec.json index df3d941..f7d2634 100644 --- a/Firebird2D/obj/Firebird2D.csproj.nuget.dgspec.json +++ b/Firebird2D/obj/Firebird2D.csproj.nuget.dgspec.json @@ -1,17 +1,161 @@ { "format": 1, "restore": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj": {} + "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj": {} }, "projects": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj", - "projectName": "Firebird2D.Logger", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj", + "projectName": "Firebird2D.EventPipelines", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\wayan\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "C:\\TwinCAT\\Functions\\TE2000-HMI-Engineering\\Infrastructure\\Packages": {}, + "C:\\TwinCAT\\Functions\\TE2000-HMI-Engineering\\References": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "dependencies": { + "SFML.Net": { + "target": "Package", + "version": "[2.6.1, )" + } + }, + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.303/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj", + "projectName": "Firebird2D.KeyMapping", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj", + "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\obj\\", + "projectStyle": "PackageReference", + "fallbackFolders": [ + "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" + ], + "configFilePaths": [ + "C:\\Users\\wayan\\AppData\\Roaming\\NuGet\\NuGet.Config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config", + "C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {}, + "C:\\Program Files\\dotnet\\library-packs": {}, + "C:\\TwinCAT\\Functions\\TE2000-HMI-Engineering\\Infrastructure\\Packages": {}, + "C:\\TwinCAT\\Functions\\TE2000-HMI-Engineering\\References": {}, + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": { + "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj" + } + } + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + }, + "restoreAuditProperties": { + "enableAudit": "true", + "auditLevel": "low", + "auditMode": "direct" + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\8.0.303/PortableRuntimeIdentifierGraph.json" + } + } + }, + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "projectName": "Firebird2D.Logger", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj", + "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -71,14 +215,14 @@ } } }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "projectName": "Firebird2D.Requirement", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -102,8 +246,8 @@ "net8.0": { "targetAlias": "net8.0", "projectReferences": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj" } } } @@ -142,14 +286,14 @@ } } }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "projectName": "Firebird2D.SFMLExtensions", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -215,14 +359,14 @@ } } }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj": { + "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj", "projectName": "Firebird2D", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -246,14 +390,20 @@ "net8.0": { "targetAlias": "net8.0", "projectReferences": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj" }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj" }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + }, + "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj" + }, + "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj" } } } @@ -275,7 +425,7 @@ "dependencies": { "Microsoft.Extensions.Configuration": { "target": "Package", - "version": "[9.0.0, )" + "version": "[9.0.4, )" }, "Microsoft.Extensions.Configuration.Json": { "target": "Package", @@ -287,7 +437,7 @@ }, "SFML.Net": { "target": "Package", - "version": "[2.6.0, )" + "version": "[2.6.1, )" } }, "imports": [ diff --git a/Firebird2D/obj/project.assets.json b/Firebird2D/obj/project.assets.json index c08c5d9..bbf0d54 100644 --- a/Firebird2D/obj/project.assets.json +++ b/Firebird2D/obj/project.assets.json @@ -722,11 +722,11 @@ } } }, - "Microsoft.Extensions.Configuration/9.0.0": { + "Microsoft.Extensions.Configuration/9.0.4": { "type": "package", "dependencies": { - "Microsoft.Extensions.Configuration.Abstractions": "9.0.0", - "Microsoft.Extensions.Primitives": "9.0.0" + "Microsoft.Extensions.Configuration.Abstractions": "9.0.4", + "Microsoft.Extensions.Primitives": "9.0.4" }, "compile": { "lib/net8.0/Microsoft.Extensions.Configuration.dll": { @@ -742,10 +742,10 @@ "buildTransitive/net8.0/_._": {} } }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.0": { + "Microsoft.Extensions.Configuration.Abstractions/9.0.4": { "type": "package", "dependencies": { - "Microsoft.Extensions.Primitives": "9.0.0" + "Microsoft.Extensions.Primitives": "9.0.4" }, "compile": { "lib/net8.0/Microsoft.Extensions.Configuration.Abstractions.dll": { @@ -863,7 +863,7 @@ "buildTransitive/net8.0/_._": {} } }, - "Microsoft.Extensions.Primitives/9.0.0": { + "Microsoft.Extensions.Primitives/9.0.4": { "type": "package", "compile": { "lib/net8.0/Microsoft.Extensions.Primitives.dll": { @@ -908,11 +908,11 @@ } } }, - "SFML.Audio/2.6.0": { + "SFML.Audio/2.6.1": { "type": "package", "dependencies": { "CSFML": "[2.6.1, 2.7.0)", - "SFML.System": "2.6.0" + "SFML.System": "2.6.1" }, "compile": { "lib/netstandard2.0/SFML.Audio.dll": { @@ -925,12 +925,12 @@ } } }, - "SFML.Graphics/2.6.0": { + "SFML.Graphics/2.6.1": { "type": "package", "dependencies": { "CSFML": "[2.6.1, 2.7.0)", - "SFML.System": "2.6.0", - "SFML.Window": "2.6.0" + "SFML.System": "2.6.1", + "SFML.Window": "2.6.1" }, "compile": { "lib/netstandard2.0/SFML.Graphics.dll": { @@ -943,16 +943,16 @@ } } }, - "SFML.Net/2.6.0": { + "SFML.Net/2.6.1": { "type": "package", "dependencies": { - "SFML.Audio": "2.6.0", - "SFML.Graphics": "2.6.0", - "SFML.System": "2.6.0", - "SFML.Window": "2.6.0" + "SFML.Audio": "2.6.1", + "SFML.Graphics": "2.6.1", + "SFML.System": "2.6.1", + "SFML.Window": "2.6.1" } }, - "SFML.System/2.6.0": { + "SFML.System/2.6.1": { "type": "package", "dependencies": { "CSFML": "[2.6.1, 2.7.0)" @@ -968,11 +968,11 @@ } } }, - "SFML.Window/2.6.0": { + "SFML.Window/2.6.1": { "type": "package", "dependencies": { "CSFML": "[2.6.1, 2.7.0)", - "SFML.System": "2.6.0" + "SFML.System": "2.6.1" }, "compile": { "lib/netstandard2.0/SFML.Window.dll": { @@ -1043,6 +1043,32 @@ "buildTransitive/net8.0/System.Text.Json.targets": {} } }, + "Firebird2D.EventPipelines/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "SFML.Net": "2.6.1" + }, + "compile": { + "bin/placeholder/Firebird2D.EventPipelines.dll": {} + }, + "runtime": { + "bin/placeholder/Firebird2D.EventPipelines.dll": {} + } + }, + "Firebird2D.KeyMapping/1.0.0": { + "type": "project", + "framework": ".NETCoreApp,Version=v8.0", + "dependencies": { + "Firebird2D.EventPipelines": "1.0.0" + }, + "compile": { + "bin/placeholder/Firebird2D.KeyMapping.dll": {} + }, + "runtime": { + "bin/placeholder/Firebird2D.KeyMapping.dll": {} + } + }, "Firebird2D.Logger/1.0.0": { "type": "project", "framework": ".NETCoreApp,Version=v8.0", @@ -1275,10 +1301,10 @@ "sfml-icon.png" ] }, - "Microsoft.Extensions.Configuration/9.0.0": { - "sha512": "YIMO9T3JL8MeEXgVozKt2v79hquo/EFtnY0vgxmLnUvk1Rei/halI7kOWZL2RBeV9FMGzgM9LZA8CVaNwFMaNA==", + "Microsoft.Extensions.Configuration/9.0.4": { + "sha512": "KIVBrMbItnCJDd1RF4KEaE8jZwDJcDUJW5zXpbwQ05HNYTK1GveHxHK0B3SjgDJuR48GRACXAO+BLhL8h34S7g==", "type": "package", - "path": "microsoft.extensions.configuration/9.0.0", + "path": "microsoft.extensions.configuration/9.0.4", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1298,15 +1324,15 @@ "lib/net9.0/Microsoft.Extensions.Configuration.xml", "lib/netstandard2.0/Microsoft.Extensions.Configuration.dll", "lib/netstandard2.0/Microsoft.Extensions.Configuration.xml", - "microsoft.extensions.configuration.9.0.0.nupkg.sha512", + "microsoft.extensions.configuration.9.0.4.nupkg.sha512", "microsoft.extensions.configuration.nuspec", "useSharedDesignerContext.txt" ] }, - "Microsoft.Extensions.Configuration.Abstractions/9.0.0": { - "sha512": "lqvd7W3FGKUO1+ZoUEMaZ5XDJeWvjpy2/M/ptCGz3tXLD4HWVaSzjufsAsjemasBEg+2SxXVtYVvGt5r2nKDlg==", + "Microsoft.Extensions.Configuration.Abstractions/9.0.4": { + "sha512": "0LN/DiIKvBrkqp7gkF3qhGIeZk6/B63PthAHjQsxymJfIBcz0kbf4/p/t4lMgggVxZ+flRi5xvTwlpPOoZk8fg==", "type": "package", - "path": "microsoft.extensions.configuration.abstractions/9.0.0", + "path": "microsoft.extensions.configuration.abstractions/9.0.4", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1326,7 +1352,7 @@ "lib/net9.0/Microsoft.Extensions.Configuration.Abstractions.xml", "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.dll", "lib/netstandard2.0/Microsoft.Extensions.Configuration.Abstractions.xml", - "microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512", + "microsoft.extensions.configuration.abstractions.9.0.4.nupkg.sha512", "microsoft.extensions.configuration.abstractions.nuspec", "useSharedDesignerContext.txt" ] @@ -1473,10 +1499,10 @@ "useSharedDesignerContext.txt" ] }, - "Microsoft.Extensions.Primitives/9.0.0": { - "sha512": "N3qEBzmLMYiASUlKxxFIISP4AiwuPTHF5uCh+2CWSwwzAJiIYx0kBJsS30cp1nvhSySFAVi30jecD307jV+8Kg==", + "Microsoft.Extensions.Primitives/9.0.4": { + "sha512": "SPFyMjyku1nqTFFJ928JAMd0QnRe4xjE7KeKnZMWXf3xk+6e0WiOZAluYtLdbJUXtsl2cCRSi8cBquJ408k8RA==", "type": "package", - "path": "microsoft.extensions.primitives/9.0.0", + "path": "microsoft.extensions.primitives/9.0.4", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1496,7 +1522,7 @@ "lib/net9.0/Microsoft.Extensions.Primitives.xml", "lib/netstandard2.0/Microsoft.Extensions.Primitives.dll", "lib/netstandard2.0/Microsoft.Extensions.Primitives.xml", - "microsoft.extensions.primitives.9.0.0.nupkg.sha512", + "microsoft.extensions.primitives.9.0.4.nupkg.sha512", "microsoft.extensions.primitives.nuspec", "useSharedDesignerContext.txt" ] @@ -1555,10 +1581,10 @@ "packageIcon.png" ] }, - "SFML.Audio/2.6.0": { - "sha512": "DvribzbjacRFSFU/A7xLkxlYEwMGKM9bwcpFo3TjStpKTDNSrSDw3EWuE0HwrQpzfiNxCAutnlRFvfwufUHuNw==", + "SFML.Audio/2.6.1": { + "sha512": "MsIlMTEeG623UYw3/Sb2qVw94xEHOxamUENuxbjSz4QiTsfCNQNEADpfTbXKI/FS5u7y/FsNmk+4II2iEf8MMw==", "type": "package", - "path": "sfml.audio/2.6.0", + "path": "sfml.audio/2.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1566,14 +1592,14 @@ "lib/netstandard2.0/SFML.Audio.dll", "lib/netstandard2.0/SFML.Audio.xml", "sfml-icon.png", - "sfml.audio.2.6.0.nupkg.sha512", + "sfml.audio.2.6.1.nupkg.sha512", "sfml.audio.nuspec" ] }, - "SFML.Graphics/2.6.0": { - "sha512": "bwYJT4siVta87d3ZaRN37FViOMAgiiYS9BYJOhHL70G9+KDtqbAl1LYg9hdEG8IHFSj55I7P8qkPL33KQ16RBg==", + "SFML.Graphics/2.6.1": { + "sha512": "pOtL7ss6r3m7P3MbZ4Oytjzug2mWJ5OHblZHlISIhb6IezmsFmBxqLsIq0YoyWGcAL4cgSXqDmflJivKpXgdtg==", "type": "package", - "path": "sfml.graphics/2.6.0", + "path": "sfml.graphics/2.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1581,27 +1607,27 @@ "lib/netstandard2.0/SFML.Graphics.dll", "lib/netstandard2.0/SFML.Graphics.xml", "sfml-icon.png", - "sfml.graphics.2.6.0.nupkg.sha512", + "sfml.graphics.2.6.1.nupkg.sha512", "sfml.graphics.nuspec" ] }, - "SFML.Net/2.6.0": { - "sha512": "jnHJp7PPvZ0FdIZQZo63DW3ROrgVJktTzycjGzoX1HsZZTzj7ioMOXtsbR2AAggdTyk6vIhd61IqEpLO4DSd+Q==", + "SFML.Net/2.6.1": { + "sha512": "OWjTdbVi86gTYHjlSB3Y77ZWDy01iIVMXfb5ApX3L5yp455VDmF828wBIc2+bfPxJDFSHgJ82LpZM5jFNUS/QA==", "type": "package", - "path": "sfml.net/2.6.0", + "path": "sfml.net/2.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", "README.md", "sfml-icon.png", - "sfml.net.2.6.0.nupkg.sha512", + "sfml.net.2.6.1.nupkg.sha512", "sfml.net.nuspec" ] }, - "SFML.System/2.6.0": { - "sha512": "XDNdNah0PKZElyYMAqWd8Kbe/XsJExkTxPY0txIrsTXEFIiRWhlkcYBBZmGkA6wvB5Ib7XH8QqE8s3BY8ZAzaQ==", + "SFML.System/2.6.1": { + "sha512": "/3EV59uiMWxADWWSiqAOS+8FK4Da2r6RoZEujG14kLGYtQzNj4rV4pjjycyH30WWDONSedxmLT9chf8XN70+BQ==", "type": "package", - "path": "sfml.system/2.6.0", + "path": "sfml.system/2.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1609,14 +1635,14 @@ "lib/netstandard2.0/SFML.System.dll", "lib/netstandard2.0/SFML.System.xml", "sfml-icon.png", - "sfml.system.2.6.0.nupkg.sha512", + "sfml.system.2.6.1.nupkg.sha512", "sfml.system.nuspec" ] }, - "SFML.Window/2.6.0": { - "sha512": "C4FAnMI6adoNyc7gv33tIK9iYWuPxPUqQojLkhy2DTi4+3ZrlSNRDNZYc7V8Gaps3dOheGAP41/MJKSdTF8SZg==", + "SFML.Window/2.6.1": { + "sha512": "lzt42WWZiYvoMrDwvc4lpl6t/GH6AhvHI+inw/Aoh1v6xAO8GDnzzLVsaKi+RfPqdL2mHsih1qUZucuvAmoGdg==", "type": "package", - "path": "sfml.window/2.6.0", + "path": "sfml.window/2.6.1", "files": [ ".nupkg.metadata", ".signature.p7s", @@ -1624,7 +1650,7 @@ "lib/netstandard2.0/SFML.Window.dll", "lib/netstandard2.0/SFML.Window.xml", "sfml-icon.png", - "sfml.window.2.6.0.nupkg.sha512", + "sfml.window.2.6.1.nupkg.sha512", "sfml.window.nuspec" ] }, @@ -1759,6 +1785,16 @@ "useSharedDesignerContext.txt" ] }, + "Firebird2D.EventPipelines/1.0.0": { + "type": "project", + "path": "../Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj", + "msbuildProject": "../Firebird2D.EventPipelines/Firebird2D.EventPipelines.csproj" + }, + "Firebird2D.KeyMapping/1.0.0": { + "type": "project", + "path": "../Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj", + "msbuildProject": "../Firebird2D.KeyMapper/Firebird2D.KeyMapping.csproj" + }, "Firebird2D.Logger/1.0.0": { "type": "project", "path": "../Firebird2D.Logger/Firebird2D.Logger.csproj", @@ -1777,13 +1813,15 @@ }, "projectFileDependencyGroups": { "net8.0": [ + "Firebird2D.EventPipelines >= 1.0.0", + "Firebird2D.KeyMapping >= 1.0.0", "Firebird2D.Logger >= 1.0.0", "Firebird2D.Requirement >= 1.0.0", "Firebird2D.SFMLExtensions >= 1.0.0", - "Microsoft.Extensions.Configuration >= 9.0.0", + "Microsoft.Extensions.Configuration >= 9.0.4", "Microsoft.Extensions.Configuration.Json >= 9.0.0", "Newtonsoft.Json.Schema >= 4.0.1", - "SFML.Net >= 2.6.0" + "SFML.Net >= 2.6.1" ] }, "packageFolders": { @@ -1793,11 +1831,11 @@ "project": { "version": "1.0.0", "restore": { - "projectUniqueName": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj", + "projectUniqueName": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj", "projectName": "Firebird2D", - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj", + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj", "packagesPath": "C:\\Users\\wayan\\.nuget\\packages\\", - "outputPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\obj\\", + "outputPath": "G:\\Coding\\Firebird2D\\Firebird2D\\obj\\", "projectStyle": "PackageReference", "fallbackFolders": [ "C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages" @@ -1821,14 +1859,20 @@ "net8.0": { "targetAlias": "net8.0", "projectReferences": { - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.EventPipelines\\Firebird2D.EventPipelines.csproj" }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.KeyMapper\\Firebird2D.KeyMapping.csproj" }, - "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { - "projectPath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj" + "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Logger\\Firebird2D.Logger.csproj" + }, + "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.Requirement\\Firebird2D.Requirement.csproj" + }, + "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj": { + "projectPath": "G:\\Coding\\Firebird2D\\Firebird2D.SFMLExtensions\\Firebird2D.SFMLExtensions.csproj" } } } @@ -1850,7 +1894,7 @@ "dependencies": { "Microsoft.Extensions.Configuration": { "target": "Package", - "version": "[9.0.0, )" + "version": "[9.0.4, )" }, "Microsoft.Extensions.Configuration.Json": { "target": "Package", @@ -1862,7 +1906,7 @@ }, "SFML.Net": { "target": "Package", - "version": "[2.6.0, )" + "version": "[2.6.1, )" } }, "imports": [ diff --git a/Firebird2D/obj/project.nuget.cache b/Firebird2D/obj/project.nuget.cache index 279752d..0314e33 100644 --- a/Firebird2D/obj/project.nuget.cache +++ b/Firebird2D/obj/project.nuget.cache @@ -1,25 +1,25 @@ { "version": 2, - "dgSpecHash": "mqTKswFuLRY=", + "dgSpecHash": "TRKtJseqRqc=", "success": true, - "projectFilePath": "C:\\Users\\wayan\\source\\repos\\SFML_Test\\Firebird2D\\Firebird2D.csproj", + "projectFilePath": "G:\\Coding\\Firebird2D\\Firebird2D\\Firebird2D.csproj", "expectedPackageFiles": [ "C:\\Users\\wayan\\.nuget\\packages\\csfml\\2.6.1\\csfml.2.6.1.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.0\\microsoft.extensions.configuration.9.0.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.0\\microsoft.extensions.configuration.abstractions.9.0.0.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration\\9.0.4\\microsoft.extensions.configuration.9.0.4.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration.abstractions\\9.0.4\\microsoft.extensions.configuration.abstractions.9.0.4.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration.fileextensions\\9.0.0\\microsoft.extensions.configuration.fileextensions.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.configuration.json\\9.0.0\\microsoft.extensions.configuration.json.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.fileproviders.abstractions\\9.0.0\\microsoft.extensions.fileproviders.abstractions.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.fileproviders.physical\\9.0.0\\microsoft.extensions.fileproviders.physical.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.filesystemglobbing\\9.0.0\\microsoft.extensions.filesystemglobbing.9.0.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.0\\microsoft.extensions.primitives.9.0.0.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\microsoft.extensions.primitives\\9.0.4\\microsoft.extensions.primitives.9.0.4.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\newtonsoft.json\\13.0.3\\newtonsoft.json.13.0.3.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\newtonsoft.json.schema\\4.0.1\\newtonsoft.json.schema.4.0.1.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\sfml.audio\\2.6.0\\sfml.audio.2.6.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\sfml.graphics\\2.6.0\\sfml.graphics.2.6.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\sfml.net\\2.6.0\\sfml.net.2.6.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\sfml.system\\2.6.0\\sfml.system.2.6.0.nupkg.sha512", - "C:\\Users\\wayan\\.nuget\\packages\\sfml.window\\2.6.0\\sfml.window.2.6.0.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\sfml.audio\\2.6.1\\sfml.audio.2.6.1.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\sfml.graphics\\2.6.1\\sfml.graphics.2.6.1.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\sfml.net\\2.6.1\\sfml.net.2.6.1.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\sfml.system\\2.6.1\\sfml.system.2.6.1.nupkg.sha512", + "C:\\Users\\wayan\\.nuget\\packages\\sfml.window\\2.6.1\\sfml.window.2.6.1.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\system.io.pipelines\\9.0.0\\system.io.pipelines.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\system.text.encodings.web\\9.0.0\\system.text.encodings.web.9.0.0.nupkg.sha512", "C:\\Users\\wayan\\.nuget\\packages\\system.text.json\\9.0.0\\system.text.json.9.0.0.nupkg.sha512"