This commit is contained in:
ItsSelis
2023-05-31 20:15:56 +02:00
parent 8d637dfe7c
commit eb6623ed2a
17 changed files with 938 additions and 845 deletions
File diff suppressed because one or more lines are too long
+823
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -16,4 +16,4 @@ preferAggregateCacheInfo: true
preferInteractive: true
yarnPath: .yarn/releases/yarn-3.2.1.cjs
yarnPath: .yarn/releases/yarn-3.3.1.cjs
+1 -1
View File
@@ -2,7 +2,7 @@
"private": true,
"name": "tgui-workspace",
"version": "4.4.1",
"packageManager": "yarn@3.2.1",
"packageManager": "yarn@3.3.1",
"workspaces": [
"packages/*"
],
@@ -0,0 +1,13 @@
The following is the process to implement your own icon using an svg.
If you plan on making your own SVG, consider [Inkscape](https://inkscape.org/). It is free and pretty powerful for vector graphics.
1. Get whatever SVG you plan on using and put it in the `tgstation\tgui\packages\tgfont\icons` folder.
2. In VS Code, press Ctrl+Shift+B, and select "tgui: rebuild tgfont". Wait for it to comlpete.
Now your SVG will be able to be used in the game.
When you reference your icon that you prefix it with "tg-", otherwise it will not find it. For example, with an SVG named "prosthetic-leg.svg", you would reference it with `icon_state = "tg-prosthetic-leg"`.
Keep your SVG as simple as possible, the engine has trouble rendering SVGs that have a lot of little disconnected parts.
+4
View File
@@ -7,8 +7,12 @@
module.exports = {
name: 'tgfont',
inputDir: './icons',
normalize: true,
outputDir: './dist',
fontTypes: ['woff2', 'eot'],
assetTypes: ['css'],
prefix: 'tg',
formatOptions: {
preserveAspectRatio: true,
},
};
+23 -24
View File
@@ -1,51 +1,50 @@
@font-face {
font-family: 'tgfont';
src: url('./tgfont.woff2?45c3c7acc69dd413375d77898d24e41e') format('woff2'),
url('./tgfont.eot?45c3c7acc69dd413375d77898d24e41e#iefix') format('embedded-opentype');
font-family: "tgfont";
src: url("./tgfont.woff2?958b912b123580c55529f68c4e2261bd") format("woff2"),
url("./tgfont.eot?958b912b123580c55529f68c4e2261bd#iefix") format("embedded-opentype");
}
i[class^='tg-']:before,
i[class*=' tg-']:before {
font-family: tgfont !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
i[class^="tg-"]:before, i[class*=" tg-"]:before {
font-family: tgfont !important;
font-style: normal;
font-weight: normal !important;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.tg-air-tank-slash:before {
content: '\f101';
content: "\f101";
}
.tg-air-tank:before {
content: '\f102';
content: "\f102";
}
.tg-bad-touch:before {
content: '\f103';
content: "\f103";
}
.tg-image-minus:before {
content: '\f104';
content: "\f104";
}
.tg-image-plus:before {
content: '\f105';
content: "\f105";
}
.tg-nanotrasen-logo:before {
content: '\f106';
content: "\f106";
}
.tg-non-binary:before {
content: '\f107';
content: "\f107";
}
.tg-prosthetic-leg:before {
content: '\f108';
content: "\f108";
}
.tg-sound-minus:before {
content: '\f109';
content: "\f109";
}
.tg-sound-plus:before {
content: '\f10a';
content: "\f10a";
}
.tg-syndicate-logo:before {
content: '\f10b';
content: "\f10b";
}
Binary file not shown.
Binary file not shown.
+6 -1
View File
@@ -24,9 +24,14 @@ export class DreamSeeker {
}
topic(params = {}) {
// prettier-ignore
const query = Object.keys(params)
.map((key) => encodeURIComponent(key) + '=' + encodeURIComponent(params[key]))
.map(key => encodeURIComponent(key)
+ '=' + encodeURIComponent(params[key]))
.join('&');
logger.log(
`topic call at ${this.client.defaults.baseURL + '/dummy?' + query}`
);
return this.client.get('/dummy?' + query);
}
}
+10 -2
View File
@@ -68,7 +68,10 @@ const serializeObject = (obj) => {
}
refs.push(value);
// Error object
const isError = value instanceof Error || (value.code && value.message && value.message.includes('Error'));
// prettier-ignore
const isError = value instanceof Error || (
value.code && value.message && value.message.includes('Error')
);
if (isError) {
return {
__error__: true,
@@ -132,7 +135,12 @@ const sendLogEntry = (level, ns, ...args) => {
};
const setupHotReloading = () => {
if (process.env.NODE_ENV !== 'production' && process.env.WEBPACK_HMR_ENABLED && window.WebSocket) {
if (
// prettier-ignore
process.env.NODE_ENV !== 'production'
&& process.env.WEBPACK_HMR_ENABLED
&& window.WebSocket
) {
if (module.hot) {
ensureConnection();
sendLogEntry(0, null, 'setting up hot reloading');
@@ -29,7 +29,9 @@ export const loadSourceMaps = async (bundleDir) => {
for (let path of paths) {
try {
const file = basename(path).replace('.map', '');
const consumer = await new SourceMapConsumer(JSON.parse(fs.readFileSync(path, 'utf8')));
const consumer = await new SourceMapConsumer(
JSON.parse(fs.readFileSync(path, 'utf8'))
);
sourceMaps.push({ file, consumer });
} catch (err) {
logger.error(err);
@@ -76,7 +78,9 @@ export const retrace = (stack) => {
if (!file) {
return ` at ${methodName}`;
}
const compactPath = file.replace(/^webpack:\/\/\/?/, './').replace(/.*node_modules\//, '');
const compactPath = file
.replace(/^webpack:\/\/\/?/, './')
.replace(/.*node_modules\//, '');
return ` at ${methodName} (${compactPath}:${lineNumber})`;
})
.join('\n');
+11 -13
View File
@@ -76,19 +76,17 @@ class LinkServer {
if (level <= 0 && !DEBUG) {
return;
}
directLog(
ns,
...args.map((arg) => {
if (typeof arg === 'object') {
return inspect(arg, {
depth: Infinity,
colors: true,
compact: 8,
});
}
return arg;
})
);
// prettier-ignore
directLog(ns, ...args.map(arg => {
if (typeof arg === 'object') {
return inspect(arg, {
depth: Infinity,
colors: true,
compact: 8,
});
}
return arg;
}));
return;
}
if (type === 'relay') {
+14 -4
View File
@@ -31,7 +31,9 @@ const getPrefix = (() => {
bright: '\x1b[37;1m',
reset: '\x1b[0m',
};
return (ns) => [`${ESC.dimmed}${getTimestamp()} ${ESC.bright}${ns}${ESC.reset}`];
return (ns) => [
`${ESC.dimmed}${getTimestamp()} ${ESC.bright}${ns}${ESC.reset}`,
];
}
if (isChrome) {
// Styles
@@ -39,9 +41,16 @@ const getPrefix = (() => {
dimmed: 'color: #888',
bright: 'font-weight: bold',
};
return (ns) => [`%c${getTimestamp()}%c ${ns}`, styles.dimmed, styles.bright];
return (ns) => [
`%c${getTimestamp()}%c ${ns}`,
styles.dimmed,
styles.bright,
];
}
return (ns) => [`${getTimestamp()} ${ns}`];
// prettier-ignore
return ns => [
`${getTimestamp()} ${ns}`,
];
})();
/**
@@ -59,4 +68,5 @@ export const createLogger = (ns) => ({
/**
* Explicitly log with chosen namespace.
*/
export const directLog = (ns, ...args) => console.log(...getPrefix(ns), ...args);
export const directLog = (ns, ...args) =>
console.log(...getPrefix(ns), ...args);
+1 -1
View File
@@ -1,7 +1,7 @@
{
"private": true,
"name": "tgui-dev-server",
"version": "4.3.0",
"version": "4.4.1",
"type": "module",
"dependencies": {
"axios": "^0.27.2",
+20 -5
View File
@@ -52,7 +52,11 @@ export const findCacheRoot = async () => {
logger.log('querying windows registry');
let userpath = await regQuery('HKCU\\Software\\Dantom\\BYOND', 'userpath');
if (userpath) {
cacheRoot = userpath.replace(/\\$/, '').replace(/\\/g, '/') + '/cache';
// prettier-ignore
cacheRoot = userpath
.replace(/\\$/, '')
.replace(/\\/g, '/')
+ '/cache';
onCacheRootFound(cacheRoot);
return cacheRoot;
}
@@ -62,7 +66,7 @@ export const findCacheRoot = async () => {
const onCacheRootFound = (cacheRoot) => {
logger.log(`found cache at '${cacheRoot}'`);
// Plant a dummy
// Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 514.
fs.closeSync(fs.openSync(cacheRoot + '/dummy', 'w'));
};
@@ -78,14 +82,25 @@ export const reloadByondCache = async (bundleDir) => {
return;
}
// Get dreamseeker instances
const pids = cacheDirs.map((cacheDir) => parseInt(cacheDir.split('/cache/tmp').pop(), 10));
const pids = cacheDirs.map((cacheDir) =>
parseInt(cacheDir.split('/cache/tmp').pop(), 10)
);
const dssPromise = DreamSeeker.getInstancesByPids(pids);
// Copy assets
const assets = await resolveGlob(bundleDir, './*.+(bundle|chunk|hot-update).*');
const assets = await resolveGlob(
bundleDir,
'./*.+(bundle|chunk|hot-update).*'
);
for (let cacheDir of cacheDirs) {
// Clear garbage
const garbage = await resolveGlob(cacheDir, './*.+(bundle|chunk|hot-update).*');
const garbage = await resolveGlob(
cacheDir,
'./*.+(bundle|chunk|hot-update).*'
);
try {
// Plant a dummy browser window file, we'll be using this to avoid world topic. For byond 515.
fs.closeSync(fs.openSync(cacheDir + '/dummy', 'w'));
for (let file of garbage) {
fs.unlinkSync(file);
}
+5 -5
View File
@@ -4789,7 +4789,7 @@ __metadata:
"fsevents@patch:fsevents@^2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>":
version: 2.3.2
resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=18f3a7"
resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin<compat/fsevents>::version=2.3.2&hash=df0bf1"
dependencies:
node-gyp: latest
conditions: os=darwin
@@ -8045,7 +8045,7 @@ __metadata:
"resolve@patch:resolve@1.20.0#~builtin<compat/resolve>":
version: 1.20.0
resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin<compat/resolve>::version=1.20.0&hash=07638b"
resolution: "resolve@patch:resolve@npm%3A1.20.0#~builtin<compat/resolve>::version=1.20.0&hash=c3c19d"
dependencies:
is-core-module: ^2.2.0
path-parse: ^1.0.6
@@ -8055,7 +8055,7 @@ __metadata:
"resolve@patch:resolve@^1.14.2#~builtin<compat/resolve>, resolve@patch:resolve@^1.20.0#~builtin<compat/resolve>, resolve@patch:resolve@^1.9.0#~builtin<compat/resolve>":
version: 1.22.1
resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=07638b"
resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin<compat/resolve>::version=1.22.1&hash=c3c19d"
dependencies:
is-core-module: ^2.9.0
path-parse: ^1.0.7
@@ -8068,7 +8068,7 @@ __metadata:
"resolve@patch:resolve@^2.0.0-next.3#~builtin<compat/resolve>":
version: 2.0.0-next.4
resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=07638b"
resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin<compat/resolve>::version=2.0.0-next.4&hash=c3c19d"
dependencies:
is-core-module: ^2.9.0
path-parse: ^1.0.7
@@ -9295,7 +9295,7 @@ __metadata:
"typescript@patch:typescript@^4.6.4#~builtin<compat/typescript>":
version: 4.7.4
resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin<compat/typescript>::version=4.7.4&hash=7ad353"
resolution: "typescript@patch:typescript@npm%3A4.7.4#~builtin<compat/typescript>::version=4.7.4&hash=65a307"
bin:
tsc: bin/tsc
tsserver: bin/tsserver