From aa645af2bb14cd4beb15f4980a97e9a0c8289720 Mon Sep 17 00:00:00 2001 From: Ruggero Visintin Date: Sat, 9 Dec 2023 13:55:51 +0100 Subject: [PATCH] refactor(ecs): add ICollidableComponent and move IComponent into interfaces dir --- src/ecs/components/BaseComponent.ts | 2 +- src/ecs/components/index.ts | 2 +- src/ecs/components/interfaces/ICollidableComponent.ts | 5 +++++ src/ecs/components/{ => interfaces}/IComponent.ts | 2 +- src/ecs/components/interfaces/index.ts | 2 ++ 5 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 src/ecs/components/interfaces/ICollidableComponent.ts rename src/ecs/components/{ => interfaces}/IComponent.ts (73%) create mode 100644 src/ecs/components/interfaces/index.ts diff --git a/src/ecs/components/BaseComponent.ts b/src/ecs/components/BaseComponent.ts index d92dd271..4e7c64b6 100644 --- a/src/ecs/components/BaseComponent.ts +++ b/src/ecs/components/BaseComponent.ts @@ -1,6 +1,6 @@ import { Type } from "../../core"; import { IEntity } from "../entities"; -import { IComponent } from "./IComponent"; +import { IComponent } from "./interfaces"; @Type('BaseComponent') export class BaseComponent implements IComponent { diff --git a/src/ecs/components/index.ts b/src/ecs/components/index.ts index 193ec9fe..5dcbdc4a 100644 --- a/src/ecs/components/index.ts +++ b/src/ecs/components/index.ts @@ -1,4 +1,4 @@ -export * from './IComponent'; +export * from './interfaces'; export * from './BaseComponent'; export * from './TransformComponent'; export * from './ShapeComponent'; diff --git a/src/ecs/components/interfaces/ICollidableComponent.ts b/src/ecs/components/interfaces/ICollidableComponent.ts new file mode 100644 index 00000000..50a05385 --- /dev/null +++ b/src/ecs/components/interfaces/ICollidableComponent.ts @@ -0,0 +1,5 @@ +import { IComponent } from "./IComponent"; + +export interface ICollidableComponent extends IComponent { + onCollision(collider: ICollidableComponent): void; +} \ No newline at end of file diff --git a/src/ecs/components/IComponent.ts b/src/ecs/components/interfaces/IComponent.ts similarity index 73% rename from src/ecs/components/IComponent.ts rename to src/ecs/components/interfaces/IComponent.ts index 1b9bae08..ddb896d6 100644 --- a/src/ecs/components/IComponent.ts +++ b/src/ecs/components/interfaces/IComponent.ts @@ -1,4 +1,4 @@ -import { IEntity } from "../entities"; +import { IEntity } from "../../entities"; export interface IComponent { getContainer(): IEntity | null; diff --git a/src/ecs/components/interfaces/index.ts b/src/ecs/components/interfaces/index.ts new file mode 100644 index 00000000..7154b15c --- /dev/null +++ b/src/ecs/components/interfaces/index.ts @@ -0,0 +1,2 @@ +export * from './ICollidableComponent'; +export * from './IComponent'; \ No newline at end of file