Horizon mapping cleanup and bugfixes (#21450)

Fixes https://github.com/Aurorastation/Aurora.3/issues/21289
Fixes https://github.com/Aurorastation/Aurora.3/issues/15779

Handles a lot of mapping cleanup, container definitions for the Horizon,
and several bugfixes found along the way.

changes:
- code_imp: "Added set definitions for several Horizon-specific
containers."
- code_imp: "Updated 'full' material stacks on the Horizon from sneaky
var-edited singles to properly defined full stacks"
- code_imp: "Cleaned up all Air Alarms, Fire Alarms, and APCs on the
Horizon that were directional children with their dir var edited."
- code_imp: "Cleaned up all Power Cables on the Horizon that had d1 or
d2 var edited instead of just icon_state."
- code_imp: "Adjusted pixel shifts for 'south' (north-facing) Air
Alarms, Fire Alarms, APCs, and Extinguisher Cabinets to address layering
issues when standing vs. leaning."
- code_imp: "Minor refactor of shuttle/* Air Alarms and APCs to reduce
excess children; req_one_access perms now assigned based on
/area/horizon/shuttle/*."
  - qol: "Adds feedback hint for uses remaining to Emag cards."
- qol: "Added Tip about the shift-click behavior of the 'up-hint'/'Look
Up' button."
- bugfix: "See-through turfs (like lattices/catwalks over open space)
can now be Looked Up through from below."
- bugfix: "Fixed the shift-click behavior of 'up-hint'/'Look Up' button,
allowing you to see nearby turfs that can be Looked Up through."
- bugfix: "Maintenance Panels located on the floor have had their
layering issues fixed."
- bugfix: "Borg eye emissive effects MAYBE no longer visible through
higher z-levels."
- bugfix: "Added missing leanable component to window/shuttle obj type."
This commit is contained in:
Batrachophreno
2025-10-07 22:12:03 +00:00
committed by GitHub
parent dfe57a310f
commit 4d41b0595f
19 changed files with 5002 additions and 5541 deletions
@@ -54,3 +54,29 @@
new /obj/item/gun/projectile/peac/unloaded(src)
for(var/i = 1 to 4)
new /obj/item/ammo_casing/peac(src)
/obj/structure/closet/secure_closet/guncabinet/station/lessthanlethals
name = "Less than Lethal Ammunitions"
/obj/structure/closet/secure_closet/guncabinet/station/lessthanlethals/fill()
for(var/i = 1 to 15)
new /obj/item/ammo_magazine/c45m/rubber(src)
for(var/i = 1 to 8)
new /obj/item/ammo_magazine/mc9mmt/rubber(src)
for(var/i = 1 to 4)
new /obj/item/storage/box/shells/beanbags(src)
new /obj/item/storage/box/shells/flashshells(src)
new /obj/item/storage/box/shells/stunshells(src)
new /obj/item/storage/box/shells/trackingslugs(src)
/obj/structure/closet/secure_closet/guncabinet/station/lethals
name = "Lethal Ammunitions"
/obj/structure/closet/secure_closet/guncabinet/station/lethals/fill()
for(var/i = 1 to 8)
new /obj/item/ammo_magazine/c45m(src)
for(var/i = 1 to 6)
new /obj/item/ammo_magazine/mc9mmt(src)
new /obj/item/ammo_magazine/a556/carbine/polymer(src)
for(var/i = 1 to 2)
new /obj/item/storage/box/shells/buckshot(src)
@@ -13,39 +13,62 @@
// Standard Refrigerator
/obj/structure/closet/secure_closet/refrigerator/standard/fill()
// 5 Cartons of Milk
for(var/i = 0, i < 5, i++)
for(var/i = 0 to 5)
new /obj/item/reagent_containers/food/drinks/carton/milk(src)
// 2 Cartons of Soy Milk
for(var/i = 0, i < 2, i++)
for(var/i = 0 to 2)
new /obj/item/reagent_containers/food/drinks/carton/soymilk(src)
// 1 Egg Box
for(var/i = 0, i < 2, i++)
for(var/i = 0 to 1)
new /obj/item/storage/box/fancy/egg_box(src)
// 1 Stick of Butter
for(var/i = 0, i < 1, i++)
for(var/i = 0 to 1)
new /obj/item/reagent_containers/food/snacks/spreads/butter(src)
// 4 Random Condiments
for(var/i = 0, i < 4, i++)
for(var/i = 0 to 4)
new /obj/random/condiment(src)
// 2 Random Kitchen Staples
for(var/i = 0, i < 2, i++)
for(var/i = 0 to 2)
new /obj/random/kitchen_staples(src)
// Cafe Refrigerator
/obj/structure/closet/secure_closet/refrigerator/cafe/fill()
// 6 Cartons of Milk
for(var/i = 0, i < 6, i++)
for(var/i = 0 to 6)
new /obj/item/reagent_containers/food/drinks/carton/milk(src)
// 3 Egg Boxes
// 3 Bags of Flour
for(var/i = 0, i < 3, i++)
for(var/i = 0 to 3)
new /obj/item/storage/box/fancy/egg_box(src)
new /obj/item/reagent_containers/food/condiment/flour(src)
// 2 Cartons of Soymilk and 2 Bags of Sugar
for(var/i = 0, i < 2, i++)
for(var/i = 0 to 2)
new /obj/item/reagent_containers/food/drinks/carton/soymilk(src)
new /obj/item/reagent_containers/food/condiment/sugar(src)
// Horizon Kitchen fridge variants
/obj/structure/closet/secure_closet/refrigerator/station/main
name = "refrigerator"
/obj/structure/closet/secure_closet/refrigerator/station/main/fill()
for(var/i = 0 to 2)
new /obj/item/storage/box/fancy/egg_box(src)
new /obj/item/reagent_containers/food/drinks/carton/milk(src)
new /obj/item/reagent_containers/food/drinks/carton/soymilk(src)
new /obj/item/reagent_containers/food/drinks/carton/cream(src)
new /obj/item/reagent_containers/food/condiment/soysauce(src)
/obj/structure/closet/secure_closet/refrigerator/station/alt
name = "refrigerator"
/obj/structure/closet/secure_closet/refrigerator/station/alt/fill()
for(var/i = 0 to 2)
new /obj/item/reagent_containers/food/condiment/flour(src)
new /obj/item/reagent_containers/food/condiment/rice(src)
new /obj/item/storage/box/large/produce/adhomai(src)
new /obj/item/storage/box/large/produce/moghes(src)
new /obj/item/storage/box/large/produce/nralakk(src)
//
// Freezers
//
@@ -133,10 +156,8 @@
// Standard Kitchen Cabinet
/obj/structure/closet/secure_closet/kitchen_cabinet/standard/fill()
for(var/i = 0, i < 2, i++)
for(var/i = 0 to 2)
new /obj/item/reagent_containers/food/condiment/flour(src)
new /obj/item/reagent_containers/food/condiment/sugar(src)
new /obj/item/reagent_containers/food/condiment/shaker/spacespice(src)
//
// Miscellaneous
@@ -104,3 +104,10 @@
locked = TRUE
secure = TRUE
req_access = list(ACCESS_MEDICAL_EQUIP)
/obj/structure/closet/walllocker/medical/secure/donor_blood
name = "O- Blood Locker"
/obj/structure/closet/walllocker/medical/secure/donor_blood/fill()
for(var/i = 0 to 3)
new /obj/item/reagent_containers/blood/OMinus(src)
+2 -2
View File
@@ -29,7 +29,7 @@
/obj/structure/extinguisher_cabinet/south
dir = SOUTH
pixel_y = -23
pixel_y = -26
/obj/structure/extinguisher_cabinet/Initialize(mapload)
. = ..()
@@ -41,7 +41,7 @@
/obj/structure/extinguisher_cabinet/set_pixel_offsets()
pixel_x = dir & (NORTH|SOUTH) ? 0 : (dir == EAST ? 21 : 4)
pixel_y = dir & (NORTH|SOUTH) ? (dir == NORTH ? 24 : -23) : 4
pixel_y = dir & (NORTH|SOUTH) ? (dir == NORTH ? 24 : -26) : 4
/obj/structure/extinguisher_cabinet/attackby(obj/item/attacking_item, mob/user)
if(isrobot(user))
@@ -50,16 +50,18 @@ ABSTRACT_TYPE(/obj/structure/engineer_maintenance)
/obj/structure/engineer_maintenance/Initialize(mapload)
. = ..()
name = panel_location == PANEL_LOCATION_FLOOR ? "maintenance panel" : "large maintenance panel" // floor panels are smaller than the wall mounted ones
// Floor panels are smaller and should be layered beneath dropped objects other structures.
if(panel_location == PANEL_LOCATION_FLOOR)
name = "maintenance_panel"
layer = EXPOSED_WIRE_TERMINAL_LAYER
else
name = "large maintenance panel"
icon_number = pick(icon_numbers_and_descriptions)
detailed_desc = icon_numbers_and_descriptions[icon_number]
for(var/tool_type in panel_tools)
var/atom/tool = tool_type
panel_tool_names += initial(tool.name)
var/turf/target_turf = panel_location == PANEL_LOCATION_FLOOR ? get_turf(src) : get_step(src, NORTH)
RegisterSignal(target_turf, COMSIG_ATOM_DECONSTRUCTED, PROC_REF(remove_self))
/obj/structure/engineer_maintenance/proc/remove_self()
SIGNAL_HANDLER
qdel(src)
+6
View File
@@ -5,6 +5,7 @@
icon_state = "lattice"
density = FALSE
anchored = TRUE
opacity = FALSE
w_class = WEIGHT_CLASS_NORMAL
layer = ABOVE_TILE_LAYER
obj_flags = OBJ_FLAG_MOVES_UNSUPPORTED
@@ -27,6 +28,11 @@
. += "Add a <b>metal floor tile</b> to build a floor on top of the lattice."
. += "Lattices can be made by applying <b>metal rods</b> to a space tile."
/obj/structure/lattice/disassembly_hints(mob/user, distance, is_adjacent)
. += ..()
if(name == "lattice")
. += "Lattices can be broken back down into metal rods with a <b>welder</b>."
/obj/structure/lattice/Initialize()
. = ..()
for(var/obj/structure/lattice/LAT in loc)
+4
View File
@@ -571,6 +571,10 @@
layer = FULL_WINDOW_LAYER
rad_resistance_modifier = 4
/obj/structure/window/shuttle/mouse_drop_receive(atom/dropping, mob/user, params)
//Adds the component only once. We do it here & not in Initialize() because there are tons of walls & we don't want to add to their init times
LoadComponent(/datum/component/leanable, dropping)
/obj/structure/window/shuttle/legion
name = "reinforced cockpit window"
icon = 'icons/obj/smooth/shuttle_window_legion.dmi'