87 lines
1.4 KiB
JavaScript
87 lines
1.4 KiB
JavaScript
import { assert } from "./test.mjs";
|
|
|
|
|
|
|
|
export function create (x = 0, y = 0, width = 0, height = 0) {
|
|
return {
|
|
pos: {
|
|
x: x,
|
|
y: y,
|
|
},
|
|
size: {
|
|
x: width,
|
|
y: height,
|
|
},
|
|
};
|
|
}
|
|
|
|
export function get_pos (entity) {
|
|
return entity.pos;
|
|
}
|
|
|
|
export function set_pos (entity, x, y) {
|
|
entity.pos.x = x;
|
|
entity.pos.y = y;
|
|
}
|
|
|
|
export function get_size (entity) {
|
|
return entity.size;
|
|
}
|
|
|
|
export function set_size (entity, x, y) {
|
|
entity.size.x = x;
|
|
entity.size.y = y;
|
|
}
|
|
|
|
export function move (entity, x, y) {
|
|
entity.pos.x += x;
|
|
entity.pos.y += y;
|
|
}
|
|
|
|
|
|
|
|
// TESTS
|
|
|
|
assert("entity creation works.", _ => {
|
|
const e = create(1, 2, 3, 4);
|
|
return(
|
|
e.pos.x == 1 &&
|
|
e.pos.y == 2 &&
|
|
e.size.x == 3 &&
|
|
e.size.y == 4
|
|
);
|
|
});
|
|
|
|
assert("entity `get_pos` works.", _ => {
|
|
const e = create(1, 2);
|
|
const {x, y} = get_pos(e);
|
|
return(x === 1 && y === 2);
|
|
});
|
|
|
|
assert("entity `set_pos` works.", _ => {
|
|
const e = create();
|
|
set_pos(e, 5, 7);
|
|
const {x, y} = get_pos(e);
|
|
return(x === 5 && y === 7);
|
|
});
|
|
|
|
assert("entity `get_size` works.", _ => {
|
|
const e = create(2, 4, 6, 8);
|
|
const {x, y} = get_size(e);
|
|
return(x === 6 && y === 8);
|
|
});
|
|
|
|
assert("entity `set_size` works.", _ => {
|
|
const e = create(2, 4, 6, 8);
|
|
set_size(e, 3, 2);
|
|
const {x, y} = get_size(e);
|
|
return(x === 3 && y === 2);
|
|
});
|
|
|
|
assert("entity `move` works.", _ => {
|
|
const e = create(0, 0);
|
|
move(e, 50, 25);
|
|
const {x, y} = get_pos(e);
|
|
return(x === 50 && y === 25);
|
|
});
|