diff --git a/.dockerignore b/.dockerignore index a4b8a25cdc8c..15c3ea68c339 100644 --- a/.dockerignore +++ b/.dockerignore @@ -22,6 +22,11 @@ tgstation.int tgstation.rsc tgstation.lk tgstation.dyn.rsc +shiptest.dmb +shiptest.int +shiptest.rsc +shiptest.lk +shiptest.dyn.rsc *.dll Dockerfile tools/bootstrap/.cache diff --git a/.github/workflows/ci_suite.yml b/.github/workflows/ci_suite.yml index 30b0a1c75385..224f707c6e37 100644 --- a/.github/workflows/ci_suite.yml +++ b/.github/workflows/ci_suite.yml @@ -33,7 +33,7 @@ jobs: tools/bootstrap/python -c '' - name: Run Linters run: | - bash tools/ci/check_filedirs.sh tgstation.dme + bash tools/ci/check_filedirs.sh shiptest.dme bash tools/ci/check_changelogs.sh find . -name "*.php" -print0 | xargs -0 -n1 php -l find . -name "*.json" -not -path "*/node_modules/*" -print0 | xargs -0 python3 ./tools/json_verifier.py @@ -72,7 +72,7 @@ jobs: source $HOME/BYOND/byond/bin/byondsetup python3 tools/ci/template_dm_generator.py tgui/bin/tgui --build - bash tools/ci/dm.sh -DCIBUILDING -DCITESTING -DALL_MAPS tgstation.dme + bash tools/ci/dm.sh -DCIBUILDING -DCITESTING -DALL_MAPS shiptest.dme run_all_tests: name: Integration Tests @@ -116,7 +116,7 @@ jobs: run: | source $HOME/BYOND/byond/bin/byondsetup tgui/bin/tgui --build - bash tools/ci/dm.sh -DCIBUILDING tgstation.dme + bash tools/ci/dm.sh -DCIBUILDING shiptest.dme bash tools/ci/run_server.sh test_windows: diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 39378eff6531..d8402cad8676 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -20,12 +20,12 @@ }, { "type": "dreammaker", - "dme": "tgstation.dme", + "dme": "shiptest.dme", "problemMatcher": [ "$dreammaker" ], "group": "build", - "label": "dm: build - tgstation.dme" + "label": "dm: build - shiptest.dme" }, { "type": "shell", diff --git a/Dockerfile b/Dockerfile index 49e64fdb20ba..27de13429d83 100644 --- a/Dockerfile +++ b/Dockerfile @@ -31,9 +31,9 @@ RUN . ./dependencies.sh \ && cd .. \ && rm -rf byond byond.zip -# build = byond + tgstation compiled and deployed to /deploy +# build = byond + shiptest compiled and deployed to /deploy FROM byond AS build -WORKDIR /tgstation +WORKDIR /shiptest RUN apt-get install -y --no-install-recommends \ curl @@ -71,17 +71,17 @@ RUN . ./dependencies.sh \ # final = byond + runtime deps + rust_g + build FROM byond -WORKDIR /tgstation +WORKDIR /shiptest RUN apt-get install -y --no-install-recommends \ libssl1.0.0:i386 \ zlib1g:i386 #auxtools fexists memes -RUN ln -s /tgstation/auxtools/libauxmos.so /root/.byond/bin/libauxmos.so +RUN ln -s /shiptest/auxtools/libauxmos.so /root/.byond/bin/libauxmos.so COPY --from=build /deploy ./ COPY --from=rust_g /rust_g/target/i686-unknown-linux-gnu/release/librust_g.so ./librust_g.so -VOLUME [ "/tgstation/config", "/tgstation/data" ] -ENTRYPOINT [ "DreamDaemon", "tgstation.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] +VOLUME [ "/shiptest/config", "/shiptest/data" ] +ENTRYPOINT [ "DreamDaemon", "shiptest.dmb", "-port", "1337", "-trusted", "-close", "-verbose" ] EXPOSE 1337 diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm index 71cc77dbcbb7..8df45b3fa3b5 100644 --- a/code/datums/status_effects/debuffs.dm +++ b/code/datums/status_effects/debuffs.dm @@ -530,7 +530,7 @@ return FALSE RegisterSignal(owner, COMSIG_MOVABLE_HEAR, .proc/hypnotize) ADD_TRAIT(owner, TRAIT_MUTE, "trance") - owner.add_client_colour(/datum/client_colour/monochrome/trance) + owner.add_client_colour(/datum/client_colour/monochrome) owner.visible_message("[stun ? "[owner] stands still as [owner.p_their()] eyes seem to focus on a distant point." : ""]", \ "[pick("You feel your thoughts slow down...", "You suddenly feel extremely dizzy...", "You feel like you're in the middle of a dream...","You feel incredibly relaxed...")]") return TRUE @@ -544,7 +544,7 @@ UnregisterSignal(owner, COMSIG_MOVABLE_HEAR) REMOVE_TRAIT(owner, TRAIT_MUTE, "trance") owner.dizziness = 0 - owner.remove_client_colour(/datum/client_colour/monochrome/trance) + owner.remove_client_colour(/datum/client_colour/monochrome) to_chat(owner, "You snap out of your trance!") /datum/status_effect/trance/proc/hypnotize(datum/source, list/hearing_args) diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm index 94fd49e452bc..cbdc968332c3 100644 --- a/code/datums/traits/neutral.dm +++ b/code/datums/traits/neutral.dm @@ -109,7 +109,7 @@ medical_record_text = "Patient is afflicted with almost complete color blindness." /datum/quirk/monochromatic/add() - quirk_holder.add_client_colour(/datum/client_colour/monochrome) + quirk_holder.add_client_colour(/datum/client_colour/monochrome/blind/permanent) /datum/quirk/monochromatic/post_add() if(quirk_holder.mind.assigned_role == "Detective") diff --git a/code/modules/client/client_colour.dm b/code/modules/client/client_colour.dm index aa5bbb701081..62c2eef4dd1c 100644 --- a/code/modules/client/client_colour.dm +++ b/code/modules/client/client_colour.dm @@ -192,10 +192,7 @@ fade_in = 20 fade_out = 20 -/datum/client_colour/monochrome/trance - priority = PRIORITY_ABSOLUTE - -/datum/client_colour/monochrome/blind +/datum/client_colour/monochrome/blind/permanent //For the permanently colorblind priority = PRIORITY_ABSOLUTE /datum/client_colour/bloodlust diff --git a/tgstation.dme b/shiptest.dme similarity index 99% rename from tgstation.dme rename to shiptest.dme index 4d83cdbd5238..c46f6cc7f05c 100644 --- a/tgstation.dme +++ b/shiptest.dme @@ -1,4 +1,4 @@ -g// DM Environment file for tgstation.dme. +g// DM Environment file for shiptest.dme. // All manual changes should be made outside the BEGIN_ and END_ blocks. // New source code should be placed in .dm files: choose File/New --> Code File. // BEGIN_INTERNALS diff --git a/tools/TGUICompiler.php b/tools/TGUICompiler.php index a393e1d3c68b..1d4dbaec0aed 100644 --- a/tools/TGUICompiler.php +++ b/tools/TGUICompiler.php @@ -15,7 +15,7 @@ //MOVE (not copy) the node_modules folder next to this file try{ //CONFIG - $repo_dir = 'tgstation'; + $repo_dir = 'shiptest'; $path_to_tgui_from_repo = '/tgui'; $full_path_to_gulp = 'C:/Users/Cyberboss/AppData/Roaming/npm/gulp'; //this needs to be read/executable by the PHP app pool $max_number_of_uploads = 20; @@ -44,50 +44,50 @@ function extrapolate_git_url(){ } function download_file($path){ - header('Content-type: application/zip'); + header('Content-type: application/zip'); header('Content-Disposition: attachment; filename=' . basename($path)); header('Content-length: ' . filesize($path)); - header('Pragma: no-cache'); - header('Expires: 0'); + header('Pragma: no-cache'); + header('Expires: 0'); readfile($path); } - function recurse_copy($src,$dst) { - $dir = opendir($src); - @mkdir($dst); - while(false !== ( $file = readdir($dir)) ) { - if (( $file != '.' ) && ( $file != '..' )) { - if ( is_dir($src . '/' . $file) ) { - recurse_copy($src . '/' . $file,$dst . '/' . $file); - } - else { - copy($src . '/' . $file,$dst . '/' . $file); - } - } - } - closedir($dir); - } - - function rrmdir($dir) { - if (is_dir($dir)) { - $objects = scandir($dir); - foreach ($objects as $object) { - if ($object != "." && $object != "..") { + function recurse_copy($src,$dst) { + $dir = opendir($src); + @mkdir($dst); + while(false !== ( $file = readdir($dir)) ) { + if (( $file != '.' ) && ( $file != '..' )) { + if ( is_dir($src . '/' . $file) ) { + recurse_copy($src . '/' . $file,$dst . '/' . $file); + } + else { + copy($src . '/' . $file,$dst . '/' . $file); + } + } + } + closedir($dir); + } + + function rrmdir($dir) { + if (is_dir($dir)) { + $objects = scandir($dir); + foreach ($objects as $object) { + if ($object != "." && $object != "..") { if (is_dir($dir."/".$object)) rrmdir($dir."/".$object); else - unlink($dir."/".$object); - } + unlink($dir."/".$object); + } + } + rmdir($dir); } - rmdir($dir); - } } function update_git(){ global $tgdir; shell_exec('cd ' . $tgdir . ' && git pull'); } - + $full_path_to_gulp = str_replace('/', '\\', $full_path_to_gulp); $parent_dir = str_replace('\\', '/', realpath(dirname(__FILE__))); $tgdir = $parent_dir . '/' . $repo_dir; @@ -137,7 +137,7 @@ function update_git(){ unlink($target_name); //remove the file move_uploaded_file($F['tmp_name'], $target_name); } - + //compile $command = '"' . $full_path_to_gulp . '" --cwd "' . str_replace('/', '\\', $target_path) . '" --min 2>&1'; $output = shell_exec($command); diff --git a/tools/build/build.js b/tools/build/build.js index db3e268a457c..4e0f51fa0e67 100755 --- a/tools/build/build.js +++ b/tools/build/build.js @@ -49,9 +49,9 @@ const taskDm = new Task('dm') .depends('tgui/public/tgui.html') .depends('tgui/public/*.bundle.*') .depends('tgui/public/*.chunk.*') - .depends('tgstation.dme') - .provides('tgstation.dmb') - .provides('tgstation.rsc') + .depends('shiptest.dme') + .provides('shiptest.dmb') + .provides('shiptest.rsc') .build(async () => { let compiler = 'dm'; // Let's do some registry queries on Windows, because dm is not in PATH. @@ -70,7 +70,7 @@ const taskDm = new Task('dm') } else { compiler = 'DreamMaker'; } - await exec(compiler, ['tgstation.dme']); + await exec(compiler, ['shiptest.dme']); }); // Frontend diff --git a/tools/ci/build.ps1 b/tools/ci/build.ps1 index 737b90a9f326..e46f70e8c0b4 100644 --- a/tools/ci/build.ps1 +++ b/tools/ci/build.ps1 @@ -7,5 +7,5 @@ if(!(Test-Path -Path "C:/byond")){ bash tools/ci/install_node.sh bash tgui/bin/tgui --build -&"C:/byond/bin/dm.exe" -max_errors 0 tgstation.dme +&"C:/byond/bin/dm.exe" -max_errors 0 shiptest.dme exit $LASTEXITCODE diff --git a/tools/ci/run_server.sh b/tools/ci/run_server.sh index b0df79c2b4fd..b288c4a4fa4e 100644 --- a/tools/ci/run_server.sh +++ b/tools/ci/run_server.sh @@ -9,7 +9,7 @@ mkdir ci_test/config cp tools/ci/ci_config.txt ci_test/config/config.txt cd ci_test -DreamDaemon tgstation.dmb -close -trusted -verbose -params "log-directory=ci" || EXIT_CODE=$? +DreamDaemon shiptest.dmb -close -trusted -verbose -params "log-directory=ci" || EXIT_CODE=$? cd .. cat ci_test/data/logs/ci/clean_run.lk diff --git a/tools/deploy.sh b/tools/deploy.sh index 8b250390a466..bb8299454bfc 100755 --- a/tools/deploy.sh +++ b/tools/deploy.sh @@ -21,7 +21,7 @@ if [ -d ".git" ]; then cp -r .git/logs/* $1/.git/logs/ fi -cp tgstation.dmb tgstation.rsc $1/ +cp shiptest.dmb shiptest.rsc $1/ cp -r _maps/* $1/_maps/ cp -r icons/runtime/* $1/icons/runtime/ cp -r sound/runtime/* $1/sound/runtime/ diff --git a/tools/expand_filedir_paths.py b/tools/expand_filedir_paths.py index b58a8679398c..6ab6874a0cfc 100644 --- a/tools/expand_filedir_paths.py +++ b/tools/expand_filedir_paths.py @@ -20,7 +20,7 @@ def read_filedirs(filename): result = [] dme_file = file(filename, "rt") - + # Read each line from the file and check for regex pattern match for row in dme_file: match = filedir_pattern.match(row) @@ -63,7 +63,7 @@ def replace_func(name): else: replacement = name.group(1) return "'" + replacement + "'" - + # Search recursively for all .dm and .dmm files for (dirpath, dirs, files) in os.walk("."): for name in files: @@ -88,6 +88,6 @@ def replace_func(name): os.remove(path) os.rename(path + ".tmp", path) -dirs = read_filedirs("tgstation.dme"); +dirs = read_filedirs("shiptest.dme"); resources = index_files(dirs) rewrite_sources(resources) diff --git a/tools/linux_build.py b/tools/linux_build.py index 99fb652b9404..e99602275280 100755 --- a/tools/linux_build.py +++ b/tools/linux_build.py @@ -32,7 +32,7 @@ def stage2(map): txt = "-M{}".format(map) else: txt = '' - args = "bash tools/travis/dm.sh {} tgstation.dme".format(txt) + args = "bash tools/travis/dm.sh {} shiptest.dme".format(txt) print(args) p = subprocess.Popen(args, shell=True) wait(p) @@ -42,7 +42,7 @@ def stage3(profile_mode=False): play("sound/misc/compiler-stage2.ogg") logfile = open('server.log~','w') p = subprocess.Popen( - "DreamDaemon tgstation.dmb 25001 -trusted", + "DreamDaemon shiptest.dmb 25001 -trusted", shell=True, stdout=PIPE, stderr=STDOUT) try: while p.returncode is None: diff --git a/tools/tgs4_scripts/PreCompile.bat b/tools/tgs4_scripts/PreCompile.bat index 0c944e7adc53..a5ecc9b5dac9 100644 --- a/tools/tgs4_scripts/PreCompile.bat +++ b/tools/tgs4_scripts/PreCompile.bat @@ -4,8 +4,8 @@ set TG_BOOTSTRAP_CACHE=%cd% IF NOT "%1" == "" ( rem TGS4: we are passed the game directory on the command line cd %1 -) ELSE IF EXIST "..\Game\B\tgstation.dmb" ( - rem TGS3: Game/B/tgstation.dmb exists, so build in Game/A +) ELSE IF EXIST "..\Game\B\shiptest.dmb" ( + rem TGS3: Game/B/shiptest.dmb exists, so build in Game/A cd ..\Game\A ) ELSE ( rem TGS3: Otherwise build in Game/B diff --git a/whitesands/code/game/area/ship_areas.dm b/whitesands/code/game/area/ship_areas.dm index bfd98c3ce05b..7839ef33aa92 100644 --- a/whitesands/code/game/area/ship_areas.dm +++ b/whitesands/code/game/area/ship_areas.dm @@ -298,29 +298,30 @@ NOTE: there are two lists of areas in the end of this file: centcom and station /// Maintenance Areas /// /area/ship/maintenance + name = "Maintenance" ambientsounds = MAINTENANCE lighting_colour_tube = "#ffe5cb" lighting_colour_bulb = "#ffdbb4" sound_environment = SOUND_AREA_TUNNEL_ENCLOSED /area/ship/maintenance/aft - name = "Aft Hallway" + name = "Aft Maintenance" icon_state = "amaint" /area/ship/maintenance/fore - name = "Fore Hallway" + name = "Fore Maintenance" icon_state = "fmaint" /area/ship/maintenance/starboard - name = "Starboard Hallway" + name = "Starboard Maintenance" icon_state = "smaint" /area/ship/maintenance/port - name = "Port Hallway" + name = "Port Maintenance" icon_state = "pmaint" /area/ship/maintenance/central - name = "Central Hallway" + name = "Central Maintenance" icon_state = "maintcentral" /area/ship/construction diff --git a/whitesands/code/game/machinery/Sleeper.dm b/whitesands/code/game/machinery/Sleeper.dm index 8959ba76bc1c..e8d8f9e1ebd3 100644 --- a/whitesands/code/game/machinery/Sleeper.dm +++ b/whitesands/code/game/machinery/Sleeper.dm @@ -213,17 +213,19 @@ visible_message("[usr] pries open [src].", "You pry open [src].") open_machine() -/obj/machinery/sleeper/ui_state(mob/user) - if(controls_inside) - return GLOB.notcontained_state - return GLOB.default_state - /obj/machinery/sleeper/ui_interact(mob/user, datum/tgui/ui) + if(src.contains(user) && !controls_inside) + return ui = SStgui.try_update_ui(user, src, ui) if(!ui) ui = new(user, src, "Sleeper", name) ui.open() +/obj/machinery/sleeper/ui_state(mob/user) + if(controls_inside) + return GLOB.notcontained_state + return GLOB.default_state + /obj/machinery/sleeper/AltClick(mob/user) if(!user.canUseTopic(src, !issilicon(user))) return @@ -245,6 +247,8 @@ open_machine() /obj/machinery/sleeper/ui_data(mob/user) + if(src.contains(user) && !controls_inside) + return var/list/data = list() data["occupied"] = occupant ? 1 : 0 data["open"] = state_open