minor shit to debug frigid and TS ugh-i-ness
parent
cbc2cec5f4
commit
f8a966956a
|
|
@ -16,7 +16,7 @@
|
||||||
"chalk": "^4.1.1",
|
"chalk": "^4.1.1",
|
||||||
"deepmerge": "^4.2.2",
|
"deepmerge": "^4.2.2",
|
||||||
"faker": "^5.5.3",
|
"faker": "^5.5.3",
|
||||||
"frigid": "^1.3.8",
|
"frigid": "^1.3.12",
|
||||||
"fs-extra": "^10.0.0",
|
"fs-extra": "^10.0.0",
|
||||||
"get-port": "^5.1.1",
|
"get-port": "^5.1.1",
|
||||||
"mocha": "^9.0.1",
|
"mocha": "^9.0.1",
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ export class Pawn extends Serializable implements Tickable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static serializationDependencies(): (typeof Serializable)[] {
|
static serializationDependencies() {
|
||||||
return [Task]
|
return [Task]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
export type Class<T> = new() => T;
|
|
||||||
|
|
@ -12,14 +12,19 @@ export class TaskList extends Serializable implements Renderable {
|
||||||
}
|
}
|
||||||
|
|
||||||
static serializationDependencies() {
|
static serializationDependencies() {
|
||||||
return Array.from(taskClasses.values());
|
let a = Array.from(taskClasses.values())
|
||||||
|
return a as unknown as (typeof Serializable)[];
|
||||||
}
|
}
|
||||||
|
|
||||||
addTask({taskId, options}: TaskOptions) {
|
addTask({taskId, options}: TaskOptions) {
|
||||||
if(!taskClasses.has(taskId))
|
if(!taskClasses.has(taskId))
|
||||||
throw new Error('unknown task: ' + taskId);
|
throw new Error('unknown task: ' + taskId);
|
||||||
|
|
||||||
const taskClass = taskClasses.get(taskId);
|
// this is any because TS doesnt understand that
|
||||||
|
// static references and constructors are the
|
||||||
|
// SAME THING.
|
||||||
|
// in TS, they're MAGICALLY incompatible...
|
||||||
|
const taskClass: any = taskClasses.get(taskId);
|
||||||
const task = new taskClass();
|
const task = new taskClass();
|
||||||
|
|
||||||
this.tasks = [...this.tasks, task];
|
this.tasks = [...this.tasks, task];
|
||||||
|
|
|
||||||
|
|
@ -5,9 +5,8 @@ import { Pawn } from '../Pawn.js';
|
||||||
import { Game } from '../Game.js';
|
import { Game } from '../Game.js';
|
||||||
import { panels } from '../ui/UI.js';
|
import { panels } from '../ui/UI.js';
|
||||||
import { progressbar, ProgressbarStyle } from '../Progressbar.js';
|
import { progressbar, ProgressbarStyle } from '../Progressbar.js';
|
||||||
import { Class } from '../Reflection.js';
|
|
||||||
|
|
||||||
export const taskClasses: Map<string, Class<Task>> = new Map();
|
export const taskClasses: Map<string, typeof Task> = new Map();
|
||||||
|
|
||||||
export abstract class Task extends Serializable {
|
export abstract class Task extends Serializable {
|
||||||
progress = 0;
|
progress = 0;
|
||||||
|
|
@ -69,7 +68,7 @@ export abstract class Task extends Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export function registerTask(id: string, taskClass: Class<Task>) {
|
export function registerTask(id: string, taskClass: typeof Task) {
|
||||||
console.log('Registered task', id);
|
console.log('Registered task', id);
|
||||||
taskClasses.set(id, taskClass)
|
taskClasses.set(id, taskClass)
|
||||||
}
|
}
|
||||||
|
|
@ -21,23 +21,6 @@ export class Popup {
|
||||||
tags: true,
|
tags: true,
|
||||||
...boxStyle(),
|
...boxStyle(),
|
||||||
});
|
});
|
||||||
// let stuff = ' ';
|
|
||||||
// for(let i = 16; i < 34; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 52; i < 70; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 88; i < 106; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 124; i < 142; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 160; i < 178; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 196; i < 214; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// stuff += '\n ';
|
|
||||||
// for(let i = 34; i < 52; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 70; i < 88; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 106; i < 124; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 142; i < 160; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 178; i < 196; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// for(let i = 214; i < 232; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); stuff += '\n ';
|
|
||||||
// stuff += '\n';
|
|
||||||
// for(let i = 232; i < 256; i ++) stuff += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%18===0?'\n':''}`)
|
|
||||||
// this.box.setContent(stuff)
|
|
||||||
this.box.on('keypress', (evt, key) => {
|
this.box.on('keypress', (evt, key) => {
|
||||||
if(key.full === 'escape' || key.full === 'enter') {
|
if(key.full === 'escape' || key.full === 'enter') {
|
||||||
Game.current.clock.start();
|
Game.current.clock.start();
|
||||||
|
|
|
||||||
23
src/ui/UI.ts
23
src/ui/UI.ts
|
|
@ -1,4 +1,5 @@
|
||||||
|
|
||||||
|
import chalk from 'chalk';
|
||||||
import blessed from 'neo-blessed';
|
import blessed from 'neo-blessed';
|
||||||
import ansi from 'sisteransi';
|
import ansi from 'sisteransi';
|
||||||
import { getTheme } from '../registries/Themes.js';
|
import { getTheme } from '../registries/Themes.js';
|
||||||
|
|
@ -131,3 +132,25 @@ export function start() {
|
||||||
started = true;
|
started = true;
|
||||||
setTitle('');
|
setTitle('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let ansiTestCard = '{center}';
|
||||||
|
for(let i = 16; i < 34; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 52; i < 70; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 88; i < 106; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 124; i < 142; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 160; i < 178; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 196; i < 214; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
ansiTestCard += '\n';
|
||||||
|
for(let i = 34; i < 52; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 70; i < 88; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 106; i < 124; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 142; i < 160; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 178; i < 196; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
for(let i = 214; i < 232; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} ${(i-15)%6===0?chalk.reset(' '):''}`); ansiTestCard += '\n';
|
||||||
|
ansiTestCard += '\n';
|
||||||
|
for(let i = 232; i < 256; i ++) ansiTestCard += chalk.bgAnsi256(i).black(` ${i.toString().padStart(3, ' ')} `)
|
||||||
|
ansiTestCard += '{/center}';
|
||||||
|
|
||||||
|
export {
|
||||||
|
ansiTestCard
|
||||||
|
};
|
||||||
|
|
@ -316,10 +316,10 @@ flat@^5.0.2:
|
||||||
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
|
resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241"
|
||||||
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
|
integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==
|
||||||
|
|
||||||
frigid@^1.3.8:
|
frigid@^1.3.12:
|
||||||
version "1.3.9"
|
version "1.3.13"
|
||||||
resolved "https://registry.yarnpkg.com/frigid/-/frigid-1.3.9.tgz#f9353b3d0ea5e38f69a2bb7c3fac8a8426f755b1"
|
resolved "https://registry.yarnpkg.com/frigid/-/frigid-1.3.13.tgz#27d8592ec1aeb72964fbc4014e38e6c366c5e3b7"
|
||||||
integrity sha512-4s+5YWu4s7UblZVd6RQ+4foMs1km+QVdP04DtXNyja/5od9312EgLlgNOXszmbbw+7t/y7XkTBGA8ADtcpOdMQ==
|
integrity sha512-suwEa7JuMvNqIlVpc848wIptC8o3Ztvadv8a1HojbaNcYdowOlqWi/ieSgQZkBVCpmrBOq7IeuaB6p4BvCUdHQ==
|
||||||
|
|
||||||
fs-extra@^10.0.0:
|
fs-extra@^10.0.0:
|
||||||
version "10.0.0"
|
version "10.0.0"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue