blob: 679ea498efbe06ada4a858f677a5e9b1ce2c22bc (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
package coffee.liz.ecs.model;
import java.util.Arrays;
import java.util.Set;
import java.util.stream.Collectors;
public record Query(Set<Class<? extends Component>> queryingComponents, QueryFilter filter) {
public Query {
queryingComponents = Set.copyOf(queryingComponents);
}
@SafeVarargs
public static Query allOf(final Class<? extends Component>... components) {
return new Query(Arrays.stream(components).collect(Collectors.toSet()), QueryFilter.ALL_OF);
}
@SafeVarargs
public static Query anyOf(final Class<? extends Component>... components) {
return new Query(Arrays.stream(components).collect(Collectors.toSet()), QueryFilter.ANY_OF);
}
@SafeVarargs
public static Query noneOf(final Class<? extends Component>... components) {
return new Query(Arrays.stream(components).collect(Collectors.toSet()), QueryFilter.NONE_OF);
}
public enum QueryFilter {
ALL_OF, ANY_OF, NONE_OF
}
}
|