diff options
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.java | 19 |
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; } |
