initial commit
						commit
						d6c50a7778
					
				|  | @ -0,0 +1,225 @@ | |||
| # The following command works for downloading when using Git for Windows: | ||||
| # curl -LOf http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| # | ||||
| # Download this file using PowerShell v3 under Windows with the following comand: | ||||
| # Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore | ||||
| # | ||||
| # or wget: | ||||
| # wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| 
 | ||||
| # User-specific files | ||||
| *.suo | ||||
| *.user | ||||
| *.sln.docstates | ||||
| 
 | ||||
| # Build results | ||||
| [Dd]ebug/ | ||||
| [Rr]elease/ | ||||
| x64/ | ||||
| [Bb]in/ | ||||
| [Oo]bj/ | ||||
| # build folder is nowadays used for build scripts and should not be ignored | ||||
| #build/ | ||||
| 
 | ||||
| # NuGet Packages | ||||
| *.nupkg | ||||
| # The packages folder can be ignored because of Package Restore | ||||
| **/packages/* | ||||
| # except build/, which is used as an MSBuild target. | ||||
| !**/packages/build/ | ||||
| # Uncomment if necessary however generally it will be regenerated when needed | ||||
| #!**/packages/repositories.config | ||||
| 
 | ||||
| # MSTest test Results | ||||
| [Tt]est[Rr]esult*/ | ||||
| [Bb]uild[Ll]og.* | ||||
| 
 | ||||
| *_i.c | ||||
| *_p.c | ||||
| *.ilk | ||||
| *.meta | ||||
| *.obj | ||||
| *.pch | ||||
| *.pdb | ||||
| *.pgc | ||||
| *.pgd | ||||
| *.rsp | ||||
| *.sbr | ||||
| *.tlb | ||||
| *.tli | ||||
| *.tlh | ||||
| *.tmp | ||||
| *.tmp_proj | ||||
| *.log | ||||
| *.vspscc | ||||
| *.vssscc | ||||
| .builds | ||||
| *.pidb | ||||
| *.log | ||||
| *.scc | ||||
| 
 | ||||
| # OS generated files # | ||||
| .DS_Store* | ||||
| Icon? | ||||
| 
 | ||||
| # Visual C++ cache files | ||||
| ipch/ | ||||
| *.aps | ||||
| *.ncb | ||||
| *.opensdf | ||||
| *.sdf | ||||
| *.cachefile | ||||
| 
 | ||||
| # Visual Studio profiler | ||||
| *.psess | ||||
| *.vsp | ||||
| *.vspx | ||||
| 
 | ||||
| # Guidance Automation Toolkit | ||||
| *.gpState | ||||
| 
 | ||||
| # ReSharper is a .NET coding add-in | ||||
| _ReSharper*/ | ||||
| *.[Rr]e[Ss]harper | ||||
| 
 | ||||
| # TeamCity is a build add-in | ||||
| _TeamCity* | ||||
| 
 | ||||
| # DotCover is a Code Coverage Tool | ||||
| *.dotCover | ||||
| 
 | ||||
| # NCrunch | ||||
| *.ncrunch* | ||||
| .*crunch*.local.xml | ||||
| 
 | ||||
| # Installshield output folder | ||||
| [Ee]xpress/ | ||||
| 
 | ||||
| # DocProject is a documentation generator add-in | ||||
| DocProject/buildhelp/ | ||||
| DocProject/Help/*.HxT | ||||
| DocProject/Help/*.HxC | ||||
| DocProject/Help/*.hhc | ||||
| DocProject/Help/*.hhk | ||||
| DocProject/Help/*.hhp | ||||
| DocProject/Help/Html2 | ||||
| DocProject/Help/html | ||||
| 
 | ||||
| # Click-Once directory | ||||
| publish/ | ||||
| 
 | ||||
| # Publish Web Output | ||||
| *.Publish.xml | ||||
| 
 | ||||
| # Windows Azure Build Output | ||||
| csx | ||||
| *.build.csdef | ||||
| 
 | ||||
| # Windows Store app package directory | ||||
| AppPackages/ | ||||
| 
 | ||||
| # Others | ||||
| *.Cache | ||||
| ClientBin/ | ||||
| [Ss]tyle[Cc]op.* | ||||
| ~$* | ||||
| *~ | ||||
| *.dbmdl | ||||
| *.[Pp]ublish.xml | ||||
| *.pfx | ||||
| *.publishsettings | ||||
| modulesbin/ | ||||
| tempbin/ | ||||
| 
 | ||||
| # EPiServer Site file (VPP) | ||||
| AppData/ | ||||
| 
 | ||||
| # RIA/Silverlight projects | ||||
| Generated_Code/ | ||||
| 
 | ||||
| # Backup & report files from converting an old project file to a newer | ||||
| # Visual Studio version. Backup files are not needed, because we have git ;-) | ||||
| _UpgradeReport_Files/ | ||||
| Backup*/ | ||||
| UpgradeLog*.XML | ||||
| UpgradeLog*.htm | ||||
| 
 | ||||
| # vim | ||||
| *.txt~ | ||||
| *.swp | ||||
| *.swo | ||||
| 
 | ||||
| # Temp files when opening LibreOffice on ubuntu | ||||
| .~lock.* | ||||
| 
 | ||||
| # svn | ||||
| .svn | ||||
| 
 | ||||
| # CVS - Source Control | ||||
| **/CVS/ | ||||
| 
 | ||||
| # Remainings from resolving conflicts in Source Control | ||||
| *.orig | ||||
| 
 | ||||
| # SQL Server files | ||||
| **/App_Data/*.mdf | ||||
| **/App_Data/*.ldf | ||||
| **/App_Data/*.sdf | ||||
| 
 | ||||
| 
 | ||||
| #LightSwitch generated files | ||||
| GeneratedArtifacts/ | ||||
| _Pvt_Extensions/ | ||||
| ModelManifest.xml | ||||
| 
 | ||||
| # ========================= | ||||
| # Windows detritus | ||||
| # ========================= | ||||
| 
 | ||||
| # Windows image file caches | ||||
| Thumbs.db | ||||
| ehthumbs.db | ||||
| 
 | ||||
| # Folder config file | ||||
| Desktop.ini | ||||
| 
 | ||||
| # Recycle Bin used on file shares | ||||
| $RECYCLE.BIN/ | ||||
| 
 | ||||
| # Mac desktop service store files | ||||
| .DS_Store | ||||
| 
 | ||||
| # SASS Compiler cache | ||||
| .sass-cache | ||||
| 
 | ||||
| # Visual Studio 2014 CTP | ||||
| **/*.sln.ide | ||||
| 
 | ||||
| # Visual Studio temp something | ||||
| .vs/ | ||||
| 
 | ||||
| # dotnet stuff | ||||
| project.lock.json | ||||
| 
 | ||||
| # VS 2015+ | ||||
| *.vc.vc.opendb | ||||
| *.vc.db | ||||
| 
 | ||||
| # Rider | ||||
| .idea/ | ||||
| 
 | ||||
| # Visual Studio Code | ||||
| .vscode/ | ||||
| 
 | ||||
| # Output folder used by Webpack or other FE stuff | ||||
| **/node_modules/* | ||||
| **/wwwroot/* | ||||
| 
 | ||||
| # SpecFlow specific | ||||
| *.feature.cs | ||||
| *.feature.xlsx.* | ||||
| *.Specs_*.html | ||||
| 
 | ||||
| ##### | ||||
| # End of core ignore list, below put you custom 'per project' settings (patterns or path) | ||||
| ##### | ||||
|  | @ -0,0 +1,48 @@ | |||
|  | ||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||||
| # Visual Studio 15 | ||||
| VisualStudioVersion = 15.0.26124.0 | ||||
| MinimumVisualStudioVersion = 15.0.26124.0 | ||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "encompass-cs", "src\encompass-cs.csproj", "{B862FC25-0740-4CEA-BC53-3C5F43DCD985}" | ||||
| EndProject | ||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "test", "test\test.csproj", "{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		Debug|Any CPU = Debug|Any CPU | ||||
| 		Debug|x64 = Debug|x64 | ||||
| 		Debug|x86 = Debug|x86 | ||||
| 		Release|Any CPU = Release|Any CPU | ||||
| 		Release|x64 = Release|x64 | ||||
| 		Release|x86 = Release|x86 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|x64.Build.0 = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|x86.ActiveCfg = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Debug|x86.Build.0 = Debug|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|Any CPU.Build.0 = Release|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|x64.ActiveCfg = Release|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|x64.Build.0 = Release|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|x86.ActiveCfg = Release|Any CPU | ||||
| 		{B862FC25-0740-4CEA-BC53-3C5F43DCD985}.Release|x86.Build.0 = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|x64.ActiveCfg = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|x64.Build.0 = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|x86.ActiveCfg = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Debug|x86.Build.0 = Debug|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|Any CPU.Build.0 = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|x64.ActiveCfg = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|x64.Build.0 = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|x86.ActiveCfg = Release|Any CPU | ||||
| 		{23D6C29C-A310-4D3E-8455-8D0B8CA1FC06}.Release|x86.Build.0 = Release|Any CPU | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
|  | @ -0,0 +1,225 @@ | |||
| # The following command works for downloading when using Git for Windows: | ||||
| # curl -LOf http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| # | ||||
| # Download this file using PowerShell v3 under Windows with the following comand: | ||||
| # Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore | ||||
| # | ||||
| # or wget: | ||||
| # wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| 
 | ||||
| # User-specific files | ||||
| *.suo | ||||
| *.user | ||||
| *.sln.docstates | ||||
| 
 | ||||
| # Build results | ||||
| [Dd]ebug/ | ||||
| [Rr]elease/ | ||||
| x64/ | ||||
| [Bb]in/ | ||||
| [Oo]bj/ | ||||
| # build folder is nowadays used for build scripts and should not be ignored | ||||
| #build/ | ||||
| 
 | ||||
| # NuGet Packages | ||||
| *.nupkg | ||||
| # The packages folder can be ignored because of Package Restore | ||||
| **/packages/* | ||||
| # except build/, which is used as an MSBuild target. | ||||
| !**/packages/build/ | ||||
| # Uncomment if necessary however generally it will be regenerated when needed | ||||
| #!**/packages/repositories.config | ||||
| 
 | ||||
| # MSTest test Results | ||||
| [Tt]est[Rr]esult*/ | ||||
| [Bb]uild[Ll]og.* | ||||
| 
 | ||||
| *_i.c | ||||
| *_p.c | ||||
| *.ilk | ||||
| *.meta | ||||
| *.obj | ||||
| *.pch | ||||
| *.pdb | ||||
| *.pgc | ||||
| *.pgd | ||||
| *.rsp | ||||
| *.sbr | ||||
| *.tlb | ||||
| *.tli | ||||
| *.tlh | ||||
| *.tmp | ||||
| *.tmp_proj | ||||
| *.log | ||||
| *.vspscc | ||||
| *.vssscc | ||||
| .builds | ||||
| *.pidb | ||||
| *.log | ||||
| *.scc | ||||
| 
 | ||||
| # OS generated files # | ||||
| .DS_Store* | ||||
| Icon? | ||||
| 
 | ||||
| # Visual C++ cache files | ||||
| ipch/ | ||||
| *.aps | ||||
| *.ncb | ||||
| *.opensdf | ||||
| *.sdf | ||||
| *.cachefile | ||||
| 
 | ||||
| # Visual Studio profiler | ||||
| *.psess | ||||
| *.vsp | ||||
| *.vspx | ||||
| 
 | ||||
| # Guidance Automation Toolkit | ||||
| *.gpState | ||||
| 
 | ||||
| # ReSharper is a .NET coding add-in | ||||
| _ReSharper*/ | ||||
| *.[Rr]e[Ss]harper | ||||
| 
 | ||||
| # TeamCity is a build add-in | ||||
| _TeamCity* | ||||
| 
 | ||||
| # DotCover is a Code Coverage Tool | ||||
| *.dotCover | ||||
| 
 | ||||
| # NCrunch | ||||
| *.ncrunch* | ||||
| .*crunch*.local.xml | ||||
| 
 | ||||
| # Installshield output folder | ||||
| [Ee]xpress/ | ||||
| 
 | ||||
| # DocProject is a documentation generator add-in | ||||
| DocProject/buildhelp/ | ||||
| DocProject/Help/*.HxT | ||||
| DocProject/Help/*.HxC | ||||
| DocProject/Help/*.hhc | ||||
| DocProject/Help/*.hhk | ||||
| DocProject/Help/*.hhp | ||||
| DocProject/Help/Html2 | ||||
| DocProject/Help/html | ||||
| 
 | ||||
| # Click-Once directory | ||||
| publish/ | ||||
| 
 | ||||
| # Publish Web Output | ||||
| *.Publish.xml | ||||
| 
 | ||||
| # Windows Azure Build Output | ||||
| csx | ||||
| *.build.csdef | ||||
| 
 | ||||
| # Windows Store app package directory | ||||
| AppPackages/ | ||||
| 
 | ||||
| # Others | ||||
| *.Cache | ||||
| ClientBin/ | ||||
| [Ss]tyle[Cc]op.* | ||||
| ~$* | ||||
| *~ | ||||
| *.dbmdl | ||||
| *.[Pp]ublish.xml | ||||
| *.pfx | ||||
| *.publishsettings | ||||
| modulesbin/ | ||||
| tempbin/ | ||||
| 
 | ||||
| # EPiServer Site file (VPP) | ||||
| AppData/ | ||||
| 
 | ||||
| # RIA/Silverlight projects | ||||
| Generated_Code/ | ||||
| 
 | ||||
| # Backup & report files from converting an old project file to a newer | ||||
| # Visual Studio version. Backup files are not needed, because we have git ;-) | ||||
| _UpgradeReport_Files/ | ||||
| Backup*/ | ||||
| UpgradeLog*.XML | ||||
| UpgradeLog*.htm | ||||
| 
 | ||||
| # vim | ||||
| *.txt~ | ||||
| *.swp | ||||
| *.swo | ||||
| 
 | ||||
| # Temp files when opening LibreOffice on ubuntu | ||||
| .~lock.* | ||||
| 
 | ||||
| # svn | ||||
| .svn | ||||
| 
 | ||||
| # CVS - Source Control | ||||
| **/CVS/ | ||||
| 
 | ||||
| # Remainings from resolving conflicts in Source Control | ||||
| *.orig | ||||
| 
 | ||||
| # SQL Server files | ||||
| **/App_Data/*.mdf | ||||
| **/App_Data/*.ldf | ||||
| **/App_Data/*.sdf | ||||
| 
 | ||||
| 
 | ||||
| #LightSwitch generated files | ||||
| GeneratedArtifacts/ | ||||
| _Pvt_Extensions/ | ||||
| ModelManifest.xml | ||||
| 
 | ||||
| # ========================= | ||||
| # Windows detritus | ||||
| # ========================= | ||||
| 
 | ||||
| # Windows image file caches | ||||
| Thumbs.db | ||||
| ehthumbs.db | ||||
| 
 | ||||
| # Folder config file | ||||
| Desktop.ini | ||||
| 
 | ||||
| # Recycle Bin used on file shares | ||||
| $RECYCLE.BIN/ | ||||
| 
 | ||||
| # Mac desktop service store files | ||||
| .DS_Store | ||||
| 
 | ||||
| # SASS Compiler cache | ||||
| .sass-cache | ||||
| 
 | ||||
| # Visual Studio 2014 CTP | ||||
| **/*.sln.ide | ||||
| 
 | ||||
| # Visual Studio temp something | ||||
| .vs/ | ||||
| 
 | ||||
| # dotnet stuff | ||||
| project.lock.json | ||||
| 
 | ||||
| # VS 2015+ | ||||
| *.vc.vc.opendb | ||||
| *.vc.db | ||||
| 
 | ||||
| # Rider | ||||
| .idea/ | ||||
| 
 | ||||
| # Visual Studio Code | ||||
| .vscode/ | ||||
| 
 | ||||
| # Output folder used by Webpack or other FE stuff | ||||
| **/node_modules/* | ||||
| **/wwwroot/* | ||||
| 
 | ||||
| # SpecFlow specific | ||||
| *.feature.cs | ||||
| *.feature.xlsx.* | ||||
| *.Specs_*.html | ||||
| 
 | ||||
| ##### | ||||
| # End of core ignore list, below put you custom 'per project' settings (patterns or path) | ||||
| ##### | ||||
|  | @ -0,0 +1,7 @@ | |||
| namespace Encompass | ||||
| { | ||||
|     public abstract class Component | ||||
|     { | ||||
|         public int EntityID { get; set; } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,55 @@ | |||
| using System; | ||||
| using System.Collections.Generic; | ||||
| using System.Linq; | ||||
| 
 | ||||
| namespace Encompass | ||||
| { | ||||
|     public class Entity | ||||
|     { | ||||
|         public readonly static List<Component> Empty = new List<Component>(); | ||||
| 
 | ||||
|         public readonly int id; | ||||
| 
 | ||||
|         private readonly Dictionary<Type, List<Component>> componentBag = new Dictionary<Type, List<Component>>(); | ||||
|         private readonly Dictionary<Type, List<Component>> activeComponents = new Dictionary<Type, List<Component>>(); | ||||
| 
 | ||||
|         public Entity(int id) { | ||||
|             this.id = id; | ||||
|         } | ||||
| 
 | ||||
|         public TComponent AddComponent<TComponent>() where TComponent : Component, new() { | ||||
|             TComponent component = new TComponent(); | ||||
| 
 | ||||
|             if (!componentBag.ContainsKey(typeof(TComponent))) { | ||||
|                 var componentList = new List<Component>(); | ||||
|                 var activeComponentList = new List<Component>(); | ||||
|                 componentBag.Add(typeof(TComponent), componentList); | ||||
|                 activeComponents.Add(typeof(TComponent), activeComponentList); | ||||
|                 componentList.Add(component); | ||||
|                 activeComponentList.Add(component); | ||||
|             } else { | ||||
|                 componentBag[typeof(TComponent)].Add(component); | ||||
|                 activeComponents[typeof(TComponent)].Add(component); | ||||
|             } | ||||
| 
 | ||||
|             return component; | ||||
|         } | ||||
| 
 | ||||
|         public IEnumerable<TComponent> GetComponents<TComponent>() where TComponent : Component { | ||||
|             if (activeComponents.ContainsKey(typeof(TComponent))) { | ||||
|                 return activeComponents[typeof(TComponent)].Cast<TComponent>(); | ||||
|             } else { | ||||
|                 return Enumerable.Empty<TComponent>(); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         public TComponent GetComponent<TComponent>() where TComponent : Component { | ||||
|             return GetComponents<TComponent>().First(); | ||||
|         } | ||||
| 
 | ||||
|         public bool HasComponent<TComponent>() where TComponent : Component { | ||||
|             return activeComponents.ContainsKey(typeof(TComponent)) && | ||||
|                 activeComponents[typeof(TComponent)].Count != 0; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,12 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project Sdk="Microsoft.NET.Sdk"> | ||||
|   <PropertyGroup> | ||||
|     <TargetFramework>netstandard2.0</TargetFramework> | ||||
|     <RootNamespace>Encompass</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <ItemGroup> | ||||
|     <Content Include="encompass-cs.sln" /> | ||||
|     <Content Include="Entity.cs" /> | ||||
|     <Content Include="Component.cs" /> | ||||
|   </ItemGroup> | ||||
| </Project> | ||||
|  | @ -0,0 +1,225 @@ | |||
| # The following command works for downloading when using Git for Windows: | ||||
| # curl -LOf http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| # | ||||
| # Download this file using PowerShell v3 under Windows with the following comand: | ||||
| # Invoke-WebRequest https://gist.githubusercontent.com/kmorcinek/2710267/raw/ -OutFile .gitignore | ||||
| # | ||||
| # or wget: | ||||
| # wget --no-check-certificate http://gist.githubusercontent.com/kmorcinek/2710267/raw/.gitignore | ||||
| 
 | ||||
| # User-specific files | ||||
| *.suo | ||||
| *.user | ||||
| *.sln.docstates | ||||
| 
 | ||||
| # Build results | ||||
| [Dd]ebug/ | ||||
| [Rr]elease/ | ||||
| x64/ | ||||
| [Bb]in/ | ||||
| [Oo]bj/ | ||||
| # build folder is nowadays used for build scripts and should not be ignored | ||||
| #build/ | ||||
| 
 | ||||
| # NuGet Packages | ||||
| *.nupkg | ||||
| # The packages folder can be ignored because of Package Restore | ||||
| **/packages/* | ||||
| # except build/, which is used as an MSBuild target. | ||||
| !**/packages/build/ | ||||
| # Uncomment if necessary however generally it will be regenerated when needed | ||||
| #!**/packages/repositories.config | ||||
| 
 | ||||
| # MSTest test Results | ||||
| [Tt]est[Rr]esult*/ | ||||
| [Bb]uild[Ll]og.* | ||||
| 
 | ||||
| *_i.c | ||||
| *_p.c | ||||
| *.ilk | ||||
| *.meta | ||||
| *.obj | ||||
| *.pch | ||||
| *.pdb | ||||
| *.pgc | ||||
| *.pgd | ||||
| *.rsp | ||||
| *.sbr | ||||
| *.tlb | ||||
| *.tli | ||||
| *.tlh | ||||
| *.tmp | ||||
| *.tmp_proj | ||||
| *.log | ||||
| *.vspscc | ||||
| *.vssscc | ||||
| .builds | ||||
| *.pidb | ||||
| *.log | ||||
| *.scc | ||||
| 
 | ||||
| # OS generated files # | ||||
| .DS_Store* | ||||
| Icon? | ||||
| 
 | ||||
| # Visual C++ cache files | ||||
| ipch/ | ||||
| *.aps | ||||
| *.ncb | ||||
| *.opensdf | ||||
| *.sdf | ||||
| *.cachefile | ||||
| 
 | ||||
| # Visual Studio profiler | ||||
| *.psess | ||||
| *.vsp | ||||
| *.vspx | ||||
| 
 | ||||
| # Guidance Automation Toolkit | ||||
| *.gpState | ||||
| 
 | ||||
| # ReSharper is a .NET coding add-in | ||||
| _ReSharper*/ | ||||
| *.[Rr]e[Ss]harper | ||||
| 
 | ||||
| # TeamCity is a build add-in | ||||
| _TeamCity* | ||||
| 
 | ||||
| # DotCover is a Code Coverage Tool | ||||
| *.dotCover | ||||
| 
 | ||||
| # NCrunch | ||||
| *.ncrunch* | ||||
| .*crunch*.local.xml | ||||
| 
 | ||||
| # Installshield output folder | ||||
| [Ee]xpress/ | ||||
| 
 | ||||
| # DocProject is a documentation generator add-in | ||||
| DocProject/buildhelp/ | ||||
| DocProject/Help/*.HxT | ||||
| DocProject/Help/*.HxC | ||||
| DocProject/Help/*.hhc | ||||
| DocProject/Help/*.hhk | ||||
| DocProject/Help/*.hhp | ||||
| DocProject/Help/Html2 | ||||
| DocProject/Help/html | ||||
| 
 | ||||
| # Click-Once directory | ||||
| publish/ | ||||
| 
 | ||||
| # Publish Web Output | ||||
| *.Publish.xml | ||||
| 
 | ||||
| # Windows Azure Build Output | ||||
| csx | ||||
| *.build.csdef | ||||
| 
 | ||||
| # Windows Store app package directory | ||||
| AppPackages/ | ||||
| 
 | ||||
| # Others | ||||
| *.Cache | ||||
| ClientBin/ | ||||
| [Ss]tyle[Cc]op.* | ||||
| ~$* | ||||
| *~ | ||||
| *.dbmdl | ||||
| *.[Pp]ublish.xml | ||||
| *.pfx | ||||
| *.publishsettings | ||||
| modulesbin/ | ||||
| tempbin/ | ||||
| 
 | ||||
| # EPiServer Site file (VPP) | ||||
| AppData/ | ||||
| 
 | ||||
| # RIA/Silverlight projects | ||||
| Generated_Code/ | ||||
| 
 | ||||
| # Backup & report files from converting an old project file to a newer | ||||
| # Visual Studio version. Backup files are not needed, because we have git ;-) | ||||
| _UpgradeReport_Files/ | ||||
| Backup*/ | ||||
| UpgradeLog*.XML | ||||
| UpgradeLog*.htm | ||||
| 
 | ||||
| # vim | ||||
| *.txt~ | ||||
| *.swp | ||||
| *.swo | ||||
| 
 | ||||
| # Temp files when opening LibreOffice on ubuntu | ||||
| .~lock.* | ||||
| 
 | ||||
| # svn | ||||
| .svn | ||||
| 
 | ||||
| # CVS - Source Control | ||||
| **/CVS/ | ||||
| 
 | ||||
| # Remainings from resolving conflicts in Source Control | ||||
| *.orig | ||||
| 
 | ||||
| # SQL Server files | ||||
| **/App_Data/*.mdf | ||||
| **/App_Data/*.ldf | ||||
| **/App_Data/*.sdf | ||||
| 
 | ||||
| 
 | ||||
| #LightSwitch generated files | ||||
| GeneratedArtifacts/ | ||||
| _Pvt_Extensions/ | ||||
| ModelManifest.xml | ||||
| 
 | ||||
| # ========================= | ||||
| # Windows detritus | ||||
| # ========================= | ||||
| 
 | ||||
| # Windows image file caches | ||||
| Thumbs.db | ||||
| ehthumbs.db | ||||
| 
 | ||||
| # Folder config file | ||||
| Desktop.ini | ||||
| 
 | ||||
| # Recycle Bin used on file shares | ||||
| $RECYCLE.BIN/ | ||||
| 
 | ||||
| # Mac desktop service store files | ||||
| .DS_Store | ||||
| 
 | ||||
| # SASS Compiler cache | ||||
| .sass-cache | ||||
| 
 | ||||
| # Visual Studio 2014 CTP | ||||
| **/*.sln.ide | ||||
| 
 | ||||
| # Visual Studio temp something | ||||
| .vs/ | ||||
| 
 | ||||
| # dotnet stuff | ||||
| project.lock.json | ||||
| 
 | ||||
| # VS 2015+ | ||||
| *.vc.vc.opendb | ||||
| *.vc.db | ||||
| 
 | ||||
| # Rider | ||||
| .idea/ | ||||
| 
 | ||||
| # Visual Studio Code | ||||
| .vscode/ | ||||
| 
 | ||||
| # Output folder used by Webpack or other FE stuff | ||||
| **/node_modules/* | ||||
| **/wwwroot/* | ||||
| 
 | ||||
| # SpecFlow specific | ||||
| *.feature.cs | ||||
| *.feature.xlsx.* | ||||
| *.Specs_*.html | ||||
| 
 | ||||
| ##### | ||||
| # End of core ignore list, below put you custom 'per project' settings (patterns or path) | ||||
| ##### | ||||
|  | @ -0,0 +1,37 @@ | |||
| using System; | ||||
| using System.Linq; | ||||
| using NUnit.Framework; | ||||
| 
 | ||||
| namespace Encompass | ||||
| { | ||||
|     namespace Tests { | ||||
|         class MockComponent : Component { | ||||
|             public string myString; | ||||
|             public int myInt; | ||||
|         } | ||||
| 
 | ||||
|         public class EntityTest | ||||
|         { | ||||
|             /* | ||||
|             [SetUp] | ||||
|             public void Setup() | ||||
|             { | ||||
|             } | ||||
|             */ | ||||
| 
 | ||||
|             [Test] | ||||
|             public void AddComponent() | ||||
|             { | ||||
|                 var entity = new Entity(0); | ||||
|                 var mockComponent = entity.AddComponent<MockComponent>(); | ||||
|                 mockComponent.myString = "hello"; | ||||
|                 mockComponent.myInt = 3; | ||||
| 
 | ||||
|                 Assert.IsTrue(entity.HasComponent<MockComponent>()); | ||||
|                 Assert.AreEqual(3, entity.GetComponent<MockComponent>().myInt); | ||||
|                 Assert.AreEqual("hello", entity.GetComponent<MockComponent>().myString); | ||||
|                 Assert.AreEqual(0, entity.GetComponent<MockComponent>().EntityID); | ||||
|             } | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,16 @@ | |||
| <?xml version="1.0" encoding="utf-8"?> | ||||
| <Project Sdk="Microsoft.NET.Sdk"> | ||||
|   <PropertyGroup> | ||||
|     <TargetFramework>netcoreapp2.2</TargetFramework> | ||||
|     <IsPackable>false</IsPackable> | ||||
|   </PropertyGroup> | ||||
|   <ItemGroup> | ||||
|     <PackageReference Include="nunit" Version="3.11.0" /> | ||||
|     <PackageReference Include="NUnit3TestAdapter" Version="3.11.0" /> | ||||
|     <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" /> | ||||
|     <Content Include="EntityTest.cs" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <ProjectReference Include="..\src\encompass-cs.csproj" /> | ||||
|   </ItemGroup> | ||||
| </Project> | ||||
		Loading…
	
		Reference in New Issue