mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
[MIRROR] Reduce Lists Memory usage, update CI (#10929)
This commit is contained in:
51
.github/actions/restore_or_install_byond/action.yml
vendored
Normal file
51
.github/actions/restore_or_install_byond/action.yml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
# This action attempts to restore BYOND from a cache, or to install it otherwise.
|
||||
name: Restore or Install BYOND
|
||||
description: Attempts to restore a specified BYOND version from cache; if it can't, it installs it.
|
||||
|
||||
inputs:
|
||||
major:
|
||||
description: "The major BYOND version to install. Defaults to the BYOND_MAJOR specified in `dependencies.sh`."
|
||||
required: false
|
||||
type: string
|
||||
minor:
|
||||
description: "The minor BYOND version to install. Defaults to the BYOND_MINOR specified in `dependencies.sh`."
|
||||
required: false
|
||||
type: string
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Configure BYOND version from inputs
|
||||
if: ${{ inputs.major }}
|
||||
shell: bash
|
||||
run: |
|
||||
echo "BYOND_MAJOR=${{ inputs.major }}" >> $GITHUB_ENV
|
||||
echo "BYOND_MINOR=${{ inputs.minor }}" >> $GITHUB_ENV
|
||||
- name: Configure BYOND version from dependencies.sh
|
||||
if: ${{ !inputs.major }}
|
||||
shell: bash
|
||||
run: |
|
||||
source dependencies.sh
|
||||
echo "BYOND_MAJOR=$BYOND_MAJOR" >> $GITHUB_ENV
|
||||
echo "BYOND_MINOR=$BYOND_MINOR" >> $GITHUB_ENV
|
||||
|
||||
# The use of `actions/cache/restore` and `actions/cache/save` here is deliberate, as we want to
|
||||
# save the BYOND install to a cache as early as possible. If we used just `actions/cache`, it
|
||||
# would only attempt to save the cache at the end of a job. This ensures that if a workflow run
|
||||
# is cancelled, we already have a cache to restore from.
|
||||
- name: Restore BYOND cache
|
||||
id: restore_byond_cache
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ~/BYOND
|
||||
key: ${{ runner.os }}-byond-${{ env.BYOND_MAJOR }}-${{ env.BYOND_MINOR }}
|
||||
- name: Install BYOND
|
||||
if: ${{ !steps.restore_byond_cache.outputs.cache-hit }}
|
||||
shell: bash
|
||||
run: bash tools/ci/install_byond.sh
|
||||
- name: Save BYOND cache
|
||||
if: ${{ !steps.restore_byond_cache.outputs.cache-hit }}
|
||||
uses: actions/cache/save@v4
|
||||
with:
|
||||
path: ~/BYOND
|
||||
key: ${{ steps.restore_byond_cache.outputs.cache-primary-key }}
|
||||
26
.github/actions/setup_node/action.yml
vendored
Normal file
26
.github/actions/setup_node/action.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
# This action is a wrapper around `actions/setup-node`, to use the version specified in
|
||||
# `dependencies.sh`.
|
||||
name: Setup Node
|
||||
description: Install Node using the version specified in `dependencies.sh`; additionally, restores the Yarn cache if one exists
|
||||
|
||||
inputs:
|
||||
restore-yarn-cache:
|
||||
description: 'If `true`, restores the Yarn cache alongside installing node.'
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Configure Node version
|
||||
shell: bash
|
||||
run: |
|
||||
source dependencies.sh
|
||||
echo "NODE_VERSION_REQUIRED=$NODE_VERSION_LTS" >> $GITHUB_ENV
|
||||
- name: Install Node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: ${{ env.NODE_VERSION_REQUIRED }}
|
||||
cache: ${{ fromJSON(inputs.restore-yarn-cache) && 'yarn' || '' }}
|
||||
cache-dependency-path: ${{ fromJSON(inputs.restore-yarn-cache) && 'tgui/yarn.lock' || '' }}
|
||||
33
.github/workflows/ci.yml
vendored
33
.github/workflows/ci.yml
vendored
@@ -20,23 +20,10 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
# Caches
|
||||
- name: Ensure +x on CI directory
|
||||
run: |
|
||||
chmod -R +x ./tools/ci
|
||||
- name: Restore Yarn cache
|
||||
uses: actions/cache@v4
|
||||
- name: Setup Node
|
||||
uses: ./.github/actions/setup_node
|
||||
with:
|
||||
path: tgui/.yarn/cache
|
||||
key: ${{ runner.os }}-yarn-${{ hashFiles('tgui/yarn.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-yarn-
|
||||
- name: Restore Node cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: ~/.nvm
|
||||
key: ${{ runner.os }}-node-${{ hashFiles('dependencies.sh') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-node-
|
||||
restore-yarn-cache: true
|
||||
- name: Restore Bootstrap cache
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
@@ -60,7 +47,6 @@ jobs:
|
||||
- name: Install Tools
|
||||
run: |
|
||||
pip3 install setuptools
|
||||
bash tools/ci/install_build_deps.sh
|
||||
bash tools/ci/install_ripgrep.sh
|
||||
bash tools/ci/install_spaceman_dmm.sh dmm-tools
|
||||
tools/bootstrap/python -c ''
|
||||
@@ -139,24 +125,21 @@ jobs:
|
||||
- name: Ensure +x on CI directory
|
||||
run: |
|
||||
chmod -R +x ./tools/ci
|
||||
- name: Restore BYOND Cache
|
||||
uses: actions/cache@v4
|
||||
- name: Restore BYOND from Cache
|
||||
uses: ./.github/actions/restore_or_install_byond
|
||||
with:
|
||||
path: $HOME/byond
|
||||
key: ${{ runner.os }}-byond
|
||||
major: ${{ inputs.major }}
|
||||
minor: ${{ inputs.minor }}
|
||||
- name: Install RUST_G Dependencies
|
||||
run: |
|
||||
sudo dpkg --add-architecture i386
|
||||
sudo apt update || true
|
||||
sudo apt install gcc-multilib
|
||||
sudo apt install zlib1g-dev:i386
|
||||
ldd librust_g.so
|
||||
ldd libbapi_dmm_reader.so
|
||||
ldd libverdigris.so
|
||||
- name: Unit Tests
|
||||
run: |
|
||||
tools/ci/install_byond.sh
|
||||
tools/ci/compile_and_run.sh
|
||||
run: tools/ci/compile_and_run.sh
|
||||
env:
|
||||
EXTRA_ARGS: "-DUNIT_TEST -D${{ matrix.map }}"
|
||||
RUN: "1"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
return
|
||||
|
||||
var/obj/screen/alert/alert
|
||||
if(alerts[category])
|
||||
if(LAZYACCESS(alerts, category))
|
||||
alert = alerts[category]
|
||||
if(new_master && new_master != alert.master)
|
||||
WARNING("[src] threw alert [category] with new_master [new_master] while already having that alert with master [alert.master]")
|
||||
@@ -47,7 +47,7 @@
|
||||
alert.icon_state = "[initial(alert.icon_state)][severity]"
|
||||
alert.severity = severity
|
||||
|
||||
alerts[category] = alert
|
||||
LAZYSET(alerts, category, alert)
|
||||
if(client && hud_used)
|
||||
hud_used.reorganize_alerts()
|
||||
alert.transform = matrix(32, 6, MATRIX_TRANSLATE)
|
||||
@@ -59,16 +59,16 @@
|
||||
return alert
|
||||
|
||||
/mob/proc/alert_timeout(obj/screen/alert/alert, category)
|
||||
if(alert.timeout && alerts[category] == alert && world.time >= alert.timeout)
|
||||
if(alert.timeout && LAZYACCESS(alerts, category) == alert && world.time >= alert.timeout)
|
||||
clear_alert(category)
|
||||
|
||||
// Proc to clear an existing alert.
|
||||
/mob/proc/clear_alert(category)
|
||||
var/obj/screen/alert/alert = alerts[category]
|
||||
var/obj/screen/alert/alert = LAZYACCESS(alerts, category)
|
||||
if(!alert)
|
||||
return 0
|
||||
|
||||
alerts -= category
|
||||
LAZYREMOVE(alerts, category)
|
||||
if(client && hud_used)
|
||||
hud_used.reorganize_alerts()
|
||||
client.screen -= alert
|
||||
@@ -434,10 +434,10 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
/datum/hud/proc/reorganize_alerts()
|
||||
var/list/alerts = mymob.alerts
|
||||
if(!hud_shown)
|
||||
for(var/i = 1, i <= alerts.len, i++)
|
||||
mymob.client.screen -= alerts[alerts[i]]
|
||||
return 1
|
||||
for(var/i = 1, i <= alerts.len, i++)
|
||||
for(var/i in 1 to length(alerts))
|
||||
mymob?.client?.screen -= alerts[alerts[i]]
|
||||
return TRUE
|
||||
for(var/i in 1 to length(alerts))
|
||||
var/obj/screen/alert/alert = alerts[alerts[i]]
|
||||
|
||||
if(alert.icon_state in cached_icon_states(ui_style))
|
||||
@@ -467,7 +467,7 @@ so as to remain in compliance with the most up-to-date laws."
|
||||
return 1
|
||||
|
||||
/mob
|
||||
var/list/alerts = list() // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly
|
||||
var/list/alerts = null // contains /obj/screen/alert only // On /mob so clientless mobs will throw alerts properly
|
||||
|
||||
/obj/screen/alert/Click(location, control, params)
|
||||
if(!usr || !usr.client)
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
/mob
|
||||
var/list/screens = list()
|
||||
var/list/screens = null
|
||||
|
||||
/mob/proc/set_fullscreen(condition, screen_name, screen_type, arg)
|
||||
condition ? overlay_fullscreen(screen_name, screen_type, arg) : clear_fullscreen(screen_name)
|
||||
|
||||
/mob/proc/overlay_fullscreen(category, type, severity)
|
||||
var/obj/screen/fullscreen/screen = screens[category]
|
||||
var/obj/screen/fullscreen/screen = LAZYACCESS(screens, category)
|
||||
if (!screen || screen.type != type)
|
||||
// needs to be recreated
|
||||
clear_fullscreen(category, FALSE)
|
||||
screens[category] = screen = new type()
|
||||
screen = new type()
|
||||
LAZYSET(screens, category, screen)
|
||||
else if ((!severity || severity == screen.severity) && (!client || screen.screen_loc != "CENTER-7,CENTER-7" || screen.view == client.view))
|
||||
// doesn't need to be updated
|
||||
return screen
|
||||
@@ -23,11 +24,11 @@
|
||||
return screen
|
||||
|
||||
/mob/proc/clear_fullscreen(category, animated = 10)
|
||||
var/obj/screen/fullscreen/screen = screens[category]
|
||||
var/obj/screen/fullscreen/screen = LAZYACCESS(screens, category)
|
||||
if(!screen)
|
||||
return
|
||||
|
||||
screens -= category
|
||||
LAZYREMOVE(screens, category)
|
||||
|
||||
if(animated)
|
||||
spawn(0)
|
||||
|
||||
@@ -38,15 +38,13 @@
|
||||
|
||||
var/affected_by_emp_until = 0
|
||||
|
||||
var/client_huds = list()
|
||||
|
||||
var/list/camera_computers_using_this = list()
|
||||
var/client_huds = null
|
||||
|
||||
/obj/machinery/camera/Initialize(mapload)
|
||||
wires = new(src)
|
||||
assembly = new(src)
|
||||
assembly.state = 4
|
||||
client_huds |= GLOB.global_hud.whitense
|
||||
LAZYOR(client_huds, GLOB.global_hud.whitense)
|
||||
|
||||
/* // Use this to look for cameras that have the same c_tag.
|
||||
for(var/obj/machinery/camera/C in cameranet.cameras)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/obj/machinery/camera
|
||||
var/list/motionTargets = list()
|
||||
var/list/motionTargets = null
|
||||
var/detectTime = 0
|
||||
var/area/ai_monitored/area_motion = null
|
||||
var/alarm_delay = 100 // Don't forget, there's another 10 seconds in queueAlarm()
|
||||
@@ -29,13 +29,13 @@
|
||||
if (detectTime == 0)
|
||||
detectTime = world.time // start the clock
|
||||
if (!(target in motionTargets))
|
||||
motionTargets += target
|
||||
LAZYADD(motionTargets, target)
|
||||
return 1
|
||||
|
||||
/obj/machinery/camera/proc/lostTarget(var/mob/target)
|
||||
if (target in motionTargets)
|
||||
motionTargets -= target
|
||||
if (motionTargets.len == 0)
|
||||
LAZYREMOVE(motionTargets, target)
|
||||
if (LAZYLEN(motionTargets) == 0)
|
||||
cancelAlarm()
|
||||
|
||||
/obj/machinery/camera/proc/cancelAlarm()
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
var/climbing_delay = 1 //If rock_climbing, lower better.
|
||||
var/digestable = TRUE
|
||||
var/item_tf_spawn_allowed = FALSE
|
||||
var/list/ckeys_allowed_itemspawn = list()
|
||||
var/list/ckeys_allowed_itemspawn = null
|
||||
|
||||
/obj/item/Initialize(mapload)
|
||||
. = ..()
|
||||
|
||||
@@ -49,16 +49,6 @@
|
||||
if(!T)
|
||||
return PROXIMITY_OFF_CAMERANET
|
||||
|
||||
// Security is also a concern, so we need to see if any cameras are in use.
|
||||
// Note that this will trigger upon the security console being used, regardless if someone is actually watching,
|
||||
// because there isn't a nice way to test if someone is actually looking. Probably better that way too.
|
||||
var/list/our_local_area = range(range_alert, T)
|
||||
for(var/obj/machinery/camera/C in our_local_area)
|
||||
if(C.camera_computers_using_this.len) // Only check cameras actively being used.
|
||||
var/list/their_local_area = C.can_see(range_alert)
|
||||
if(T in their_local_area)
|
||||
return PROXIMITY_ON_SCREEN
|
||||
|
||||
// Now for the somewhat harder AI cameranet checks.
|
||||
|
||||
// Check if we are even on the cameranet.
|
||||
|
||||
@@ -451,8 +451,8 @@ var/global/list/obj/item/communicator/all_communicators = list() //Don't change
|
||||
|
||||
/obj/machinery/camera/communicator/Initialize(mapload)
|
||||
. = ..()
|
||||
client_huds |= GLOB.global_hud.whitense
|
||||
client_huds |= GLOB.global_hud.darkMask
|
||||
LAZYOR(client_huds, GLOB.global_hud.whitense)
|
||||
LAZYOR(client_huds, GLOB.global_hud.darkMask)
|
||||
|
||||
//It's the 26th century. We should have smart watches by now.
|
||||
/obj/item/communicator/watch
|
||||
|
||||
@@ -44,10 +44,8 @@ var/list/flooring_types
|
||||
var/flags
|
||||
var/can_paint
|
||||
var/can_engrave = FALSE
|
||||
var/list/footstep_sounds = list() // key=species name, value = list of sounds,
|
||||
// For instance, footstep_sounds = list("key" = list(sound.ogg))
|
||||
var/is_plating = FALSE
|
||||
var/list/flooring_cache = list() // Cached overlays for our edges and corners and junk
|
||||
var/list/flooring_cache = null // Cached overlays for our edges and corners and junk
|
||||
|
||||
//Plating types, can be overridden
|
||||
var/plating_type = null
|
||||
@@ -73,8 +71,8 @@ var/list/flooring_types
|
||||
|
||||
//How we smooth with other flooring
|
||||
var/floor_smooth = SMOOTH_NONE
|
||||
var/list/flooring_whitelist = list() //Smooth with nothing except the contents of this list
|
||||
var/list/flooring_blacklist = list() //Smooth with everything except the contents of this list
|
||||
var/list/flooring_whitelist = null //Smooth with nothing except the contents of this list
|
||||
var/list/flooring_blacklist = null //Smooth with everything except the contents of this list
|
||||
|
||||
//How we smooth with walls
|
||||
var/wall_smooth = SMOOTH_NONE
|
||||
@@ -112,8 +110,8 @@ var/list/flooring_types
|
||||
|
||||
*/
|
||||
var/smooth_movable_atom = SMOOTH_NONE
|
||||
var/list/movable_atom_whitelist = list()
|
||||
var/list/movable_atom_blacklist = list()
|
||||
var/list/movable_atom_whitelist = null
|
||||
var/list/movable_atom_blacklist = null
|
||||
|
||||
var/check_season = FALSE //VOREStation Addition
|
||||
|
||||
@@ -121,11 +119,11 @@ var/list/flooring_types
|
||||
return plating_type
|
||||
|
||||
/decl/flooring/proc/get_flooring_overlay(var/cache_key, var/icon_base, var/icon_dir = 0, var/layer = BUILTIN_DECAL_LAYER)
|
||||
if(!flooring_cache[cache_key])
|
||||
if(!LAZYACCESS(flooring_cache, cache_key))
|
||||
var/image/I = image(icon = icon, icon_state = icon_base, dir = icon_dir)
|
||||
I.layer = layer
|
||||
flooring_cache[cache_key] = I
|
||||
return flooring_cache[cache_key]
|
||||
LAZYSET(flooring_cache, cache_key, I)
|
||||
return LAZYACCESS(flooring_cache, cache_key)
|
||||
|
||||
/decl/flooring/grass
|
||||
name = "grass"
|
||||
@@ -136,11 +134,6 @@ var/list/flooring_types
|
||||
damage_temperature = T0C+80
|
||||
flags = TURF_HAS_EDGES | TURF_HAS_CORNERS | TURF_REMOVE_SHOVEL
|
||||
build_type = /obj/item/stack/tile/grass
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/grass1.ogg',
|
||||
'sound/effects/footstep/grass2.ogg',
|
||||
'sound/effects/footstep/grass3.ogg',
|
||||
'sound/effects/footstep/grass4.ogg'))
|
||||
|
||||
/decl/flooring/grass/sif // Subtype for Sif's grass.
|
||||
name = "growth"
|
||||
@@ -148,16 +141,7 @@ var/list/flooring_types
|
||||
flags = 0
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "grass_sif"
|
||||
build_type = /obj/item/stack/tile/grass/sif
|
||||
has_base_range = 1
|
||||
|
||||
/decl/flooring/grass/sif/forest
|
||||
name = "thick growth"
|
||||
desc = "A natural moss that has adapted to the sheer cold climate."
|
||||
flags = TURF_REMOVE_SHOVEL
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "grass_sif_dark"
|
||||
build_type = /obj/item/stack/tile/grass/sif/forest
|
||||
build_type = null
|
||||
has_base_range = 1
|
||||
|
||||
//CHOMPedit: sif/forest decl. If this ends up upstream just accept the upstream version.
|
||||
@@ -176,22 +160,12 @@ var/list/flooring_types
|
||||
desc = "Water is wet, gosh, who knew!"
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "seashallow"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/water1.ogg',
|
||||
'sound/effects/footstep/water2.ogg',
|
||||
'sound/effects/footstep/water3.ogg',
|
||||
'sound/effects/footstep/water4.ogg'))
|
||||
|
||||
/decl/flooring/sand
|
||||
name = "sand"
|
||||
desc = "I don't like sand. It's coarse and rough and irritating and it gets everywhere."
|
||||
icon = 'icons/misc/beach.dmi'
|
||||
icon_base = "sand"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/HeavySand1.ogg',
|
||||
'sound/effects/footstep/HeavySand2.ogg',
|
||||
'sound/effects/footstep/HeavySand3.ogg',
|
||||
'sound/effects/footstep/HeavySand4.ogg'))
|
||||
|
||||
/decl/flooring/sand/desert // Subtype of sand, desert.
|
||||
name = "desert"
|
||||
@@ -204,22 +178,12 @@ var/list/flooring_types
|
||||
desc = "Wet and fragrant mud, bane of the freshly mopped floor."
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "mud_dark"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/mud1.ogg',
|
||||
'sound/effects/footstep/mud2.ogg',
|
||||
'sound/effects/footstep/mud3.ogg',
|
||||
'sound/effects/footstep/mud4.ogg'))
|
||||
|
||||
/decl/flooring/rock
|
||||
name = "rocks"
|
||||
desc = "Hard as a rock."
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "rock"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/LightStone1.ogg',
|
||||
'sound/effects/footstep/LightStone2.ogg',
|
||||
'sound/effects/footstep/LightStone3.ogg',
|
||||
'sound/effects/footstep/LightStone4.ogg'))
|
||||
|
||||
/decl/flooring/asteroid
|
||||
name = "coarse sand"
|
||||
@@ -228,12 +192,6 @@ var/list/flooring_types
|
||||
icon_base = "asteroid"
|
||||
flags = TURF_REMOVE_SHOVEL | TURF_ACID_IMMUNE
|
||||
build_type = null
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg'))
|
||||
|
||||
/decl/flooring/dirt
|
||||
name = "soil"
|
||||
@@ -242,28 +200,12 @@ var/list/flooring_types
|
||||
icon_base = "dirt-dark"
|
||||
flags = TURF_REMOVE_SHOVEL
|
||||
build_type = null
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg',
|
||||
'sound/effects/footstep/MedDirt1.ogg',
|
||||
'sound/effects/footstep/MedDirt2.ogg',
|
||||
'sound/effects/footstep/MedDirt3.ogg',
|
||||
'sound/effects/footstep/MedDirt4.ogg',))
|
||||
|
||||
/decl/flooring/snow
|
||||
name = "snow"
|
||||
desc = "A layer of many tiny bits of frozen water. It's hard to tell how deep it is."
|
||||
icon = 'icons/turf/outdoors.dmi'
|
||||
icon_base = "snow"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/snow1.ogg',
|
||||
'sound/effects/footstep/snow2.ogg',
|
||||
'sound/effects/footstep/snow3.ogg',
|
||||
'sound/effects/footstep/snow4.ogg',
|
||||
'sound/effects/footstep/snow5.ogg'))
|
||||
|
||||
/decl/flooring/snow/fake
|
||||
desc = "A coating of fake snow, looks surprisingly realistic, though not as cold as the real thing."
|
||||
@@ -305,12 +247,6 @@ var/list/flooring_types
|
||||
can_paint = TRUE //ChompEDIT, allow painting carpets
|
||||
damage_temperature = T0C+200
|
||||
flags = TURF_HAS_EDGES | TURF_HAS_CORNERS | TURF_REMOVE_CROWBAR | TURF_CAN_BURN
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/carpet1.ogg',
|
||||
'sound/effects/footstep/carpet2.ogg',
|
||||
'sound/effects/footstep/carpet3.ogg',
|
||||
'sound/effects/footstep/carpet4.ogg',
|
||||
'sound/effects/footstep/carpet5.ogg'))
|
||||
|
||||
/decl/flooring/carpet/bcarpet
|
||||
name = "black carpet"
|
||||
@@ -407,12 +343,6 @@ var/list/flooring_types
|
||||
build_type = /obj/item/stack/tile/floor
|
||||
can_paint = 1
|
||||
can_engrave = TRUE
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/floor1.ogg',
|
||||
'sound/effects/footstep/floor2.ogg',
|
||||
'sound/effects/footstep/floor3.ogg',
|
||||
'sound/effects/footstep/floor4.ogg',
|
||||
'sound/effects/footstep/floor5.ogg'))
|
||||
|
||||
/decl/flooring/tiling/tech
|
||||
desc = "Metal floor tiles with a corrugated anti-slip texture."
|
||||
@@ -550,12 +480,6 @@ var/list/flooring_types
|
||||
descriptor = "planks"
|
||||
build_type = /obj/item/stack/tile/wood
|
||||
flags = TURF_CAN_BREAK | TURF_REMOVE_CROWBAR | TURF_REMOVE_SCREWDRIVER
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/wood1.ogg',
|
||||
'sound/effects/footstep/wood2.ogg',
|
||||
'sound/effects/footstep/wood3.ogg',
|
||||
'sound/effects/footstep/wood4.ogg',
|
||||
'sound/effects/footstep/wood5.ogg'))
|
||||
|
||||
/decl/flooring/wood/sif
|
||||
desc = "Polished wood planks made from sivian wood."
|
||||
@@ -600,12 +524,6 @@ var/list/flooring_types
|
||||
apply_thermal_conductivity = 0.025
|
||||
apply_heat_capacity = 325000
|
||||
can_paint = 1
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/hull1.ogg',
|
||||
'sound/effects/footstep/hull2.ogg',
|
||||
'sound/effects/footstep/hull3.ogg',
|
||||
'sound/effects/footstep/hull4.ogg',
|
||||
'sound/effects/footstep/hull5.ogg'))
|
||||
|
||||
/decl/flooring/reinforced/circuit
|
||||
name = "processing strata"
|
||||
@@ -636,10 +554,6 @@ var/list/flooring_types
|
||||
icon_base = "lava"
|
||||
is_plating = TRUE
|
||||
flags = TURF_ACID_IMMUNE
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/lava1.ogg',
|
||||
'sound/effects/footstep/lava2.ogg',
|
||||
'sound/effects/footstep/lava3.ogg'))
|
||||
|
||||
/decl/flooring/concrete
|
||||
name = "concrete"
|
||||
|
||||
@@ -17,12 +17,6 @@
|
||||
desc = "This slick flesh ripples and squishes under your touch"
|
||||
icon = 'icons/turf/stomach_vr.dmi'
|
||||
icon_base = "flesh_floor"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/mud1.ogg',
|
||||
'sound/effects/footstep/mud2.ogg',
|
||||
'sound/effects/footstep/mud3.ogg',
|
||||
'sound/effects/footstep/mud4.ogg'
|
||||
))
|
||||
|
||||
/decl/flooring/grass/outdoors
|
||||
flags = 0
|
||||
@@ -80,12 +74,6 @@
|
||||
plating_type = /decl/flooring/eris_plating/under
|
||||
can_paint = 1
|
||||
can_engrave = TRUE
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/floor1.ogg',
|
||||
'sound/effects/footstep/floor2.ogg',
|
||||
'sound/effects/footstep/floor3.ogg',
|
||||
'sound/effects/footstep/floor4.ogg',
|
||||
'sound/effects/footstep/floor5.ogg'))
|
||||
|
||||
/turf/simulated/floor/tiled/milspec
|
||||
name = "milspec floor"
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
var/list/flooring_cache = list()
|
||||
|
||||
var/image/no_ceiling_image = null
|
||||
|
||||
/hook/startup/proc/setup_no_ceiling_image()
|
||||
@@ -182,7 +180,7 @@ var/image/no_ceiling_image = null
|
||||
break
|
||||
else if(floor_smooth == SMOOTH_BLACKLIST)
|
||||
is_linked = TRUE //Default to true for the blacklist, then make it false if a match comes up
|
||||
for (var/v in flooring_whitelist)
|
||||
for (var/v in flooring_blacklist)
|
||||
if (istype(t.flooring, v))
|
||||
//Found a match on the list
|
||||
is_linked = FALSE
|
||||
@@ -278,10 +276,3 @@ var/image/no_ceiling_image = null
|
||||
is_linked = FALSE
|
||||
|
||||
return is_linked
|
||||
|
||||
/turf/simulated/floor/proc/get_flooring_overlay(var/cache_key, var/icon_base, var/icon_dir = 0)
|
||||
if(!flooring_cache[cache_key])
|
||||
var/image/I = image(icon = flooring.icon, icon_state = icon_base, dir = icon_dir)
|
||||
I.layer = layer
|
||||
flooring_cache[cache_key] = I
|
||||
return flooring_cache[cache_key]
|
||||
|
||||
@@ -1014,7 +1014,6 @@
|
||||
health = 100
|
||||
|
||||
floor_smooth = SMOOTH_BLACKLIST
|
||||
flooring_blacklist = list(/decl/flooring/reinforced/plating/under,/decl/flooring/reinforced/plating/hull) //Smooth with everything except the contents of this list
|
||||
smooth_movable_atom = SMOOTH_GREYLIST
|
||||
movable_atom_blacklist = list(list(/obj, list("density" = TRUE, "anchored" = TRUE), 1))
|
||||
movable_atom_whitelist = list(list(/obj/machinery/door/airlock, list(), 2))
|
||||
|
||||
@@ -11,16 +11,6 @@
|
||||
desc = "Red and gritty."
|
||||
icon = 'icons/turf/flooring/ironsand_vr.dmi'
|
||||
icon_base = "ironsand1"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/asteroid1.ogg',
|
||||
'sound/effects/footstep/asteroid2.ogg',
|
||||
'sound/effects/footstep/asteroid3.ogg',
|
||||
'sound/effects/footstep/asteroid4.ogg',
|
||||
'sound/effects/footstep/asteroid5.ogg',
|
||||
'sound/effects/footstep/MedDirt1.ogg',
|
||||
'sound/effects/footstep/MedDirt2.ogg',
|
||||
'sound/effects/footstep/MedDirt3.ogg',
|
||||
'sound/effects/footstep/MedDirt4.ogg'))
|
||||
|
||||
/turf/simulated/floor/outdoors/ironsand/Initialize(mapload)
|
||||
var/possiblesands = list(
|
||||
|
||||
@@ -66,7 +66,3 @@
|
||||
desc = "Deep Ocean Water"
|
||||
icon = 'icons/misc/beach.dmi'
|
||||
icon_base = "seadeep"
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/bubbles3.ogg', // No I don't get why it's named 3/4/5 either. Whatever.
|
||||
'sound/effects/footstep/bubbles4.ogg',
|
||||
'sound/effects/footstep/bubbles5.ogg'))
|
||||
|
||||
@@ -1427,6 +1427,7 @@
|
||||
|
||||
if(istype(client.eye,/obj/machinery/camera))
|
||||
var/obj/machinery/camera/cam = client.eye
|
||||
if(LAZYLEN(cam.client_huds))
|
||||
client.screen |= cam.client_huds
|
||||
|
||||
if(stat == DEAD) //Dead
|
||||
|
||||
@@ -519,13 +519,6 @@
|
||||
|
||||
can_paint = TRUE
|
||||
|
||||
footstep_sounds = list("human" = list(
|
||||
'sound/effects/footstep/carpet1.ogg',
|
||||
'sound/effects/footstep/carpet2.ogg',
|
||||
'sound/effects/footstep/carpet3.ogg',
|
||||
'sound/effects/footstep/carpet4.ogg',
|
||||
'sound/effects/footstep/carpet5.ogg'))
|
||||
|
||||
/obj/structure/flora/tree/fur
|
||||
name = "tall fur"
|
||||
desc = "Tall stalks of fur block your path! Someone needs a trim!"
|
||||
|
||||
Reference in New Issue
Block a user