humus-old/server/create-server-room.js
2019-03-27 15:51:58 -05:00

68 lines
1.5 KiB
JavaScript

import {World} from '@avocado/physics/matter/world';
import {Room} from '@avocado/topdown';
// A flower barrel.
function flowerBarrelJSON(position) {
return {
traits: {
pictured: {
params: {
images: {
initial: {
offset: [0, -8],
size: [32, 32], // Derive?
uri: '/flower-barrel.png',
},
}
},
},
existent: {},
graphical: {},
physical: {
params: {
shape: {
type: 'rectangle',
position: [0, 0],
size: [20, 10],
}
}
},
positioned: {
state: {
x: position[0],
y: position[1],
},
},
},
};
}
// Room.
const roomJSON = {
layers: [
{
entities: [],
tiles: {
size: [12, 6],
data: [
1, 5, 6, 7, 1, 2, 3, 4, 1, 5, 6, 7,
1, 5, 6, 7, 1, 66, 67, 68, 1, 5, 6, 7,
1, 5, 6, 7, 1, 5, 6, 7, 1, 5, 6, 7,
1, 5, 6, 7, 1, 5, 6, 7, 1, 5, 6, 7,
1, 5, 6, 7, 1, 5, 6, 7, 1, 5, 6, 7,
1, 5, 6, 7, 1, 5, 6, 7, 1, 5, 6, 7,
],
},
tilesetUri: '/tileset.json',
},
],
};
for (let i = 0; i < 10; ++i) {
const x = Math.floor(Math.random() * 200) + 50;
const y = Math.floor(Math.random() * 75) + 50;
roomJSON.layers[0].entities.push(flowerBarrelJSON([x, y]));
}
export function createRoom() {
const room = new Room()
room.world = new World();
return room.fromJSON(roomJSON);
}