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