Skip to content

Commit

Permalink
Merge upstream 13.01.2025 (#981)
Browse files Browse the repository at this point in the history
## Что этот PR делает

Merge upstream 13.01.2025

## Summary by Sourcery

Update stack crafting UI, ethereal interactions with APCs and power
stores, and fix various bugs.

New Features:
- Added wirenet components for transmitting data over cable networks.
- Assembly circuit shells now draw power from attached machines, mechs,
modsuits, or borgs.

Tests:
- Added unit tests for ethereal revival.
  • Loading branch information
Gaxeer authored Jan 13, 2025
2 parents c6deac3 + 927ae2e commit 9f28617
Show file tree
Hide file tree
Showing 101 changed files with 9,399 additions and 4,899 deletions.
1,922 changes: 1,366 additions & 556 deletions _maps/RandomRuins/SpaceRuins/turretedoutpost.dmm

Large diffs are not rendered by default.

1,872 changes: 1,688 additions & 184 deletions _maps/map_files/Birdshot/birdshot.dmm

Large diffs are not rendered by default.

8,746 changes: 4,971 additions & 3,775 deletions _maps/map_files/IceBoxStation/IceBoxStation.dmm

Large diffs are not rendered by default.

45 changes: 28 additions & 17 deletions _maps/map_files/MetaStation/MetaStation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -2035,6 +2035,10 @@
dir = 4
},
/obj/effect/turf_decal/tile/purple/half/contrasted,
/obj/machinery/camera/directional/south{
network = list("ss13","rd");
c_tag = "Science Lobby"
},
/turf/open/floor/iron/white,
/area/station/science/lobby)
"aLW" = (
Expand Down Expand Up @@ -11065,8 +11069,8 @@
/area/station/medical/chemistry)
"dYK" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/siding/wood{
dir = 1
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
},
/turf/open/floor/wood,
/area/station/commons/lounge)
Expand Down Expand Up @@ -16029,10 +16033,6 @@
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/structure/cable,
/obj/machinery/camera/directional/north{
c_tag = "Science Lobby";
network = list("ss13","rd")
},
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 1
},
Expand Down Expand Up @@ -19463,9 +19463,6 @@
/turf/open/floor/iron,
/area/station/engineering/main)
"hab" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{
dir = 1
},
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
Expand Down Expand Up @@ -19720,10 +19717,6 @@
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/engineering/break_room)
"heR" = (
/obj/structure/cable,
/turf/closed/wall,
/area/station/command/heads_quarters/qm)
"heS" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/mop_bucket/janitorialcart,
Expand Down Expand Up @@ -27772,6 +27765,15 @@
/obj/machinery/light/directional/north,
/turf/open/floor/iron/white,
/area/station/medical/virology)
"jPw" = (
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/turf_decal/siding/wood/corner{
dir = 1
},
/turf/open/floor/wood,
/area/station/commons/lounge)
"jPE" = (
/obj/structure/sign/map/left{
desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown).";
Expand Down Expand Up @@ -33518,6 +33520,9 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
/obj/effect/turf_decal/siding/wood{
dir = 1
},
/turf/open/floor/wood,
/area/station/commons/lounge)
"lWq" = (
Expand Down Expand Up @@ -44177,6 +44182,12 @@
/obj/effect/turf_decal/tile/neutral/fourcorners,
/turf/open/floor/iron/dark,
/area/station/science/ordnance/testlab)
"pIM" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 8
},
/turf/open/floor/wood,
/area/station/commons/lounge)
"pIU" = (
/obj/structure/closet/secure_closet/medical1,
/obj/effect/turf_decal/tile/green/half/contrasted{
Expand Down Expand Up @@ -59653,7 +59664,7 @@
/obj/structure/sign/directions/command{
pixel_y = -8
},
/turf/closed/wall/r_wall,
/turf/closed/wall,
/area/station/commons/storage/tools)
"uZo" = (
/obj/machinery/light/small/directional/north,
Expand Down Expand Up @@ -89183,7 +89194,7 @@ aaa
jXu
twr
nsT
heR
kQP
kQP
hqD
kQP
Expand Down Expand Up @@ -102056,7 +102067,7 @@ twN
lkc
hhN
pBi
hkG
pIM
xEJ
yjc
crf
Expand Down Expand Up @@ -103853,7 +103864,7 @@ vFB
kFp
aeb
bvJ
lWm
jPw
kdN
wSs
jGA
Expand Down
2 changes: 2 additions & 0 deletions _maps/map_files/Mining/Lavaland.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -1484,6 +1484,7 @@
/obj/effect/turf_decal/tile/green/opposingcorners{
dir = 1
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/side{
dir = 1
},
Expand Down Expand Up @@ -7301,6 +7302,7 @@
/obj/structure/cable,
/obj/effect/turf_decal/trimline/green/filled/line,
/obj/effect/turf_decal/trimline/blue/filled/warning,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/turf/open/floor/iron/dark/smooth_edge{
dir = 1
},
Expand Down
17 changes: 4 additions & 13 deletions _maps/map_files/tramstation/tramstation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -36872,13 +36872,6 @@
},
/turf/open/floor/catwalk_floor,
/area/station/hallway/primary/tram/right)
"lVh" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4,
/obj/structure/cable,
/turf/open/floor/iron,
/area/station/hallway/secondary/command)
"lVi" = (
/turf/closed/wall,
/area/station/maintenance/department/science)
Expand Down Expand Up @@ -57397,10 +57390,8 @@
/turf/open/floor/iron/white,
/area/station/science/xenobiology)
"tms" = (
/obj/machinery/power/smes{
charge = 5e+06
},
/obj/structure/cable,
/obj/machinery/power/smes/full,
/turf/open/floor/circuit/telecomms/mainframe,
/area/station/tcommsat/server)
"tmz" = (
Expand Down Expand Up @@ -153688,8 +153679,8 @@ dDm
uoO
uoO
fss
lVh
lVh
fss
fss
nYr
rEq
bSS
Expand Down Expand Up @@ -202647,4 +202638,4 @@ pMW
pMW
pMW
pMW
"}
"}
14 changes: 7 additions & 7 deletions _maps/map_files/wawastation/wawastation.dmm
Original file line number Diff line number Diff line change
Expand Up @@ -31860,12 +31860,16 @@
"ljU" = (
/obj/effect/turf_decal/tile/dark_red/opposingcorners,
/obj/structure/table,
/obj/item/clothing/head/hats/tophat,
/obj/item/book/manual/wiki/barman_recipes{
pixel_x = -4;
pixel_y = 7
},
/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2,
/obj/item/holosign_creator/robot_seat/bar{
pixel_y = 4;
pixel_x = 6
},
/obj/item/clothing/head/hats/tophat,
/turf/open/floor/iron/dark,
/area/station/service/bar)
"ljZ" = (
Expand Down Expand Up @@ -46913,13 +46917,11 @@
/area/station/medical/exam_room)
"qGD" = (
/obj/structure/table,
/obj/machinery/reagentgrinder{
pixel_y = 8
},
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/obj/item/stack/sheet/mineral/plasma,
/obj/machinery/reagentgrinder,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"qGN" = (
Expand Down Expand Up @@ -48804,11 +48806,9 @@
/area/station/engineering/atmos/upper)
"rmi" = (
/obj/structure/table,
/obj/machinery/reagentgrinder{
pixel_y = 8
},
/obj/effect/turf_decal/stripes/line,
/obj/item/stack/sheet/mineral/plasma,
/obj/machinery/reagentgrinder,
/turf/open/floor/iron/white/textured_large,
/area/station/science/xenobiology)
"rms" = (
Expand Down
3 changes: 3 additions & 0 deletions code/__DEFINES/dcs/signals/signals_circuit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@
/// Sent when a circuit is removed from its shell
#define COMSIG_CIRCUIT_SHELL_REMOVED "circuit_shell_removed"

/// Send to [/obj/item/circuit_component] when it is added to a circuit. (/obj/item/integrated_circuit)
#define COMSIG_CIRCUIT_COMPONENT_ADDED "circuit_component_added"

/// Sent to [/obj/item/circuit_component] when it is removed from a circuit. (/obj/item/integrated_circuit)
#define COMSIG_CIRCUIT_COMPONENT_REMOVED "circuit_component_removed"

Expand Down
24 changes: 24 additions & 0 deletions code/__DEFINES/dcs/signals/signals_object.dm
Original file line number Diff line number Diff line change
Expand Up @@ -550,3 +550,27 @@
#define COMSIG_WINGS_OPENED "wings_opened"
/// Sent from /obj/item/organ/wings/functional/proc/close_wings(): (mob/living/carbon/owner)
#define COMSIG_WINGS_CLOSED "wings_closed"

/// Sent from /obj/item/assembly/on_attach(): (atom/holder)
#define COMSIG_ASSEMBLY_ATTACHED "assembly_attached"

/// Sent from /obj/item/assembly/on_detach(): (atom/holder)
#define COMSIG_ASSEMBLY_DETACHED "assembly_detached"

/*
* The following two signals are separate from the above two because buttons don't set the holder of the inserted assembly.
* This causes subtle behavioral differences that future handlers for these signals may need to account for,
* even if none of the currently implemented handlers do.
*/

/// Sent from /obj/machinery/button/assembly_act(obj/machinery/button/button, mob/user)
#define COMSIG_ASSEMBLY_ADDED_TO_BUTTON "assembly_added_to_button"

/// Sent from /obj/machinery/button/remove_assembly(obj/machinery/button/button, mob/user)
#define COMSIG_ASSEMBLY_REMOVED_FROM_BUTTON "assembly_removed_from_button"

/// Sent from /datum/powernet/add_cable()
#define COMSIG_CABLE_ADDED_TO_POWERNET "cable_added_to_powernet"

/// Sent from /datum/powernet/remove_cable()
#define COMSIG_CABLE_REMOVED_FROM_POWERNET "cable_removed_from_powernet"
4 changes: 4 additions & 0 deletions code/__DEFINES/dcs/signals/signals_powernet.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
// Powernet signals

/// Sent when a wirenet circuit component sends a signal (list/data)
#define COMSIG_POWERNET_CIRCUIT_TRANSMISSION "powernet_circuit_transmision"
18 changes: 10 additions & 8 deletions code/__DEFINES/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -297,14 +297,16 @@
//Used as an upper limit for species that continuously gain nutriment
#define NUTRITION_LEVEL_ALMOST_FULL 535

//Charge levels for Ethereals, in joules.
// The standard charge all other Ethereal charge defines are scaled against.
#define STANDARD_ETHEREAL_CHARGE (1 * STANDARD_CELL_CHARGE)
// Charge levels for Ethereals, in joules.
#define ETHEREAL_CHARGE_NONE 0
#define ETHEREAL_CHARGE_LOWPOWER (0.4 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_NORMAL (1 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_ALMOSTFULL (1.5 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_FULL (2 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_OVERLOAD (2.5 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_DANGEROUS (3 * STANDARD_CELL_CHARGE)
#define ETHEREAL_CHARGE_LOWPOWER (0.4 * STANDARD_ETHEREAL_CHARGE)
#define ETHEREAL_CHARGE_NORMAL (1 * STANDARD_ETHEREAL_CHARGE)
#define ETHEREAL_CHARGE_ALMOSTFULL (1.5 * STANDARD_ETHEREAL_CHARGE)
#define ETHEREAL_CHARGE_FULL (2 * STANDARD_ETHEREAL_CHARGE)
#define ETHEREAL_CHARGE_OVERLOAD (2.5 * STANDARD_ETHEREAL_CHARGE)
#define ETHEREAL_CHARGE_DANGEROUS (3 * STANDARD_ETHEREAL_CHARGE)


#define CRYSTALIZE_COOLDOWN_LENGTH (120 SECONDS)
Expand Down Expand Up @@ -452,7 +454,7 @@
#define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you

#define HUNGER_FACTOR 0.05 //factor at which mob nutrition decreases
#define ETHEREAL_DISCHARGE_RATE (8e-3 * STANDARD_CELL_CHARGE) // Rate at which ethereal stomach charge decreases
#define ETHEREAL_DISCHARGE_RATE (1e-3 * STANDARD_ETHEREAL_CHARGE) // Rate at which ethereal stomach charge decreases
/// How much nutrition eating clothes as moth gives and drains
#define CLOTHING_NUTRITION_GAIN 15
#define REAGENTS_METABOLISM 0.2 //How many units of reagent are consumed per second, by default.
Expand Down
4 changes: 2 additions & 2 deletions code/__DEFINES/projectiles.dm
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
/// The caliber used by the the M-90gl Carbine, and NT-ARG 'Boarder'.
#define CALIBER_A223 "a223"
/// The caliber used by bolt action rifles.
#define CALIBER_STRILKA310 ".310_strilka"
#define CALIBER_STRILKA310 ".310 strilka"
/// The caliber used by shotguns.
#define CALIBER_SHOTGUN "shotgun"
/// The caliber used by grenade launchers.
Expand All @@ -49,7 +49,7 @@
/// The caliber used by most energy guns.
#define CALIBER_ENERGY "energy"
/// The acliber used by foam force and donksoft toy guns.
#define CALIBER_FOAM "foam_force"
#define CALIBER_FOAM "foam force"
/// The caliber used by the bow and arrow.
#define CALIBER_ARROW "arrow"
/// The caliber used by the harpoon gun.
Expand Down
2 changes: 2 additions & 0 deletions code/controllers/configuration/entries/game_options.dm
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,8 @@

/datum/config_entry/flag/disallow_circuit_sounds

/datum/config_entry/flag/tts_no_whisper

/datum/config_entry/string/tts_http_url
protection = CONFIG_ENTRY_LOCKED

Expand Down
10 changes: 9 additions & 1 deletion code/controllers/subsystem/id_access.dm
Original file line number Diff line number Diff line change
Expand Up @@ -452,9 +452,13 @@ SUBSYSTEM_DEF(id_access)
id_card.big_pointer = trim.big_pointer
id_card.pointer_color = trim.pointer_color

if(!check_forged || !id_card.forged)
if (!check_forged || !id_card.forged)
id_card.assignment = trim.assignment

if (ishuman(id_card.loc))
var/mob/living/carbon/human/owner = id_card.loc
owner.sec_hud_set_ID()

// We'll let the chameleon action update the card's label as necessary instead of doing it here.

/**
Expand All @@ -474,6 +478,10 @@ SUBSYSTEM_DEF(id_access)
id_card.big_pointer = id_card.trim.big_pointer
id_card.pointer_color = id_card.trim.pointer_color

if (ishuman(id_card.loc))
var/mob/living/carbon/human/owner = id_card.loc
owner.sec_hud_set_ID()

/**
* Adds the accesses associated with a trim to an ID card.
*
Expand Down
12 changes: 6 additions & 6 deletions code/controllers/subsystem/pai.dm
Original file line number Diff line number Diff line change
Expand Up @@ -52,18 +52,18 @@ SUBSYSTEM_DEF(pai)
return FALSE
switch(action)
if("submit")
candidate.comments = trim(params["comments"], MAX_BROADCAST_LEN)
candidate.description = trim(params["description"], MAX_BROADCAST_LEN)
candidate.name = trim(params["name"], MAX_NAME_LEN)
candidate.comments = reject_bad_name(params["comments"], allow_numbers = TRUE, max_length = MAX_BROADCAST_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.description = reject_bad_name(params["description"], allow_numbers = TRUE, max_length = MAX_BROADCAST_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.name = reject_bad_name(params["name"], allow_numbers = TRUE, max_length = MAX_NAME_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.ckey = user.ckey
candidate.ready = TRUE
ui.close()
submit_alert(user)
return TRUE
if("save")
candidate.comments = params["comments"]
candidate.description = params["description"]
candidate.name = params["name"]
candidate.comments = reject_bad_name(params["comments"], allow_numbers = TRUE, max_length = MAX_BROADCAST_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.description = reject_bad_name(params["description"], allow_numbers = TRUE, max_length = MAX_BROADCAST_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.name = reject_bad_name(params["name"], allow_numbers = TRUE, max_length = MAX_NAME_LEN, strict = TRUE, cap_after_symbols = FALSE) || "Unknown"
candidate.savefile_save(user)
return TRUE
if("load")
Expand Down
Loading

0 comments on commit 9f28617

Please sign in to comment.