export default async function createHomestead(id) { const area = {x: 100, y: 60}; const entities = []; entities.push({ AreaSize: {x: area.x * 16, y: area.y * 16}, Ticking: {}, TileLayers: { layers: [ { area, data: Array(area.x * area.y).fill(0).map(() => 1 + Math.floor(Math.random() * 4)), source: '/assets/tileset.json', tileSize: {x: 16, y: 16}, }, { area, data: Array(area.x * area.y).fill(0), source: '/assets/tileset.json', tileSize: {x: 16, y: 16}, }, ], }, Time: {}, Water: {water: {}}, }); entities.push({ Collider: { bodies: [ { points: [ {x: -36, y: 8}, {x: -21, y: 8}, {x: -36, y: 17}, {x: -21, y: 17}, ], tags: ['door'], }, { impassable: 1, points: [ {x: -52, y: -16}, {x: 44, y: -16}, {x: -52, y: 15}, {x: 44, y: 15}, ], }, ], collisionStartScript: '/assets/shit-shack/collision-start.js', }, Ecs: { path: ['houses', `${id}`].join('/'), }, Position: {x: 100, y: 100}, Sprite: { anchorX: 0.5, anchorY: 0.8, source: '/assets/shit-shack/shit-shack.json', }, Ticking: {}, VisibleAabb: {}, }); entities.push({ Collider: { bodies: [ { impassable: 1, points: [ {x: -11, y: -7}, {x: 10, y: -7}, {x: 10, y: 5}, {x: -11, y: 5}, ], }, ], }, Interactive: { interacting: 1, interactScript: ` subject.Interlocutor.dialogue({ body: "Sure, I'm a treasure chest. Probably. Do you really think that means you're about to get some treasure? Hah!", monopolizer: true, origin: subject.Position.toJSON(), position: {x: subject.Position.x, y: subject.Position.y - 32}, }) `, }, Interlocutor: {}, Position: {x: 200, y: 200}, Sprite: { anchorX: 0.5, anchorY: 0.7, source: '/assets/chest.json', }, Ticking: {}, VisibleAabb: {}, }); const kitty = { Behaving: { routines: { initial: '/assets/kitty/initial.js', }, }, Collider: { bodies: [ { points: [ {x: -4, y: -4}, {x: 3, y: -4}, {x: 3, y: 3}, {x: -4, y: 3}, ], }, ], }, Controlled: {}, Direction: {direction: 2}, Forces: {}, Position: {x: 250, y: 250}, Speed: {speed: 20}, Sprite: { anchorX: 0.5, anchorY: 0.7, source: '/assets/kitty/kitty.json', speed: 0.115, }, Ticking: {}, VisibleAabb: {}, }; for (let i = 0; i < 10; ++i) { entities.push(kitty); } return entities; }