diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..438bf83 --- /dev/null +++ b/.gitignore @@ -0,0 +1,9 @@ +.idea +.vscode + +node_modules + +src/*.js +src/*.map + +dist diff --git a/src/app.js b/src/app.js deleted file mode 100644 index ccdc694..0000000 --- a/src/app.js +++ /dev/null @@ -1,33 +0,0 @@ -"use strict"; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", { value: true }); -const p5_1 = __importDefault(require("p5")); -require("/assets/styles/main.scss"); -const cell_1 = require("./cell"); -const environment_1 = require("./environment"); -new p5_1.default((p5) => { - const position = [0, 0]; - const player = new cell_1.Cell([0, 0], ''); - const environment = new environment_1.Environment([player]); - let drag; - p5.setup = () => { - p5.createCanvas(document.body.offsetWidth, document.body.offsetHeight); - }; - p5.draw = () => { - environment.draw(p5, position[0], position[1]); - }; - p5.windowResized = () => { p5.resizeCanvas(p5.windowWidth, p5.windowHeight); }; - p5.mousePressed = () => { drag = [p5.mouseX, p5.mouseY]; }; - p5.mouseReleased = () => { drag = null; }; - p5.mouseDragged = () => { - if (drag) { - position[0] += drag[0] - p5.mouseX; - drag[0] = p5.mouseX; - position[1] -= drag[1] - p5.mouseY; - drag[1] = p5.mouseY; - } - }; -}); -//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/src/app.js.map b/src/app.js.map deleted file mode 100644 index 4ab0322..0000000 --- a/src/app.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"app.js","sourceRoot":"","sources":["app.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,oCAAkC;AAClC,iCAA4B;AAC5B,+CAA0C;AAE1C,IAAI,YAAE,CAAC,CAAC,EAAM,EAAE,EAAE;IACjB,MAAM,QAAQ,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,MAAM,MAAM,GAAG,IAAI,WAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,IAAI,yBAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAE9C,IAAI,IAA6B,CAAC;IAElC,EAAE,CAAC,KAAK,GAAG,GAAG,EAAE;QACf,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC,CAAA;IAED,EAAE,CAAC,IAAI,GAAG,GAAG,EAAE;QACd,WAAW,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,EAAE,CAAC,aAAa,GAAG,GAAG,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9E,EAAE,CAAC,YAAY,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1D,EAAE,CAAC,aAAa,GAAG,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;IACzC,EAAE,CAAC,YAAY,GAAG,GAAG,EAAE;QACtB,IAAG,IAAI,EAAE;YACR,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YACpB,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;YACnC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;SACpB;IACF,CAAC,CAAA;AACF,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/src/cell.js b/src/cell.js deleted file mode 100644 index 3fd7bf8..0000000 --- a/src/cell.js +++ /dev/null @@ -1,46 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Cell = void 0; -const MAX_CELL_SIZE = 100; -class Cell { - constructor(pos, script = '') { - this.pos = pos; - this.script = script; - this.energy = 100; - this.cellWall = 5; - this.api = { - move: { - down: () => this.move(0, -1), - left: () => this.move(-1, 0), - right: () => this.move(1, 0), - up: () => this.move(0, 1) - } - }; - } - get dead() { return this.energy <= 20; } - get size() { return Math.min(MAX_CELL_SIZE, 50 * (this.energy / 100)); } - draw(p5, offsetX, offsetY) { - if (!this.dead) - this.run(); - p5.fill(100, 100, 200); - p5.stroke(150, 150, 255); - p5.strokeWeight(this.cellWall); - p5.circle(offsetX + this.pos[0], offsetY - this.pos[1], this.size); - } - move(x, y) { - const energyCost = Math.round(this.size / 25 * 10) / 10; - if (this.energy - energyCost <= 20) - return; - this.energy -= energyCost; - this.pos[0] += x; - this.pos[1] += y; - } - run() { - if (!this.script) - return; - const script = `${this.script}; run(this);`; - return function () { return eval(script); }.call(this.api); - } -} -exports.Cell = Cell; -//# sourceMappingURL=cell.js.map \ No newline at end of file diff --git a/src/cell.js.map b/src/cell.js.map deleted file mode 100644 index 7a35390..0000000 --- a/src/cell.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"cell.js","sourceRoot":"","sources":["cell.ts"],"names":[],"mappings":";;;AAWA,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAa,IAAI;IAOhB,YAAoB,GAAqB,EAAU,SAAiB,EAAE;QAAlD,QAAG,GAAH,GAAG,CAAkB;QAAU,WAAM,GAAN,MAAM,CAAa;QANtE,WAAM,GAAW,GAAG,CAAC;QACrB,aAAQ,GAAW,CAAC,CAAC;QAOrB,QAAG,GAAY;YACd,IAAI,EAAE;gBACL,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC5B,IAAI,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,KAAK,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC5B,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;aACzB;SACD,CAAA;IATyE,CAAC;IAH3E,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC;IACxC,IAAI,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAA,CAAC,CAAC;IAavE,IAAI,CAAC,EAAM,EAAE,OAAe,EAAE,OAAe;QAC5C,IAAG,CAAC,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1B,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvB,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACzB,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,EAAE,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;IAED,IAAI,CAAC,CAAS,EAAE,CAAS;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC;QACxD,IAAG,IAAI,CAAC,MAAM,GAAG,UAAU,IAAI,EAAE;YAAE,OAAO;QAC1C,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACjB,CAAC;IAEF,GAAG;QACF,IAAG,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACxB,MAAM,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,cAAc,CAAC;QAC5C,OAAO,cAAa,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC3D,CAAC;CACD;AAvCD,oBAuCC"} \ No newline at end of file diff --git a/src/environment.js b/src/environment.js deleted file mode 100644 index 5cf0504..0000000 --- a/src/environment.js +++ /dev/null @@ -1,47 +0,0 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.Environment = exports.mulberry32 = void 0; -function mulberry32(seed) { - return function () { - let t = seed += 0x6D2B79F5; - t = Math.imul(t ^ t >>> 15, t | 1); - t ^= t + Math.imul(t ^ t >>> 7, t | 61); - return ((t ^ t >>> 14) >>> 0) / 4294967296; - }; -} -exports.mulberry32 = mulberry32; -const RENDER_DIST = 500; -class Environment { - constructor(cells = [], size = 1000, seed = Math.random()) { - this.cells = cells; - this.size = size; - this.seed = seed; - this.food = []; - this.generator = mulberry32(seed); - this.food = Array(500).fill([]).map(() => [ - this.generator() * this.size * (this.generator() > 0.5 ? 1 : -1), - this.generator() * this.size * (this.generator() > 0.5 ? 1 : -1) - ]); - } - addCell(cell) { - this.cells.push(cell); - cell.environment = this; - } - draw(p5, x, y) { - const center = [p5.windowWidth / 2, p5.windowHeight / 2]; - const offset = [center[0] - x, center[1] + y]; - // Background - p5.background(245, 245, 255); - // Food - this.food.filter(f => (Math.abs((f[0] - x) / (f[1] - y)) <= RENDER_DIST)).forEach(f => { - p5.fill(100); - p5.stroke(10); - p5.strokeWeight(2); - p5.circle(offset[0] + f[0], offset[1] - f[1], 10); - }); - // Cells - this.cells.forEach(c => c.draw(p5, offset[0], offset[1])); - } -} -exports.Environment = Environment; -//# sourceMappingURL=environment.js.map \ No newline at end of file diff --git a/src/environment.js.map b/src/environment.js.map deleted file mode 100644 index 6c094a6..0000000 --- a/src/environment.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"environment.js","sourceRoot":"","sources":["environment.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/src/example.js b/src/example.js deleted file mode 100644 index e1776ec..0000000 --- a/src/example.js +++ /dev/null @@ -1,3 +0,0 @@ -const run = (cell) => { - cell.move.up(); -}; diff --git a/src/example.js.map b/src/example.js.map deleted file mode 100644 index 5d1a060..0000000 --- a/src/example.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"example.js","sourceRoot":"","sources":["example.ts"],"names":[],"mappings":";;AAEA,IAAM,GAAG,GAAG,UAAC,IAAa;IACzB,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AAChB,CAAC,CAAC"} \ No newline at end of file