Skip to content

Commit fe357ac

Browse files
MistakeNot4892atlantisczewoody41
committed
Updating Cynosure branch to compile on current Neb dev.
Work on getting the Cynosure map to playable state. This is a squash of multiple commits, important changes are listed below: - Fixes roundstart power, and in general improves the power system by using a code-defined SMES presets for each function. Modifies SMES code to not include an extra coil in every SMES. - Fixes networking/telecommunications. Currently has a form of small room next to the Site Administrator's office (where SA's private bathroom was) with all the necessary equipment. This may be relocated to a more permanent place in the future. Also maps in bunch of relays all around the station (these are like WiFi antennas for pretty much everything) - Copies over telecommunication channels from the Exodus map (may be modified in the future, if needed). Radios now work. - Removes the telecommunications satellite Z level altogether, as it is completely incompatible with the new networking and radio system. - Fixes inability to late-join by mapping in Arrivals landmarks. Currently not using the original moving shuttle, instead you spawn next to the airlock where the shuttle docked. - Reactor cold loop is no longer 'accidentally' connected to the station's distribution loop via a misplaced valve. While this was indeed a very innovative and effective central heating solution, staff has complained of 1000°C air coming out of vents. - Drops outdoor temperature to -5°C - Refactors all on-station areas to follow a common naming scheme - /area/cynosure/(type/department)/(floor)/(area name) - Replace substation scrubber valves with open variants - Fix leaking pipes in Research, which tripped the shutoff valves - Fix probably all airlocks on the station - Fix/Setup the Cargo, Emergency and Escape Pod shuttles. Area permissions, new areas icons (#2) * Fixed secure access for all departments, added new access operator: Opion to unsecure areas inside secure areas * Added missing new icon file * fixed access for jobs, added job overrides for cynosure * fixed access merge * fixed prison access * Merged job overrides to one file Ore box + Unloader fix - Fix unloader not updating ore box on-examine contents when removing ores - Tweak ore box examine to skip ores that have 0 pieces contained in the box. Assorted cynosure map fixes - Fix miners not having access to their own locker room - Remapped refinery room to use the new machines - Added assorted circuit boards to tech storage - Fix atmospherics holding tank computers as well as the supermatter computer not being linked to their vents/injectors/sensors. Fixed signs and lights (#3) Shutter and button fixes (#4) * Fixed signs and lights * Shutter fixes, directional signs fixes, surgery holosign fixes, blast door button fixes Updating Cynosure to compile on current Neb. Co-authored-by: Atlantis <git@stepanekjakub.cz> Co-authored-by: woody41 <26313915+woody41@users.noreply.github.com>
1 parent ca9872d commit fe357ac

File tree

457 files changed

+668177
-805
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

457 files changed

+668177
-805
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
runs-on: ubuntu-latest
101101
strategy:
102102
matrix:
103-
map_path: [example, tradeship, exodus, ministation, shaded_hills, away_sites_testing, modpack_testing, planets_testing]
103+
map_path: [example, tradeship, exodus, ministation, shaded_hills, cynosure, away_sites_testing, modpack_testing, planets_testing]
104104
steps:
105105
- uses: actions/checkout@v3
106106
- name: Setup Cache
Lines changed: 69 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,72 @@
11
/**Define a poster's decl and its mapper type */
22
#define DEFINE_POSTER(TYPENAME, ICONSTATE, NAME, DESC)\
33
/decl/poster_design/##TYPENAME{name = NAME; desc = DESC; icon_state = ICONSTATE;};\
4-
/obj/structure/sign/poster/##TYPENAME{poster_design = /decl/poster_design/##TYPENAME; name = NAME; icon_state = ICONSTATE;};
4+
/obj/structure/sign/poster/##TYPENAME{poster_design = /decl/poster_design/##TYPENAME; name = NAME; icon_state = ICONSTATE;};
5+
6+
// Defines an escape pod shuttle datum and all relevant landmarks.
7+
#define DEFINE_ESCAPE_POD(NAME, ID) \
8+
/datum/shuttle/autodock/ferry/escape_pod/pod_##ID { \
9+
shuttle_area = /area/shuttle/escape_pod_##ID; \
10+
name = "Escape Pod " + #NAME; \
11+
dock_target = "escape_pod_" + #ID; \
12+
arming_controller = "escape_pod_"+ #ID +"_berth"; \
13+
waypoint_station = "escape_pod_"+ #ID +"_start"; \
14+
landmark_transition = "escape_pod_"+ #ID +"_transit"; \
15+
waypoint_offsite = "escape_pod_"+ #ID +"_out"; \
16+
} \
17+
/obj/effect/shuttle_landmark/escape_pod/start/pod_##ID { \
18+
landmark_tag = "escape_pod_"+ #ID +"_start"; \
19+
docking_controller = "escape_pod_"+ #ID +"_berth"; \
20+
} \
21+
/obj/effect/shuttle_landmark/escape_pod/transit/pod_##ID { \
22+
landmark_tag = "escape_pod_"+ #ID +"_transit"; \
23+
} \
24+
/obj/effect/shuttle_landmark/escape_pod/out/pod_##ID { \
25+
landmark_tag = "escape_pod_"+ #ID +"_out"; \
26+
} \
27+
/area/shuttle/escape_pod_##ID { \
28+
name = "Escape Pod " + #NAME; \
29+
area_flags = AREA_FLAG_RAD_SHIELDED | AREA_FLAG_ION_SHIELDED | AREA_FLAG_IS_NOT_PERSISTENT; \
30+
}
31+
32+
#define DEFINE_STACK_SUBTYPES(MAT_ID, MAT_NAME, MAT_TYPE, STACK_TYPE, REINF_TYPE) \
33+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID { \
34+
name = "1 " + MAT_NAME; \
35+
material = /decl/material/MAT_TYPE; \
36+
reinf_material = REINF_TYPE; \
37+
amount = 1; \
38+
is_spawnable_type = TRUE; \
39+
color = parent_type::paint_color || /decl/material/MAT_TYPE::color; \
40+
} \
41+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/five { \
42+
name = "5 " + MAT_NAME; \
43+
amount = 5; \
44+
} \
45+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/ten { \
46+
name = "10 " + MAT_NAME; \
47+
amount = 10; \
48+
} \
49+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/fifteen { \
50+
name = "15 " + MAT_NAME; \
51+
amount = 15; \
52+
} \
53+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/twenty { \
54+
name = "20 " + MAT_NAME; \
55+
amount = 20; \
56+
} \
57+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/twentyfive { \
58+
name = "25 " + MAT_NAME; \
59+
amount = 25; \
60+
} \
61+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/thirty { \
62+
name = "30 " + MAT_NAME; \
63+
amount = 30; \
64+
} \
65+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/forty { \
66+
name = "40 " + MAT_NAME; \
67+
amount = 40; \
68+
} \
69+
/obj/item/stack/material/##STACK_TYPE/mapped/##MAT_ID/fifty { \
70+
name = "50 " + MAT_NAME; \
71+
amount = 50; \
72+
}

code/__defines/guns.dm

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
#define SPEEDLOADER 2 //Transfers casings from the mag to the gun when used.
2525
#define MAGAZINE 4 //The magazine item itself goes inside the gun
2626

27-
2827
#define GUN_BULK_RIFLE 5
2928

3029
#define BULLET_IMPACT_NONE "none"

code/controllers/evacuation/evacuation.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
if(istype(A) && (A.area_flags & AREA_FLAG_HALLWAY))
118118
A.readyreset()
119119
emergency_evacuation = 0
120-
else if(global.using_map.emergency_shuttle_recall_message)
120+
else if(global.using_map.shuttle_recall_message)
121121
priority_announcement.Announce(global.using_map.shuttle_recall_message)
122122

123123
return 1

code/controllers/evacuation/evacuation_lifepods.dm

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,9 @@
1717
if(waiting_to_leave())
1818
return
1919
state = EVAC_IN_TRANSIT
20-
priority_announcement.Announce(replacetext(replacetext(global.using_map.emergency_shuttle_leaving_dock, "%dock_name%", "[global.using_map.dock_name]"), "%ETA%", "[round(get_eta()/60,1)] minute\s"))
20+
var/msg = global.using_map.emergency_shuttle_leaving_dock
21+
if(msg)
22+
priority_announcement.Announce(replacetext(replacetext(msg, "%dock_name%", "[global.using_map.dock_name]"), "%ETA%", "[round(get_eta()/60,1)] minute\s"))
2123
return 1
2224

2325
/datum/evacuation_controller/lifepods/available_evac_options()

code/controllers/subsystems/shuttle.dm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ SUBSYSTEM_DEF(shuttle)
4242
while (working_shuttles.len)
4343
var/datum/shuttle/shuttle = working_shuttles[working_shuttles.len]
4444
working_shuttles.len--
45-
if(shuttle.process_state && (shuttle.Process(wait, times_fired, src) == PROCESS_KILL))
45+
if((shuttle.always_process || shuttle.process_state) && (shuttle.Process(wait, times_fired, src) == PROCESS_KILL) && !shuttle.always_process)
4646
process_shuttles -= shuttle
4747

4848
if (MC_TICK_CHECK)

code/game/jobs/access_datum.dm

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,12 @@ var/global/const/access_tox_storage = "ACCESS_TOX_STORAGE" //8
5858
desc = "Toxins Lab"
5959
region = ACCESS_REGION_RESEARCH
6060

61+
var/global/const/access_warden = "ACCESS_WARDEN" //9
62+
/datum/access/warden
63+
id = access_warden
64+
desc = "Warden Office"
65+
region = ACCESS_REGION_SECURITY
66+
6167
var/global/const/access_engine = "ACCESS_ENGINEERING" //10
6268
/datum/access/engine
6369
id = access_engine
@@ -268,12 +274,6 @@ var/global/const/access_research = "ACCESS_RESEARCH" //47
268274
desc = "Science"
269275
region = ACCESS_REGION_RESEARCH
270276

271-
var/global/const/access_explorer = "ACCESS_EXPLORER"
272-
/datum/access/explorer
273-
id = access_explorer
274-
desc = "Explorer"
275-
region = ACCESS_REGION_GENERAL
276-
277277
var/global/const/access_mining = "ACCESS_MINING" //48
278278
/datum/access/mining
279279
id = access_mining
@@ -310,12 +310,6 @@ var/global/const/access_xenobiology = "ACCESS_XENOBIO" //55
310310
desc = "Xenobiology Lab"
311311
region = ACCESS_REGION_RESEARCH
312312

313-
var/global/const/access_xenofauna = "ACCESS_XENOFAUNA"
314-
/datum/access/xenofauna
315-
id = access_xenofauna
316-
desc = "Xenfauna Lab"
317-
region = ACCESS_REGION_RESEARCH
318-
319313
var/global/const/access_ce = "ACCESS_CHIEF_ENGINEER" //56
320314
/datum/access/ce
321315
id = access_ce

code/game/machinery/alarm.dm

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1123,3 +1123,15 @@ FIRE ALARM
11231123

11241124
if(. == TOPIC_REFRESH)
11251125
interact(user)
1126+
1127+
/obj/machinery/alarm/outside/Initialize(mapload, dir)
1128+
..()
1129+
return INITIALIZE_HINT_LATELOAD
1130+
1131+
// TODO: Automatically set to expected exterior conditions.
1132+
/*
1133+
/obj/machinery/alarm/outside/LateInitialize()
1134+
. = ..()
1135+
if(isatom(loc) && loc.z)
1136+
var/datum/level_data/level = SSmapping.levels_by_z[loc.z]
1137+
*/

code/game/machinery/atmoalter/canister.dm

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,10 +82,11 @@
8282
start_gas = /decl/material/gas/hydrogen
8383

8484
/obj/machinery/portable_atmospherics/canister/phoron
85-
name = "\improper Canister \[Phoron\]"
86-
icon_state = "orange"
87-
canister_color = "orange"
88-
can_label = 0
85+
name = "phoron canister"
86+
icon_state = "purple"
87+
canister_color = "purple"
88+
can_label = FALSE
89+
start_gas = /decl/material/solid/phoron
8990

9091
/obj/machinery/portable_atmospherics/canister/carbon_dioxide
9192
name = "\improper CO2 canister"

code/game/machinery/cryopod.dm

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232

3333
var/storage_desc = "crewmembers"
3434
var/storage_name = "Cryogenic Oversight Control"
35-
var/allow_items = 1
35+
var/allow_items = TRUE
3636

3737
/obj/machinery/computer/cryopod/Destroy()
3838
QDEL_NULL_LIST(frozen_items)
@@ -46,7 +46,14 @@
4646

4747
storage_desc = "cyborgs"
4848
storage_name = "Robotic Storage Control"
49-
allow_items = 0
49+
allow_items = FALSE
50+
51+
/obj/machinery/computer/cryopod/checkpoint
52+
name = "travel oversight console"
53+
desc = "An interface between visitors and the checkpoint systems tasked with keeping track of all visitors who enter or exit from the area."
54+
55+
storage_desc = "visitors"
56+
storage_name = "Travel Oversight Control"
5057

5158
/obj/machinery/computer/cryopod/interface_interact(mob/user)
5259
interact(user)
@@ -133,6 +140,11 @@
133140
build_path = /obj/machinery/computer/cryopod/robot
134141
origin_tech = @'{"programming":3}'
135142

143+
/obj/item/stock_parts/circuitboard/checkpointcontrol
144+
name = "circuit board (Checkpoint Console)"
145+
build_path = /obj/machinery/computer/cryopod/checkpoint
146+
origin_tech = @'{"programming":3}'
147+
136148
//Decorative structures to go alongside cryopods.
137149
/obj/structure/cryofeed
138150

@@ -190,31 +202,6 @@
190202
disallow_occupant_types = list(/mob/living/silicon/robot/drone)
191203
applies_stasis = 0
192204

193-
// Cryo
194-
/obj/machinery/cryopod/robot/door
195-
//This inherits from the robot cryo, so synths can be properly cryo'd. If a non-synth enters and is cryo'd, ..() is called and it'll still work.
196-
abstract_type = /obj/machinery/cryopod/robot/door
197-
name = "Airlock of Wonders"
198-
desc = "An airlock that isn't an airlock, and shouldn't exist. Yell at a coder/mapper."
199-
icon = 'icons/obj/machines/tramdoors.dmi'
200-
icon_state = "door_closed"
201-
base_icon_state = "door_closed"
202-
occupied_icon_state = "door_locked"
203-
on_enter_visible_message = "$USER$ steps into $TARGET$."
204-
205-
time_till_despawn = 1 MINUTE //We want to be much faster then normal cryo, since waiting in an elevator for half an hour is a special kind of hell.
206-
207-
allow_occupant_types = list(/mob/living/silicon/robot,/mob/living/human)
208-
disallow_occupant_types = list(/mob/living/silicon/robot/drone)
209-
210-
/obj/machinery/cryopod/robot/door/dorms
211-
name = "Residential District Elevator"
212-
desc = "A small elevator that goes down to the deeper section of the colony."
213-
on_store_message = "has departed for the residential district."
214-
on_store_name = "Residential Oversight"
215-
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
216-
on_store_visible_message = "$TARGET$ makes a ding as it moves $USER$ to the residential district."
217-
218205
/obj/machinery/cryopod/lifepod
219206
name = "life pod"
220207
desc = "A man-sized pod for entering suspended animation. Dubbed 'cryocoffin' by more cynical spacers, it is pretty barebone, counting on stasis system to keep the victim alive rather than packing extended supply of food or air. Can be ordered with symbols of common religious denominations to be used in space funerals too."
@@ -600,3 +587,12 @@
600587
on_store_name = "Residential Oversight"
601588
on_enter_occupant_message = "The elevator door closes slowly, ready to bring you down to the residential district."
602589
on_store_visible_message = "$TARGET$ makes a ding as it moves $USER$ to the residential district."
590+
591+
/obj/machinery/cryopod/robot/door/checkpoint
592+
name = "automated checkpoint"
593+
desc = "A reinforced, automated checkpoint tracking arrivals and departures from the outpost. Beyond this vault is a small airstrip, then nothing but untamed wilderness."
594+
on_store_message = "has departed from the colony."
595+
on_store_name = "Travel Oversight"
596+
on_enter_occupant_message = "The checkpoint unseals and grinds open, and you step through."
597+
on_store_visible_message = "The checkpoint grinds closed after $TARGET$ passes through it."
598+
time_till_despawn = 1 SECOND

0 commit comments

Comments
 (0)