aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/java/coffee/liz/abstractionengine/grid/component
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2026-02-21 12:29:54 -0800
committerElizabeth Hunt <me@liz.coffee>2026-02-21 12:29:54 -0800
commit170f5c496054c9c5c2df9b8a1c5c8df7643ea004 (patch)
tree1ed217130939a04234761d54ba2ec607866f51ad /core/src/main/java/coffee/liz/abstractionengine/grid/component
parentd6a294e14604aecd9046cbc19dc1837ca694fbb0 (diff)
downloadthe-abstraction-engine-java-main.tar.gz
the-abstraction-engine-java-main.zip
Diffstat (limited to 'core/src/main/java/coffee/liz/abstractionengine/grid/component')
-rw-r--r--core/src/main/java/coffee/liz/abstractionengine/grid/component/Substitution.java19
1 files changed, 17 insertions, 2 deletions
diff --git a/core/src/main/java/coffee/liz/abstractionengine/grid/component/Substitution.java b/core/src/main/java/coffee/liz/abstractionengine/grid/component/Substitution.java
index 77ff4e8..9f58ff2 100644
--- a/core/src/main/java/coffee/liz/abstractionengine/grid/component/Substitution.java
+++ b/core/src/main/java/coffee/liz/abstractionengine/grid/component/Substitution.java
@@ -2,14 +2,29 @@ package coffee.liz.abstractionengine.grid.component;
import coffee.liz.ecs.math.Vec2;
import coffee.liz.ecs.model.Component;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Data;
import lombok.RequiredArgsConstructor;
-import java.util.Map;
+import java.util.List;
@RequiredArgsConstructor
+@AllArgsConstructor
@Data
+@Builder(toBuilder = true)
public class Substitution implements Component {
+ /**
+ * Produced terms spawn with this momentum.
+ */
private final Vec2<Integer> spawnMomentum;
- private final Map<String, Vec2<Integer>> termDependencies;
+
+ /**
+ * Left-to-right dependencies' grid positions to apply in order.
+ * i.e. [(0, 0), (0, 1)] would apply lambda term at (0, 0) then (0, 1) to a -> b -> a => (0, 0)
+ */
+ private final List<Vec2<Integer>> termDependencies;
+
+ @Builder.Default
+ private boolean isActive = true;
}