From ef189dc9d4b8536aa65e68fc865f01dac308c0e0 Mon Sep 17 00:00:00 2001 From: paprka Date: Tue, 16 Dec 2014 22:12:14 -0800 Subject: [PATCH 1/4] adds dirt overlays for walking on turfs --- code/game/objects/items/weapons/mop.dm | 1 + code/game/turfs/simulated.dm | 10 +++++++++- code/modules/mob/living/silicon/robot/robot.dm | 3 +++ .../reagents/Chemistry-Reagents/Chemistry-Reagents.dm | 3 +++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/weapons/mop.dm b/code/game/objects/items/weapons/mop.dm index ae968fc3ee9..6f47027cbdd 100644 --- a/code/game/objects/items/weapons/mop.dm +++ b/code/game/objects/items/weapons/mop.dm @@ -21,6 +21,7 @@ obj/item/weapon/mop/proc/clean(turf/simulated/A) if(reagents.has_reagent("water", 1) || reagents.has_reagent("holywater", 1)) A.clean_blood() + A.dirt = 0 for(var/obj/effect/O in A) if(istype(O,/obj/effect/decal/cleanable) || istype(O,/obj/effect/overlay)) qdel(O) diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index 1011cef9c50..c9e7851efe4 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -8,6 +8,7 @@ nitrogen = MOLES_N2STANDARD var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to + var/dirt = 0 /turf/simulated/New() ..() @@ -37,7 +38,14 @@ if (istype(A,/mob/living/carbon)) var/mob/living/carbon/M = A if(M.lying) return - + dirt++ + var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src) + if (dirt >= 30) + if (!dirtoverlay) + dirtoverlay = new/obj/effect/decal/cleanable/dirt(src) + dirtoverlay.alpha = 15 + else if (dirt > 30) + dirtoverlay.alpha = min(dirtoverlay.alpha+20, 255) switch (src.wet) if(1) //wet floor if(!M.slip(4, 2, null, (NO_SLIP_WHEN_WALKING|STEP))) diff --git a/code/modules/mob/living/silicon/robot/robot.dm b/code/modules/mob/living/silicon/robot/robot.dm index 7a7b4ddc838..4403a6a6dca 100644 --- a/code/modules/mob/living/silicon/robot/robot.dm +++ b/code/modules/mob/living/silicon/robot/robot.dm @@ -846,6 +846,9 @@ var/turf/tile = loc if(isturf(tile)) tile.clean_blood() + if (istype(tile, /turf/simulated)) + var/turf/simulated/S = tile + S.dirt = 0 for(var/A in tile) if(istype(A, /obj/effect)) if(istype(A, /obj/effect/rune) || istype(A, /obj/effect/decal/cleanable) || istype(A, /obj/effect/overlay)) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index 641c0916c0f..afb9ab75036 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -650,6 +650,9 @@ datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) + var/turf/simulated/S + if(volume >= 1) + S.dirt = 0 datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(iscarbon(M)) From 9b7aa9ca82ab9a714fab6384dc90d6386484ac8e Mon Sep 17 00:00:00 2001 From: paprka Date: Sat, 27 Dec 2014 21:43:48 -0800 Subject: [PATCH 2/4] adds a check for gravity and ignored turfs --- code/game/turfs/simulated.dm | 10 ---------- code/game/turfs/simulated/floor.dm | 18 ++++++++++++++++++ code/game/turfs/simulated/floor/fancy_floor.dm | 1 + code/game/turfs/simulated/floor/misc_floor.dm | 3 +++ code/modules/mining/mine_turfs.dm | 1 + .../Chemistry-Reagents/Chemistry-Reagents.dm | 4 ++-- 6 files changed, 25 insertions(+), 12 deletions(-) diff --git a/code/game/turfs/simulated.dm b/code/game/turfs/simulated.dm index c9e7851efe4..56c208db908 100644 --- a/code/game/turfs/simulated.dm +++ b/code/game/turfs/simulated.dm @@ -8,7 +8,6 @@ nitrogen = MOLES_N2STANDARD var/to_be_destroyed = 0 //Used for fire, if a melting temperature was reached, it will be destroyed var/max_fire_temperature_sustained = 0 //The max temperature of the fire which it was subjected to - var/dirt = 0 /turf/simulated/New() ..() @@ -38,19 +37,10 @@ if (istype(A,/mob/living/carbon)) var/mob/living/carbon/M = A if(M.lying) return - dirt++ - var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src) - if (dirt >= 30) - if (!dirtoverlay) - dirtoverlay = new/obj/effect/decal/cleanable/dirt(src) - dirtoverlay.alpha = 15 - else if (dirt > 30) - dirtoverlay.alpha = min(dirtoverlay.alpha+20, 255) switch (src.wet) if(1) //wet floor if(!M.slip(4, 2, null, (NO_SLIP_WHEN_WALKING|STEP))) M.inertia_dir = 0 return - if(2) //lube M.slip(0, 7, null, (STEP|SLIDE|GALOSHES_DONT_HELP)) \ No newline at end of file diff --git a/code/game/turfs/simulated/floor.dm b/code/game/turfs/simulated/floor.dm index 9e641352434..87e1fc86b4a 100644 --- a/code/game/turfs/simulated/floor.dm +++ b/code/game/turfs/simulated/floor.dm @@ -32,6 +32,8 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," var/obj/item/stack/tile/builtin_tile = null //needed for performance reasons when the singularity rips off floor tiles var/list/broken_states = list("damaged1", "damaged2", "damaged3", "damaged4", "damaged5") var/list/burnt_states = list() + var/dirt = 0 + var/ignoredirt = 0 /turf/simulated/floor/New() ..() @@ -158,3 +160,19 @@ var/list/icons_to_ignore_at_floor_init = list("damaged1","damaged2","damaged3"," make_plating() else if(prob(50)) ReplaceWithLattice() + +/turf/simulated/floor/Entered() + ..() + if(!ignoredirt) + if(has_gravity(src)) + if(istype(A,/mob/living/carbon)) + var/mob/living/carbon/M = A + if(M.lying) return + dirt++ + var/obj/effect/decal/cleanable/dirt/dirtoverlay = locate(/obj/effect/decal/cleanable/dirt, src) + if (dirt >= 30) + if (!dirtoverlay) + dirtoverlay = new/obj/effect/decal/cleanable/dirt(src) + dirtoverlay.alpha = 15 + else if (dirt > 30) + dirtoverlay.alpha = min(dirtoverlay.alpha+20, 255) \ No newline at end of file diff --git a/code/game/turfs/simulated/floor/fancy_floor.dm b/code/game/turfs/simulated/floor/fancy_floor.dm index 7fb99942189..4fe22480e21 100644 --- a/code/game/turfs/simulated/floor/fancy_floor.dm +++ b/code/game/turfs/simulated/floor/fancy_floor.dm @@ -41,6 +41,7 @@ icon_state = "grass1" floor_tile = /obj/item/stack/tile/grass broken_states = list("sand1", "sand2", "sand3") + ignoredirt = 1 /turf/simulated/floor/fancy/grass/New() ..() diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm index 4a808d7be61..15be7dfd212 100644 --- a/code/game/turfs/simulated/floor/misc_floor.dm +++ b/code/game/turfs/simulated/floor/misc_floor.dm @@ -63,6 +63,7 @@ /turf/simulated/floor/beach name = "Beach" icon = 'icons/misc/beach.dmi' + ignoredirt = 1 /turf/simulated/floor/beach/ex_act(severity, target) contents_explosion(severity, target) @@ -84,11 +85,13 @@ ..() name = "Iron Sand" icon_state = "ironsand[rand(1,15)]" + ignoredirt = 1 /turf/simulated/floor/plating/snow name = "snow" icon = 'icons/turf/snow.dmi' icon_state = "snow" + ignoredirt = 1 /turf/simulated/floor/plating/snow/ex_act(severity, target) contents_explosion(severity, target) diff --git a/code/modules/mining/mine_turfs.dm b/code/modules/mining/mine_turfs.dm index 018f6e491ed..581ab4f176d 100644 --- a/code/modules/mining/mine_turfs.dm +++ b/code/modules/mining/mine_turfs.dm @@ -475,6 +475,7 @@ icon_state = "asteroid" icon_plating = "asteroid" var/dug = 0 //0 = has not yet been dug, 1 = has already been dug + ignoredirt = 1 /turf/simulated/floor/plating/asteroid/airless oxygen = 0.01 diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index afb9ab75036..b777938b760 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -650,9 +650,9 @@ datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) - var/turf/simulated/S + var/turf/simulated/floor/F = T if(volume >= 1) - S.dirt = 0 + F.dirt = 0 datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(iscarbon(M)) From 9de9f4b3f8db8cda73fc07df636292c14c7ebef2 Mon Sep 17 00:00:00 2001 From: paprka Date: Wed, 31 Dec 2014 17:21:36 -0800 Subject: [PATCH 3/4] istypes the space cleaner dirt clean --- .../reagents/Chemistry-Reagents/Chemistry-Reagents.dm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index dc5d19df310..beb30dfabe6 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -651,8 +651,9 @@ datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) var/turf/simulated/floor/F = T - if(volume >= 1) - F.dirt = 0 + if(istype(T, /turf/simulated/floor)) + if(volume >= 1) + F.dirt = 0 datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(iscarbon(M)) From 8661025135cc2a14c93526dcdd688299482352a9 Mon Sep 17 00:00:00 2001 From: paprka Date: Wed, 31 Dec 2014 17:25:23 -0800 Subject: [PATCH 4/4] Moves the typecast under the ischeck for space cleaner --- code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm index beb30dfabe6..bfc36dc4b3f 100644 --- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm +++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents.dm @@ -650,8 +650,8 @@ datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume) for(var/mob/living/carbon/slime/M in T) M.adjustToxLoss(rand(5,10)) - var/turf/simulated/floor/F = T if(istype(T, /turf/simulated/floor)) + var/turf/simulated/floor/F = T if(volume >= 1) F.dirt = 0