summaryrefslogtreecommitdiff
path: root/core/src/main/java/coffee/liz/ecs
diff options
context:
space:
mode:
Diffstat (limited to 'core/src/main/java/coffee/liz/ecs')
-rw-r--r--core/src/main/java/coffee/liz/ecs/DAGWorld.java7
-rw-r--r--core/src/main/java/coffee/liz/ecs/events/EventBus.java9
-rw-r--r--core/src/main/java/coffee/liz/ecs/model/Query.java4
-rw-r--r--core/src/main/java/coffee/liz/ecs/model/World.java2
4 files changed, 12 insertions, 10 deletions
diff --git a/core/src/main/java/coffee/liz/ecs/DAGWorld.java b/core/src/main/java/coffee/liz/ecs/DAGWorld.java
index f941dba..f9801c2 100644
--- a/core/src/main/java/coffee/liz/ecs/DAGWorld.java
+++ b/core/src/main/java/coffee/liz/ecs/DAGWorld.java
@@ -34,6 +34,7 @@ public class DAGWorld implements World {
protected final Map<Class<? extends System>, System> systems;
private final List<System> systemExecutionOrder;
private final QueryBuilder queryBuilder = new QueryBuilder(this);
+ private float elapsedTime = 0f;
public DAGWorld(final System... systems) {
this.systems = singletonClazzMap(systems);
@@ -74,9 +75,15 @@ public class DAGWorld implements World {
@Override
public void update(final float deltaSeconds) {
+ elapsedTime += deltaSeconds;
systemExecutionOrder.forEach(system -> system.update(this, deltaSeconds));
}
+ @Override
+ public float getTime() {
+ return elapsedTime;
+ }
+
@SuppressWarnings("unchecked")
@Override
public <S extends System> S getSystem(final Class<S> system) {
diff --git a/core/src/main/java/coffee/liz/ecs/events/EventBus.java b/core/src/main/java/coffee/liz/ecs/events/EventBus.java
index d814281..1ed04c5 100644
--- a/core/src/main/java/coffee/liz/ecs/events/EventBus.java
+++ b/core/src/main/java/coffee/liz/ecs/events/EventBus.java
@@ -28,13 +28,10 @@ public class EventBus<E> {
/**
* Remove a previously registered hook.
*
- * @param hook
- * callback to remove
- * @return true
- * if the hook was removed.
+ * @param hook callback to remove
*/
- public boolean unsubscribe(final Consumer<E> hook) {
- return subscriptions.remove(hook);
+ public void unsubscribe(final Consumer<E> hook) {
+ subscriptions.remove(hook);
}
/**
diff --git a/core/src/main/java/coffee/liz/ecs/model/Query.java b/core/src/main/java/coffee/liz/ecs/model/Query.java
index 679ea49..8b52d42 100644
--- a/core/src/main/java/coffee/liz/ecs/model/Query.java
+++ b/core/src/main/java/coffee/liz/ecs/model/Query.java
@@ -5,10 +5,6 @@ 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);
diff --git a/core/src/main/java/coffee/liz/ecs/model/World.java b/core/src/main/java/coffee/liz/ecs/model/World.java
index 63335c8..88602fc 100644
--- a/core/src/main/java/coffee/liz/ecs/model/World.java
+++ b/core/src/main/java/coffee/liz/ecs/model/World.java
@@ -15,6 +15,8 @@ public interface World {
void update(float deltaSeconds);
+ float getTime();
+
<S extends System> S getSystem(Class<S> system);
default void dispose() {