@hi-ashleyj/llama 0.3.2 → 0.3.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -24,12 +24,12 @@ $: {
24
24
  const layers = new Set();
25
25
  const draw = function (delta, time) {
26
26
  for (let layer of layers) {
27
- layer(delta, time);
27
+ layer.draw(delta, time);
28
28
  }
29
29
  };
30
- const assign = function (layerDraw) {
31
- layers.add(layerDraw);
32
- return () => layers.delete(layerDraw);
30
+ const assign = function (ctx) {
31
+ layers.add(ctx);
32
+ return () => layers.delete(ctx);
33
33
  };
34
34
  const timing = new Timing();
35
35
  const controller = new Controller();
@@ -12,17 +12,20 @@ export let centered = false;
12
12
  $: ax = (centered) ? x - (w / 2) : x;
13
13
  $: ay = (centered) ? y - (h / 2) : y;
14
14
  const targets = new Set();
15
- const assign = function (callable) {
16
- targets.add(callable);
17
- return () => { targets.delete(callable); };
18
- };
19
15
  const draw = function ({ width, height, ctx }) {
20
- targets.forEach(f => f({ width, height, ctx }, { x: ax, y: ay, w, h }));
16
+ targets.forEach(f => f.draw({ width, height, ctx }, { x: ax, y: ay, w, h }));
21
17
  };
22
- let register = setupDrawable({ assign });
18
+ let register = setupDrawable({
19
+ assign: (ctx) => {
20
+ targets.add(ctx);
21
+ return () => {
22
+ targets.delete(ctx);
23
+ };
24
+ },
25
+ });
23
26
  onMount(() => {
24
- return register(draw);
27
+ return register({ draw });
25
28
  });
26
29
  </script>
27
30
 
28
- <slot />
31
+ <slot/>
@@ -8,17 +8,17 @@ const draw = () => {
8
8
  if (ctx === null)
9
9
  return;
10
10
  ctx.clearRect(0, 0, $width, $height);
11
- targets.forEach(f => f({ width: $width, height: $height, ctx }));
11
+ targets.forEach(f => f.draw({ width: $width, height: $height, ctx }));
12
12
  };
13
13
  let { width, height } = getGame();
14
14
  let register = setupLayer({
15
- assign: (callable) => {
16
- targets.add(callable);
17
- return () => { targets.delete(callable); };
15
+ assign: (ctx) => {
16
+ targets.add(ctx);
17
+ return () => { targets.delete(ctx); };
18
18
  }
19
19
  });
20
20
  onMount(() => {
21
- return register(draw);
21
+ return register({ draw });
22
22
  });
23
23
  </script>
24
24
 
@@ -22,6 +22,6 @@ const draw = function ({ ctx }, { x, y, w, h }) {
22
22
  };
23
23
  let register = setupDrawable({});
24
24
  onMount(() => {
25
- return register(draw);
25
+ return register({ draw });
26
26
  });
27
27
  </script>
@@ -18,6 +18,6 @@ const draw = function ({ ctx }, { x, y, w, h }) {
18
18
  };
19
19
  let register = setupDrawable({});
20
20
  onMount(() => {
21
- return register(draw);
21
+ return register({ draw });
22
22
  });
23
23
  </script>
@@ -12,6 +12,6 @@ const draw = function ({ ctx }, { x, y, w, h }) {
12
12
  };
13
13
  let register = setupDrawable({});
14
14
  onMount(() => {
15
- return register(draw);
15
+ return register({ draw });
16
16
  });
17
17
  </script>
@@ -16,6 +16,6 @@ const draw = function ({ ctx }, { x, y, w, h }) {
16
16
  };
17
17
  let register = setupDrawable({});
18
18
  onMount(() => {
19
- return register(draw);
19
+ return register({ draw });
20
20
  });
21
21
  </script>
@@ -27,6 +27,6 @@ const draw = function ({ ctx }, { x, y }) {
27
27
  };
28
28
  let register = setupDrawable({});
29
29
  onMount(() => {
30
- return register(draw);
30
+ return register({ draw });
31
31
  });
32
32
  </script>
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@hi-ashleyj/llama",
3
3
  "description": "A (Very Incomplete) 2D Canvas Game Engine powered by Svelte",
4
- "version": "0.3.2",
4
+ "version": "0.3.3",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
package/setup.d.ts CHANGED
@@ -1,5 +1,9 @@
1
1
  import type { GameContext, LayerContext, DrawableContext, DrawableFunction } from "./types";
2
2
  export declare const setupGame: (context: GameContext) => void;
3
- export declare const setupLayer: (context: LayerContext) => (draw: () => any) => () => any;
4
- export declare const setupDrawable: ({ assign }: Partial<DrawableContext>) => (draw: DrawableFunction) => () => any;
3
+ export declare const setupLayer: (context: LayerContext) => ({ draw }: {
4
+ draw: () => any;
5
+ }) => () => any;
6
+ export declare const setupDrawable: ({ assign }: Partial<DrawableContext>) => ({ draw }: {
7
+ draw: () => DrawableFunction;
8
+ }) => () => any;
5
9
  export declare const getGame: () => GameContext;
package/setup.js CHANGED
@@ -17,8 +17,8 @@ export const setupLayer = function (context) {
17
17
  throw new Error("Layers must be inside a Game");
18
18
  setContext(LAYER, context);
19
19
  setupDrawable({ assign: context.assign });
20
- return (draw) => {
21
- return game.assign(draw);
20
+ return (ctx) => {
21
+ return game.assign(ctx);
22
22
  };
23
23
  };
24
24
  export const setupDrawable = function ({ assign }) {
@@ -26,10 +26,10 @@ export const setupDrawable = function ({ assign }) {
26
26
  if (assign) {
27
27
  setContext(DRAWABLE, { assign });
28
28
  }
29
- return (draw) => {
29
+ return (ctx) => {
30
30
  if (!parent)
31
31
  return () => { };
32
- return parent.assign(draw);
32
+ return parent.assign(ctx);
33
33
  };
34
34
  };
35
35
  export const getGame = function () {
@@ -3,7 +3,7 @@ import { Timing } from "../components/motions";
3
3
  import { Controller } from "../components/controller";
4
4
 
5
5
  export type GameContext = {
6
- assign: (draw: Function) => () => any,
6
+ assign: (context: { draw: Function }) => () => any,
7
7
  width: Writable<number>,
8
8
  height: Writable<number>,
9
9
  background: Writable<string>,
@@ -17,13 +17,12 @@ export type GameContext = {
17
17
 
18
18
  };
19
19
 
20
- export type LayerContext = {
21
- assign: (draw: Function) => () => any
20
+ export type LayerContext = {
21
+ assign: (context: { draw: Function }) => () => any
22
22
  };
23
23
 
24
24
  export type DrawableFunction = ({}: { width: number, height: number, ctx: CanvasRenderingContext2D }, ...more: any[] ) => any;
25
25
 
26
- export type DrawableContext = {
27
- assign: (draw: Function) => () => any,
28
- draw: DrawableFunction
26
+ export type DrawableContext = {
27
+ assign: (context: { draw: Function }) => () => any
29
28
  }