From f643f0afb8c7d91a7a39ff96f58b95baac985ce0 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sat, 7 Mar 2026 15:01:14 -0800 Subject: Some really good refactoring happening in here --- core/src/main/java/coffee/liz/ecs/DAGWorld.java | 7 +++++++ core/src/main/java/coffee/liz/ecs/events/EventBus.java | 9 +++------ core/src/main/java/coffee/liz/ecs/model/Query.java | 4 ---- core/src/main/java/coffee/liz/ecs/model/World.java | 2 ++ 4 files changed, 12 insertions(+), 10 deletions(-) (limited to 'core/src/main/java/coffee/liz/ecs') 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, System> systems; private final List 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 getSystem(final Class 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 { /** * 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 hook) { - return subscriptions.remove(hook); + public void unsubscribe(final Consumer 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> queryingComponents, QueryFilter filter) { - public Query { - queryingComponents = Set.copyOf(queryingComponents); - } - @SafeVarargs public static Query allOf(final Class... 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 getSystem(Class system); default void dispose() { -- cgit v1.2.3-70-g09d2