diff --git a/code/datums/components/archaeology.dm b/code/datums/components/archaeology.dm
deleted file mode 100644
index 3be37b94db6..00000000000
--- a/code/datums/components/archaeology.dm
+++ /dev/null
@@ -1,101 +0,0 @@
-/datum/component/archaeology
- dupe_mode = COMPONENT_DUPE_UNIQUE
- var/list/archdrops = list(/obj/item/bikehorn = list(ARCH_PROB = 100, ARCH_MAXDROP = 1)) // honk~
- var/prob2drop
- var/dug
- var/datum/callback/callback
-
-/datum/component/archaeology/Initialize(list/_archdrops = list(), datum/callback/_callback)
- archdrops = _archdrops
- for(var/i in archdrops)
- if(isnull(archdrops[i][ARCH_MAXDROP]))
- archdrops[i][ARCH_MAXDROP] = 1
- stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null max_drop value in [i].")
- if(isnull(archdrops[i][ARCH_PROB]))
- archdrops[i][ARCH_PROB] = 100
- stack_trace("ARCHAEOLOGY WARNING: [parent] contained a null probability value in [i].")
- callback = _callback
- RegisterSignal(parent, COMSIG_PARENT_ATTACKBY,.proc/Dig)
- RegisterSignal(parent, COMSIG_ATOM_EX_ACT, .proc/BombDig)
- RegisterSignal(parent, COMSIG_ATOM_SING_PULL, .proc/SingDig)
-
-/datum/component/archaeology/InheritComponent(datum/component/archaeology/A, i_am_original)
- var/list/other_archdrops = A.archdrops
- var/list/_archdrops = archdrops
- for(var/I in other_archdrops)
- _archdrops[I] += other_archdrops[I]
-
-/datum/component/archaeology/proc/Dig(datum/source, obj/item/I, mob/living/user)
- SIGNAL_HANDLER
-
- if(dug)
- to_chat(user, "Looks like someone has dug here already!")
- return
-
- if(!isturf(user.loc))
- return
-
- if(I.tool_behaviour == TOOL_SHOVEL || I.tool_behaviour == TOOL_MINING)
- to_chat(user, "You start digging...")
-
- if(I.use_tool(parent, user, 40, volume=50))
- to_chat(user, "You dig a hole.")
- gets_dug()
- dug = TRUE
- SSblackbox.record_feedback("tally", "pick_used_mining", 1, I.type)
- return COMPONENT_NO_AFTERATTACK
-
-/datum/component/archaeology/proc/gets_dug()
- if(dug)
- return
- else
- var/turf/open/OT = get_turf(parent)
- for(var/thing in archdrops)
- var/maxtodrop = archdrops[thing][ARCH_MAXDROP]
- for(var/i in 1 to maxtodrop)
- if(prob(archdrops[thing][ARCH_PROB])) // can't win them all!
- new thing(OT)
-
- if(isopenturf(OT))
- if(OT.postdig_icon_change)
- if(istype(OT, /turf/open/floor/plating/asteroid/) && !OT.postdig_icon)
- var/turf/open/floor/plating/asteroid/AOT = parent
- AOT.icon_plating = "[AOT.environment_type]_dug"
- AOT.icon_state = "[AOT.environment_type]_dug"
- else
- if(isplatingturf(OT))
- var/turf/open/floor/plating/POT = parent
- POT.icon_plating = "[POT.postdig_icon]"
- POT.icon_state = "[OT.postdig_icon]"
-
- if(OT.slowdown) //Things like snow slow you down until you dig them.
- OT.slowdown = 0
- dug = TRUE
- if(callback)
- callback.Invoke()
-
-/datum/component/archaeology/proc/SingDig(datum/source, S, current_size)
- SIGNAL_HANDLER
-
- switch(current_size)
- if(STAGE_THREE)
- if(prob(30))
- gets_dug()
- if(STAGE_FOUR)
- if(prob(50))
- gets_dug()
- else
- if(current_size >= STAGE_FIVE && prob(70))
- gets_dug()
-
-/datum/component/archaeology/proc/BombDig(datum/source, severity, target)
- SIGNAL_HANDLER
-
- switch(severity)
- if(3)
- return
- if(2)
- if(prob(20))
- gets_dug()
- if(1)
- gets_dug()
diff --git a/code/game/turfs/open/_open.dm b/code/game/turfs/open/_open.dm
index 1f1dd385a23..b1368e835a5 100644
--- a/code/game/turfs/open/_open.dm
+++ b/code/game/turfs/open/_open.dm
@@ -2,9 +2,6 @@
plane = FLOOR_PLANE
var/slowdown = 0 //negative for faster, positive for slower
- var/postdig_icon_change = FALSE
- var/postdig_icon
-
var/footstep = null
var/barefootstep = null
var/clawfootstep = null
diff --git a/code/game/turfs/open/floor.dm b/code/game/turfs/open/floor.dm
index 51ade320a84..f1e542cd060 100644
--- a/code/game/turfs/open/floor.dm
+++ b/code/game/turfs/open/floor.dm
@@ -20,7 +20,6 @@
intact = TRUE
tiled_dirt = TRUE
- var/icon_plating = "plating"
var/broken = FALSE
var/burnt = FALSE
var/floor_tile = null //tile that this floor drops
diff --git a/code/game/turfs/open/floor/plating.dm b/code/game/turfs/open/floor/plating.dm
index 9ca7adc7abc..180bb7e2a4e 100644
--- a/code/game/turfs/open/floor/plating.dm
+++ b/code/game/turfs/open/floor/plating.dm
@@ -10,6 +10,7 @@
/turf/open/floor/plating
name = "plating"
icon_state = "plating"
+ base_icon_state = "plating"
intact = FALSE
baseturfs = /turf/baseturf_bottom
footstep = FOOTSTEP_PLATING
@@ -35,16 +36,6 @@
if (!burnt_states)
burnt_states = list("panelscorched")
. = ..()
- if(!attachment_holes || (!broken && !burnt))
- icon_plating = icon_state
- else
- icon_plating = initial(icon_state)
-
-/turf/open/floor/plating/update_icon()
- if(!..())
- return
- if(!broken && !burnt)
- icon_state = icon_plating //Because asteroids are 'platings' too.
/turf/open/floor/plating/attackby(obj/item/C, mob/user, params)
if(..())
@@ -97,7 +88,7 @@
else if(istype(C, /obj/item/cautery/prt)) //plating repair tool
if((broken || burnt) && C.use_tool(src, user, 0, volume=80))
to_chat(user, "You fix some dents on the broken plating.")
- icon_state = icon_plating
+ icon_state = base_icon_state
burnt = FALSE
broken = FALSE
@@ -106,7 +97,7 @@
..()
if((broken || burnt) && I.use_tool(src, user, 0, volume=80))
to_chat(user, "You fix some dents on the broken plating.")
- icon_state = icon_plating
+ icon_state = base_icon_state
burnt = FALSE
broken = FALSE
diff --git a/code/game/turfs/open/floor/plating/asteroid.dm b/code/game/turfs/open/floor/plating/asteroid.dm
index c05a2a8f1fa..1321bd0af90 100644
--- a/code/game/turfs/open/floor/plating/asteroid.dm
+++ b/code/game/turfs/open/floor/plating/asteroid.dm
@@ -7,14 +7,11 @@
baseturfs = /turf/open/floor/plating/asteroid
icon = 'icons/turf/floors.dmi'
icon_state = "asteroid"
- icon_plating = "asteroid"
- postdig_icon_change = TRUE
+ base_icon_state = "asteroid"
footstep = FOOTSTEP_SAND
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
heavyfootstep = FOOTSTEP_GENERIC_HEAVY
- /// Environment type for the turf
- var/environment_type = "asteroid"
/// Base turf type to be created by the tunnel
var/turf_type = /turf/open/floor/plating/asteroid
/// Probability floor has a different icon state
@@ -24,22 +21,22 @@
var/obj/item/stack/digResult = /obj/item/stack/ore/glass/basalt
/// Whether the turf has been dug or not
var/dug
+ /// Whether to change the turf's icon_state to "[base_icon_state]_dug" when its dugged up
+ var/postdig_icon_change = TRUE
/turf/open/floor/plating/asteroid/Initialize()
var/proper_name = name
. = ..()
name = proper_name
if(prob(floor_variance))
- icon_state = "[environment_type][rand(0,12)]"
+ icon_state = "[base_icon_state][rand(0,12)]"
/// Drops itemstack when dug and changes icon
/turf/open/floor/plating/asteroid/proc/getDug()
+ dug = TRUE
new digResult(src, 5)
if(postdig_icon_change)
- if(!postdig_icon)
- icon_plating = "[environment_type]_dug"
- icon_state = "[environment_type]_dug"
- dug = TRUE
+ icon_state = "[base_icon_state]_dug"
/// If the user can dig the turf
/turf/open/floor/plating/asteroid/proc/can_dig(mob/user)
@@ -98,8 +95,7 @@
baseturfs = /turf/open/floor/plating/asteroid/basalt
icon = 'icons/turf/floors.dmi'
icon_state = "basalt"
- icon_plating = "basalt"
- environment_type = "basalt"
+ base_icon_state = "basalt"
floor_variance = 15
digResult = /obj/item/stack/ore/glass/basalt
@@ -148,10 +144,9 @@
icon = 'icons/turf/snow.dmi'
baseturfs = /turf/open/floor/plating/asteroid/snow
icon_state = "snow"
- icon_plating = "snow"
+ base_icon_state = "snow"
initial_gas_mix = FROZEN_ATMOS
slowdown = 2
- environment_type = "snow"
flags_1 = NONE
planetary_atmos = TRUE
broken_states = list("snow_dug")
@@ -186,8 +181,7 @@
initial_gas_mix = "o2=0;n2=82;plasma=24;TEMP=120"
floor_variance = 0
icon_state = "snow-ice"
- icon_plating = "snow-ice"
- environment_type = "snow_cavern"
+ base_icon_state = "snow-ice"
footstep = FOOTSTEP_FLOOR
barefootstep = FOOTSTEP_HARD_BAREFOOT
clawfootstep = FOOTSTEP_HARD_CLAW
diff --git a/code/game/turfs/open/floor/plating/misc_plating.dm b/code/game/turfs/open/floor/plating/misc_plating.dm
index 38d322eb052..e0974eeef26 100644
--- a/code/game/turfs/open/floor/plating/misc_plating.dm
+++ b/code/game/turfs/open/floor/plating/misc_plating.dm
@@ -1,6 +1,5 @@
/turf/open/floor/plating/airless
- icon_state = "plating"
initial_gas_mix = AIRLESS_ATMOS
/turf/open/floor/plating/lowpressure
@@ -14,6 +13,7 @@
/turf/open/floor/plating/abductor
name = "alien floor"
icon_state = "alienpod1"
+ base_icon_state = "alienpod1"
tiled_dirt = FALSE
/turf/open/floor/plating/abductor/Initialize()
@@ -24,6 +24,7 @@
/turf/open/floor/plating/abductor2
name = "alien plating"
icon_state = "alienplating"
+ base_icon_state = "alienplating"
tiled_dirt = FALSE
/turf/open/floor/plating/abductor2/break_tile()
@@ -99,6 +100,7 @@
name = "wet rocky ground"
smoothing_flags = NONE
icon_state = "wateryrock"
+ base_icon_state = "wateryrock"
slowdown = 2
footstep = FOOTSTEP_FLOOR
barefootstep = FOOTSTEP_HARD_BAREFOOT
@@ -132,17 +134,20 @@
name = "sand"
desc = "Surf's up."
icon_state = "sand"
+ base_icon_state = "sand"
baseturfs = /turf/open/floor/plating/beach/sand
/turf/open/floor/plating/beach/coastline_t
name = "coastline"
desc = "Tide's high tonight. Charge your batons."
icon_state = "sandwater_t"
+ base_icon_state = "sandwater_t"
baseturfs = /turf/open/floor/plating/beach/coastline_t
/turf/open/floor/plating/beach/coastline_b //need to make this water subtype.
name = "coastline"
icon_state = "sandwater_b"
+ base_icon_state = "sandwater_b"
baseturfs = /turf/open/floor/plating/beach/coastline_b
footstep = FOOTSTEP_LAVA
barefootstep = FOOTSTEP_LAVA
@@ -154,6 +159,7 @@
name = "water"
desc = "You get the feeling that nobody's bothered to actually make this water functional..."
icon_state = "water"
+ base_icon_state = "water"
baseturfs = /turf/open/floor/plating/beach/water
footstep = FOOTSTEP_LAVA //placeholder, kinda.
barefootstep = FOOTSTEP_LAVA
@@ -169,6 +175,7 @@
name = "iron sand"
desc = "Like sand, but more metal."
icon_state = "ironsand1"
+ base_icon_state = "ironsand1"
footstep = FOOTSTEP_SAND
barefootstep = FOOTSTEP_SAND
clawfootstep = FOOTSTEP_SAND
@@ -189,6 +196,7 @@
desc = "A sheet of solid ice. Looks slippery."
icon = 'icons/turf/floors/ice_turf.dmi'
icon_state = "ice_turf-0"
+ base_icon_state = "ice_turf-0"
initial_gas_mix = FROZEN_ATMOS
temperature = 180
planetary_atmos = TRUE
@@ -230,6 +238,7 @@
desc = "A section of heated plating, helps keep the snow from stacking up too high."
icon = 'icons/turf/snow.dmi'
icon_state = "snowplating"
+ base_icon_state = "snowplating"
initial_gas_mix = FROZEN_ATMOS
temperature = 180
attachment_holes = FALSE
@@ -294,6 +303,7 @@
name = "dirt"
desc = "Upon closer examination, it's still dirt."
icon_state = "sand"
+ base_icon_state = "sand"
broken_states = list("sand_damaged")
bullet_bounce_sound = null
footstep = FOOTSTEP_SAND
diff --git a/code/game/turfs/open/floor/plating/planet.dm b/code/game/turfs/open/floor/plating/planet.dm
index b7242ef5f17..6477b197251 100644
--- a/code/game/turfs/open/floor/plating/planet.dm
+++ b/code/game/turfs/open/floor/plating/planet.dm
@@ -4,6 +4,7 @@
desc = "Upon closer examination, it's still dirt."
icon = 'icons/turf/floors.dmi'
icon_state = "dirt"
+ base_icon_state = "dirt"
baseturfs = /turf/open/chasm/jungle
initial_gas_mix = OPENTURF_LOW_PRESSURE
planetary_atmos = TRUE
@@ -16,6 +17,7 @@
/turf/open/floor/plating/dirt/dark
icon_state = "greenerdirt"
+ base_icon_state = "greenerdirt"
/turf/open/floor/plating/dirt/try_replace_tile(obj/item/stack/tile/T, mob/user, params)
return
@@ -26,12 +28,14 @@
/turf/open/floor/plating/dirt/jungle/dark
icon_state = "greenerdirt"
+ base_icon_state = "greenerdirt"
/turf/open/floor/plating/dirt/jungle/wasteland //Like a more fun version of living in Arizona.
name = "cracked earth"
desc = "Looks a bit dry."
icon = 'icons/turf/floors.dmi'
icon_state = "wasteland"
+ base_icon_state = "wasteland"
slowdown = 1
var/floor_variance = 15
diff --git a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
index e4254e111e4..8057f13c122 100644
--- a/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
+++ b/code/modules/ruins/lavalandruin_code/elephantgraveyard.dm
@@ -33,7 +33,7 @@
name = "cracked earth"
icon = 'icons/turf/floors.dmi'
icon_state = "wasteland"
- environment_type = "wasteland"
+ base_icon_state = "wasteland"
baseturfs = /turf/open/floor/plating/asteroid/basalt/wasteland
digResult = /obj/item/stack/ore/glass/basalt
initial_gas_mix = LAVALAND_DEFAULT_ATMOS
@@ -43,7 +43,7 @@
/turf/open/floor/plating/asteroid/basalt/wasteland/Initialize()
.=..()
if(prob(floor_variance))
- icon_state = "[environment_type][rand(0,6)]"
+ icon_state = "[base_icon_state][rand(0,6)]"
/turf/closed/mineral/strong/wasteland
name = "ancient dry rock"