summaryrefslogtreecommitdiff
path: root/src/engine/components
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-02 01:07:55 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-02 01:07:55 -0700
commit1ec5a8d088f599d094f387abc6014f228607b605 (patch)
tree0d0e0271b6d5db354a56337c5de9df1a933e767b /src/engine/components
parenta333ce8845de4269d6a6f5523d2273da11fe271c (diff)
downloadthe-abstraction-engine-1ec5a8d088f599d094f387abc6014f228607b605.tar.gz
the-abstraction-engine-1ec5a8d088f599d094f387abc6014f228607b605.zip
add interactable component
Diffstat (limited to 'src/engine/components')
-rw-r--r--src/engine/components/ComponentNames.ts2
-rw-r--r--src/engine/components/Highlight.ts7
-rw-r--r--src/engine/components/Interactable.ts15
-rw-r--r--src/engine/components/index.ts2
4 files changed, 26 insertions, 0 deletions
diff --git a/src/engine/components/ComponentNames.ts b/src/engine/components/ComponentNames.ts
index 032d08a..da6c37a 100644
--- a/src/engine/components/ComponentNames.ts
+++ b/src/engine/components/ComponentNames.ts
@@ -4,4 +4,6 @@ export namespace ComponentNames {
export const Grid = "Grid";
export const BoundingBox = "BoundingBox";
export const Control = "Control";
+ export const Highlight = "Highlight";
+ export const Interactable = "Interactable";
}
diff --git a/src/engine/components/Highlight.ts b/src/engine/components/Highlight.ts
new file mode 100644
index 0000000..49d9f96
--- /dev/null
+++ b/src/engine/components/Highlight.ts
@@ -0,0 +1,7 @@
+import { Component, ComponentNames } from ".";
+
+export class Highlight extends Component {
+ constructor() {
+ super(ComponentNames.Highlight);
+ }
+}
diff --git a/src/engine/components/Interactable.ts b/src/engine/components/Interactable.ts
new file mode 100644
index 0000000..2937596
--- /dev/null
+++ b/src/engine/components/Interactable.ts
@@ -0,0 +1,15 @@
+import { Component, ComponentNames } from ".";
+
+export class Interactable extends Component {
+ private interaction: Function;
+
+ constructor(interaction: Function) {
+ super(ComponentNames.Interactable);
+
+ this.interaction = interaction;
+ }
+
+ public interact() {
+ this.interaction();
+ }
+}
diff --git a/src/engine/components/index.ts b/src/engine/components/index.ts
index e9f8de9..c470eff 100644
--- a/src/engine/components/index.ts
+++ b/src/engine/components/index.ts
@@ -5,3 +5,5 @@ export * from "./FacingDirection";
export * from "./Grid";
export * from "./BoundingBox";
export * from "./Control";
+export * from "./Highlight";
+export * from "./Interactable";