filter determinism
							parent
							
								
									3cb3c64459
								
							
						
					
					
						commit
						7b519ed4b2
					
				| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using MoonTools.ECS.Collections;
 | 
			
		||||
 | 
			
		||||
namespace MoonTools.ECS
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -8,7 +9,7 @@ namespace MoonTools.ECS
 | 
			
		|||
		internal FilterSignature Signature;
 | 
			
		||||
		private FilterStorage FilterStorage;
 | 
			
		||||
 | 
			
		||||
		internal Filter(FilterStorage filterStorage, HashSet<int> included, HashSet<int> excluded)
 | 
			
		||||
		internal Filter(FilterStorage filterStorage, IndexableSet<int> included, IndexableSet<int> excluded)
 | 
			
		||||
		{
 | 
			
		||||
			FilterStorage = filterStorage;
 | 
			
		||||
			Signature = new FilterSignature(included, excluded);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,5 +1,4 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using MoonTools.ECS.Collections;
 | 
			
		||||
 | 
			
		||||
namespace MoonTools.ECS
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -7,18 +6,18 @@ namespace MoonTools.ECS
 | 
			
		|||
	{
 | 
			
		||||
		private TypeIndices ComponentTypeIndices;
 | 
			
		||||
		private FilterStorage FilterStorage;
 | 
			
		||||
		private HashSet<int> Included;
 | 
			
		||||
		private HashSet<int> Excluded;
 | 
			
		||||
		private IndexableSet<int> Included;
 | 
			
		||||
		private IndexableSet<int> Excluded;
 | 
			
		||||
 | 
			
		||||
		internal FilterBuilder(FilterStorage filterStorage, TypeIndices componentTypeIndices)
 | 
			
		||||
		{
 | 
			
		||||
			FilterStorage = filterStorage;
 | 
			
		||||
			ComponentTypeIndices = componentTypeIndices;
 | 
			
		||||
			Included = new HashSet<int>();
 | 
			
		||||
			Excluded = new HashSet<int>();
 | 
			
		||||
			Included = new IndexableSet<int>();
 | 
			
		||||
			Excluded = new IndexableSet<int>();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		private FilterBuilder(FilterStorage filterStorage, TypeIndices componentTypeIndices, HashSet<int> included, HashSet<int> excluded)
 | 
			
		||||
		private FilterBuilder(FilterStorage filterStorage, TypeIndices componentTypeIndices, IndexableSet<int> included, IndexableSet<int> excluded)
 | 
			
		||||
		{
 | 
			
		||||
			FilterStorage = filterStorage;
 | 
			
		||||
			ComponentTypeIndices = componentTypeIndices;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,14 +1,15 @@
 | 
			
		|||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using MoonTools.ECS.Collections;
 | 
			
		||||
 | 
			
		||||
namespace MoonTools.ECS
 | 
			
		||||
{
 | 
			
		||||
	public struct FilterSignature : IEquatable<FilterSignature>
 | 
			
		||||
	{
 | 
			
		||||
		public readonly HashSet<int> Included;
 | 
			
		||||
		public readonly HashSet<int> Excluded;
 | 
			
		||||
		public readonly IndexableSet<int> Included;
 | 
			
		||||
		public readonly IndexableSet<int> Excluded;
 | 
			
		||||
 | 
			
		||||
		public FilterSignature(HashSet<int> included, HashSet<int> excluded)
 | 
			
		||||
		public FilterSignature(IndexableSet<int> included, IndexableSet<int> excluded)
 | 
			
		||||
		{
 | 
			
		||||
			Included = included;
 | 
			
		||||
			Excluded = excluded;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -20,7 +20,7 @@ namespace MoonTools.ECS
 | 
			
		|||
			ComponentTypeIndices = componentTypeIndices;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public Filter CreateFilter(HashSet<int> included, HashSet<int> excluded)
 | 
			
		||||
		public Filter CreateFilter(IndexableSet<int> included, IndexableSet<int> excluded)
 | 
			
		||||
		{
 | 
			
		||||
			var filterSignature = new FilterSignature(included, excluded);
 | 
			
		||||
			if (!filterSignatureToEntityIDs.ContainsKey(filterSignature))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue