Browse files

Adding Xbox360 and WP7 support

  • Loading branch information...
1 parent 5c68215 commit 2f388a0c80d3ea11e39ff90b269e50525919f075 @thelinuxlich committed Oct 14, 2011
Showing with 3,290 additions and 28 deletions.
  1. BIN Artemis.pidb
  2. BIN ArtemisTest/ArtemisTest.pidb
  3. BIN ArtemisTest/bin/Debug/ArtemisTest.exe
  4. BIN ArtemisTest/bin/Debug/ArtemisTest.exe.mdb
  5. BIN ArtemisTest/bin/Debug/ArtemisTest.vshost.exe
  6. BIN ArtemisTest/bin/Debug/artemis.dll
  7. BIN ArtemisTest/bin/Debug/artemis.dll.mdb
  8. BIN ArtemisTest/bin/Release/ArtemisTest.vshost.exe
  9. +125 −0 ArtemisXBOX_PHONE7/ArtemisPhone7.csproj
  10. +6 −0 ArtemisXBOX_PHONE7/ArtemisPhone7.csproj.user
  11. +111 −0 ArtemisXBOX_PHONE7/ArtemisXbox.csproj
  12. BIN ArtemisXBOX_PHONE7/Background.png
  13. 0 { → ArtemisXBOX_PHONE7}/Component.cs
  14. 0 { → ArtemisXBOX_PHONE7}/ComponentMapper.cs
  15. 0 { → ArtemisXBOX_PHONE7}/ComponentType.cs
  16. 0 { → ArtemisXBOX_PHONE7}/ComponentTypeManager.cs
  17. 0 { → ArtemisXBOX_PHONE7}/DelayedEntityProcessingSystem.cs
  18. 0 { → ArtemisXBOX_PHONE7}/DelayedEntitySystem.cs
  19. BIN ArtemisXBOX_PHONE7/Dll/ParallelTasks.dll
  20. BIN ArtemisXBOX_PHONE7/Dll/Phone7/ParallelTasks.dll
  21. 0 { → ArtemisXBOX_PHONE7}/Entity.cs
  22. 0 { → ArtemisXBOX_PHONE7}/EntityManager.cs
  23. 0 { → ArtemisXBOX_PHONE7}/EntityProcessingSystem.cs
  24. 0 { → ArtemisXBOX_PHONE7}/EntitySystem.cs
  25. 0 World.cs → ArtemisXBOX_PHONE7/EntityWorld.cs
  26. 0 { → ArtemisXBOX_PHONE7}/GroupManager.cs
  27. 0 { → ArtemisXBOX_PHONE7}/GroupSystem.cs
  28. 0 { → ArtemisXBOX_PHONE7}/IntervalEntityProcessingSystem.cs
  29. 0 { → ArtemisXBOX_PHONE7}/IntervalEntitySystem.cs
  30. 0 { → ArtemisXBOX_PHONE7}/IntervalGroupSystem.cs
  31. 0 { → ArtemisXBOX_PHONE7}/IntervalTagSystem.cs
  32. 0 { → ArtemisXBOX_PHONE7}/Manager.cs
  33. +75 −0 ArtemisXBOX_PHONE7/ParallelEntityProcessingSystem.cs
  34. BIN ArtemisXBOX_PHONE7/PhoneGameThumb.png
  35. 0 { → ArtemisXBOX_PHONE7}/Pool.cs
  36. +6 −0 ArtemisXBOX_PHONE7/Properties/AppManifest.xml
  37. +34 −0 ArtemisXBOX_PHONE7/Properties/AssemblyInfo.cs
  38. +37 −0 ArtemisXBOX_PHONE7/Properties/WMAppManifest.xml
  39. 0 { → ArtemisXBOX_PHONE7}/SystemBitManager.cs
  40. +167 −0 ArtemisXBOX_PHONE7/SystemManager.cs
  41. 0 { → ArtemisXBOX_PHONE7}/TagManager.cs
  42. 0 { → ArtemisXBOX_PHONE7}/TagSystem.cs
  43. 0 { → ArtemisXBOX_PHONE7}/Utils/Bag.cs
  44. +61 −0 ArtemisXBOX_PHONE7/Utils/FastMath.cs
  45. 0 { → ArtemisXBOX_PHONE7}/Utils/Timer.cs
  46. 0 { → ArtemisXBOX_PHONE7}/Utils/TrigLUT.cs
  47. +154 −0 ArtemisXBOX_PHONE7/Utils/Utils.cs
  48. +125 −0 ArtemisXBOX_PHONE7/Windows Phone Copy of ArtemisXbox.csproj
  49. 0 { → Artemis_XNA_INDEPENDENT}/Artemis.csproj
  50. BIN Artemis_XNA_INDEPENDENT/Artemis.pidb
  51. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/ArtemisTest.csproj
  52. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/ArtemisTest.pidb
  53. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/DummySystem.cs
  54. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/DummySystem2.cs
  55. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/DummySystem3.cs
  56. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/Health.cs
  57. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/MultHealthBarRenderSystem.cs
  58. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/SingleHEAVYHealthBarRenderSystem.cs
  59. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/SingleHealthBarRenderSystem.cs
  60. 0 { → Artemis_XNA_INDEPENDENT}/ArtemisTest/Test.cs
  61. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/ArtemisTest.exe
  62. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/ArtemisTest.pdb
  63. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.dll
  64. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.pdb
  65. +324 −0 Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.xml
  66. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/ArtemisTest.exe
  67. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/artemis.dll
  68. +324 −0 Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/artemis.xml
  69. +16 −0 Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.csproj.FileListAbsolute.txt
  70. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.exe
  71. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.pdb
  72. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  73. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ResolveAssemblyReference.cache
  74. +5 −0 Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ArtemisTest.csproj.FileListAbsolute.txt
  75. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ArtemisTest.exe
  76. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  77. BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ResolveAssemblyReference.cache
  78. +8 −0 Artemis_XNA_INDEPENDENT/Component.cs
  79. +25 −0 Artemis_XNA_INDEPENDENT/ComponentMapper.cs
  80. +30 −0 Artemis_XNA_INDEPENDENT/ComponentType.cs
  81. +40 −0 Artemis_XNA_INDEPENDENT/ComponentTypeManager.cs
  82. +31 −0 Artemis_XNA_INDEPENDENT/DelayedEntityProcessingSystem.cs
  83. +87 −0 Artemis_XNA_INDEPENDENT/DelayedEntitySystem.cs
  84. +189 −0 Artemis_XNA_INDEPENDENT/Entity.cs
  85. +210 −0 Artemis_XNA_INDEPENDENT/EntityManager.cs
  86. +30 −0 Artemis_XNA_INDEPENDENT/EntityProcessingSystem.cs
  87. +130 −0 Artemis_XNA_INDEPENDENT/EntitySystem.cs
  88. +167 −0 Artemis_XNA_INDEPENDENT/EntityWorld.cs
  89. +88 −0 Artemis_XNA_INDEPENDENT/GroupManager.cs
  90. +29 −0 Artemis_XNA_INDEPENDENT/GroupSystem.cs
  91. +30 −0 Artemis_XNA_INDEPENDENT/IntervalEntityProcessingSystem.cs
  92. +24 −0 Artemis_XNA_INDEPENDENT/IntervalEntitySystem.cs
  93. +25 −0 Artemis_XNA_INDEPENDENT/IntervalGroupSystem.cs
  94. +25 −0 Artemis_XNA_INDEPENDENT/IntervalTagSystem.cs
  95. 0 { → Artemis_XNA_INDEPENDENT}/LICENSE.txt
  96. +9 −0 Artemis_XNA_INDEPENDENT/Manager.cs
  97. 0 { → Artemis_XNA_INDEPENDENT}/ParallelEntityProcessingSystem.cs
  98. +11 −0 Artemis_XNA_INDEPENDENT/Pool.cs
  99. 0 { → Artemis_XNA_INDEPENDENT}/README
  100. +22 −0 Artemis_XNA_INDEPENDENT/SystemBitManager.cs
  101. 0 { → Artemis_XNA_INDEPENDENT}/SystemManager.cs
  102. +52 −0 Artemis_XNA_INDEPENDENT/TagManager.cs
  103. +30 −0 Artemis_XNA_INDEPENDENT/TagSystem.cs
  104. +235 −0 Artemis_XNA_INDEPENDENT/Utils/Bag.cs
  105. 0 { → Artemis_XNA_INDEPENDENT}/Utils/FastMath.cs
  106. +74 −0 Artemis_XNA_INDEPENDENT/Utils/Timer.cs
  107. +56 −0 Artemis_XNA_INDEPENDENT/Utils/TrigLUT.cs
  108. 0 { → Artemis_XNA_INDEPENDENT}/Utils/Utils.cs
  109. +63 −14 artemis.sln
  110. BIN artemis.suo
  111. +0 −14 artemis.userprefs
  112. BIN bin/Debug/artemis.dll
  113. BIN bin/Debug/artemis.dll.mdb
View
BIN Artemis.pidb
Binary file not shown.
View
BIN ArtemisTest/ArtemisTest.pidb
Binary file not shown.
View
BIN ArtemisTest/bin/Debug/ArtemisTest.exe
Binary file not shown.
View
BIN ArtemisTest/bin/Debug/ArtemisTest.exe.mdb
Binary file not shown.
View
BIN ArtemisTest/bin/Debug/ArtemisTest.vshost.exe
Binary file not shown.
View
BIN ArtemisTest/bin/Debug/artemis.dll
Binary file not shown.
View
BIN ArtemisTest/bin/Debug/artemis.dll.mdb
Binary file not shown.
View
BIN ArtemisTest/bin/Release/ArtemisTest.vshost.exe
Binary file not shown.
View
125 ArtemisXBOX_PHONE7/ArtemisPhone7.csproj
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{9FEEB631-277E-404E-B95D-49B1F4F0A2F3}</ProjectGuid>
+ <ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Windows Phone</Platform>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ArtemisXbox</RootNamespace>
+ <AssemblyName>ArtemisXbox</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
+ <XnaPlatform>Windows Phone</XnaPlatform>
+ <XnaProfile>Reach</XnaProfile>
+ <XnaCrossPlatformGroupID>0772fe00-2dbb-4c80-a11e-4a9736431d1a</XnaCrossPlatformGroupID>
+ <XnaOutputType>Library</XnaOutputType>
+ <XnaRefreshLevel>1</XnaRefreshLevel>
+ <XapFilename Condition="$(XnaOutputType)=='Game'">$(AssemblyName).xap</XapFilename>
+ <SilverlightManifestTemplate Condition="$(XnaOutputType)=='Game'">Properties\AppManifest.xml</SilverlightManifestTemplate>
+ <XnaWindowsPhoneManifestTemplate Condition="$(XnaOutputType)=='Game'">Properties\WMAppManifest.xml</XnaWindowsPhoneManifestTemplate>
+ <TileImage Condition="$(XnaOutputType)=='Game'">Background.png</TileImage>
+ <TileTitle Condition="$(XnaOutputType)=='Game'">$(AssemblyName)</TileTitle>
+ <Thumbnail>PhoneGameThumb.png</Thumbnail>
+ <SupportedCultures />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Windows Phone' ">
+ <OutputPath>bin\Windows Phone\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <DefineConstants>TRACE;WINDOWS_PHONE</DefineConstants>
+ <XnaCompressContent>false</XnaCompressContent>
+ <LangVersion>default</LangVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Windows Phone' ">
+ <OutputPath>bin\Windows Phone\Debug</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <DefineConstants>DEBUG;TRACE;WINDOWS_PHONE</DefineConstants>
+ <XnaCompressContent>false</XnaCompressContent>
+ <LangVersion>default</LangVersion>
+ </PropertyGroup>
+ <ItemGroup>
+ <None Include="Background.png">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="PhoneGameThumb.png">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="Properties\AppManifest.xml">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="Properties\WMAppManifest.xml">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Component.cs" />
+ <Compile Include="ComponentMapper.cs" />
+ <Compile Include="ComponentType.cs" />
+ <Compile Include="ComponentTypeManager.cs" />
+ <Compile Include="DelayedEntityProcessingSystem.cs" />
+ <Compile Include="DelayedEntitySystem.cs" />
+ <Compile Include="Entity.cs" />
+ <Compile Include="EntityManager.cs" />
+ <Compile Include="EntityProcessingSystem.cs" />
+ <Compile Include="EntitySystem.cs" />
+ <Compile Include="EntityWorld.cs" />
+ <Compile Include="GroupManager.cs" />
+ <Compile Include="GroupSystem.cs" />
+ <Compile Include="IntervalEntityProcessingSystem.cs" />
+ <Compile Include="IntervalEntitySystem.cs" />
+ <Compile Include="IntervalGroupSystem.cs" />
+ <Compile Include="IntervalTagSystem.cs" />
+ <Compile Include="Manager.cs" />
+ <Compile Include="ParallelEntityProcessingSystem.cs" />
+ <Compile Include="Pool.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="SystemBitManager.cs" />
+ <Compile Include="SystemManager.cs" />
+ <Compile Include="TagManager.cs" />
+ <Compile Include="TagSystem.cs" />
+ <Compile Include="Utils\Bag.cs" />
+ <Compile Include="Utils\FastMath.cs" />
+ <Compile Include="Utils\Timer.cs" />
+ <Compile Include="Utils\TrigLUT.cs" />
+ <Compile Include="Utils\Utils.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.Xna.Framework" />
+ <Reference Include="Microsoft.Xna.Framework.Avatar" />
+ <Reference Include="Microsoft.Xna.Framework.Game" />
+ <Reference Include="Microsoft.Xna.Framework.GamerServices" />
+ <Reference Include="Microsoft.Xna.Framework.Graphics" />
+ <Reference Include="mscorlib" />
+ <Reference Include="ParallelTasks">
+ <HintPath>Dll\Phone7\ParallelTasks.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Xml.Linq" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
View
6 ArtemisXBOX_PHONE7/ArtemisPhone7.csproj.user
@@ -0,0 +1,6 @@
+???<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <XNASelectedDeployDevice>5E7661DF-D928-40ff-B747-A4B1957194F9</XNASelectedDeployDevice>
+ </PropertyGroup>
+</Project>
View
111 ArtemisXBOX_PHONE7/ArtemisXbox.csproj
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{E890BAD4-64C6-442F-B466-7321A0BFA1A1}</ProjectGuid>
+ <ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Xbox 360</Platform>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ArtemisXbox</RootNamespace>
+ <AssemblyName>ArtemisXbox</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
+ <XnaPlatform>Xbox 360</XnaPlatform>
+ <XnaProfile>HiDef</XnaProfile>
+ <XnaCrossPlatformGroupID>0772fe00-2dbb-4c80-a11e-4a9736431d1a</XnaCrossPlatformGroupID>
+ <XnaOutputType>Library</XnaOutputType>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Xbox 360' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Xbox 360\Debug</OutputPath>
+ <DefineConstants>DEBUG;TRACE;XBOX;XBOX360</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <XnaCompressContent>true</XnaCompressContent>
+ <LangVersion>default</LangVersion>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Xbox 360' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Xbox 360\Release</OutputPath>
+ <DefineConstants>TRACE;XBOX;XBOX360</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <XnaCompressContent>true</XnaCompressContent>
+ <LangVersion>default</LangVersion>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.Xna.Framework" />
+ <Reference Include="Microsoft.Xna.Framework.Game" />
+ <Reference Include="Microsoft.Xna.Framework.Graphics" />
+ <Reference Include="Microsoft.Xna.Framework.GamerServices" />
+ <Reference Include="Microsoft.Xna.Framework.Xact" />
+ <Reference Include="Microsoft.Xna.Framework.Video" />
+ <Reference Include="Microsoft.Xna.Framework.Avatar" />
+ <Reference Include="Microsoft.Xna.Framework.Net" />
+ <Reference Include="Microsoft.Xna.Framework.Storage" />
+ <Reference Include="mscorlib" />
+ <Reference Include="ParallelTasks">
+ <HintPath>Dll\ParallelTasks.dll</HintPath>
+ </Reference>
+ <Reference Include="System" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Core">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Xml.Linq">
+ <RequiredTargetFramework>4.0</RequiredTargetFramework>
+ </Reference>
+ <Reference Include="System.Net" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Component.cs" />
+ <Compile Include="ComponentMapper.cs" />
+ <Compile Include="ComponentType.cs" />
+ <Compile Include="ComponentTypeManager.cs" />
+ <Compile Include="DelayedEntityProcessingSystem.cs" />
+ <Compile Include="DelayedEntitySystem.cs" />
+ <Compile Include="Entity.cs" />
+ <Compile Include="EntityManager.cs" />
+ <Compile Include="EntityProcessingSystem.cs" />
+ <Compile Include="EntitySystem.cs" />
+ <Compile Include="EntityWorld.cs" />
+ <Compile Include="GroupManager.cs" />
+ <Compile Include="GroupSystem.cs" />
+ <Compile Include="IntervalEntityProcessingSystem.cs" />
+ <Compile Include="IntervalEntitySystem.cs" />
+ <Compile Include="IntervalGroupSystem.cs" />
+ <Compile Include="IntervalTagSystem.cs" />
+ <Compile Include="Manager.cs" />
+ <Compile Include="ParallelEntityProcessingSystem.cs" />
+ <Compile Include="Pool.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="SystemBitManager.cs" />
+ <Compile Include="SystemManager.cs" />
+ <Compile Include="TagManager.cs" />
+ <Compile Include="TagSystem.cs" />
+ <Compile Include="Utils\Bag.cs" />
+ <Compile Include="Utils\FastMath.cs" />
+ <Compile Include="Utils\Timer.cs" />
+ <Compile Include="Utils\TrigLUT.cs" />
+ <Compile Include="Utils\Utils.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
View
BIN ArtemisXBOX_PHONE7/Background.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0 Component.cs → ArtemisXBOX_PHONE7/Component.cs
File renamed without changes.
View
0 ComponentMapper.cs → ArtemisXBOX_PHONE7/ComponentMapper.cs
File renamed without changes.
View
0 ComponentType.cs → ArtemisXBOX_PHONE7/ComponentType.cs
File renamed without changes.
View
0 ComponentTypeManager.cs → ArtemisXBOX_PHONE7/ComponentTypeManager.cs
File renamed without changes.
View
0 DelayedEntityProcessingSystem.cs → ...X_PHONE7/DelayedEntityProcessingSystem.cs
File renamed without changes.
View
0 DelayedEntitySystem.cs → ArtemisXBOX_PHONE7/DelayedEntitySystem.cs
File renamed without changes.
View
BIN ArtemisXBOX_PHONE7/Dll/ParallelTasks.dll
Binary file not shown.
View
BIN ArtemisXBOX_PHONE7/Dll/Phone7/ParallelTasks.dll
Binary file not shown.
View
0 Entity.cs → ArtemisXBOX_PHONE7/Entity.cs
File renamed without changes.
View
0 EntityManager.cs → ArtemisXBOX_PHONE7/EntityManager.cs
File renamed without changes.
View
0 EntityProcessingSystem.cs → ArtemisXBOX_PHONE7/EntityProcessingSystem.cs
File renamed without changes.
View
0 EntitySystem.cs → ArtemisXBOX_PHONE7/EntitySystem.cs
File renamed without changes.
View
0 World.cs → ArtemisXBOX_PHONE7/EntityWorld.cs
File renamed without changes.
View
0 GroupManager.cs → ArtemisXBOX_PHONE7/GroupManager.cs
File renamed without changes.
View
0 GroupSystem.cs → ArtemisXBOX_PHONE7/GroupSystem.cs
File renamed without changes.
View
0 IntervalEntityProcessingSystem.cs → ..._PHONE7/IntervalEntityProcessingSystem.cs
File renamed without changes.
View
0 IntervalEntitySystem.cs → ArtemisXBOX_PHONE7/IntervalEntitySystem.cs
File renamed without changes.
View
0 IntervalGroupSystem.cs → ArtemisXBOX_PHONE7/IntervalGroupSystem.cs
File renamed without changes.
View
0 IntervalTagSystem.cs → ArtemisXBOX_PHONE7/IntervalTagSystem.cs
File renamed without changes.
View
0 Manager.cs → ArtemisXBOX_PHONE7/Manager.cs
File renamed without changes.
View
75 ArtemisXBOX_PHONE7/ParallelEntityProcessingSystem.cs
@@ -0,0 +1,75 @@
+using System;
+using System.Collections.Generic;
+#if WINDOWS
+using System.Threading.Tasks;
+#else
+using ParallelTasks;
+#endif
+namespace Artemis
+{
+ public abstract class ParallelEntityProcessingSystem : EntitySystem
+ {
+
+ /**
+ * Create a new EntityProcessingSystem. It requires at least one component.
+ * @param requiredType the required component type.
+ * @param otherTypes other component types.
+ */
+ public ParallelEntityProcessingSystem(Type requiredType, params Type[] otherTypes)
+ : base(GetMergedTypes(requiredType, otherTypes))
+ {
+ }
+
+ /**
+ * Process a entity this system is interested in.
+ * @param e the entity to process.
+ */
+ public abstract void Process(Entity e);
+
+#if WINDOWS
+ TaskFactory factory = new TaskFactory(TaskScheduler.Default);
+#endif
+
+ protected override void ProcessEntities(Dictionary<int, Entity> entities)
+ {
+ float simultaneous = Environment.ProcessorCount *2;
+ int perThread = (int) Math.Ceiling(((float)entities.Values.Count) / simultaneous);
+ Entity[] ents = new Entity[entities.Values.Count];
+ entities.Values.CopyTo(ents,0);
+ int num = entities.Values.Count - 1;
+ List<Task> tasks = new List<Task>();
+
+
+
+ for (int j = 0; j < simultaneous; j++)
+ {
+ int initial = num;
+#if WINDOWS
+ tasks.Add(factory.StartNew(
+#else
+ tasks.Add(Parallel.Start(
+#endif
+ () =>
+ {
+ for (int i = initial; i > initial - perThread && i >= 0; i--)
+ {
+ Process(ents[i]);
+ }
+ }
+ ));
+ num -= perThread;
+ }
+
+#if WINDOWS
+ Task.WaitAll(tasks.ToArray());
+#else
+ foreach (var item in tasks)
+ {
+ item.Wait();
+ }
+#endif
+
+ }
+ }
+}
+
View
BIN ArtemisXBOX_PHONE7/PhoneGameThumb.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
0 Pool.cs → ArtemisXBOX_PHONE7/Pool.cs
File renamed without changes.
View
6 ArtemisXBOX_PHONE7/Properties/AppManifest.xml
@@ -0,0 +1,6 @@
+<Deployment xmlns="http://schemas.microsoft.com/client/2007/deployment"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+>
+ <Deployment.Parts>
+ </Deployment.Parts>
+</Deployment>
View
34 ArtemisXBOX_PHONE7/Properties/AssemblyInfo.cs
@@ -0,0 +1,34 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ArtemisXbox")]
+[assembly: AssemblyProduct("ArtemisXbox")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyCompany("Microsoft")]
+[assembly: AssemblyCopyright("Copyright © Microsoft 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
+// COM, set the ComVisible attribute to true on that type. Only Windows
+// assemblies support COM.
+[assembly: ComVisible(false)]
+
+// On Windows, the following GUID is for the ID of the typelib if this
+// project is exposed to COM. On other platforms, it unique identifies the
+// title storage container when deploying this assembly to the device.
+[assembly: Guid("1ce79e1e-1e8a-472c-a84e-c245e9695ce0")]
+
+// Version information for an assembly consists of the following four values:
+//
+// Major Version
+// Minor Version
+// Build Number
+// Revision
+//
+[assembly: AssemblyVersion("1.0.0.0")]
View
37 ArtemisXBOX_PHONE7/Properties/WMAppManifest.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<Deployment xmlns="http://schemas.microsoft.com/windowsphone/2009/deployment" AppPlatformVersion="7.1">
+ <App xmlns="" ProductID="{9feeb631-277e-404e-b95d-49b1f4f0a2f3}" Title="ArtemisXbox" RuntimeType="XNA" Version="1.0.0.0" Genre="Apps.Normal" Author="" Description="" Publisher="">
+ <IconPath IsRelative="true" IsResource="false"></IconPath>
+ <Capabilities>
+ <Capability Name="ID_CAP_NETWORKING" />
+ <Capability Name="ID_CAP_LOCATION" />
+ <Capability Name="ID_CAP_SENSORS" />
+ <Capability Name="ID_CAP_MICROPHONE" />
+ <Capability Name="ID_CAP_MEDIALIB" />
+ <Capability Name="ID_CAP_GAMERSERVICES" />
+ <Capability Name="ID_CAP_PHONEDIALER" />
+ <Capability Name="ID_CAP_PUSH_NOTIFICATION" />
+ <Capability Name="ID_CAP_WEBBROWSERCOMPONENT" />
+ <Capability Name="ID_CAP_IDENTITY_USER" />
+ <Capability Name="ID_CAP_IDENTITY_DEVICE" />
+
+ <!-- Windows Phone OS 7.1 Capabilities -->
+ <Capability Name="ID_CAP_ISV_CAMERA" />
+ <Capability Name="ID_CAP_CONTACTS" />
+ <Capability Name="ID_CAP_APPOINTMENTS" />
+ </Capabilities>
+ <Tasks>
+ <DefaultTask Name="_default"/>
+ </Tasks>
+ <Tokens>
+ <PrimaryToken TokenID="ArtemisXboxToken" TaskName="_default">
+ <TemplateType5>
+ <BackgroundImageURI IsRelative="true" IsResource="false"></BackgroundImageURI>
+ <Count>0</Count>
+ <Title></Title>
+ </TemplateType5>
+ </PrimaryToken>
+ </Tokens>
+ </App>
+</Deployment>
+
View
0 SystemBitManager.cs → ArtemisXBOX_PHONE7/SystemBitManager.cs
File renamed without changes.
View
167 ArtemisXBOX_PHONE7/SystemManager.cs
@@ -0,0 +1,167 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+#if WINDOWS
+using System.Threading.Tasks;
+#else
+using ParallelTasks;
+#endif
+namespace Artemis
+{
+ public enum ExecutionType
+ {
+ Draw,
+ Update
+ }
+
+ public sealed class SystemManager {
+ private EntityWorld world;
+ private Dictionary<Type, EntitySystem> systems = new Dictionary<Type, EntitySystem>();
+
+ private Dictionary<int, Bag<EntitySystem>> Updatelayers = new Dictionary<int, Bag<EntitySystem>>();
+ private Dictionary<int, Bag<EntitySystem>> Drawlayers = new Dictionary<int, Bag<EntitySystem>>();
+ private Bag<EntitySystem> mergedBag = new Bag<EntitySystem>();
+
+ public SystemManager(EntityWorld world) {
+ this.world = world;
+ }
+
+ public T SetSystem<T>(T system,ExecutionType execType , int layer = 0) where T : EntitySystem {
+ system.SetWorld(world);
+
+ systems.Add(typeof(T), (EntitySystem)system);
+
+ if(execType == ExecutionType.Draw) {
+
+ if (!Drawlayers.ContainsKey(layer))
+ Drawlayers[layer] = new Bag<EntitySystem>();
+
+ Bag<EntitySystem> drawBag = Drawlayers[layer];
+ if (drawBag == null)
+ {
+ drawBag = Drawlayers[layer] = new Bag<EntitySystem>();
+ }
+ if(!drawBag.Contains((EntitySystem)system))
+ drawBag.Add((EntitySystem)system);
+
+ } else if(execType == ExecutionType.Update) {
+
+ if (!Updatelayers.ContainsKey(layer))
+ Updatelayers[layer] = new Bag<EntitySystem>();
+
+ Bag<EntitySystem> updateBag = Updatelayers[layer];
+ if (updateBag == null)
+ {
+ updateBag = Updatelayers[layer] = new Bag<EntitySystem>();
+ }
+ if(!updateBag.Contains((EntitySystem)system))
+ updateBag.Add((EntitySystem)system);
+ }
+ if(!mergedBag.Contains((EntitySystem)system))
+ mergedBag.Add((EntitySystem)system);
+ system.SetSystemBit(SystemBitManager.GetBitFor(system));
+
+ return (T)system;
+ }
+
+ public T GetSystem<T>() where T : EntitySystem {
+ EntitySystem system;
+ systems.TryGetValue(typeof(T), out system);
+ return (T)system;
+ }
+
+ public Bag<EntitySystem> GetSystems() {
+ return mergedBag;
+ }
+
+ /**
+ * After adding all systems to the world, you must initialize them all.
+ */
+ public void InitializeAll() {
+ for (int i = 0, j = mergedBag.Size(); i < j; i++) {
+ mergedBag.Get(i).Initialize();
+ }
+ }
+
+
+ void UpdatebagSync(Bag<EntitySystem> temp)
+ {
+ for (int i = 0, j = temp.Size(); i < j; i++)
+ {
+ temp.Get(i).Process();
+ }
+ }
+
+ public void UpdateSynchronous(ExecutionType execType )
+ {
+ if(execType == ExecutionType.Draw) {
+
+ foreach (int item in Drawlayers.Keys)
+ {
+ UpdatebagSync(Drawlayers[item]);
+ }
+ } else if(execType == ExecutionType.Update) {
+ foreach (int item in Updatelayers.Keys)
+ {
+ UpdatebagSync(Updatelayers[item]);
+ }
+ }
+ }
+#if WINDOWS
+ TaskFactory factory = new TaskFactory(TaskScheduler.Default);
+ List<Task> tasks = new List<Task>();
+#else
+ List<Task> tasks = new List<Task>();
+#endif
+
+ void UpdatebagASSync(Bag<EntitySystem> temp)
+ {
+ tasks.Clear();
+ for (int i = 0, j = temp.Size(); i < j; i++)
+ {
+ EntitySystem es = temp.Get(i);
+ #if WINDOWS
+ tasks.Add(factory.StartNew(
+ #else
+ tasks.Add(Parallel.Start(
+ #endif
+
+ () =>
+ {
+ es.Process();
+ }
+ ));
+
+ }
+#if WINDOWS
+ Task.WaitAll(tasks.ToArray());
+#else
+ foreach (var item in tasks)
+ {
+ item.Wait();
+ }
+#endif
+
+ }
+ public void UpdateAsynchronous(ExecutionType execType )
+ {
+ if (execType == ExecutionType.Draw)
+ {
+ foreach (int item in Drawlayers.Keys)
+ {
+ UpdatebagSync(Drawlayers[item]);
+ }
+ }
+ else if (execType == ExecutionType.Update)
+ {
+ foreach (int item in Updatelayers.Keys)
+ {
+ UpdatebagSync(Updatelayers[item]);
+ }
+ }
+
+ }
+
+ }
+}
View
0 TagManager.cs → ArtemisXBOX_PHONE7/TagManager.cs
File renamed without changes.
View
0 TagSystem.cs → ArtemisXBOX_PHONE7/TagSystem.cs
File renamed without changes.
View
0 Utils/Bag.cs → ArtemisXBOX_PHONE7/Utils/Bag.cs
File renamed without changes.
View
61 ArtemisXBOX_PHONE7/Utils/FastMath.cs
@@ -0,0 +1,61 @@
+using System;
+namespace Artemis
+{
+ public class FastMath
+ {
+ public static float PI = (float)Math.PI;
+ public static float SQUARED_PI = PI * PI;
+ public static float HALF_PI = 0.5f * PI;
+ public static float TWO_PI = 2.0f * PI;
+ public static float THREE_PI_HALVES = TWO_PI - HALF_PI;
+
+ private static float _sin_a = -4 / SQUARED_PI;
+ private static float _sin_b = 4 / PI;
+ private static float _sin_p = 9f / 40;
+
+ private static float _asin_a = -0.0481295276831013447f;
+ private static float _asin_b = -0.343835993947915197f;
+ private static float _asin_c = 0.962761848425913169f;
+ private static float _asin_d = 1.00138940860107040f;
+
+ private static float _atan_a = 0.280872f;
+
+ public static float Cos(float x) {
+ return Sin(x + ((x > HALF_PI) ? -THREE_PI_HALVES : HALF_PI));
+ }
+
+ public static float Sin(float x) {
+ x = _sin_a * x * Math.Abs(x) + _sin_b * x;
+ return _sin_p * (x * Math.Abs(x) - x) + x;
+ }
+
+ public static float Tan(float x) {
+ return Sin(x) / Cos(x);
+ }
+
+ public static float Asin(float x) {
+ return x * (Math.Abs(x) * (Math.Abs(x) * _asin_a + _asin_b) + _asin_c) + Math.Sign(x) * (_asin_d - (float)Math.Sqrt(1 - x * x));
+ }
+
+ public static float Acos(float x) {
+ return HALF_PI - Asin(x);
+ }
+
+ public static float atan(float x) {
+ return (Math.Abs(x) < 1) ? x / (1 + _atan_a * x * x) : Math.Sign(x) * HALF_PI - x / (x * x + _atan_a);
+ }
+
+#if WINDOWS
+ public static float InverseSqrt(float x) {
+ float xhalves = 0.5f * x;
+ x = (float)BitConverter.Int64BitsToDouble(0x5FE6EB50C7B537AAl - (BitConverter.DoubleToInt64Bits((double)x) >> 1));
+ return x * (1.5f - xhalves * x * x); // more iterations possible
+ }
+
+ public static float Sqrt(float x) {
+ return x * InverseSqrt(x);
+ }
+#endif
+ }
+}
+
View
0 Utils/Timer.cs → ArtemisXBOX_PHONE7/Utils/Timer.cs
File renamed without changes.
View
0 Utils/TrigLUT.cs → ArtemisXBOX_PHONE7/Utils/TrigLUT.cs
File renamed without changes.
View
154 ArtemisXBOX_PHONE7/Utils/Utils.cs
@@ -0,0 +1,154 @@
+using System;
+using System.IO;
+namespace Artemis
+{
+ public class Utils
+ {
+ public static float CubicInterpolation(float v0, float v1, float v2, float v3, float t) {
+ float t2 = t * t;
+ float a0 = v3 - v2 - v0 + v1;
+ float a1 = v0 - v1 - a0;
+ float a2 = v2 - v0;
+ float a3 = v1;
+
+ return (a0 * (t * t2)) + (a1 * t2) + (a2 * t) + a3;
+ }
+
+ public static float QuadraticBezierInterpolation(float a, float b, float c, float t) {
+ return (((1f - t) * (1f - t)) * a) + (((2f * t) * (1f - t)) * b) + ((t * t) * c);
+ }
+
+ public static float LengthOfQuadraticBezierCurve(float x0, float y0, float x1, float y1, float x2, float y2) {
+ if ((x0 == x1 && y0 == y1) || (x1 == x2 && y1 == y2)) {
+ return Distance(x0, y0, x2, y2);
+ }
+
+ float ax, ay, bx, by;
+ ax = x0 - 2 * x1 + x2;
+ ay = y0 - 2 * y1 + y2;
+ bx = 2 * x1 - 2 * x0;
+ by = 2 * y1 - 2 * y0;
+ float A = 4 * (ax * ax + ay * ay);
+ float B = 4 * (ax * bx + ay * by);
+ float C = bx * bx + by * by;
+
+ float Sabc = 2f * (float) Math.Sqrt(A + B + C);
+ float A_2 = (float) Math.Sqrt(A);
+ float A_32 = 2f * A * A_2;
+ float C_2 = 2f * (float) Math.Sqrt(C);
+ float BA = B / A_2;
+
+ return (A_32 * Sabc + A_2 * B * (Sabc - C_2) + (4f * C * A - B * B) * (float) Math.Log((2 * A_2 + BA + Sabc) / (BA + C_2))) / (4 * A_32);
+ }
+
+ public static float Lerp(float a, float b, float t) {
+ if (t < 0)
+ return a;
+ return a + t * (b - a);
+ }
+
+ public static float Distance(float x1, float y1, float x2, float y2) {
+ return EuclideanDistance(x1, y1, x2, y2);
+ }
+
+ public static bool DoCirclesCollide(float x1, float y1, float radius1, float x2, float y2, float radius2) {
+ float dx = x2 - x1;
+ float dy = y2 - y1;
+ float d = radius1 + radius2;
+ return (dx * dx + dy * dy) < (d * d);
+ }
+
+ public static float EuclideanDistanceSq2D(float x1, float y1, float x2, float y2) {
+ float dx = x1 - x2;
+ float dy = y1 - y2;
+ return dx * dx + dy * dy;
+ }
+
+ public static float ManhattanDistance(float x1, float y1, float x2, float y2) {
+ return Math.Abs(x1 - x2) + Math.Abs(y1 - y2);
+ }
+
+ public static float EuclideanDistance(float x1, float y1, float x2, float y2) {
+ float a = x1 - x2;
+ float b = y1 - y2;
+
+#if WINDOWS
+ return (float) FastMath.Sqrt(a * a + b * b);
+#else
+ return (float) Math.Sqrt(a * a + b * b);
+#endif
+ }
+
+ public static float AngleInDegrees(float ownerRotation, float x1, float y1, float x2, float y2) {
+ return Math.Abs(ownerRotation - AngleInDegrees(x1, y1, x2, y2)) % 360;
+ }
+
+ public static float AngleInDegrees(float originX, float originY, float targetX, float targetY) {
+ return (float)Math.Atan2(targetY - originY, targetX - originX) * (180.0f / (float)Math.PI);
+ }
+
+ public static float AngleInRadians(float originX, float originY, float targetX, float targetY) {
+ return (float) Math.Atan2(targetY - originY, targetX - originX);
+ }
+
+ public static bool ShouldRotateCounterClockwise(float angleFrom, float angleTo) {
+ float diff = (angleFrom - angleTo) % 360;
+ return diff > 0 ? diff < 180 : diff < -180;
+ }
+
+ public static float GetRotatedX(float currentX, float currentY, float pivotX, float pivotY, float angleDegrees) {
+ float x = currentX - pivotX;
+ float y = currentY - pivotY;
+ float xr = (x * TrigLUT.CosDeg(angleDegrees)) - (y * TrigLUT.SinDeg(angleDegrees));
+ return xr + pivotX;
+ }
+
+ public static float GetRotatedY(float currentX, float currentY, float pivotX, float pivotY, float angleDegrees) {
+ float x = currentX - pivotX;
+ float y = currentY - pivotY;
+ float yr = (x * TrigLUT.SinDeg(angleDegrees)) + (y * TrigLUT.CosDeg(angleDegrees));
+ return yr + pivotY;
+ }
+
+ public static float GetXAtEndOfRotatedLineByOrigin(float x, float lineLength, float angleDegrees) {
+ return x + TrigLUT.CosDeg(angleDegrees) * lineLength;
+ }
+
+ public static float GetYAtEndOfRotatedLineByOrigin(float y, float lineLength, float angleDegrees) {
+ return y + TrigLUT.SinDeg(angleDegrees) * lineLength;
+ }
+
+ public static bool Collides(float x1, float y1, float radius1, float x2, float y2, float radius2) {
+ float d = Utils.Distance(x1, y1, x2, y2);
+
+ d -= radius1 + radius2;
+
+ return d < 0;
+ }
+
+ public static String ReadFileContents(String file) {
+#if WINDOWS
+ string readText = File.ReadAllText(file,System.Text.Encoding.UTF8);
+ return(readText);
+#else
+ String allText = "";
+ StreamReader streamReader = new StreamReader(file);
+ String text = "";
+ text = streamReader.ReadLine();
+ while (text != null)
+ {
+ allText += text + "\n";
+ text = streamReader.ReadLine();
+ }
+
+ streamReader.Close();
+ return allText;
+
+#endif
+
+ }
+
+
+ }
+}
+
View
125 ArtemisXBOX_PHONE7/Windows Phone Copy of ArtemisXbox.csproj
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <ProjectGuid>{2d3d0312-ad47-45aa-8d20-5152849818b7}</ProjectGuid>
+ <ProjectTypeGuids>{6D335F3A-9D43-41b4-9D22-F6F17C4BE596};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">Windows Phone</Platform>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>ArtemisXbox</RootNamespace>
+ <AssemblyName>ArtemisXbox</AssemblyName>
+ <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+ <TargetFrameworkProfile>Client</TargetFrameworkProfile>
+ <XnaFrameworkVersion>v4.0</XnaFrameworkVersion>
+ <XnaPlatform>Windows Phone</XnaPlatform>
+ <XnaProfile>Reach</XnaProfile>
+ <XnaCrossPlatformGroupID>0772fe00-2dbb-4c80-a11e-4a9736431d1a</XnaCrossPlatformGroupID>
+ <XnaOutputType>Library</XnaOutputType>
+ <XnaRefreshLevel>1</XnaRefreshLevel>
+ <XapFilename Condition="$(XnaOutputType)=='Game'">$(AssemblyName).xap</XapFilename>
+ <SilverlightManifestTemplate Condition="$(XnaOutputType)=='Game'">Properties\AppManifest.xml</SilverlightManifestTemplate>
+ <XnaWindowsPhoneManifestTemplate Condition="$(XnaOutputType)=='Game'">Properties\WMAppManifest.xml</XnaWindowsPhoneManifestTemplate>
+ <TileImage Condition="$(XnaOutputType)=='Game'">Background.png</TileImage>
+ <TileTitle Condition="$(XnaOutputType)=='Game'">$(AssemblyName)</TileTitle>
+ <Thumbnail>PhoneGameThumb.png</Thumbnail>
+ <SupportedCultures />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|Windows Phone' ">
+ <OutputPath>bin\Windows Phone\Release</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <DefineConstants>TRACE;WINDOWS_PHONE</DefineConstants>
+ <XnaCompressContent>false</XnaCompressContent>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|Windows Phone' ">
+ <OutputPath>bin\Windows Phone\Debug</OutputPath>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <UseVSHostingProcess>false</UseVSHostingProcess>
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <DefineConstants>DEBUG;TRACE;WINDOWS_PHONE</DefineConstants>
+ <XnaCompressContent>false</XnaCompressContent>
+ </PropertyGroup>
+ <ItemGroup>
+ <None Include="Background.png">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="PhoneGameThumb.png">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="Properties\AppManifest.xml">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ <None Include="Properties\WMAppManifest.xml">
+ <XnaPlatformSpecific>true</XnaPlatformSpecific>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="Component.cs" />
+ <Compile Include="ComponentMapper.cs" />
+ <Compile Include="ComponentType.cs" />
+ <Compile Include="ComponentTypeManager.cs" />
+ <Compile Include="DelayedEntityProcessingSystem.cs" />
+ <Compile Include="DelayedEntitySystem.cs" />
+ <Compile Include="Entity.cs" />
+ <Compile Include="EntityManager.cs" />
+ <Compile Include="EntityProcessingSystem.cs" />
+ <Compile Include="EntitySystem.cs" />
+ <Compile Include="EntityWorld.cs" />
+ <Compile Include="GroupManager.cs" />
+ <Compile Include="GroupSystem.cs" />
+ <Compile Include="IntervalEntityProcessingSystem.cs" />
+ <Compile Include="IntervalEntitySystem.cs" />
+ <Compile Include="IntervalGroupSystem.cs" />
+ <Compile Include="IntervalTagSystem.cs" />
+ <Compile Include="Manager.cs" />
+ <Compile Include="ParallelEntityProcessingSystem.cs" />
+ <Compile Include="Pool.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="SystemBitManager.cs" />
+ <Compile Include="SystemManager.cs" />
+ <Compile Include="TagManager.cs" />
+ <Compile Include="TagSystem.cs" />
+ <Compile Include="Utils\Bag.cs" />
+ <Compile Include="Utils\FastMath.cs" />
+ <Compile Include="Utils\Timer.cs" />
+ <Compile Include="Utils\TrigLUT.cs" />
+ <Compile Include="Utils\Utils.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <Reference Include="Microsoft.Xna.Framework" />
+ <Reference Include="Microsoft.Xna.Framework.Avatar" />
+ <Reference Include="Microsoft.Xna.Framework.Game" />
+ <Reference Include="Microsoft.Xna.Framework.GamerServices" />
+ <Reference Include="Microsoft.Xna.Framework.Graphics" />
+ <Reference Include="Microsoft.Xna.Framework.Net" />
+ <Reference Include="Microsoft.Xna.Framework.Storage" />
+ <Reference Include="Microsoft.Xna.Framework.Video" />
+ <Reference Include="Microsoft.Xna.Framework.Xact" />
+ <Reference Include="mscorlib" />
+ <Reference Include="ParallelTasks" />
+ <Reference Include="System" />
+ <Reference Include="System.Core" />
+ <Reference Include="System.Net" />
+ <Reference Include="System.Xml" />
+ <Reference Include="System.Xml.Linq" />
+ </ItemGroup>
+ <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
+ <Import Project="$(MSBuildExtensionsPath)\Microsoft\XNA Game Studio\Microsoft.Xna.GameStudio.targets" />
+ <!--
+ To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project>
View
0 Artemis.csproj → Artemis_XNA_INDEPENDENT/Artemis.csproj
File renamed without changes.
View
BIN Artemis_XNA_INDEPENDENT/Artemis.pidb
Binary file not shown.
View
0 ArtemisTest/ArtemisTest.csproj → ...NDEPENDENT/ArtemisTest/ArtemisTest.csproj
File renamed without changes.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/ArtemisTest.pidb
Binary file not shown.
View
0 ArtemisTest/DummySystem.cs → ...NA_INDEPENDENT/ArtemisTest/DummySystem.cs
File renamed without changes.
View
0 ArtemisTest/DummySystem2.cs → ...A_INDEPENDENT/ArtemisTest/DummySystem2.cs
File renamed without changes.
View
0 ArtemisTest/DummySystem3.cs → ...A_INDEPENDENT/ArtemisTest/DummySystem3.cs
File renamed without changes.
View
0 ArtemisTest/Health.cs → ...mis_XNA_INDEPENDENT/ArtemisTest/Health.cs
File renamed without changes.
View
0 ArtemisTest/MultHealthBarRenderSystem.cs → .../ArtemisTest/MultHealthBarRenderSystem.cs
File renamed without changes.
View
0 ...sTest/SingleHEAVYHealthBarRenderSystem.cs → ...sTest/SingleHEAVYHealthBarRenderSystem.cs
File renamed without changes.
View
0 ArtemisTest/SingleHealthBarRenderSystem.cs → ...rtemisTest/SingleHealthBarRenderSystem.cs
File renamed without changes.
View
0 ArtemisTest/Test.cs → Artemis_XNA_INDEPENDENT/ArtemisTest/Test.cs
File renamed without changes.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/ArtemisTest.exe
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/ArtemisTest.pdb
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.dll
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.pdb
Binary file not shown.
View
324 Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Debug/artemis.xml
@@ -0,0 +1,324 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>artemis</name>
+ </assembly>
+ <members>
+ <member name="M:Artemis.EntitySystem.Begin">
+ Called before processing of entities begins.
+ </member>
+ <member name="M:Artemis.EntitySystem.End">
+ Called after the processing of entities ends.
+ </member>
+ <member name="M:Artemis.EntitySystem.ProcessEntities(System.Collections.Generic.Dictionary{System.Int32,Artemis.Entity})">
+ Any implementing entity system must implement this method and the logic
+ to process the given entities of the system.
+
+ @param entities the entities this system contains.
+ </member>
+ <member name="M:Artemis.EntitySystem.CheckProcessing">
+
+ @return true if the system should be processed, false if not.
+ </member>
+ <member name="M:Artemis.EntitySystem.Initialize">
+ Override to implement code that gets executed when systems are initialized.
+ </member>
+ <member name="M:Artemis.EntitySystem.Added(Artemis.Entity)">
+ Called if the system has received a entity it is interested in, e.g. created or a component was added to it.
+ @param e the entity that was added to this system.
+ </member>
+ <member name="M:Artemis.EntitySystem.Removed(Artemis.Entity)">
+ Called if a entity was removed from this system, e.g. deleted or had one of it's components removed.
+ @param e the entity that was removed from this system.
+ </member>
+ <member name="M:Artemis.EntitySystem.GetMergedTypes(System.Type,System.Type[])">
+ Merge together a required type and a array of other types. Used in derived systems.
+ @param requiredType
+ @param otherTypes
+ @return
+ </member>
+ <member name="M:Artemis.IntervalEntityProcessingSystem.#ctor(System.Int32,System.Type,System.Type[])">
+ Create a new IntervalEntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.IntervalEntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.ProcessEntities(System.Collections.Generic.Dictionary{System.Int32,Artemis.Entity},System.Int32)">
+ The entities to process with accumulated delta.
+ @param entities read-only bag of entities.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.StartDelayedRun(System.Int32)">
+ Start processing of entities after a certain amount of milliseconds.
+
+ Cancels current delayed run and starts a new one.
+
+ @param delay time delay in milliseconds until processing starts.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.GetInitialTimeDelay">
+ Get the initial delay that the system was ordered to process entities after.
+
+ @return the originally set delay.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.IsRunning">
+ Check if the system is counting down towards processing.
+
+ @return true if it's counting down, false if it's not running.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.Stop">
+ Aborts running the system in the future and stops it. Call delayedRun() to start it again.
+ </member>
+ <member name="M:Artemis.TagSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.EntityWorld.GetDelta">
+ Time since last game loop.
+ @return delta in milliseconds.
+ </member>
+ <member name="M:Artemis.EntityWorld.SetDelta(System.Int32)">
+ You must specify the delta for the game here.
+
+ @param delta time since last game loop.
+ </member>
+ <member name="M:Artemis.EntityWorld.DeleteEntity(Artemis.Entity)">
+ Delete the provided entity from the world.
+ @param e entity
+ </member>
+ <member name="M:Artemis.EntityWorld.RefreshEntity(Artemis.Entity)">
+ Ensure all systems are notified of changes to this entity.
+ @param e entity
+ </member>
+ <member name="M:Artemis.EntityWorld.CreateEntity">
+ Create and return a new or reused entity instance.
+ @return entity
+ </member>
+ <member name="M:Artemis.EntityWorld.GetEntity(System.Int32)">
+ Get a entity having the specified id.
+ @param entityId
+ @return entity
+ </member>
+ <member name="M:Artemis.SystemManager.InitializeAll">
+ After adding all systems to the world, you must initialize them all.
+ </member>
+ <member name="M:Artemis.GroupSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.EntityManager.IsActive(System.Int32)">
+ Check if this entity is active, or has been deleted, within the framework.
+
+ @param entityId
+ @return active or not.
+ </member>
+ <member name="M:Artemis.EntityManager.GetEntityCount">
+
+ @return how many entities are currently active.
+ </member>
+ <member name="M:Artemis.EntityManager.GetTotalCreated">
+
+ @return how many entities have been created since start.
+ </member>
+ <member name="M:Artemis.EntityManager.GetTotalRemoved">
+
+ @return how many entities have been removed since start.
+ </member>
+ <member name="M:Artemis.EntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new EntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.EntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.ParallelEntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new EntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.ParallelEntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.DelayedEntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new DelayedEntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.DelayedEntityProcessingSystem.Process(Artemis.Entity,System.Int32)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.GroupManager.Set(System.String,Artemis.Entity)">
+ Set the group of the entity.
+
+ @param group group to set the entity into.
+ @param e entity to set into the group.
+ </member>
+ <member name="M:Artemis.GroupManager.getEntities(System.String)">
+ Get all entities that belong to the provided group.
+ @param group name of the group.
+ @return read-only bag of entities belonging to the group.
+ </member>
+ <member name="M:Artemis.GroupManager.Remove(Artemis.Entity)">
+ Removes the provided entity from the group it is assigned to, if any.
+ @param e the entity.
+ </member>
+ <member name="M:Artemis.GroupManager.GetGroupOf(Artemis.Entity)">
+ @param e entity
+ @return the name of the group that this entity belongs to, null if none.
+ </member>
+ <member name="M:Artemis.GroupManager.IsGrouped(Artemis.Entity)">
+ Checks if the entity belongs to any group.
+ @param e the entity to check.
+ @return true if it is in any group, false if none.
+ </member>
+ <member name="M:Artemis.Bag`1.#ctor">
+ Constructs an empty Bag with an initial capacity of 64.
+
+ </member>
+ <member name="M:Artemis.Bag`1.#ctor(System.Int32)">
+ Constructs an empty Bag with the specified initial capacity.
+
+ @param capacity
+ the initial capacity of Bag
+ </member>
+ <member name="M:Artemis.Bag`1.Remove(System.Int32)">
+ Removes the element at the specified position in this Bag. does this by
+ overwriting it was last element then removing last element
+
+ @param index
+ the index of element to be removed
+ @return element that was removed from the Bag
+ </member>
+ <member name="M:Artemis.Bag`1.RemoveLast">
+ Remove and return the last object in the bag.
+
+ @return the last object in the bag, null if empty.
+ </member>
+ <member name="M:Artemis.Bag`1.Remove(`0)">
+ Removes the first occurrence of the specified element from this Bag, if
+ it is present. If the Bag does not contain the element, it is unchanged.
+ does this by overwriting it was last element then removing last element
+
+ @param o
+ element to be removed from this list, if present
+ @return <tt>true</tt> if this list contained the specified element
+ </member>
+ <member name="M:Artemis.Bag`1.Contains(`0)">
+ Check if bag contains this element.
+
+ @param o
+ @return
+ </member>
+ <member name="M:Artemis.Bag`1.RemoveAll(Artemis.Bag{`0})">
+ Removes from this Bag all of its elements that are contained in the
+ specified Bag.
+
+ @param bag
+ Bag containing elements to be removed from this Bag
+ @return {@code true} if this Bag changed as a result of the call
+ </member>
+ <member name="M:Artemis.Bag`1.Get(System.Int32)">
+ Returns the element at the specified position in Bag.
+
+ @param index
+ index of the element to return
+ @return the element at the specified position in bag
+ </member>
+ <member name="M:Artemis.Bag`1.Size">
+ Returns the number of elements in this bag.
+
+ @return the number of elements in this bag
+ </member>
+ <member name="M:Artemis.Bag`1.GetCapacity">
+ Returns the number of elements the bag can hold without growing.
+
+ @return the number of elements the bag can hold without growing.
+ </member>
+ <member name="M:Artemis.Bag`1.IsEmpty">
+ Returns true if this list contains no elements.
+
+ @return true if this list contains no elements
+ </member>
+ <member name="M:Artemis.Bag`1.Add(`0)">
+ Adds the specified element to the end of this bag. if needed also
+ increases the capacity of the bag.
+
+ @param o
+ element to be added to this list
+ </member>
+ <member name="M:Artemis.Bag`1.Set(System.Int32,`0)">
+ Set element at specified index in the bag.
+
+ @param index position of element
+ @param o the element
+ </member>
+ <member name="M:Artemis.Bag`1.Clear">
+ Removes all of the elements from this bag. The bag will be empty after
+ this call returns.
+ </member>
+ <member name="M:Artemis.Bag`1.AddAll(Artemis.Bag{`0})">
+ Add all items into this bag.
+ @param added
+ </member>
+ <member name="M:Artemis.Entity.GetId">
+ The internal id for this entity within the framework. No other entity will have the same ID, but
+ ID's are however reused so another entity may acquire this ID if the previous entity was deleted.
+
+ @return id of the entity.
+ </member>
+ <member name="M:Artemis.Entity.GetUniqueId">
+ Get the unique ID of this entity. Because entity instances are reused internally use this to identify between different instances.
+ @return the unique id of this entity.
+ </member>
+ <member name="M:Artemis.Entity.AddComponent(Artemis.Component)">
+ Add a component to this entity.
+ @param component to add to this entity
+ </member>
+ <member name="M:Artemis.Entity.RemoveComponent``1(Artemis.Component)">
+ Removes the component from this entity.
+ @param component to remove from this entity.
+ </member>
+ <member name="M:Artemis.Entity.RemoveComponent(Artemis.ComponentType)">
+ Faster removal of components from a entity.
+ @param component to remove from this entity.
+ </member>
+ <member name="M:Artemis.Entity.IsActive">
+ Checks if the entity has been deleted from somewhere.
+ @return if it's active.
+ </member>
+ <member name="M:Artemis.Entity.GetComponent(Artemis.ComponentType)">
+ This is the preferred method to use when retrieving a component from a entity. It will provide good performance.
+
+ @param type in order to retrieve the component fast you must provide a ComponentType instance for the expected component.
+ @return
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:Artemis.Entity.GetComponent``1" -->
+ <member name="M:Artemis.Entity.GetComponents">
+ Get all components belonging to this entity.
+ WARNING. Use only for debugging purposes, it is dead slow.
+ WARNING. The returned bag is only valid until this method is called again, then it is overwritten.
+ @return all components of this entity.
+ </member>
+ <member name="M:Artemis.Entity.Refresh">
+ Refresh all changes to components for this entity. After adding or removing components, you must call
+ this method. It will update all relevant systems.
+ It is typical to call this after adding components to a newly created entity.
+ </member>
+ <member name="M:Artemis.Entity.Delete">
+ Delete this entity from the world.
+ </member>
+ <member name="M:Artemis.Entity.SetGroup(System.String)">
+ Set the group of the entity. Same as World.setGroup().
+ @param group of the entity.
+ </member>
+ <member name="M:Artemis.Entity.SetTag(System.String)">
+ Assign a tag to this entity. Same as World.setTag().
+ @param tag of the entity.
+ </member>
+ </members>
+</doc>
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/ArtemisTest.exe
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/artemis.dll
Binary file not shown.
View
324 Artemis_XNA_INDEPENDENT/ArtemisTest/bin/Release/artemis.xml
@@ -0,0 +1,324 @@
+<?xml version="1.0"?>
+<doc>
+ <assembly>
+ <name>artemis</name>
+ </assembly>
+ <members>
+ <member name="M:Artemis.EntitySystem.Begin">
+ Called before processing of entities begins.
+ </member>
+ <member name="M:Artemis.EntitySystem.End">
+ Called after the processing of entities ends.
+ </member>
+ <member name="M:Artemis.EntitySystem.ProcessEntities(System.Collections.Generic.Dictionary{System.Int32,Artemis.Entity})">
+ Any implementing entity system must implement this method and the logic
+ to process the given entities of the system.
+
+ @param entities the entities this system contains.
+ </member>
+ <member name="M:Artemis.EntitySystem.CheckProcessing">
+
+ @return true if the system should be processed, false if not.
+ </member>
+ <member name="M:Artemis.EntitySystem.Initialize">
+ Override to implement code that gets executed when systems are initialized.
+ </member>
+ <member name="M:Artemis.EntitySystem.Added(Artemis.Entity)">
+ Called if the system has received a entity it is interested in, e.g. created or a component was added to it.
+ @param e the entity that was added to this system.
+ </member>
+ <member name="M:Artemis.EntitySystem.Removed(Artemis.Entity)">
+ Called if a entity was removed from this system, e.g. deleted or had one of it's components removed.
+ @param e the entity that was removed from this system.
+ </member>
+ <member name="M:Artemis.EntitySystem.GetMergedTypes(System.Type,System.Type[])">
+ Merge together a required type and a array of other types. Used in derived systems.
+ @param requiredType
+ @param otherTypes
+ @return
+ </member>
+ <member name="M:Artemis.IntervalEntityProcessingSystem.#ctor(System.Int32,System.Type,System.Type[])">
+ Create a new IntervalEntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.IntervalEntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.ProcessEntities(System.Collections.Generic.Dictionary{System.Int32,Artemis.Entity},System.Int32)">
+ The entities to process with accumulated delta.
+ @param entities read-only bag of entities.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.StartDelayedRun(System.Int32)">
+ Start processing of entities after a certain amount of milliseconds.
+
+ Cancels current delayed run and starts a new one.
+
+ @param delay time delay in milliseconds until processing starts.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.GetInitialTimeDelay">
+ Get the initial delay that the system was ordered to process entities after.
+
+ @return the originally set delay.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.IsRunning">
+ Check if the system is counting down towards processing.
+
+ @return true if it's counting down, false if it's not running.
+ </member>
+ <member name="M:Artemis.DelayedEntitySystem.Stop">
+ Aborts running the system in the future and stops it. Call delayedRun() to start it again.
+ </member>
+ <member name="M:Artemis.TagSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.EntityWorld.GetDelta">
+ Time since last game loop.
+ @return delta in milliseconds.
+ </member>
+ <member name="M:Artemis.EntityWorld.SetDelta(System.Int32)">
+ You must specify the delta for the game here.
+
+ @param delta time since last game loop.
+ </member>
+ <member name="M:Artemis.EntityWorld.DeleteEntity(Artemis.Entity)">
+ Delete the provided entity from the world.
+ @param e entity
+ </member>
+ <member name="M:Artemis.EntityWorld.RefreshEntity(Artemis.Entity)">
+ Ensure all systems are notified of changes to this entity.
+ @param e entity
+ </member>
+ <member name="M:Artemis.EntityWorld.CreateEntity">
+ Create and return a new or reused entity instance.
+ @return entity
+ </member>
+ <member name="M:Artemis.EntityWorld.GetEntity(System.Int32)">
+ Get a entity having the specified id.
+ @param entityId
+ @return entity
+ </member>
+ <member name="M:Artemis.SystemManager.InitializeAll">
+ After adding all systems to the world, you must initialize them all.
+ </member>
+ <member name="M:Artemis.GroupSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.EntityManager.IsActive(System.Int32)">
+ Check if this entity is active, or has been deleted, within the framework.
+
+ @param entityId
+ @return active or not.
+ </member>
+ <member name="M:Artemis.EntityManager.GetEntityCount">
+
+ @return how many entities are currently active.
+ </member>
+ <member name="M:Artemis.EntityManager.GetTotalCreated">
+
+ @return how many entities have been created since start.
+ </member>
+ <member name="M:Artemis.EntityManager.GetTotalRemoved">
+
+ @return how many entities have been removed since start.
+ </member>
+ <member name="M:Artemis.EntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new EntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.EntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.ParallelEntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new EntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.ParallelEntityProcessingSystem.Process(Artemis.Entity)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.DelayedEntityProcessingSystem.#ctor(System.Type,System.Type[])">
+ Create a new DelayedEntityProcessingSystem. It requires at least one component.
+ @param requiredType the required component type.
+ @param otherTypes other component types.
+ </member>
+ <member name="M:Artemis.DelayedEntityProcessingSystem.Process(Artemis.Entity,System.Int32)">
+ Process a entity this system is interested in.
+ @param e the entity to process.
+ </member>
+ <member name="M:Artemis.GroupManager.Set(System.String,Artemis.Entity)">
+ Set the group of the entity.
+
+ @param group group to set the entity into.
+ @param e entity to set into the group.
+ </member>
+ <member name="M:Artemis.GroupManager.getEntities(System.String)">
+ Get all entities that belong to the provided group.
+ @param group name of the group.
+ @return read-only bag of entities belonging to the group.
+ </member>
+ <member name="M:Artemis.GroupManager.Remove(Artemis.Entity)">
+ Removes the provided entity from the group it is assigned to, if any.
+ @param e the entity.
+ </member>
+ <member name="M:Artemis.GroupManager.GetGroupOf(Artemis.Entity)">
+ @param e entity
+ @return the name of the group that this entity belongs to, null if none.
+ </member>
+ <member name="M:Artemis.GroupManager.IsGrouped(Artemis.Entity)">
+ Checks if the entity belongs to any group.
+ @param e the entity to check.
+ @return true if it is in any group, false if none.
+ </member>
+ <member name="M:Artemis.Bag`1.#ctor">
+ Constructs an empty Bag with an initial capacity of 64.
+
+ </member>
+ <member name="M:Artemis.Bag`1.#ctor(System.Int32)">
+ Constructs an empty Bag with the specified initial capacity.
+
+ @param capacity
+ the initial capacity of Bag
+ </member>
+ <member name="M:Artemis.Bag`1.Remove(System.Int32)">
+ Removes the element at the specified position in this Bag. does this by
+ overwriting it was last element then removing last element
+
+ @param index
+ the index of element to be removed
+ @return element that was removed from the Bag
+ </member>
+ <member name="M:Artemis.Bag`1.RemoveLast">
+ Remove and return the last object in the bag.
+
+ @return the last object in the bag, null if empty.
+ </member>
+ <member name="M:Artemis.Bag`1.Remove(`0)">
+ Removes the first occurrence of the specified element from this Bag, if
+ it is present. If the Bag does not contain the element, it is unchanged.
+ does this by overwriting it was last element then removing last element
+
+ @param o
+ element to be removed from this list, if present
+ @return <tt>true</tt> if this list contained the specified element
+ </member>
+ <member name="M:Artemis.Bag`1.Contains(`0)">
+ Check if bag contains this element.
+
+ @param o
+ @return
+ </member>
+ <member name="M:Artemis.Bag`1.RemoveAll(Artemis.Bag{`0})">
+ Removes from this Bag all of its elements that are contained in the
+ specified Bag.
+
+ @param bag
+ Bag containing elements to be removed from this Bag
+ @return {@code true} if this Bag changed as a result of the call
+ </member>
+ <member name="M:Artemis.Bag`1.Get(System.Int32)">
+ Returns the element at the specified position in Bag.
+
+ @param index
+ index of the element to return
+ @return the element at the specified position in bag
+ </member>
+ <member name="M:Artemis.Bag`1.Size">
+ Returns the number of elements in this bag.
+
+ @return the number of elements in this bag
+ </member>
+ <member name="M:Artemis.Bag`1.GetCapacity">
+ Returns the number of elements the bag can hold without growing.
+
+ @return the number of elements the bag can hold without growing.
+ </member>
+ <member name="M:Artemis.Bag`1.IsEmpty">
+ Returns true if this list contains no elements.
+
+ @return true if this list contains no elements
+ </member>
+ <member name="M:Artemis.Bag`1.Add(`0)">
+ Adds the specified element to the end of this bag. if needed also
+ increases the capacity of the bag.
+
+ @param o
+ element to be added to this list
+ </member>
+ <member name="M:Artemis.Bag`1.Set(System.Int32,`0)">
+ Set element at specified index in the bag.
+
+ @param index position of element
+ @param o the element
+ </member>
+ <member name="M:Artemis.Bag`1.Clear">
+ Removes all of the elements from this bag. The bag will be empty after
+ this call returns.
+ </member>
+ <member name="M:Artemis.Bag`1.AddAll(Artemis.Bag{`0})">
+ Add all items into this bag.
+ @param added
+ </member>
+ <member name="M:Artemis.Entity.GetId">
+ The internal id for this entity within the framework. No other entity will have the same ID, but
+ ID's are however reused so another entity may acquire this ID if the previous entity was deleted.
+
+ @return id of the entity.
+ </member>
+ <member name="M:Artemis.Entity.GetUniqueId">
+ Get the unique ID of this entity. Because entity instances are reused internally use this to identify between different instances.
+ @return the unique id of this entity.
+ </member>
+ <member name="M:Artemis.Entity.AddComponent(Artemis.Component)">
+ Add a component to this entity.
+ @param component to add to this entity
+ </member>
+ <member name="M:Artemis.Entity.RemoveComponent``1(Artemis.Component)">
+ Removes the component from this entity.
+ @param component to remove from this entity.
+ </member>
+ <member name="M:Artemis.Entity.RemoveComponent(Artemis.ComponentType)">
+ Faster removal of components from a entity.
+ @param component to remove from this entity.
+ </member>
+ <member name="M:Artemis.Entity.IsActive">
+ Checks if the entity has been deleted from somewhere.
+ @return if it's active.
+ </member>
+ <member name="M:Artemis.Entity.GetComponent(Artemis.ComponentType)">
+ This is the preferred method to use when retrieving a component from a entity. It will provide good performance.
+
+ @param type in order to retrieve the component fast you must provide a ComponentType instance for the expected component.
+ @return
+ </member>
+ <!-- Badly formed XML comment ignored for member "M:Artemis.Entity.GetComponent``1" -->
+ <member name="M:Artemis.Entity.GetComponents">
+ Get all components belonging to this entity.
+ WARNING. Use only for debugging purposes, it is dead slow.
+ WARNING. The returned bag is only valid until this method is called again, then it is overwritten.
+ @return all components of this entity.
+ </member>
+ <member name="M:Artemis.Entity.Refresh">
+ Refresh all changes to components for this entity. After adding or removing components, you must call
+ this method. It will update all relevant systems.
+ It is typical to call this after adding components to a newly created entity.
+ </member>
+ <member name="M:Artemis.Entity.Delete">
+ Delete this entity from the world.
+ </member>
+ <member name="M:Artemis.Entity.SetGroup(System.String)">
+ Set the group of the entity. Same as World.setGroup().
+ @param group of the entity.
+ </member>
+ <member name="M:Artemis.Entity.SetTag(System.String)">
+ Assign a tag to this entity. Same as World.setTag().
+ @param tag of the entity.
+ </member>
+ </members>
+</doc>
View
16 Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.csproj.FileListAbsolute.txt
@@ -0,0 +1,16 @@
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Debug\ArtemisTest.exe
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Debug\ArtemisTest.pdb
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Debug\artemis.dll
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Debug\artemis.pdb
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Debug\artemis.xml
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\obj\Debug\ResolveAssemblyReference.cache
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\obj\Debug\ArtemisTest.exe
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\obj\Debug\ArtemisTest.pdb
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\bin\Debug\ArtemisTest.exe
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\bin\Debug\ArtemisTest.pdb
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\bin\Debug\artemis.dll
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\bin\Debug\artemis.pdb
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\bin\Debug\artemis.xml
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\obj\Debug\ResolveAssemblyReference.cache
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\obj\Debug\ArtemisTest.exe
+C:\Users\tpastor\Desktop\Artemis\Artemis_XNA_INDEPENDENT\ArtemisTest\obj\Debug\ArtemisTest.pdb
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.exe
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ArtemisTest.pdb
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Debug/ResolveAssemblyReference.cache
Binary file not shown.
View
5 Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ArtemisTest.csproj.FileListAbsolute.txt
@@ -0,0 +1,5 @@
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Release\ArtemisTest.exe
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Release\artemis.dll
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\bin\Release\artemis.xml
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\obj\Release\ResolveAssemblyReference.cache
+C:\Users\tpastor\Desktop\thelinuxlich-artemis_CSharp-4864858\ArtemisTest\obj\Release\ArtemisTest.exe
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ArtemisTest.exe
Binary file not shown.
View
BIN ...is_XNA_INDEPENDENT/ArtemisTest/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
Binary file not shown.
View
BIN Artemis_XNA_INDEPENDENT/ArtemisTest/obj/Release/ResolveAssemblyReference.cache
Binary file not shown.
View
8 Artemis_XNA_INDEPENDENT/Component.cs
@@ -0,0 +1,8 @@
+using System;
+namespace Artemis
+{
+ public interface Component
+ {
+ }
+}
+
View
25 Artemis_XNA_INDEPENDENT/ComponentMapper.cs
@@ -0,0 +1,25 @@
+using System;
+namespace Artemis
+{
+ public sealed class ComponentMapper<T> where T : Component {
+ private ComponentType type;
+ private EntityManager em;
+
+ public ComponentMapper() { }
+
+ public ComponentMapper(EntityWorld world) {
+ this.em = world.GetEntityManager();
+ this.type = ComponentTypeManager.GetTypeFor<T>();
+ }
+
+ public void SetEntityManager(EntityManager em)
+ {
+ this.em = em;
+ }
+
+ public T Get(Entity e) {
+ return (T)em.GetComponent(e, type);
+ }
+ }
+}
+
View
30 Artemis_XNA_INDEPENDENT/ComponentType.cs
@@ -0,0 +1,30 @@
+using System;
+namespace Artemis
+{
+ public sealed class ComponentType {
+ private static long nextBit = 1;
+ private static int nextId = 0;
+
+ private long bit;
+ private int id;
+
+ public ComponentType() {
+ Init();
+ }
+
+ private void Init() {
+ bit = nextBit;
+ nextBit = nextBit << 1;
+ id = nextId++;
+ }
+
+ public long GetBit() {
+ return bit;
+ }
+
+ public int GetId() {
+ return id;
+ }
+ }
+}
+
View
40 Artemis_XNA_INDEPENDENT/ComponentTypeManager.cs
@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+namespace Artemis
+{
+ public static class ComponentTypeManager {
+ private static Dictionary<Type, ComponentType> componentTypes = new Dictionary<Type, ComponentType>();
+
+ public static ComponentType GetTypeFor<T>() where T : Component
+ {
+ ComponentType type = null;
+ Type receivedType = typeof(T);
+ if(!componentTypes.TryGetValue(receivedType,out type)){
+ type = new ComponentType();
+ componentTypes.Add(receivedType, type);
+ }
+ return type;
+ }
+
+ public static ComponentType GetTypeFor(Type component)
+ {
+ ComponentType type = null;
+ if(!componentTypes.TryGetValue(component,out type)){
+ type = new ComponentType();
+ componentTypes.Add(component, type);
+ }
+ return type;
+ }
+
+ public static long GetBit<T>() where T : Component
+ {
+ return GetTypeFor<T>().GetBit();
+ }
+
+ public static int GetId<T>() where T : Component
+ {
+ return GetTypeFor<T>().GetId();
+ }
+ }
+}
+
View
31 Artemis_XNA_INDEPENDENT/DelayedEntityProcessingSystem.cs
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+namespace Artemis
+{
+ public abstract class DelayedEntityProcessingSystem : DelayedEntitySystem {
+
+ /**
+ * Create a new DelayedEntityProcessingSystem. It requires at least one component.
+ * @param requiredType the required component type.
+ * @param otherTypes other component types.
+ */
+ public DelayedEntityProcessingSystem(Type requiredType,params Type[] otherTypes) : base(GetMergedTypes(requiredType, otherTypes)){
+ }
+
+ /**
+ * Process a entity this system is interested in.
+ * @param e the entity to process.
+ */
+ public abstract void Process(Entity e, int accumulatedDelta);
+
+ public override void ProcessEntities(Dictionary<int, Entity> entities, int accumulatedDelta)
+ {
+ foreach (Entity item in entities.Values)
+ {
+ Process(item, accumulatedDelta);
+ }
+
+ }
+ }
+}
+
View
87 Artemis_XNA_INDEPENDENT/DelayedEntitySystem.cs
@@ -0,0 +1,87 @@
+using System;
+using System.Collections.Generic;
+namespace Artemis
+{
+ public abstract class DelayedEntitySystem : EntitySystem {
+ private int delay;
+ private bool running;
+ private int acc;
+
+ public DelayedEntitySystem(params Type[] types) : base(types) {
+ }
+
+ protected override void ProcessEntities(Dictionary<int, Entity> entities)
+ {
+ ProcessEntities(entities, acc);
+ Stop();
+ }
+
+ protected override bool CheckProcessing()
+ {
+ if(running) {
+ acc += world.GetDelta();
+
+ if(acc >= delay) {
+ return enabled;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * The entities to process with accumulated delta.
+ * @param entities read-only bag of entities.
+ */
+ public abstract void ProcessEntities(Dictionary<int, Entity> entities, int accumulatedDelta);
+
+
+
+
+ /**
+ * Start processing of entities after a certain amount of milliseconds.
+ *
+ * Cancels current delayed run and starts a new one.
+ *
+ * @param delay time delay in milliseconds until processing starts.
+ */
+ public void StartDelayedRun(int delay) {
+ this.delay = delay;
+ this.acc = 0;
+ running = true;
+ }
+
+ /**
+ * Get the initial delay that the system was ordered to process entities after.
+ *
+ * @return the originally set delay.
+ */
+ public int GetInitialTimeDelay() {
+ return delay;
+ }
+
+ public int GetRemainingTimeUntilProcessing() {
+ if(running) {
+ return delay-acc;
+ }
+ return 0;
+ }
+
+ /**
+ * Check if the system is counting down towards processing.
+ *
+ * @return true if it's counting down, false if it's not running.
+ */
+ public bool IsRunning() {
+ return running;
+ }
+
+ /**
+ * Aborts running the system in the future and stops it. Call delayedRun() to start it again.
+ */
+ public void Stop() {
+ this.running = false;
+ this.acc = 0;
+ }
+
+ }
+}
View
189 Artemis_XNA_INDEPENDENT/Entity.cs
@@ -0,0 +1,189 @@
+using System;
+namespace Artemis
+{
+ public sealed class Entity {
+ private int id;
+ private long uniqueId;
+ private long typeBits = 0;
+ private long systemBits = 0;
+
+ private EntityWorld world;
+ private EntityManager entityManager;
+
+ public Entity() {
+ }
+
+ public Entity(EntityWorld world, int id) {
+ this.world = world;
+ this.entityManager = world.GetEntityManager();
+ this.id = id;
+ }
+
+ /**
+ * The internal id for this entity within the framework. No other entity will have the same ID, but
+ * ID's are however reused so another entity may acquire this ID if the previous entity was deleted.
+ *
+ * @return id of the entity.
+ */
+ public int GetId() {
+ return id;
+ }
+
+ public void SetUniqueId(long uniqueId) {
+ this.uniqueId = uniqueId;
+ }
+
+ /**
+ * Get the unique ID of this entity. Because entity instances are reused internally use this to identify between different instances.
+ * @return the unique id of this entity.
+ */
+ public long GetUniqueId() {
+ return uniqueId;
+ }
+
+ public long GetTypeBits() {