diff --git a/.gitignore b/.gitignore index c8eed9a7c1..4b1e53136a 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,13 @@ vchat.db* data data/ cfg/ -.vscode + +#Visual studio stuff +*.vscode/* +!/.vscode/launch.json +!/.vscode/extensions.json +!/.vscode/settings.json +!/.vscode/tasks.json ch-merge-upstream-pull-request.sh code/game/gamemodes/technomancer/spells/projectile/overload.dm diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000000..24779e223e --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "byond", + "request": "launch", + "name": "Launch DreamDaemon", + "preLaunchTask": "dm: build - ${command:CurrentDME}", + "dmb": "${workspaceFolder}/${command:CurrentDMB}", + "dreamDaemon": true + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..64cfc2bb26 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,36 @@ +{ + "eslint.nodePath": "./tgui/.yarn/sdks", + "eslint.workingDirectories": [ + "./tgui" + ], + "typescript.tsdk": "./tgui/.yarn/sdks/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, + "search.exclude": { + "**/.yarn": true, + "**/.pnp.*": true + }, + "workbench.editorAssociations": { + "*.dmi": "imagePreview.previewEditor" + }, + "files.eol": "\n", + "gitlens.advanced.blame.customArguments": [ + "-w" + ], + "tgstationTestExplorer.project.resultsType": "json", + "[javascript]": { + "editor.rulers": [ + 120 + ] + }, + "[typescript]": { + "editor.rulers": [ + 120 + ] + }, + "[scss]": { + "editor.rulers": [ + 120 + ] + }, + "tgstationTestExplorer.project.DMEName": "tgmc.dme" +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000000..a3cb84d5a8 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,38 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "dreammaker", + "dme": "vorestation.dme", + "problemMatcher": [ + "$dreammaker" + ], + "group": "build", + "label": "dm: build - vorestation.dme" + }, + { + "type": "shell", + "command": "tgui/bin/tgui", + "windows": { + "command": ".\\tgui\\bin\\tgui.bat" + }, + "problemMatcher": [ + "$tsc", + "$eslint-stylish" + ], + "group": "build", + "label": "tgui: build" + }, + { + "type": "shell", + "command": "yarn build", + "options": { + "cwd": "tgui/packages/tgfont/", + }, + "group": "build", + "problemMatcher": [], + "label": "tgui: build tgfont", + "detail": "node mkdist.cjs && fantasticon --config config.cjs" + } + ] +} \ No newline at end of file diff --git a/code/__defines/_planes+layers.dm b/code/__defines/_planes+layers.dm index c2dec3a247..639724eca2 100644 --- a/code/__defines/_planes+layers.dm +++ b/code/__defines/_planes+layers.dm @@ -50,10 +50,10 @@ What is the naming convention for planes or layers? #define PLANE_LOOKINGGLASS_IMG -77 // For the Looking Glass holodecks // OPENSPACE_PLANE reserves all planes between OPENSPACE_PLANE_START and OPENSPACE_PLANE_END inclusive -#define OPENSPACE_PLANE -75 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 17) +#define OPENSPACE_PLANE -75 // /turf/simulated/open will use OPENSPACE_PLANE + z (Valid z's being 2 thru 27) //VOREStation Edit #define OPENSPACE_PLANE_START -73 -#define OPENSPACE_PLANE_END -58 -#define OVER_OPENSPACE_PLANE -57 +#define OPENSPACE_PLANE_END -48 //VOREStation Edit +#define OVER_OPENSPACE_PLANE -47 //VOREStation Edit // Turf Planes #define PLATING_PLANE -44 // Plating diff --git a/code/__defines/dcs/signals.dm b/code/__defines/dcs/signals.dm index a4b1a26b33..7079362659 100644 --- a/code/__defines/dcs/signals.dm +++ b/code/__defines/dcs/signals.dm @@ -42,6 +42,9 @@ #define COMSIG_PARENT_QDELETING "parent_qdeleting" /// generic topic handler (usr, href_list) #define COMSIG_TOPIC "handle_topic" +/// from datum ui_act (usr, action) +#define COMSIG_UI_ACT "COMSIG_UI_ACT" + /// fires on the target datum when an element is attached to it (/datum/element) #define COMSIG_ELEMENT_ATTACH "element_attach" diff --git a/code/__defines/tgui.dm b/code/__defines/tgui.dm index 3d706a4e0f..c261e5ecdc 100644 --- a/code/__defines/tgui.dm +++ b/code/__defines/tgui.dm @@ -18,6 +18,14 @@ /// Get a pool index of the provided window id #define TGUI_WINDOW_INDEX(window_id) text2num(copytext(window_id, 13)) +/// Creates a message packet for sending via output() +// This is {"type":type,"payload":payload}, but pre-encoded. This is much faster +// than doing it the normal way. +// To ensure this is correct, this is unit tested in tgui_create_message. +#define TGUI_CREATE_MESSAGE(type, payload) ( \ + "%7b%22type%22%3a%22[type]%22%2c%22payload%22%3a[url_encode(json_encode(payload))]%7d" \ +) + /// Max length for Modal Input #define TGUI_MODAL_INPUT_MAX_LENGTH 1024 /// Max length for Modal Input for names diff --git a/code/_helpers/sorts/comparators.dm b/code/_helpers/sorts/comparators.dm index b1980d6da1..dc2419b0b0 100644 --- a/code/_helpers/sorts/comparators.dm +++ b/code/_helpers/sorts/comparators.dm @@ -57,12 +57,6 @@ if (!.) . = B[STAT_ENTRY_COUNT] - A[STAT_ENTRY_COUNT] -// Compares complexity of recipes for use in cooking, etc. This is for telling which recipe to make, not for showing things to the player. -/proc/cmp_recipe_complexity_dsc(datum/recipe/A, datum/recipe/B) - var/a_score = LAZYLEN(A.items) + LAZYLEN(A.reagents) + LAZYLEN(A.fruit) - var/b_score = LAZYLEN(B.items) + LAZYLEN(B.reagents) + LAZYLEN(B.fruit) - return b_score - a_score - /proc/cmp_typepaths_asc(A, B) return sorttext("[B]","[A]") diff --git a/code/_helpers/unsorted.dm b/code/_helpers/unsorted.dm index 1c831efa3d..0564d5e3f7 100644 --- a/code/_helpers/unsorted.dm +++ b/code/_helpers/unsorted.dm @@ -1614,6 +1614,9 @@ GLOBAL_REAL_VAR(list/stack_trace_storage) // 'Utility' planes . += new /obj/screen/plane_master/fullbright //Lighting system (lighting_overlay objects) . += new /obj/screen/plane_master/lighting //Lighting system (but different!) + . += new /obj/screen/plane_master/o_light_visual //Object lighting (using masks) + . += new /obj/screen/plane_master/emissive //Emissive overlays + . += new /obj/screen/plane_master/ghosts //Ghosts! . += new /obj/screen/plane_master{plane = PLANE_AI_EYE} //AI Eye! diff --git a/code/controllers/subsystems/tgui.dm b/code/controllers/subsystems/tgui.dm index e94830a5f0..a0d96cf80c 100644 --- a/code/controllers/subsystems/tgui.dm +++ b/code/controllers/subsystems/tgui.dm @@ -22,7 +22,7 @@ SUBSYSTEM_DEF(tgui) var/basehtml /datum/controller/subsystem/tgui/PreInit() - basehtml = file2text('tgui/packages/tgui/public/tgui.html') + basehtml = file2text('tgui/public/tgui.html') /datum/controller/subsystem/tgui/Shutdown() close_all_uis() diff --git a/code/datums/browser.dm b/code/datums/browser.dm index efb4c49795..18472c854c 100644 --- a/code/datums/browser.dm +++ b/code/datums/browser.dm @@ -306,9 +306,6 @@ var/output = {"