blob: 8b52d42e3c0546deb39b245fa9148139b77ea45c (
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
|
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) {
@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
}
}
|