diff --git a/packages/ecs/src/Component.ts b/packages/ecs/src/Component.ts index e8c20f9..bf5bdbe 100644 --- a/packages/ecs/src/Component.ts +++ b/packages/ecs/src/Component.ts @@ -14,6 +14,11 @@ class Component { init(properties: NonNullable) { this.properties = properties; } + + // Use this when saving the state. + serialize(): NonNullable { + throw new Error(`You need to implement this for ${this.constructor.name}`); + } } -export default Component; \ No newline at end of file +export default Component; diff --git a/packages/ecs/src/Entity.ts b/packages/ecs/src/Entity.ts index cd05df0..f793904 100644 --- a/packages/ecs/src/Entity.ts +++ b/packages/ecs/src/Entity.ts @@ -66,6 +66,9 @@ export default class Entity { } public hasComponent(declaration: typeof Component): boolean { + if (typeof declaration.prototype.bitmask === "undefined") { + throw new Error(`Please register the component ${declaration.name} in the ComponentRegistry.`); + } return hasBit(this.componentsBitmask, declaration.prototype.bitmask); } diff --git a/packages/renderer/src/canvas.ts b/packages/renderer/src/canvas.ts index a653795..8d1bcd6 100644 --- a/packages/renderer/src/canvas.ts +++ b/packages/renderer/src/canvas.ts @@ -127,7 +127,7 @@ export function dot(ctx: CanvasRenderingContext2D, x: number, y: number, fillCol ctx.restore(); } -export function rectangle(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, strokeColor: string = "black", fillColor?: string): void { +export function rectangle(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, strokeColor: string = "rgb(0,0,0)", fillColor?: string): void { //ctx.save(); ctx.beginPath(); ctx.lineWidth = 1;