mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
34
.github/workflows/ci_suite.yml
vendored
34
.github/workflows/ci_suite.yml
vendored
@@ -9,18 +9,18 @@ on:
|
|||||||
- upstream-merge
|
- upstream-merge
|
||||||
jobs:
|
jobs:
|
||||||
run_linters:
|
run_linters:
|
||||||
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
||||||
name: Run Linters
|
name: Run Linters
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v4
|
||||||
- name: Restore SpacemanDMM cache
|
- name: Restore SpacemanDMM cache
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/SpacemanDMM
|
path: ~/SpacemanDMM
|
||||||
key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }}
|
key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }}
|
||||||
- name: Restore Yarn cache
|
- name: Restore Yarn cache
|
||||||
uses: actions/cache@v2
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: tgui/.yarn/cache
|
path: tgui/.yarn/cache
|
||||||
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
||||||
@@ -30,7 +30,7 @@ jobs:
|
|||||||
${{ runner.os }}-
|
${{ runner.os }}-
|
||||||
- name: Install Tools
|
- name: Install Tools
|
||||||
run: |
|
run: |
|
||||||
pip3 install setuptools
|
pip3 install setuptools --upgrade
|
||||||
bash tools/ci/install_node.sh
|
bash tools/ci/install_node.sh
|
||||||
bash tools/ci/install_spaceman_dmm.sh dreamchecker
|
bash tools/ci/install_spaceman_dmm.sh dreamchecker
|
||||||
tools/bootstrap/python -c ''
|
tools/bootstrap/python -c ''
|
||||||
@@ -52,13 +52,13 @@ jobs:
|
|||||||
outputFile: output-annotations.txt
|
outputFile: output-annotations.txt
|
||||||
|
|
||||||
compile_all_maps:
|
compile_all_maps:
|
||||||
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
||||||
name: Compile Maps
|
name: Compile Maps
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Restore BYOND cache
|
- name: Restore BYOND cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/BYOND
|
path: ~/BYOND
|
||||||
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
||||||
@@ -67,9 +67,8 @@ jobs:
|
|||||||
bash tools/ci/install_byond.sh
|
bash tools/ci/install_byond.sh
|
||||||
source $HOME/BYOND/byond/bin/byondsetup
|
source $HOME/BYOND/byond/bin/byondsetup
|
||||||
tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS
|
tools/build/build --ci dm -DCIBUILDING -DCITESTING -DALL_MAPS
|
||||||
|
|
||||||
run_all_tests:
|
run_all_tests:
|
||||||
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
||||||
name: Integration Tests
|
name: Integration Tests
|
||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
services:
|
services:
|
||||||
@@ -81,14 +80,14 @@ jobs:
|
|||||||
- 3306
|
- 3306
|
||||||
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Restore BYOND cache
|
- name: Restore BYOND cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/BYOND
|
path: ~/BYOND
|
||||||
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
key: ${{ runner.os }}-byond-${{ secrets.CACHE_PURGE_KEY }}
|
||||||
- name: Restore Yarn cache
|
- name: Restore Yarn cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: tgui/.yarn/cache
|
path: tgui/.yarn/cache
|
||||||
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
||||||
@@ -116,15 +115,14 @@ jobs:
|
|||||||
source $HOME/BYOND/byond/bin/byondsetup
|
source $HOME/BYOND/byond/bin/byondsetup
|
||||||
tools/build/build --ci -DCIBUILDING
|
tools/build/build --ci -DCIBUILDING
|
||||||
bash tools/ci/run_server.sh
|
bash tools/ci/run_server.sh
|
||||||
|
|
||||||
test_windows:
|
test_windows:
|
||||||
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
if: ( !contains(github.event.head_commit.message, '[ci skip]') )
|
||||||
name: Windows Build
|
name: Windows Build
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Restore Yarn cache
|
- name: Restore Yarn cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: tgui/.yarn/cache
|
path: tgui/.yarn/cache
|
||||||
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
key: ${{ runner.os }}-yarn-${{ secrets.CACHE_PURGE_KEY }}-${{ hashFiles('tgui/yarn.lock') }}
|
||||||
@@ -141,7 +139,7 @@ jobs:
|
|||||||
md deploy
|
md deploy
|
||||||
bash tools/deploy.sh ./deploy
|
bash tools/deploy.sh ./deploy
|
||||||
- name: Deploy artifact
|
- name: Deploy artifact
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: deploy
|
name: deploy
|
||||||
path: deploy
|
path: deploy
|
||||||
|
|||||||
4
.github/workflows/generate_documentation.yml
vendored
4
.github/workflows/generate_documentation.yml
vendored
@@ -8,9 +8,9 @@ jobs:
|
|||||||
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
if: "!contains(github.event.head_commit.message, '[ci skip]')"
|
||||||
runs-on: ubuntu-20.04
|
runs-on: ubuntu-20.04
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v4
|
||||||
- name: Setup cache
|
- name: Setup cache
|
||||||
uses: actions/cache@v3
|
uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/SpacemanDMM
|
path: ~/SpacemanDMM
|
||||||
key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }}
|
key: ${{ runner.os }}-spacemandmm-${{ secrets.CACHE_PURGE_KEY }}
|
||||||
|
|||||||
2
.github/workflows/update_tgs_dmapi.yml
vendored
2
.github/workflows/update_tgs_dmapi.yml
vendored
@@ -11,7 +11,7 @@ jobs:
|
|||||||
name: Update the TGS DMAPI
|
name: Update the TGS DMAPI
|
||||||
steps:
|
steps:
|
||||||
- name: Clone
|
- name: Clone
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Branch
|
- name: Branch
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -91,7 +91,11 @@
|
|||||||
. = 1
|
. = 1
|
||||||
|
|
||||||
//Please don't roast me too hard
|
//Please don't roast me too hard
|
||||||
|
//Oh don't worry, We Will.
|
||||||
/client/MouseMove(object, location, control, params)
|
/client/MouseMove(object, location, control, params)
|
||||||
|
if(!COOLDOWN_FINISHED(src, next_mousemove))
|
||||||
|
return
|
||||||
|
COOLDOWN_START(src, next_mousemove, 0) //COOLDOWN_FINISHED() sees the world tick and cooldown timer being equal as a state wherein the cooldown has not finished. So the cooldown timer here is 0 to throttle only for the rest of the tick.
|
||||||
mouseParams = params
|
mouseParams = params
|
||||||
mouse_location_ref = WEAKREF(location)
|
mouse_location_ref = WEAKREF(location)
|
||||||
mouse_object_ref = WEAKREF(object)
|
mouse_object_ref = WEAKREF(object)
|
||||||
@@ -105,6 +109,9 @@
|
|||||||
..()
|
..()
|
||||||
|
|
||||||
/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
|
/client/MouseDrag(src_object,atom/over_object,src_location,over_location,src_control,over_control,params)
|
||||||
|
if(!COOLDOWN_FINISHED(src, next_mousedrag))
|
||||||
|
return
|
||||||
|
COOLDOWN_START(src, next_mousedrag, 0) //See comment in MouseMove() for why this is 0.
|
||||||
mouseParams = params
|
mouseParams = params
|
||||||
mouse_location_ref = WEAKREF(over_location)
|
mouse_location_ref = WEAKREF(over_location)
|
||||||
mouse_object_ref = WEAKREF(over_object)
|
mouse_object_ref = WEAKREF(over_object)
|
||||||
|
|||||||
@@ -347,3 +347,5 @@
|
|||||||
|
|
||||||
/datum/config_entry/str_list/randomizing_station_name_message
|
/datum/config_entry/str_list/randomizing_station_name_message
|
||||||
default = list()
|
default = list()
|
||||||
|
|
||||||
|
/datum/config_entry/flag/toast_notification_on_init
|
||||||
|
|||||||
@@ -223,6 +223,10 @@ GLOBAL_REAL(Master, /datum/controller/master) = new
|
|||||||
|
|
||||||
// Sort subsystems by display setting for easy access.
|
// Sort subsystems by display setting for easy access.
|
||||||
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display))
|
sortTim(subsystems, GLOBAL_PROC_REF(cmp_subsystem_display))
|
||||||
|
|
||||||
|
if(world.system_type == MS_WINDOWS && CONFIG_GET(flag/toast_notification_on_init) && !length(GLOB.clients))
|
||||||
|
world.shelleo("start /min powershell -ExecutionPolicy Bypass -File tools/initToast/initToast.ps1 -name \"[world.name]\" -icon %CD%\\icons\\ui_icons\\common\\tg_16.png -port [world.port]")
|
||||||
|
|
||||||
// Set world options.
|
// Set world options.
|
||||||
world.change_fps(CONFIG_GET(number/fps))
|
world.change_fps(CONFIG_GET(number/fps))
|
||||||
var/initialized_tod = REALTIMEOFDAY
|
var/initialized_tod = REALTIMEOFDAY
|
||||||
|
|||||||
@@ -668,6 +668,7 @@ RLD
|
|||||||
icon_state = "arcd"
|
icon_state = "arcd"
|
||||||
item_state = "oldrcd"
|
item_state = "oldrcd"
|
||||||
has_ammobar = FALSE
|
has_ammobar = FALSE
|
||||||
|
upgrade = TRUE
|
||||||
|
|
||||||
|
|
||||||
// RAPID LIGHTING DEVICE
|
// RAPID LIGHTING DEVICE
|
||||||
|
|||||||
@@ -6,10 +6,12 @@
|
|||||||
can_unwrench = TRUE
|
can_unwrench = TRUE
|
||||||
construction_type = /obj/item/pipe/binary
|
construction_type = /obj/item/pipe/binary
|
||||||
interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE
|
interaction_flags_machine = INTERACT_MACHINE_OFFLINE | INTERACT_MACHINE_WIRES_IF_OPEN | INTERACT_MACHINE_ALLOW_SILICON | INTERACT_MACHINE_OPEN_SILICON | INTERACT_MACHINE_SET_MACHINE
|
||||||
|
pipe_state = "relief_valve-t"
|
||||||
|
shift_underlay_only = FALSE
|
||||||
|
|
||||||
var/opened = FALSE
|
var/opened = FALSE
|
||||||
var/open_pressure = ONE_ATMOSPHERE * 3
|
var/open_pressure = ONE_ATMOSPHERE * 3
|
||||||
var/close_pressure = ONE_ATMOSPHERE
|
var/close_pressure = ONE_ATMOSPHERE
|
||||||
pipe_state = "relief_valve-t"
|
|
||||||
|
|
||||||
/obj/machinery/atmospherics/components/binary/relief_valve/layer1
|
/obj/machinery/atmospherics/components/binary/relief_valve/layer1
|
||||||
piping_layer = PIPING_LAYER_MIN
|
piping_layer = PIPING_LAYER_MIN
|
||||||
|
|||||||
@@ -24,11 +24,13 @@
|
|||||||
return ..()
|
return ..()
|
||||||
|
|
||||||
/obj/machinery/atmospherics/components/unary/portables_connector/update_icon_nopipes()
|
/obj/machinery/atmospherics/components/unary/portables_connector/update_icon_nopipes()
|
||||||
icon_state = "connector"
|
cut_overlays()
|
||||||
if(showpipe)
|
if(showpipe)
|
||||||
var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions, piping_layer = piping_layer)
|
var/image/cap = getpipeimage(icon, "connector_cap", initialize_directions, piping_layer = piping_layer)
|
||||||
add_overlay(cap)
|
add_overlay(cap)
|
||||||
|
|
||||||
|
icon_state = "connector"
|
||||||
|
|
||||||
/obj/machinery/atmospherics/components/unary/portables_connector/process_atmos()
|
/obj/machinery/atmospherics/components/unary/portables_connector/process_atmos()
|
||||||
if(!connected_device)
|
if(!connected_device)
|
||||||
return
|
return
|
||||||
@@ -37,7 +39,7 @@
|
|||||||
/obj/machinery/atmospherics/components/unary/portables_connector/can_unwrench(mob/user)
|
/obj/machinery/atmospherics/components/unary/portables_connector/can_unwrench(mob/user)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(. && connected_device)
|
if(. && connected_device)
|
||||||
to_chat(user, "<span class='warning'>You cannot unwrench [src], detach [connected_device] first!</span>")
|
to_chat(user, span_warning("You cannot unwrench [src], detach [connected_device] first!"))
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
/obj/machinery/atmospherics/components/unary/portables_connector/portableConnectorReturnAir()
|
/obj/machinery/atmospherics/components/unary/portables_connector/portableConnectorReturnAir()
|
||||||
|
|||||||
@@ -189,3 +189,7 @@
|
|||||||
|
|
||||||
/// AFK tracking
|
/// AFK tracking
|
||||||
var/last_activity = 0
|
var/last_activity = 0
|
||||||
|
|
||||||
|
/// The next point in time at which the client is allowed to send a mousemove() or mousedrag()
|
||||||
|
COOLDOWN_DECLARE(next_mousemove)
|
||||||
|
COOLDOWN_DECLARE(next_mousedrag)
|
||||||
|
|||||||
@@ -356,7 +356,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|||||||
///loadout stuff
|
///loadout stuff
|
||||||
var/gear_points = 10
|
var/gear_points = 10
|
||||||
var/list/gear_categories
|
var/list/gear_categories
|
||||||
var/list/loadout_data = list()
|
var/list/loadout_data
|
||||||
var/list/unlockable_loadout_data = list()
|
var/list/unlockable_loadout_data = list()
|
||||||
var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES
|
var/loadout_slot = 1 //goes from 1 to MAXIMUM_LOADOUT_SAVES
|
||||||
var/gear_category
|
var/gear_category
|
||||||
@@ -533,7 +533,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|||||||
//calculate your gear points from the chosen item
|
//calculate your gear points from the chosen item
|
||||||
gear_points = CONFIG_GET(number/initial_gear_points)
|
gear_points = CONFIG_GET(number/initial_gear_points)
|
||||||
var/list/chosen_gear = loadout_data["SAVE_[loadout_slot]"]
|
var/list/chosen_gear = loadout_data["SAVE_[loadout_slot]"]
|
||||||
if(chosen_gear)
|
if(islist(chosen_gear))
|
||||||
loadout_errors = 0
|
loadout_errors = 0
|
||||||
for(var/loadout_item in chosen_gear)
|
for(var/loadout_item in chosen_gear)
|
||||||
var/loadout_item_path = loadout_item[LOADOUT_ITEM]
|
var/loadout_item_path = loadout_item[LOADOUT_ITEM]
|
||||||
@@ -1229,6 +1229,11 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|||||||
dat += "</tr></table>"
|
dat += "</tr></table>"
|
||||||
if(LOADOUT_CHAR_TAB)
|
if(LOADOUT_CHAR_TAB)
|
||||||
dat += "<table align='center' width='100%'>"
|
dat += "<table align='center' width='100%'>"
|
||||||
|
dat += "<tr><td colspan=4><center><b>Loadout slot</b></center></td></tr>"
|
||||||
|
dat += "<tr><td colspan=4><center>"
|
||||||
|
for(var/iteration in 1 to MAXIMUM_LOADOUT_SAVES)
|
||||||
|
dat += "<a [loadout_slot == iteration ? "class='linkOn'" : "href='?_src_=prefs;preference=gear;select_slot=[iteration]'"]>[iteration]</a>"
|
||||||
|
dat += "</center></td></tr>"
|
||||||
dat += "<tr><td colspan=4><center><i style=\"color: grey;\">You can only choose one item per category, unless it's an item that spawns in your backpack or hands.</center></td></tr>"
|
dat += "<tr><td colspan=4><center><i style=\"color: grey;\">You can only choose one item per category, unless it's an item that spawns in your backpack or hands.</center></td></tr>"
|
||||||
dat += "<tr><td colspan=4><center><b>"
|
dat += "<tr><td colspan=4><center><b>"
|
||||||
|
|
||||||
@@ -4148,6 +4153,14 @@ GLOBAL_LIST_EMPTY(preferences_datums)
|
|||||||
qdel(offer_datum)
|
qdel(offer_datum)
|
||||||
|
|
||||||
if(href_list["preference"] == "gear")
|
if(href_list["preference"] == "gear")
|
||||||
|
if(href_list["select_slot"])
|
||||||
|
var/chosen = text2num(href_list["select_slot"])
|
||||||
|
if(!chosen)
|
||||||
|
return
|
||||||
|
chosen = floor(chosen)
|
||||||
|
if(chosen > MAXIMUM_LOADOUT_SAVES || chosen < 1)
|
||||||
|
return
|
||||||
|
loadout_slot = chosen
|
||||||
if(href_list["clear_loadout"])
|
if(href_list["clear_loadout"])
|
||||||
loadout_data["SAVE_[loadout_slot]"] = list()
|
loadout_data["SAVE_[loadout_slot]"] = list()
|
||||||
save_preferences()
|
save_preferences()
|
||||||
|
|||||||
@@ -1122,7 +1122,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
belly_prefs = json_from_file["belly_prefs"]
|
belly_prefs = json_from_file["belly_prefs"]
|
||||||
|
|
||||||
//gear loadout
|
//gear loadout
|
||||||
if(S["loadout"])
|
if(istext(S["loadout"]))
|
||||||
loadout_data = safe_json_decode(S["loadout"])
|
loadout_data = safe_json_decode(S["loadout"])
|
||||||
var/list/sanitize_current_slot = loadout_data["SAVE_[loadout_slot]"]
|
var/list/sanitize_current_slot = loadout_data["SAVE_[loadout_slot]"]
|
||||||
if(LAZYLEN(sanitize_current_slot))
|
if(LAZYLEN(sanitize_current_slot))
|
||||||
@@ -1150,6 +1150,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
loadout_data["SAVE_[loadout_slot]"] = list()
|
loadout_data["SAVE_[loadout_slot]"] = list()
|
||||||
else
|
else
|
||||||
loadout_data = list()
|
loadout_data = list()
|
||||||
|
//let's remember their last used slot, i'm sure "oops i brought the wrong stuff" will be an issue now
|
||||||
|
S["loadout_slot"] >> loadout_slot
|
||||||
|
|
||||||
//try to fix any outdated data if necessary
|
//try to fix any outdated data if necessary
|
||||||
//preference updating will handle saving the updated data for us.
|
//preference updating will handle saving the updated data for us.
|
||||||
@@ -1384,6 +1386,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
S["pregnancy_inflation"] >> pregnancy_inflation
|
S["pregnancy_inflation"] >> pregnancy_inflation
|
||||||
S["pregnancy_breast_growth"] >> pregnancy_breast_growth
|
S["pregnancy_breast_growth"] >> pregnancy_breast_growth
|
||||||
//SPLURT EDIT END
|
//SPLURT EDIT END
|
||||||
|
|
||||||
|
loadout_slot = sanitize_num_clamp(loadout_slot, 1, MAXIMUM_LOADOUT_SAVES, 1, TRUE)
|
||||||
|
|
||||||
cit_character_pref_load(S)
|
cit_character_pref_load(S)
|
||||||
|
|
||||||
@@ -1628,10 +1632,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car
|
|||||||
//SPLURT EDIT END
|
//SPLURT EDIT END
|
||||||
|
|
||||||
//gear loadout
|
//gear loadout
|
||||||
if(length(loadout_data))
|
if(islist(loadout_data))
|
||||||
S["loadout"] << safe_json_encode(loadout_data)
|
S["loadout"] << safe_json_encode(loadout_data)
|
||||||
else
|
else
|
||||||
S["loadout"] << safe_json_encode(list())
|
S["loadout"] << safe_json_encode(list())
|
||||||
|
WRITE_FILE(S["loadout_slot"], loadout_slot)
|
||||||
|
|
||||||
if(length(tcg_cards))
|
if(length(tcg_cards))
|
||||||
S["tcg_cards"] << safe_json_encode(tcg_cards)
|
S["tcg_cards"] << safe_json_encode(tcg_cards)
|
||||||
|
|||||||
@@ -13,28 +13,40 @@
|
|||||||
. = ..()
|
. = ..()
|
||||||
AddComponent(/datum/component/plumbing/simple_supply, bolt)
|
AddComponent(/datum/component/plumbing/simple_supply, bolt)
|
||||||
|
|
||||||
/obj/machinery/plumbing/grinder_chemical/can_be_rotated(mob/user,rotation_type)
|
/obj/machinery/plumbing/grinder_chemical/examine(mob/user)
|
||||||
|
. = ..()
|
||||||
|
. += span_notice("The input direction for this item can be rotated by using CTRL+SHIFT+CLICK")
|
||||||
|
|
||||||
|
/obj/machinery/plumbing/grinder_chemical/CtrlShiftClick(mob/user)
|
||||||
if(anchored)
|
if(anchored)
|
||||||
to_chat(user, "<span class='warning'>It is fastened to the floor!</span>")
|
to_chat(user, "<span class='warning'>It is fastened to the floor!</span>")
|
||||||
return FALSE
|
return FALSE
|
||||||
|
|
||||||
switch(eat_dir)
|
switch(eat_dir)
|
||||||
if(WEST)
|
if(WEST)
|
||||||
|
balloon_alert(user, "set to north")
|
||||||
eat_dir = NORTH
|
eat_dir = NORTH
|
||||||
return TRUE
|
return TRUE
|
||||||
if(EAST)
|
if(EAST)
|
||||||
|
balloon_alert(user, "set to south")
|
||||||
eat_dir = SOUTH
|
eat_dir = SOUTH
|
||||||
return TRUE
|
return TRUE
|
||||||
if(NORTH)
|
if(NORTH)
|
||||||
|
balloon_alert(user, "set to east")
|
||||||
eat_dir = EAST
|
eat_dir = EAST
|
||||||
return TRUE
|
return TRUE
|
||||||
if(SOUTH)
|
if(SOUTH)
|
||||||
|
balloon_alert(user, "set to west")
|
||||||
eat_dir = WEST
|
eat_dir = WEST
|
||||||
return TRUE
|
return TRUE
|
||||||
|
|
||||||
|
return TRUE
|
||||||
|
|
||||||
/obj/machinery/plumbing/grinder_chemical/CanAllowThrough(atom/movable/AM)
|
/obj/machinery/plumbing/grinder_chemical/CanAllowThrough(atom/movable/AM)
|
||||||
. = ..()
|
. = ..()
|
||||||
if(!anchored)
|
if(!anchored)
|
||||||
return
|
return
|
||||||
|
|
||||||
var/move_dir = get_dir(loc, AM.loc)
|
var/move_dir = get_dir(loc, AM.loc)
|
||||||
if(move_dir == eat_dir)
|
if(move_dir == eat_dir)
|
||||||
return TRUE
|
return TRUE
|
||||||
@@ -61,4 +73,8 @@
|
|||||||
return
|
return
|
||||||
I.on_grind()
|
I.on_grind()
|
||||||
reagents.add_reagent_list(I.grind_results)
|
reagents.add_reagent_list(I.grind_results)
|
||||||
|
|
||||||
|
if(I.reagents) //If the thing has any reagents inside of it, grind them up.
|
||||||
|
I.reagents.trans_to(reagents, I.reagents.total_volume)
|
||||||
|
|
||||||
qdel(I)
|
qdel(I)
|
||||||
|
|||||||
@@ -543,3 +543,7 @@ RANDOMIZING_STATION_NAME_MESSAGE %NEW_STATION_NAME%? %NEW_STATION_NAME%! %NEW_ST
|
|||||||
RANDOMIZING_STATION_NAME_MESSAGE A popular social network application had already claimed the trademark of %CURRENT_STATION_NAME%, the station has been renamed to %NEW_STATION_NAME%.
|
RANDOMIZING_STATION_NAME_MESSAGE A popular social network application had already claimed the trademark of %CURRENT_STATION_NAME%, the station has been renamed to %NEW_STATION_NAME%.
|
||||||
RANDOMIZING_STATION_NAME_MESSAGE We're pulling a prank on %RANDOM_CREWMEMBER%, so we've changed the station's name to %NEW_STATION_NAME%.
|
RANDOMIZING_STATION_NAME_MESSAGE We're pulling a prank on %RANDOM_CREWMEMBER%, so we've changed the station's name to %NEW_STATION_NAME%.
|
||||||
RANDOMIZING_STATION_NAME_MESSAGE %RANDOM_NAME% made us change the station name, which is now %NEW_STATION_NAME%.
|
RANDOMIZING_STATION_NAME_MESSAGE %RANDOM_NAME% made us change the station name, which is now %NEW_STATION_NAME%.
|
||||||
|
|
||||||
|
## Comment to disable sending a toast notification on the host server when initializations complete.
|
||||||
|
## Even if this is enabled, a notification will only be sent if there are no clients connected.
|
||||||
|
TOAST_NOTIFICATION_ON_INIT
|
||||||
|
|||||||
@@ -8,14 +8,15 @@ export BYOND_MAJOR=515
|
|||||||
export BYOND_MINOR=1634
|
export BYOND_MINOR=1634
|
||||||
|
|
||||||
#rust_g git tag
|
#rust_g git tag
|
||||||
export RUST_G_VERSION=3.0.0
|
export RUST_G_VERSION=3.3.0
|
||||||
|
|
||||||
#node version
|
#node version
|
||||||
export NODE_VERSION=16
|
export NODE_VERSION_LTS=20.13.0
|
||||||
export NODE_VERSION_PRECISE=16.13.1
|
# compatiblility mode MUST work with windows 7
|
||||||
|
export NODE_VERSION_COMPAT=20.2.0
|
||||||
|
|
||||||
# SpacemanDMM git tag
|
# SpacemanDMM git tag
|
||||||
export SPACEMAN_DMM_VERSION=suite-1.8
|
export SPACEMAN_DMM_VERSION=suite-1.9
|
||||||
|
|
||||||
# Python version for mapmerge and other tools
|
# Python version for mapmerge and other tools
|
||||||
export PYTHON_VERSION=3.9.0
|
export PYTHON_VERSION=3.9.0
|
||||||
|
|||||||
BIN
icons/ui_icons/common/tg_16.png
Normal file
BIN
icons/ui_icons/common/tg_16.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 795 B |
@@ -29,7 +29,16 @@ $Cache = "$BaseDir\.cache"
|
|||||||
if ($Env:TG_BOOTSTRAP_CACHE) {
|
if ($Env:TG_BOOTSTRAP_CACHE) {
|
||||||
$Cache = $Env:TG_BOOTSTRAP_CACHE
|
$Cache = $Env:TG_BOOTSTRAP_CACHE
|
||||||
}
|
}
|
||||||
$NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_PRECISE"
|
# Get OS version
|
||||||
|
$OSMajor = (Get-WmiObject -Class Win32_OperatingSystem).Version.Split(".")[0]
|
||||||
|
# Set Node version based on OS version
|
||||||
|
if ($OSMajor -lt 10) {
|
||||||
|
# Anything under Windows 10
|
||||||
|
$NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_COMPAT"
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$NodeVersion = Extract-Variable -Path "$BaseDir\..\..\dependencies.sh" -Key "NODE_VERSION_LTS"
|
||||||
|
}
|
||||||
$NodeSource = "https://nodejs.org/download/release/v$NodeVersion/win-x64/node.exe"
|
$NodeSource = "https://nodejs.org/download/release/v$NodeVersion/win-x64/node.exe"
|
||||||
$NodeTargetDir = "$Cache\node-v$NodeVersion-x64"
|
$NodeTargetDir = "$Cache\node-v$NodeVersion-x64"
|
||||||
$NodeTarget = "$NodeTargetDir\node.exe"
|
$NodeTarget = "$NodeTargetDir\node.exe"
|
||||||
|
|||||||
@@ -5,6 +5,6 @@ source dependencies.sh
|
|||||||
|
|
||||||
if [[ -e ~/.nvm/nvm.sh ]]; then
|
if [[ -e ~/.nvm/nvm.sh ]]; then
|
||||||
source ~/.nvm/nvm.sh
|
source ~/.nvm/nvm.sh
|
||||||
nvm install $NODE_VERSION
|
nvm install $NODE_VERSION_COMPAT
|
||||||
nvm use $NODE_VERSION
|
nvm use $NODE_VERSION_COMPAT
|
||||||
fi
|
fi
|
||||||
|
|||||||
32
tools/initToast/initToast.ps1
Normal file
32
tools/initToast/initToast.ps1
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
param([string]$name, [string]$icon, [Int32]$port=80)
|
||||||
|
|
||||||
|
$hkcu = [Microsoft.Win32.RegistryKey]::OpenBaseKey('CurrentUser','default')
|
||||||
|
|
||||||
|
$amuid_hkey = $hkcu.CreateSubKey('SOFTWARE\Classes\AppUserModelId\Tgstation.Tgstation', $true, [Microsoft.Win32.RegistryOptions]::Volatile)
|
||||||
|
|
||||||
|
if ($name) { $amuid_hkey.SetValue('DisplayName', $name) }
|
||||||
|
if ($icon) { $amuid_hkey.SetValue('IconUri', $icon) }
|
||||||
|
|
||||||
|
[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
|
||||||
|
$notifier = [Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier('Tgstation.Tgstation')
|
||||||
|
|
||||||
|
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom, ContentType = WindowsRuntime] > $null
|
||||||
|
$xml = New-Object Windows.Data.Xml.Dom.XmlDocument
|
||||||
|
|
||||||
|
$xml.LoadXml(@"
|
||||||
|
<toast>
|
||||||
|
<visual>
|
||||||
|
<binding template="ToastGeneric">
|
||||||
|
<text>Initialization Complete</text>
|
||||||
|
</binding>
|
||||||
|
</visual>
|
||||||
|
<actions>
|
||||||
|
<action content="Launch Dream Seeker" activationType="protocol" arguments="byond://127.0.0.1:$port"/>
|
||||||
|
</actions>
|
||||||
|
</toast>
|
||||||
|
"@)
|
||||||
|
|
||||||
|
[Windows.UI.Notifications.ToastNotification, Windows.UI.Notifications, ContentType = WindowsRuntime] > $null
|
||||||
|
$toast = New-Object Windows.UI.Notifications.ToastNotification $xml
|
||||||
|
|
||||||
|
$notifier.Show($toast)
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
pygit2==1.11.1
|
pygit2==1.11.1
|
||||||
bidict==0.22.0
|
bidict==0.22.1
|
||||||
Pillow==10.3.0
|
Pillow==10.3.0
|
||||||
|
|
||||||
# changelogs
|
# changelogs
|
||||||
|
|||||||
Reference in New Issue
Block a user