Aurora 2: The 3/4thening (#17186)

* after dark

* FIXES

* breakin

* butt

* Update code/game/objects/items/devices/floor_painter.dm

Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>

* Update code/game/objects/items/devices/floor_painter.dm

Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>

* Update code/game/objects/structures/lattice.dm

Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>

* testing 1

* a

* FUCK THIS PRESET!!!

* allah

* OTEMACHI

* tis' done

* Project Exorcism : Sneed's Snairs (Formerly Chuck's)

* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm

* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm

* Update stools.dm

* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm

* Update code/game/objects/structures/stool_bed_chair_nest/stools.dm

* Update stools.dm

* Update chairs.dm

* Update code/game/objects/structures/stool_bed_chair_nest/chairs.dm

* inhand fixes

* airlocks (matt has cooked)

fuck

* my cody plays the mamba

* fuck

* fixes layering issue

* airlocks and everything else Please fucking kill me

* underlays

* unfuck blending

* finished replacing old ass shit

* your ass is geass

* conflicts die now

* public fat'wa

* progress on walls and windows

* more mapping

* baltimore accents be like

* minor progress

* monitors

* fire alarms and apc adjustments

* apcs pixel adjustments, final airlock look

* also grilles

* shuttle wall start plus shuttle windows

* starting consoles

* table outlines

* I love broke ass sprites

* fixing the stupid ass exterior walls

* light fuckery

* terminal directionals, external airlocks, table fixes, blahblahblah

* fix 1

* fix 2

* some more fixes

* fix chairs

* basic untested railings and updating colors from atteria

* bridge and some fixes

* removing some artifacts on the new walls

* breaking wood tables and adding 4 wall materials

* fix

* compile & wood fixes

* make the horizon compile again

* railings, firedoors, ATMs, intercomms and tables again

* mapping begins also some tweaks to map view of icons

* full tile steel walls

* i sure hope nothing bad happens

* airlock updates (untested)

* reverts most wall machinery

* skull

* wall coloring

* makes the tg wood chill out

* work on airlocks

* hull consistency

* cause you live forever in the lights you make

* whoops can't show that in a christian manga

* terminals should be on walls and everything's hunky dory now

also i changed the wood stuff as per atteria's suggestion

* fixing airlocks

* fixes

* window resprite, coloring adjustments

* scc hull resprite

* new grilles, frame edits, and borosilicate

* greyscale wood palette improvement

* shuttle windows

* window frame fix

* apc update

* refit and reshaded fire alarms

* mapping icon fixes

* table fixes

* map fixes, platforms and stairs

* updates cutter, new walls and terminals

* mapping fixes

* fix preview

* preview fix stone

* stairs

* initial work for the map

* railing and windowpane fuckery

* new external airlocks

* a

* fix the maps in preparation

* wall object pixel offsets

* air alarms D1

* extinguisher cabinets

* APC DESTROYED MISSION ACCOMPLISHED GOOD WORK

* deck 3: floor decals, APCs, air alarms, fire extinguisher cabinets

* deck 3: fireaxe cabinet

* /shuttle_landmark/distress/blue, move base_turf from map to obj def

* intercom presets

* formatting

* deck 1: floor decals

* deck 2: named area fix (LMAO), signs to use single quotes

* deck 2: floor decals, APCs, air alarms, fire extinguisher cabinets, fireaxe cabinets

* Platforms and stairs!

* grates and bugfixes

* Angled ship walls + grate color fix

* corrects apc anim overlay

* deck 2 and away site fixes

# Conflicts:
#	maps/sccv_horizon/sccv_horizon-2_deck_2.dmm

* deck 2 missing grate

* warning stripes

* railings and ledges

* windows and fixtures

* windoorsagain

* airlocks pt1

* windows de-seamed and transparent

* airlocks and pixel offsets

* fixes for airlocks

* more airlock fixes

* presets for ringer, request console and newscaster

* 132

* asfsaf

* kitchen tiling

* thicker freezer tile bevels

* More angled walls

* New shutters and blast doors

* directional corrections

* ops railing fixes

* updated window map things and shutters

* value changes and blast door changes

* Ledges and platforms galore (D2/D3)

* all decks: fix door dirs

* all decks: newscasters, intercoms, requests consoles, ringer consoles

* helm light blue decals to dark blue

* supermatter door dir fix

* fix directional presets (dirs/offsets): newscaster, intercom, requests console, ringer console

* firedoor changes

* deck 3: overlapping wall mountables fixes

* map changes

* airlock changes

* map tweaks

* airlock & stair icons

* various mapping modifications

* Double airlocks + fixing denied states + fixing airlocks on all levels

* Rebase

* directional terminals buttons and lights again, platform tweaks

terminal north facing sprites, atm/food terminal directionals
proper door control and lightswitch directionals (presets still need to be set up, mapping)
re-adds new light tube sprites, again
new sprites for floor lights and the other stuff that got added
adjusted platforms to be recolorable, added light and dark versions, fixed some shading

* missing ERT outfit thingy fix

* floor lights fixed

* deck 3: various small fixes

* deck 1: various small fixes

* deck 2: various small fixes

* fixes

* d2 fixes & multitile door fix

* d2 fixes, remove unused airlock files, button icon fixes, window icon fixes

* make it actually compile, oops!

* make it actually compile, pt2

* CE office camera

* pew pew pew

* pew pew pew 2

* fixes

* deck 3: buttons fixes

* deck 3: button and other fixes

* deck 3: fixes and stuff

* D1 fixes & skrell airlocks

* minor D2 tweaks

* a lot of airlock-related fixes, glass tables, paint sprayer fixes, decal fixes, changelog

* maintenance hatch sprites

* fixing double doors

* flips multi-tiles, fixes multi-tiles, adds desk windoors

* new plastic flaps

* deck 2: a few buttons

* side + middle doors

* created paths for 3-tiles doors

* apply to map the 3 tiles airlocks

* some fixes, windoor alpha

* remove this random ass potted plant

* more map fixes

* holodeck disposal pipe fix

* secure airlock sprites

no code or obj definitions yet

* vault airlock

* vault door fixes

* scc window alpha

* adjusts double door glass, firedoor open state

* adjusts construction states for doors

* remove some defunct icons and fix anims

* assembly stuff

* pharma fixes

* vault door dir

* firedoor smart generation moved to its own proc

* lift doors, d1 fixes

* firedoor smart generation: adjacent wall check

* firedoor smart generation: adjacent firedoor check

* all decks: missing firedoor and other fixes

* deck 2: weird maint stairs fix

* oops

* diona airlock fix

* the shuttle wall gigadeath

* fixes

* some fixes for leftover map item paths, and double lattices

* new diona walls

* more fixes

* and more

* deck 1: fix out of bounds keys

* deck 3: fix out of bounds keys

* runtime 3: duplicate APCs fix

* all decks: make all 3 tile wide doors glass

---------

Co-authored-by: Wezzy <wowzewow@gmail.com>
Co-authored-by: Wowzewow (Wezzy) <42310821+alsoandanswer@users.noreply.github.com>
Co-authored-by: Cody Brittain <cbrittain10@yahoo.com>
Co-authored-by: kyres1 <noodle.buster31@gmail.com>
Co-authored-by: Matt Atlas <liermattia@gmail.com>
Co-authored-by: atteria <tarkona@protonmail.com>
Co-authored-by: Fluffy <65877598+FluffyGhoster@users.noreply.github.com>
Co-authored-by: DreamySkrell <107256943+DreamySkrell@users.noreply.github.com>
Co-authored-by: naut <nautilussplat@gmail.com>
Co-authored-by: naut <55491249+nauticall@users.noreply.github.com>
This commit is contained in:
Matt Atlas
2023-08-30 21:18:10 +00:00
committed by GitHub
co-authored by Wezzy Wowzewow Cody Brittain kyres1 Matt Atlas atteria Fluffy DreamySkrell naut naut
parent 1e4d8bd6e0
commit 99b4033ca5
414 changed files with 84945 additions and 81661 deletions
@@ -215,7 +215,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
pref.disabilities = list()
if(!pref.bgstate || !(pref.bgstate in pref.bgstate_options))
pref.bgstate = "000"
pref.bgstate = "000000"
/datum/category_item/player_setup_item/general/body/content(var/mob/user)
var/list/out = list()
+13 -10
View File
@@ -173,17 +173,20 @@ var/list/preferences_datums = list()
var/savefile/loaded_character
var/datum/category_collection/player_setup_collection/player_setup
var/bgstate = "000"
var/bgstate = "000000"
var/list/bgstate_options = list(
"fffff",
"000",
"new_steel",
"dark2",
"FFFFFF",
"000000",
"tiled_preview",
"monotile_preview",
"dark_preview",
"wood",
"wood_light",
"grass_alt",
"new_reinforced",
"new_white"
"grass",
"reinforced",
"white_preview",
"freezer",
"carpet",
"reinforced"
)
var/fov_cone_alpha = 255
@@ -270,7 +273,7 @@ var/list/preferences_datums = list()
BG = new
BG.appearance_flags = TILE_BOUND|PIXEL_SCALE|NO_CLIENT_COLOR
BG.layer = TURF_LAYER
BG.icon = 'icons/turf/total_floors.dmi'
BG.icon = 'icons/turf/flooring/tiles.dmi'
LAZYSET(char_render_holders, "BG", BG)
client.screen |= BG
BG.icon_state = bgstate
+1 -1
View File
@@ -3,7 +3,7 @@
/obj/machinery/atm
name = "Idris SelfServ Teller"
desc = "For all your monetary needs! Astronomical figures!"
icon = 'icons/obj/terminals.dmi'
icon = 'icons/obj/machinery/wall/terminals.dmi'
icon_state = "atm"
anchored = 1
idle_power_usage = 10
+1 -2
View File
@@ -2,7 +2,7 @@
name = "Idris Ordering Terminal"
desc = "An ordering terminal designed by Idris for quicker expedition."
desc_info = "To edit the menu, select 'Toggle Lock' while wearing an ID with kitchen access. \nAll credits from the machine will automatically go to the civilian account."
icon = 'icons/obj/terminals.dmi'
icon = 'icons/obj/machinery/wall/terminals.dmi'
icon_state = "kitchenterminal"
anchored = 1
idle_power_usage = 10
@@ -69,7 +69,6 @@
ticket_number++
T.set_content_unsafe(tickettname, ticket, sum)
stamp_receipt(T)
flick("kitchenterminal-receipt",src)
/obj/machinery/orderterminal/proc/stamp_receipt(obj/item/paper/R) // Stamps the papers, made into a proc to avoid copy pasting too much
var/image/stampoverlay = image('icons/obj/bureaucracy.dmi')
@@ -89,6 +89,10 @@ This spawner places pipe leading up to the interior door, you will need to finis
handle_door_stuff(A, is_this_an_interior_airlock)
if(one_door_only == DOOR_FLIPPED_PLACEMENT)
the_button.forceMove(get_step(the_button, NORTH))
if((interior_direction & (EAST|WEST)) || (exterior_direction & (EAST|WEST)))
A.dir = EAST
else
A.dir = NORTH
/obj/effect/map_effect/airlock/proc/handle_door_stuff(obj/machinery/door/airlock/A, is_this_an_interior_airlock) //This sets up the door vars correctly and then locks it before first use
A.set_frequency(radio_frequency)
@@ -342,4 +346,4 @@ This spawner places pipe leading up to the interior door, you will need to finis
#undef AIRPUMP_TAG
#undef SENSOR_TAG
#undef OUTER_DOOR_TAG
#undef INNER_DOOR_TAG
#undef INNER_DOOR_TAG
@@ -6,7 +6,7 @@
icon = 'icons/effects/map_effects.dmi'
var/window_path = /obj/structure/window/basic
var/frame_path = /obj/structure/window_frame
var/grille_path = /obj/structure/grille
var/grille_path = /obj/structure/grille/over
var/firedoor_path = /obj/machinery/door/firedoor
var/single_window = FALSE // For full window panes and full windows.
var/spawn_frame = FALSE // For full windows.
@@ -206,4 +206,4 @@
/obj/effect/map_effect/window_spawner/full/borosilicate/reinforced/firedoor
name = "full reinforced borosilicate window spawner with firedoor"
icon_state = "full_brwindow-f"
spawn_firedoor = TRUE
spawn_firedoor = TRUE
+13 -18
View File
@@ -29,7 +29,7 @@
/turf/simulated/floor/holofloor/tiled
name = "floor"
icon = 'icons/turf/flooring/tiles.dmi'
icon_state = "steel"
icon_state = "tiled_preview"
initial_flooring = /singleton/flooring/tiling
/turf/simulated/floor/holofloor/tiled/ramp
@@ -46,42 +46,37 @@
/turf/simulated/floor/holofloor/tiled/dark
name = "dark floor"
icon_state = "dark"
icon_state = "dark_preview"
initial_flooring = /singleton/flooring/tiling/dark
/turf/simulated/floor/holofloor/lino
name = "lino"
icon = 'icons/turf/flooring/linoleum.dmi'
icon_state = "lino_grey"
initial_flooring = /singleton/flooring/linoleum/grey
icon_state = "lino_diamond"
initial_flooring = /singleton/flooring/linoleum/diamond
color = COLOR_LINOLEUM
/turf/simulated/floor/holofloor/wood
name = "wooden floor"
icon = 'icons/turf/flooring/wood.dmi'
icon = 'icons/turf/flooring/tiles.dmi'
icon_state = "wood"
initial_flooring = /singleton/flooring/wood
tile_outline = "wood"
tile_outline_blend_process = ICON_ADD
color = WOOD_COLOR_GENERIC
/turf/simulated/floor/holofloor/grass
name = "lush grass"
icon = 'icons/turf/flooring/grass.dmi'
icon_state = "grass0"
initial_flooring = /singleton/flooring/grass
footstep_sound = /singleton/sound_category/grass_footstep
/turf/simulated/floor/holofloor/grass/alt
name = "lush grass"
icon = 'icons/turf/total_floors.dmi'
icon_state = "grass_alt"
initial_flooring = /singleton/flooring/grass/alt
/turf/simulated/floor/holofloor/snow
name = "snow"
base_name = "snow"
icon = 'icons/turf/floors.dmi'
base_icon = 'icons/turf/floors.dmi'
icon_state = "snow"
base_icon_state = "snow"
footstep_sound = /singleton/sound_category/snow_footstep
icon = 'icons/turf/flooring/snow.dmi'
icon_state = "snow0"
initial_flooring = /singleton/flooring/snow
/turf/simulated/floor/holofloor/reinforced
icon = 'icons/turf/flooring/tiles.dmi'
@@ -153,7 +148,7 @@
/obj/structure/holostool
name = "stool"
desc = "Apply butt."
icon = 'icons/obj/furniture.dmi'
icon = 'icons/obj/structure/chairs.dmi'
icon_state = "stool_padded_preview"
anchored = 1.0
+1 -1
View File
@@ -281,7 +281,7 @@
var/flesh_colour = seed.get_trait(TRAIT_FLESH_COLOUR)
if(!flesh_colour) flesh_colour = seed.get_trait(TRAIT_PRODUCT_COLOUR)
for(var/i=0,i<2,i++)
var/obj/item/stack/tile/grass_alt/G = new (user.loc)
var/obj/item/stack/tile/grass/G = new (user.loc)
if(flesh_colour) G.color = flesh_colour
for (var/obj/item/stack/tile/grass/NG in user.loc)
if(G==NG)
@@ -210,14 +210,17 @@
user.drop_item(T)
anchored = TRUE
on_anchored()
pixel_x = DIR2PIXEL_X(ndir)
pixel_y = DIR2PIXEL_Y(ndir)
set_pixel_offsets()
/obj/item/device/electronic_assembly/wallmount/on_unanchored()
pixel_x = 0
pixel_y = 0
..()
/obj/item/device/electronic_assembly/wallmount/set_pixel_offsets()
pixel_x = DIR2PIXEL_X(dir)
pixel_y = DIR2PIXEL_Y(dir)
/obj/item/device/electronic_assembly/wallmount/heavy
name = "heavy wall-mounted electronic assembly"
icon_state = "setup_wallmount_large"
@@ -246,4 +249,4 @@
max_complexity = IC_COMPLEXITY_BASE / 2
/obj/item/device/electronic_assembly/proc/get_assembly_holder()
return src
return src
+6 -16
View File
@@ -49,7 +49,7 @@
recipes += new /datum/stack_recipe_list("construction recipes",
list(
new /datum/stack_recipe("regular floor tile", /obj/item/stack/tile/floor, 1, 4, 20),
new /datum/stack_recipe("full regular floor tile", /obj/item/stack/tile/floor/full, 1, 4, 20),
new /datum/stack_recipe("full regular floor tile", /obj/item/stack/tile/mono, 1, 4, 20),
new /datum/stack_recipe("metal rod", /obj/item/stack/rods, 1, 2, 60),
new /datum/stack_recipe("steel barricade", /obj/structure/barricade/metal, BUILD_AMT, time = 10 SECONDS, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("barbed wire", /obj/item/stack/barbed_wire, 1, 2, 20),
@@ -78,32 +78,23 @@
new /datum/stack_recipe("shooting target", /obj/item/target, 5, time = 10, one_per_turf = 0, on_floor = 1),
new /datum/stack_recipe("dark office chair", /obj/structure/bed/stool/chair/office/dark, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("light office chair", /obj/structure/bed/stool/chair/office/light, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("plain padded chair", /obj/structure/bed/stool/chair/padded, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("steel chair (fancy)", /obj/structure/bed/stool/chair/fancy, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (middle)", /obj/structure/bed/stool/chair/sofa, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (left)", /obj/structure/bed/stool/chair/sofa/left, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (right)", /obj/structure/bed/stool/chair/sofa/right, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (corner)", /obj/structure/bed/stool/chair/sofa/corner, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (corner, concave)", /obj/structure/bed/stool/chair/sofa/corner/concave, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("sofa (corner, convex)", /obj/structure/bed/stool/chair/sofa/corner/convex, BUILD_AMT, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("steel crate", /obj/structure/closet/crate, BUILD_AMT, time = 50, one_per_turf = 1)
))
recipes += new /datum/stack_recipe_list("airlock assemblies",
list(
new /datum/stack_recipe("standard airlock assembly", /obj/structure/door_assembly, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("service airlock assembly", /obj/structure/door_assembly/door_assembly_ser, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("command airlock assembly", /obj/structure/door_assembly/door_assembly_com, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("security airlock assembly", /obj/structure/door_assembly/door_assembly_sec, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("engineering airlock assembly", /obj/structure/door_assembly/door_assembly_eng, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("mining airlock assembly", /obj/structure/door_assembly/door_assembly_min, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("atmospherics airlock assembly", /obj/structure/door_assembly/door_assembly_atmo, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("research airlock assembly", /obj/structure/door_assembly/door_assembly_research, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("medical airlock assembly", /obj/structure/door_assembly/door_assembly_med, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("generic airlock assembly", /obj/structure/door_assembly/door_assembly_generic, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("maintenance airlock assembly", /obj/structure/door_assembly/door_assembly_mai, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("external airlock assembly", /obj/structure/door_assembly/door_assembly_ext, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("freezer airlock assembly", /obj/structure/door_assembly/door_assembly_fre, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("airtight hatch assembly", /obj/structure/door_assembly/door_assembly_hatch, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("maintenance hatch assembly", /obj/structure/door_assembly/door_assembly_mhatch, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("high security airlock assembly", /obj/structure/door_assembly/door_assembly_highsecurity, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("vault assembly", /obj/structure/door_assembly/door_assembly_vault, BUILD_AMT, time = 100, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("emergency shutter", /obj/structure/firedoor_assembly, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1),
new /datum/stack_recipe("multi-tile airlock assembly", /obj/structure/door_assembly/multi_tile, BUILD_AMT, time = 50, one_per_turf = 1, on_floor = 1)
))
@@ -286,8 +277,7 @@
..()
recipes += new /datum/stack_recipe_list("[display_name] construction",
list(
new /datum/stack_recipe("light marble floor tile", /obj/item/stack/tile/marble, 1, 4, 20),
new /datum/stack_recipe("dark marble floor tile", /obj/item/stack/tile/marble/dark, 1, 4, 20)
new /datum/stack_recipe("marble floor tile", /obj/item/stack/tile/marble, 1, 4, 20),
))
/material/leather/generate_recipes()
+42 -14
View File
@@ -52,7 +52,9 @@
var/destruction_desc = "breaks apart" // Fancy string for barricades/tables/objects exploding.
// Icons
var/colour_blend = TRUE
var/icon_colour // Colour applied to products of this material.
var/wall_colour // Colour applied to walls specifically.
var/icon_base = "metal" // Wall and table base icon tag. See header.
var/door_icon_base = "metal" // Door base icon tag. See header.
var/icon_reinf = "reinf_metal" // Overlay used
@@ -149,16 +151,20 @@
adjective_name = display_name
if(!shard_icon)
shard_icon = shard_type
if(!icon_base)
world.log << "materials: [src] has unknown icon_base [icon_base]."
/*
var/skip_blend = FALSE
switch (icon_base)
if ("solid")
wall_icon = 'icons/turf/smooth/composite_solid.dmi'
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
if ("stone")
wall_icon = 'icons/turf/smooth/composite_stone.dmi'
multipart_reinf_icon = 'icons/turf/smooth/composite_stone_reinf.dmi'
if ("metal")
wall_icon = 'icons/turf/smooth/composite_metal.dmi'
if ("wood")
wall_icon = 'icons/turf/smooth/composite_wood.dmi'
if ("cult")
wall_icon = 'icons/turf/smooth/cult_wall.dmi'
skip_blend = TRUE
@@ -179,14 +185,14 @@
wall_icon = 'icons/turf/smooth/concrete_wall.dmi'
skip_blend = TRUE
else
world.log << "materials: [src] has unknown icon_base [icon_base]."
if (wall_icon && icon_colour && !skip_blend)
world.log << "materials: [src] has unknown icon_base [icon_base]."*/
var/blend_colour = wall_colour ? wall_colour : icon_colour
if (wall_icon && blend_colour && colour_blend)
wall_icon = new(wall_icon)
wall_icon.Blend(icon_colour, ICON_MULTIPLY)
wall_icon.Blend(blend_colour, ICON_MULTIPLY)
if (multipart_reinf_icon)
multipart_reinf_icon = new(multipart_reinf_icon)
multipart_reinf_icon.Blend(icon_colour, ICON_MULTIPLY)
multipart_reinf_icon.Blend(blend_colour, ICON_MULTIPLY)
// This is a placeholder for proper integration of windows/windoors into the system.
/material/proc/build_windows(var/mob/living/user, var/obj/item/stack/used_stack)
@@ -353,7 +359,9 @@
stack_type = /obj/item/stack/material/sandstone
icon_base = "stone"
icon_reinf = "reinf_stone"
icon_colour = "#D9C179"
icon_colour = "#d9c179"
wall_icon = 'icons/turf/smooth/composite_stone.dmi'
multipart_reinf_icon = 'icons/turf/smooth/composite_stone_reinf.dmi'
shard_type = SHARD_STONE_PIECE
weight = 22
hardness = 55
@@ -381,6 +389,8 @@
name = MATERIAL_CONCRETE
icon_base = "concrete"
icon_colour = "#D2D1CD"
colour_blend = FALSE
wall_icon = 'icons/turf/smooth/concrete_wall.dmi'
stack_type = null
golem = null
@@ -391,17 +401,22 @@
conductivity = 11
protectiveness = 10 // 33%
icon_base = "solid"
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
icon_reinf = "reinf_over"
icon_colour = "#666666"
icon_colour = COLOR_GRAY40
wall_colour = COLOR_GRAY20
golem = SPECIES_GOLEM_STEEL
hitsound = 'sound/weapons/smash.ogg'
weapon_hitsound = 'sound/weapons/metalhit.ogg'
/material/diona
name = MATERIAL_DIONA
icon_colour = null
stack_type = null
wall_icon = 'icons/turf/smooth/diona_wall.dmi'
icon_base = "biomass"
colour_blend = FALSE
integrity = 100
// below is same as wood
melting_point = T0C + 300
@@ -426,9 +441,11 @@
stack_type = /obj/item/stack/material/plasteel
integrity = 400
melting_point = 6000
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
icon_base = "solid"
icon_reinf = "reinf_over"
icon_colour = "#666666"
icon_colour = "#545c68"
wall_colour = COLOR_GRAY20
explosion_resistance = 25
hardness = 80
weight = 23
@@ -458,7 +475,7 @@
name = MATERIAL_GLASS
stack_type = /obj/item/stack/material/glass
flags = MATERIAL_BRITTLE
icon_colour = "#00E1FF"
icon_colour = null
opacity = 0.3
integrity = 100
shard_type = SHARD_SHARD
@@ -467,6 +484,7 @@
weight = 15
protectiveness = 0 // 0%
conductivity = 1 // Glass shards don't conduct.
icon_base = "glass"
door_icon_base = "stone"
destruction_desc = "shatters"
window_options = list("One Direction" = 1, "Full Window" = 4)
@@ -688,6 +706,7 @@
display_name = "elevator panelling"
stack_type = null
icon_colour = "#666666"
wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
integrity = 1200
melting_point = 6000
explosion_resistance = 200
@@ -698,9 +717,10 @@
/material/wood
name = MATERIAL_WOOD
stack_type = /obj/item/stack/material/wood // why wouldn't it have a stacktype seriously guys why
icon_colour = "#824B28"
icon_colour = WOOD_COLOR_GENERIC
integrity = 50
icon_base = "metal"
icon_base = "wood"
wall_icon = 'icons/turf/smooth/composite_wood.dmi'
explosion_resistance = 2
shard_type = SHARD_SPLINTER
shard_can_repair = 0 // you can't weld splinters back into planks
@@ -797,6 +817,7 @@
stack_type = null
icon_colour = "#B7410E"
icon_base = "arust"
wall_icon = 'icons/turf/smooth/rusty_wall.dmi'
icon_reinf = "reinf_over"
integrity = 250
explosion_resistance = 8
@@ -835,6 +856,8 @@
name = MATERIAL_CULT
display_name = "daemon stone"
icon_base = "cult"
wall_icon = 'icons/turf/smooth/cult_wall.dmi'
colour_blend = FALSE
icon_colour = COLOR_CULT
icon_reinf = "reinf_cult"
dooropen_noise = 'sound/effects/doorcreaky.ogg'
@@ -1015,6 +1038,8 @@
stack_type = null
icon_colour = "#1C7400"
icon_base = "vaurca"
wall_icon = 'icons/turf/smooth/vaurca_wall.dmi'
colour_blend = FALSE
integrity = 400
melting_point = 6000
explosion_resistance = 25
@@ -1027,8 +1052,10 @@
name = MATERIAL_SHUTTLE
display_name = "plastitanium alloy"
stack_type = null
icon_reinf = null
icon_reinf = "no_sprite"//placeholder
icon_base = "shuttle"
//wall_icon = 'icons/turf/smooth/composite_solid_color.dmi'
colour_blend = FALSE
integrity = 1200
melting_point = 6000 // Hull plating.
explosion_resistance = 200 // Hull plating.
@@ -1040,6 +1067,7 @@
/material/shuttle/skrell
name = MATERIAL_SHUTTLE_SKRELL
display_name = "superadvanced alloy"
colour_blend = FALSE
icon_colour = null
icon_base = "skrell"
+1 -1
View File
@@ -7,7 +7,7 @@
name = "ore redemption console"
desc = "A handy console which can be use to retrieve mining points for use in the mining vendor, or to set processing values for various ore types."
desc_info = "Up to date settings for the refinery can be found in the Aurorastation Guide to Mining wikipage."
icon = 'icons/obj/terminals.dmi'
icon = 'icons/obj/machinery/wall/terminals.dmi'
icon_state = "production_console"
density = FALSE
anchored = TRUE
+1 -1
View File
@@ -3,7 +3,7 @@
/obj/machinery/mineral/stacking_unit_console
name = "stacking machine console"
desc = "This console allows you to set the max stack size for the stacking machine, as well as letting you eject stacks manually."
icon = 'icons/obj/terminals.dmi'
icon = 'icons/obj/machinery/wall/terminals.dmi'
icon_state = "production_console"
density = FALSE
anchored = TRUE
@@ -90,10 +90,12 @@ There are several things that need to be remembered:
#define GET_TAIL_LAYER (dir == NORTH ? TAIL_NORTH_LAYER : TAIL_SOUTH_LAYER)
#define GET_TAIL_ACC_LAYER (dir == NORTH ? TAIL_NORTH_ACC_LAYER : TAIL_SOUTH_ACC_LAYER)
/proc/overlay_image(icon,icon_state,color,flags)
/proc/overlay_image(icon, icon_state,color, flags, layer)
var/image/ret = image(icon,icon_state)
ret.color = color
ret.appearance_flags = PIXEL_SCALE | flags
if(layer)
ret.layer = layer
return ret
/mob/living/carbon/human
@@ -378,7 +378,7 @@ var/global/list/robot_modules = list(
modules += new /obj/item/device/t_scanner(src) // to check underfloor wiring
modules += new /obj/item/device/analyzer(src) // to check air pressure in the area
modules += new /obj/item/device/lightreplacer(src) // to install lightning in the area
modules += new /obj/item/device/floor_painter(src)// to make america great again (c)
modules += new /obj/item/device/paint_sprayer(src)// to make america great again (c)
modules += new /obj/item/pickaxe/borgdrill(src) // as station is being located at the rock terrain, which is presumed to be digged out to clear the area for new rooms
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
@@ -444,7 +444,7 @@ var/global/list/robot_modules = list(
modules += new /obj/item/gripper/no_use/loader(src)
modules += new /obj/item/device/lightreplacer(src)
modules += new /obj/item/device/pipe_painter(src)
modules += new /obj/item/device/floor_painter(src)
modules += new /obj/item/device/paint_sprayer(src)
modules += new /obj/item/taperoll/engineering(src) // To enable 'borgs to telegraph danger visually.
modules += new /obj/item/inflatable_dispenser(src) // To enable 'borgs to protect Crew from danger in direct hazards.
modules += new /obj/item/device/gps(src) // For being located while disabled and coordinating with life sensor consoles.
@@ -960,7 +960,7 @@ var/global/list/robot_modules = list(
modules += new /obj/item/soap/drone(src)
modules += new /obj/item/extinguisher(src)
modules += new /obj/item/device/pipe_painter(src)
modules += new /obj/item/device/floor_painter(src)
modules += new /obj/item/device/paint_sprayer(src)
modules += new /obj/item/device/t_scanner(src)
modules += new /obj/item/gripper/multi_purpose(src)
modules += new /obj/item/gripper/no_use/loader(src)
@@ -1,7 +1,7 @@
/obj/item/modular_computer/console
name = "console"
desc = "A stationary computer."
icon = 'icons/obj/modular_console.dmi'
icon = 'icons/obj/machinery/modular_console.dmi'
icon_state = "computer"
icon_state_unpowered = "computer"
icon_state_screensaver = "standby"
+164 -5
View File
@@ -198,15 +198,15 @@
allowed_directions = UP|DOWN
icon_state = "ladder11"
// Stairs
/obj/structure/ladder/away //a ladder that just looks like it's going down
icon_state = "ladderawaydown"
/// Note that stairs facing left/right may need the stairs_lower structure if they're not placed against walls.
/obj/structure/stairs
name = "stairs"
desc = "Stairs leading to another floor. Not too useful if the gravity goes out."
icon = 'icons/obj/stairs.dmi'
icon_state = "solid"
icon_state = "stairs_3d"
layer = TURF_LAYER
density = FALSE
opacity = FALSE
@@ -240,7 +240,7 @@
return
if(target.z > (z + 1)) //Prevents wheelchair fuckery. Basically, you teleport twice because both the wheelchair + your mob collide with the stairs.
return
if(target.Enter(A, src))
if(target.Enter(A, src) && A.dir == dir)
A.forceMove(target)
if(isliving(A))
var/mob/living/L = A
@@ -286,11 +286,170 @@
bound_height = 64
/obj/structure/stairs/east
icon_state = "east"
dir = EAST
bound_width = 64
bound_x = -32
pixel_x = -32
/obj/structure/stairs/west
icon_state = "west"
dir = WEST
bound_width = 64
/obj/structure/stairs/flat
icon_state = "flat"
/// Snowflake railing object for 64x64 stairs.
/obj/structure/stairs_railing
name = "railing"
desc = "A railing for stairs."
icon = 'icons/obj/stairs.dmi'
icon_state = "railing"
anchored = TRUE
density = TRUE
/obj/structure/stairs_railing/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
if(istype(mover,/obj/item/projectile))
return TRUE
if(!istype(mover) || mover.checkpass(PASSRAILING))
return TRUE
if(mover.throwing)
return TRUE
if(get_dir(loc, target) == dir)
return !density
return TRUE
/obj/structure/stairs_railing/CheckExit(var/atom/movable/O, var/turf/target)
if(istype(O) && CanPass(O, target))
return TRUE
if(get_dir(O.loc, target) == dir)
if(!density)
return TRUE
return FALSE
return TRUE
/obj/structure/stairs_lower
name = "stairs"
desc = "Stairs leading to another floor. Not too useful if the gravity goes out."
icon = 'icons/obj/stairs.dmi'
icon_state = "stairs_lower"
anchored = TRUE
density = FALSE
/obj/structure/stairs_lower/stairs_upper
icon_state = "stairs_upper"
/// These stairs are used for fake depth. They don't go up z-levels.
/obj/structure/platform_stairs
name = "stairs"
desc = "An archaic form of locomotion along the Z-axis."
density = FALSE
anchored = TRUE
icon = 'icons/obj/structure/stairs.dmi'
icon_state = "np_stair"
/obj/structure/platform_stairs/south_north_solo
icon_state = "p_stair_sn_solo_cap"
/obj/structure/platform_stairs/full
icon_state = "p_stair_full"
/obj/structure/platform_stairs/full/east_west_cap
icon_state = "p_stair_ew_full_cap"
/obj/structure/platform_stairs/full/east_west_cap/half
icon_state = "p_stair_ew_half_cap"
/obj/structure/platform_stairs/full/south_north_cap
icon_state = "p_stair_sn_full_cap"
/obj/structure/platform_stairs/full/south_north_cap/half
icon_state = "p_stair_sn_half_cap"
/obj/structure/platform
name = "platform"
desc = "An archaic method of preventing travel along the X and Y axes if you are on a lower point on the Z-axis."
density = TRUE
anchored = TRUE
flags = ON_BORDER
climbable = TRUE
icon = 'icons/obj/structure/platforms.dmi'
icon_state = "platform"
color = COLOR_TILED
/obj/structure/platform/dark
icon_state = "platform_dark"
color = COLOR_DARK_GUNMETAL
/obj/structure/platform/CanPass(atom/movable/mover, turf/target, height, air_group)
if(istype(mover, /obj/item/projectile))
return TRUE
if(!istype(mover) || mover.checkpass(PASSRAILING))
return TRUE
if(mover.throwing)
return TRUE
if(get_dir(mover, target) == reverse_dir[dir])
return FALSE
if(height && (mover.dir == dir))
return FALSE
return TRUE
/obj/structure/platform/CheckExit(var/atom/movable/O, var/turf/target)
if(istype(O) && CanPass(O, target))
return TRUE
if(get_dir(O, target) == reverse_dir[dir])
return FALSE
return TRUE
/obj/structure/platform/do_climb(mob/living/user)
if(user.Adjacent(src) && !user.incapacitated())
/// Custom climbing code because normal climb code doesn't support the tile-shifting that platforms do.
/// If the user is on the same turf as the platform, we're trying to go past it, so we need to use reverse_dir.
/// Otherwise, use our own turf.
var/same_turf = get_turf(user) == get_turf(src)
var/turf/next_turf = get_step(src, same_turf ? reverse_dir[dir] : 0)
if(istype(next_turf) && !next_turf.density && can_climb(user))
var/climb_text = same_turf ? "over" : "down"
LAZYADD(climbers, user)
user.visible_message(SPAN_NOTICE("[user] starts climbing [climb_text] \the [src]..."), SPAN_NOTICE("You start climbing [climb_text] \the [src]..."))
if(do_after(user, 1 SECOND) && can_climb(user, TRUE))
user.visible_message(SPAN_NOTICE("[user] climbs [climb_text] \the [src]."), SPAN_NOTICE("You climb [climb_text] \the [src]."))
user.forceMove(next_turf)
LAZYREMOVE(climbers, user)
/obj/structure/platform/ledge
icon_state = "ledge"
/obj/structure/platform/ledge/dark
icon_state = "ledge_dark"
color = COLOR_DARK_GUNMETAL
/obj/structure/platform/cutout
icon_state = "platform_cutout"
density = 0
/obj/structure/platform/cutout/dark
icon_state = "platform_cutout_dark"
color = COLOR_DARK_GUNMETAL
/obj/structure/platform/cutout/CanPass()
return TRUE
/// No special CanPass for this one.
/obj/structure/platform_deco
name = "platform"
desc = "This is a platform."
anchored = TRUE
icon = 'icons/obj/structure/platforms.dmi'
icon_state = "platform_deco"
color = COLOR_TILED
/obj/structure/platform_deco/dark
icon_state = "platform_deco_dark"
color = COLOR_DARK_GUNMETAL
/obj/structure/platform_deco/ledge
icon_state = "ledge_deco"
/obj/structure/platform_deco/ledge/dark
icon_state = "ledge_deco_dark"
color = COLOR_DARK_GUNMETAL
+11
View File
@@ -207,6 +207,17 @@
for(var/obj/O in src)
O.hide(0)
/turf/simulated/open/examine(mob/user, distance, infix, suffix)
if(..(user, 2))
var/depth = 1
for(var/T = GetBelow(src); isopenspace(T); T = GetBelow(T))
depth += 1
to_chat(user, "It is about [depth] level\s deep.")
/turf/simulated/open/is_open()
return TRUE
/turf/simulated/open/update_icon(mapload)
update_mimic(!mapload)
+121 -2
View File
@@ -89,8 +89,127 @@
else if(update_neighbors)
turf_to_check.update_icon()
/turf/simulated/floor/exoplanet/update_dirt()
return // it's already dirt, silly
//Water
/turf/simulated/floor/exoplanet/water/update_icon()
return
/turf/simulated/floor/exoplanet/water/shallow
name = "shallow water"
icon = 'icons/misc/beach.dmi'
icon_state = "seashallow"
footstep_sound = /singleton/sound_category/water_footstep
/turf/simulated/floor/exoplanet/water/shallow/attackby(obj/item/O, var/mob/living/user)
var/obj/item/reagent_containers/RG = O
if (reagent_type && istype(RG) && RG.is_open_container() && RG.reagents)
RG.reagents.add_reagent(reagent_type, min(RG.volume - RG.reagents.total_volume, RG.amount_per_transfer_from_this))
user.visible_message("<span class='notice'>[user] fills \the [RG] from \the [src].</span>","<span class='notice'>You fill \the [RG] from \the [src].</span>")
else
return ..()
/turf/simulated/floor/exoplanet/water/update_dirt()
return // Water doesn't become dirty
//Ice
/turf/simulated/floor/exoplanet/ice
name = "ice"
icon = 'icons/turf/flooring/snow.dmi'
icon_state = "ice"
/turf/simulated/floor/exoplanet/ice/update_icon()
return
/turf/simulated/floor/exoplanet/ice/dark
icon_state = "icedark"
//Snow
/turf/simulated/floor/exoplanet/snow
name = "snow"
icon = 'icons/turf/smooth/snow40.dmi'
icon_state = "snow0"
dirt_color = "#e3e7e8"
footstep_sound = /singleton/sound_category/snow_footstep
smooth = SMOOTH_MORE | SMOOTH_BORDER | SMOOTH_NO_CLEAR_ICON
smoothing_hints = SMOOTHHINT_CUT_F | SMOOTHHINT_ONLY_MATCH_TURF | SMOOTHHINT_TARGETS_NOT_UNIQUE
canSmoothWith = list(
/turf/simulated/floor/exoplanet/snow,
/turf/simulated/wall,
/turf/unsimulated/wall
) //Smooths with walls but not the inverse. This way to avoid layering over walls.
/turf/simulated/floor/exoplanet/snow/Initialize()
. = ..()
pixel_x = -4
pixel_y = -4
icon_state = pick("snow[rand(1,2)]","snow0","snow0")
queue_smooth_neighbors(src)
queue_smooth(src)
/turf/simulated/floor/exoplanet/snow/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume)
melt()
/turf/simulated/floor/exoplanet/snow/melt()
ChangeTurf(/turf/simulated/floor/exoplanet/permafrost)
/turf/simulated/floor/exoplanet/permafrost
name = "permafrost"
icon = 'icons/turf/flooring/snow.dmi'
icon_state = "permafrost"
footstep_sound = /singleton/sound_category/asteroid_footstep
//Grass
/turf/simulated/floor/exoplanet/grass
name = "grass"
icon = 'icons/turf/jungle.dmi'
icon_state = "greygrass"
color = "#799c4b"
footstep_sound = /singleton/sound_category/grass_footstep
/turf/simulated/floor/exoplanet/grass/Initialize()
. = ..()
if(current_map.use_overmap)
var/obj/effect/overmap/visitable/sector/exoplanet/E = map_sectors["[z]"]
if(istype(E) && E.grass_color)
color = E.grass_color
if(!resources)
resources = list()
if(prob(5))
resources[MATERIAL_URANIUM] = rand(1,3)
if(prob(2))
resources[MATERIAL_DIAMOND] = 1
/turf/simulated/floor/exoplanet/grass/grove
icon_state = "grove_grass1"
color = null
has_edge_icon = FALSE
/turf/simulated/floor/exoplanet/grass/grove/Initialize()
. = ..()
icon_state = "grove_grass[rand(1,2)]"
//Sand
/turf/simulated/floor/exoplanet/desert
name = "sand"
desc = "It's coarse and gets everywhere."
dirt_color = "#ae9e66"
footstep_sound = /singleton/sound_category/sand_footstep
/turf/simulated/floor/exoplanet/desert/Initialize()
. = ..()
icon_state = "desert[rand(0,4)]"
/turf/simulated/floor/exoplanet/mineral
name = "sand"
desc = "It's coarse and gets everywhere."
dirt_color = "#544c31"
footstep_sound = /singleton/sound_category/sand_footstep
//Concrete
/turf/simulated/floor/exoplanet/concrete
name = "concrete"
desc = "Stone-like artificial material."
icon = 'icons/turf/flooring/concrete.dmi'
icon_state = "concrete"
//Special world edge turf,
/turf/unsimulated/planet_edge
@@ -1,6 +1,6 @@
/turf/simulated/floor/exoplanet/concrete
name = "concrete"
desc = "Stone-like artificial material."
icon = 'icons/turf/flooring/misc.dmi'
icon = 'icons/turf/flooring/concrete.dmi'
icon_state = "concrete"
does_footprint = FALSE
@@ -29,7 +29,7 @@
icon_state = "grove_grass[rand(1,2)]"
/turf/simulated/floor/exoplanet/grass/stalk
icon = 'icons/turf/total_floors.dmi'
icon = 'icons/turf/flooring/grass.dmi'
icon_state = "grass_stalk"
color = null
has_edge_icon = null
@@ -1,6 +1,6 @@
/turf/simulated/floor/exoplanet/ice
name = "ice"
icon = 'icons/turf/snow.dmi'
icon = 'icons/turf/smooth/snow.dmi'
icon_state = "ice"
footprint_color = FALSE
@@ -29,6 +29,6 @@
/turf/simulated/floor/exoplanet/permafrost
name = "permafrost"
icon = 'icons/turf/snow.dmi'
icon = 'icons/turf/flooring/snow.dmi'
icon_state = "permafrost"
footstep_sound = /singleton/sound_category/asteroid_footstep
+253 -25
View File
@@ -68,39 +68,183 @@
// may be opened to change power cell
// three different channels (lighting/equipment/environ) - may each be set to on, off, or auto
/obj/machinery/power/apc/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/critical
is_critical = TRUE
/obj/machinery/power/apc/critical/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/critical/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/critical/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/critical/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/low
cell_type = /obj/item/cell
/obj/machinery/power/apc/low/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/low/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/low/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/low/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/high
cell_type = /obj/item/cell/high
/obj/machinery/power/apc/high/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/high/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/high/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/high/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/isolation
cell_type = /obj/item/cell
req_access = null
req_one_access = list(access_engine_equip,access_research,access_xenobiology)
/obj/machinery/power/apc/isolation/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/isolation/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/isolation/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/isolation/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/vault
cell_type = /obj/item/cell
req_access = list(access_captain)
/obj/machinery/power/apc/vault/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/vault/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/vault/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/vault/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/intrepid
cell_type = /obj/item/cell/high
req_access = null
req_one_access = list(access_intrepid,access_engine_equip)
/obj/machinery/power/apc/intrepid/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/intrepid/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/intrepid/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/intrepid/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/canary
cell_type = /obj/item/cell/high
req_access = null
req_one_access = list(access_intrepid,access_engine_equip)
/obj/machinery/power/apc/canary/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/canary/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/canary/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/canary/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/mining_shuttle
cell_type = /obj/item/cell/high
req_access = null
req_one_access = list(access_mining,access_engine_equip)
/obj/machinery/power/apc/mining_shuttle/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/mining_shuttle/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/mining_shuttle/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/mining_shuttle/south
dir = SOUTH
pixel_y = 0
// Construction site APC, starts turned off
/obj/machinery/power/apc/high/inactive
cell_type = /obj/item/cell/high
@@ -111,18 +255,99 @@
coverlocked = FALSE
start_charge = 100
/obj/machinery/power/apc/canary/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/canary/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/canary/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/canary/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/super
cell_type = /obj/item/cell/super
/obj/machinery/power/apc/super/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/super/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/super/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/super/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/super/critical
is_critical = TRUE
/obj/machinery/power/apc/super/critical/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/super/critical/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/super/critical/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/super/critical/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/hyper
cell_type = /obj/item/cell/hyper
/obj/machinery/power/apc/hyper/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/hyper/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/hyper/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/hyper/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc/empty
start_charge = 0
/obj/machinery/power/apc/empty/north
dir = NORTH
pixel_y = 22
/obj/machinery/power/apc/empty/east
dir = EAST
pixel_x = 12
/obj/machinery/power/apc/empty/west
dir = WEST
pixel_x = -12
/obj/machinery/power/apc/empty/south
dir = SOUTH
pixel_y = 0
/obj/machinery/power/apc
name = "area power controller"
desc = "A control terminal for the area electrical systems."
@@ -134,6 +359,7 @@
desc_antag = "This can be emagged to unlock it. It will cause the APC to have a blue error screen. \
Wires can be pulsed remotely with a signaler attached to it. A powersink will also drain any APCs connected to the same wire the powersink is on."
icon = 'icons/obj/machinery/power/apc.dmi'
icon_state = "apc0"
anchored = TRUE
use_power = POWER_USE_OFF
@@ -220,7 +446,7 @@
return FALSE
if(surge && !emagged)
flick("apc-spark", src)
flick_overlay("apc-spark", src)
emagged = TRUE
locked = FALSE
update_icon()
@@ -235,14 +461,9 @@
. = ..(mapload)
wires = new(src)
// offset 28 pixels in direction of dir
// this allows the APC to be embedded in a wall, yet still inside an area
if (building)
set_dir(ndir)
pixel_x = DIR2PIXEL_X(dir)
pixel_y = DIR2PIXEL_Y(dir)
if (!building)
init(mapload)
else
@@ -254,6 +475,13 @@
stat |= MAINT
update_icon()
if(!mapload)
set_pixel_offsets()
/obj/machinery/power/apc/set_pixel_offsets()
pixel_x = ((src.dir & (NORTH|SOUTH)) ? 0 : (src.dir == EAST ? 12 : -(12)))
pixel_y = ((src.dir & (NORTH|SOUTH)) ? (src.dir == NORTH ? 22 : -(0)) : 0)
/obj/machinery/power/apc/Destroy()
update()
area.apc = null
@@ -348,28 +576,28 @@
status_overlays_lighting.len = 4
status_overlays_environ.len = 4
status_overlays_lock[1] = make_screen_overlay(icon, "apcox-0") // none
status_overlays_lock[2] = make_screen_overlay(icon, "apcox-1") // coverlocked/locked
status_overlays_lock[3] = make_screen_overlay(icon, "apcox-2") // coverlocked + locked
status_overlays_lock[1] = make_screen_overlay(icon, "apc-cover-0") // none
status_overlays_lock[2] = make_screen_overlay(icon, "apc-cover-1") // coverlocked/locked
status_overlays_lock[3] = make_screen_overlay(icon, "apc-cover-2") // coverlocked + locked
status_overlays_charging[1] = make_screen_overlay(icon, "apco3-0")
status_overlays_charging[2] = make_screen_overlay(icon, "apco3-1")
status_overlays_charging[3] = make_screen_overlay(icon, "apco3-2")
status_overlays_charging[1] = make_screen_overlay(icon, "apc-charge-0")
status_overlays_charging[2] = make_screen_overlay(icon, "apc-charge-1")
status_overlays_charging[3] = make_screen_overlay(icon, "apc-charge-2")
status_overlays_equipment[1] = make_screen_overlay(icon, "apco0-0")
status_overlays_equipment[2] = make_screen_overlay(icon, "apco0-1")
status_overlays_equipment[3] = make_screen_overlay(icon, "apco0-2")
status_overlays_equipment[4] = make_screen_overlay(icon, "apco0-3")
status_overlays_equipment[1] = make_screen_overlay(icon, "apcoequip-0")
status_overlays_equipment[2] = make_screen_overlay(icon, "apcoequip-1")
status_overlays_equipment[3] = make_screen_overlay(icon, "apcoequip-2")
status_overlays_equipment[4] = make_screen_overlay(icon, "apcoequip-3")
status_overlays_lighting[1] = make_screen_overlay(icon, "apco1-0")
status_overlays_lighting[2] = make_screen_overlay(icon, "apco1-1")
status_overlays_lighting[3] = make_screen_overlay(icon, "apco1-2")
status_overlays_lighting[4] = make_screen_overlay(icon, "apco1-3")
status_overlays_lighting[1] = make_screen_overlay(icon, "apcolight-0")
status_overlays_lighting[2] = make_screen_overlay(icon, "apcolight-1")
status_overlays_lighting[3] = make_screen_overlay(icon, "apcolight-2")
status_overlays_lighting[4] = make_screen_overlay(icon, "apcolight-3")
status_overlays_environ[1] = make_screen_overlay(icon, "apco2-0")
status_overlays_environ[2] = make_screen_overlay(icon, "apco2-1")
status_overlays_environ[3] = make_screen_overlay(icon, "apco2-2")
status_overlays_environ[4] = make_screen_overlay(icon, "apco2-3")
status_overlays_environ[1] = make_screen_overlay(icon, "apcoenv-0")
status_overlays_environ[2] = make_screen_overlay(icon, "apcoenv-1")
status_overlays_environ[3] = make_screen_overlay(icon, "apcoenv-2")
status_overlays_environ[4] = make_screen_overlay(icon, "apcoenv-3")
var/update = check_updates() //returns 0 if no need to update icons.
// 1 if we need to update the icon_state
@@ -816,7 +1044,7 @@
else if(stat & (BROKEN|MAINT))
to_chat(user, "Nothing happens.")
else
flick("apc-spark", src)
flick_overlay("apc-spark", src)
if(do_after(user, 6))
if(prob(50))
emagged = TRUE
+7 -7
View File
@@ -4,7 +4,7 @@
// will fit into empty /obj/machinery/light of the corresponding type
/obj/item/light
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
force = 2
throwforce = 5
w_class = ITEMSIZE_TINY
@@ -39,20 +39,20 @@
cut_overlays()
switch(status)
if(LIGHT_OK)
icon_state = "l[lighttype]_attachment"
var/image/I = image(icon, "l[lighttype]")
icon_state = "[lighttype]_attachment"
var/image/I = image(icon, "[lighttype]")
I.color = brightness_color
add_overlay(I)
desc = "A replacement [name]."
if(LIGHT_BURNED)
icon_state = "l[lighttype]_attachment"
var/image/I = image(icon, "l[lighttype]_burned")
icon_state = "[lighttype]_attachment"
var/image/I = image(icon, "[lighttype]_burned")
I.color = brightness_color
add_overlay(I)
desc = "A burnt-out [name]."
if(LIGHT_BROKEN)
icon_state = "l[lighttype]_attachment_broken"
var/image/I = image(icon, "l[lighttype]_broken")
icon_state = "[lighttype]_attachment_broken"
var/image/I = image(icon, "[lighttype]_broken")
I.color = brightness_color
add_overlay(I)
desc = "A broken [name]."
+5 -5
View File
@@ -2,7 +2,7 @@
/obj/machinery/light_construct
name = "light fixture frame"
desc = "A light fixture under construction."
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
icon_state = "tube-construct-stage1"
anchored = TRUE
layer = 5
@@ -185,7 +185,7 @@
/obj/machinery/light_construct/small
name = "small light fixture frame"
desc = "A small light fixture under construction."
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
icon_state = "bulb-construct-stage1"
anchored = TRUE
layer = 5
@@ -196,7 +196,7 @@
/obj/machinery/light_construct/spot
name = "spotlight fixture frame"
desc = "A spotlight fixture under construction."
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
icon_state = "slight-construct-stage1"
anchored = TRUE
layer = 5
@@ -207,7 +207,7 @@
/obj/machinery/light_construct/small/floor
name = "small floor light fixture frame"
desc = "A small floor light fixture under construction."
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
icon_state = "floor-construct-stage1"
anchored = TRUE
layer = 2.5
@@ -218,7 +218,7 @@
/obj/machinery/light_construct/floor
name = "floor light fixture frame"
desc = "A floor light fixture under construction."
icon = 'icons/obj/lights.dmi'
icon = 'icons/obj/machinery/light.dmi'
icon_state = "floortube-construct-stage1"
anchored = TRUE
layer = 2.5
+15 -7
View File
@@ -6,9 +6,9 @@
// the standard tube light fixture
/obj/machinery/light
name = "light fixture"
icon = 'icons/obj/lights.dmi'
var/base_state = "tube"
icon_state = "tube_example"
icon = 'icons/obj/machinery/light.dmi'
var/base_state = "tube" // base description and icon_state
icon_state = "tube_empty"
desc = "A lighting fixture."
desc_info = "Use grab intent when interacting with a working light to take it out of its fixture."
anchored = TRUE
@@ -83,8 +83,7 @@
// the smaller bulb light fixture
/obj/machinery/light/small
name = "small light fixture"
icon_state = "bulb_example"
icon_state = "bulb_empty"
base_state = "bulb"
fitting = "bulb"
brightness_range = 5
@@ -137,8 +136,7 @@
/obj/machinery/light/spot
name = "spotlight fixture"
icon_state = "slight_example"
base_state = "slight"
icon_state = "tube_empty"
desc = "An extremely powerful lighting fixture."
fitting = "large tube"
light_type = /obj/item/light/tube/large
@@ -178,6 +176,7 @@
// create a new lighting fixture
/obj/machinery/light/Initialize(mapload)
. = ..()
if (!has_power())
stat |= NOPOWER
if (start_with_cell && !no_emergency)
@@ -199,11 +198,20 @@
brightness_color = pick(randomized_colors)
default_color = brightness_color // We need a different var so the new color doesn't get wiped away. Initial() wouldn't work since brightness_color is overridden.
update(0)
set_pixel_offsets()
/obj/machinery/light/Destroy()
QDEL_NULL(cell)
return ..()
/obj/machinery/light/set_pixel_offsets()
pixel_x = dir & (NORTH|SOUTH) ? 0 : (dir == EAST ? 12 : -12)
pixel_y = dir & (NORTH|SOUTH) ? (dir == NORTH ? DEFAULT_WALL_OFFSET : 0) : 0
/obj/machinery/light/floor/set_pixel_offsets()
pixel_x = pixel_x
pixel_y = pixel_y
/obj/machinery/light/update_icon()
cut_overlays()
if ((status == LIGHT_EMPTY) || !fitting_has_empty_icon)
@@ -11,7 +11,7 @@
flags = PROXMOVE
var/obj/machinery/field_generator/FG1 = null
var/obj/machinery/field_generator/FG2 = null
var/hasShocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.
var/has_shocked = 0 //Used to add a delay between shocks. In some cases this used to crash servers by spawning hundreds of sparks every second.
/obj/machinery/containment_field/Destroy()
if(FG1 && !FG1.clean_up)
@@ -43,13 +43,13 @@
/obj/machinery/containment_field/shock(mob/living/user as mob)
if(hasShocked)
if(has_shocked)
return 0
if(!FG1 || !FG2)
qdel(src)
return 0
if(isliving(user))
hasShocked = 1
has_shocked = 1
var/shock_damage = min(rand(30,40),rand(30,40))
user.electrocute_act(shock_damage, src)
@@ -58,7 +58,7 @@
sleep(20)
hasShocked = 0
has_shocked = 0
return
/obj/machinery/containment_field/proc/set_master(var/master1,var/master2)
+1 -1
View File
@@ -269,7 +269,7 @@
/obj/machinery/power/solar_control
name = "solar panel control"
desc = "A controller for solar panel arrays."
icon = 'icons/obj/modular_console.dmi'
icon = 'icons/obj/machinery/modular_console.dmi'
icon_state = "computer"
light_color = LIGHT_COLOR_YELLOW
anchored = 1
+1 -2
View File
@@ -76,8 +76,7 @@
// Tracker Electronic
/obj/item/tracker_electronics
name = "tracker electronics"
icon = 'icons/obj/doors/door_assembly.dmi'
icon = 'icons/obj/device.dmi'
icon_state = "door_electronics"
w_class = ITEMSIZE_SMALL
+23 -8
View File
@@ -2,6 +2,7 @@
var/table_mat
var/table_reinf
var/no_cargo
material_alteration = MATERIAL_ALTERATION_NAME || MATERIAL_ALTERATION_DESC
build_amt = 1
/obj/structure/table/Initialize()
@@ -14,14 +15,17 @@
. = ..()
/obj/structure/table/standard
icon_state = "plain_preview"
icon = 'icons/obj/structure/tables/steel_table.dmi'
icon_state = "steel_preview"
table_mat = DEFAULT_TABLE_MATERIAL
/obj/structure/table/steel
icon_state = "plain_preview"
icon = 'icons/obj/structure/tables/steel_table.dmi'
icon_state = "steel_preview"
table_mat = DEFAULT_WALL_MATERIAL
/obj/structure/table/stone
icon = 'icons/obj/structure/tables/marble_table.dmi'
icon_state = "stone_preview"
table_mat = MATERIAL_SANDSTONE
@@ -29,47 +33,58 @@
table_mat = MATERIAL_MARBLE
/obj/structure/table/reinforced
icon = 'icons/obj/structure/tables/reinforced_table.dmi'
icon_state = "reinf_preview"
table_mat = DEFAULT_TABLE_MATERIAL
table_reinf = DEFAULT_WALL_MATERIAL
/obj/structure/table/reinforced/steel
icon_state = "reinf_preview"
table_mat = DEFAULT_WALL_MATERIAL
/obj/structure/table/reinforced/wood
icon = 'icons/obj/structure/tables/wood_table.dmi'
icon_state = "wood_preview"
table_mat = MATERIAL_WOOD
table_reinf = MATERIAL_WOOD
material_alteration = MATERIAL_ALTERATION_ALL
/obj/structure/table/reinforced/glass
icon = 'icons/obj/structure/tables/rglass_table.dmi'
icon_state = "rglass_preview"
table_mat = MATERIAL_GLASS_REINFORCED
table_reinf = MATERIAL_GLASS_REINFORCED
alpha = 77 // 0.3 * 255
/obj/structure/table/wood
icon_state = "plain_preview"
icon = 'icons/obj/structure/tables/wood_table.dmi'
icon_state = "wood_preview"
table_mat = MATERIAL_WOOD
material_alteration = MATERIAL_ALTERATION_ALL
/obj/structure/table/wood/gamblingtable
icon_state = "gamble_preview"
carpeted = 1
/obj/structure/table/glass
icon_state = "plain_preview"
icon = 'icons/obj/structure/tables/glass_table.dmi'
icon_state = "glass_preview"
table_mat = MATERIAL_GLASS
alpha = 77 // 0.3 * 255
/obj/structure/table/skrell
icon = 'icons/obj/structure/tables/skrell_table.dmi'
icon_state = "skrell_preview"
table_mat = MATERIAL_SHUTTLE_SKRELL
/obj/structure/table/diona
icon = 'icons/obj/structure/tables/diona_table.dmi'
icon_state = "biomass_preview"
table_mat = MATERIAL_DIONA
/obj/structure/table/holotable
icon_state = "holo_preview"
icon = 'icons/obj/structure/tables/steel_table.dmi'
icon_state = "steel_preview"
table_mat = MATERIAL_PLASTIC_HOLO
/obj/structure/table/holotable/holowood
icon = 'icons/obj/structure/tables/wood_table.dmi'
icon_state = "wood_preview"
table_mat = MATERIAL_WOOD_HOLO
+6 -8
View File
@@ -1,6 +1,6 @@
/obj/structure/table
name = "table frame"
icon = 'icons/obj/tables.dmi'
icon = 'icons/obj/structure/tables/table.dmi'
icon_state = "frame"
desc = "It's a table, for putting things on. Or standing on, if you really want to."
density = 1
@@ -212,7 +212,8 @@
/obj/structure/table/proc/update_desc()
if(material)
name = "[material.display_name] table"
if(material_alteration & MATERIAL_ALTERATION_NAME)
name = "[material.display_name] table"
else
name = "table frame"
@@ -330,8 +331,7 @@
if(material)
for(var/i = 1 to 4)
I = image(icon, "[material.icon_base]_[connections[i]]", dir = 1<<(i-1))
if(material.icon_colour) I.color = material.icon_colour
I.alpha = 255 * material.opacity
if(material_alteration & MATERIAL_ALTERATION_COLOR) I.color = material.icon_colour
add_overlay(I)
// Reinforcements
@@ -339,7 +339,6 @@
for(var/i = 1 to 4)
I = image(icon, "[reinforced.icon_reinf]_[connections[i]]", dir = 1<<(i-1))
I.color = reinforced.icon_colour
I.alpha = 255 * reinforced.opacity
add_overlay(I)
if(carpeted)
@@ -367,16 +366,15 @@
if(material)
var/image/I = image(icon, "[material.icon_base]_flip[type]")
I.color = material.icon_colour
I.alpha = 255 * material.opacity
add_overlay(I)
name = "[material.display_name] table"
if(material_alteration & MATERIAL_ALTERATION_NAME)
name = "[material.display_name] table"
else
name = "table frame"
if(reinforced)
var/image/I = image(icon, "[reinforced.icon_reinf]_flip[type]")
I.color = reinforced.icon_colour
I.alpha = 255 * reinforced.opacity
add_overlay(I)
if(carpeted)
+5 -4
View File
@@ -1,12 +1,13 @@
/obj/machinery/door/airlock/lift
name = "Elevator Door"
name = "elevator door"
desc = "Ding."
airlock_type = "Lift"
door_color = COLOR_GRAY20
door_frame_color = COLOR_GRAY20
req_access = list(access_maint_tunnels)
glass = TRUE
opacity = FALSE
autoclose = FALSE
glass = TRUE
icon = 'icons/obj/doors/doorlift.dmi'
assembly_type = /obj/structure/door_assembly/door_assembly_lift
hashatch = FALSE
panel_visible_while_open = TRUE
insecure = FALSE