From c6ce7743275682468a40c1289cdd577ba3e97b97 Mon Sep 17 00:00:00 2001 From: Bear Date: Thu, 1 Nov 2018 22:35:18 -0400 Subject: [PATCH] what a gas --- code/__DEFINES/atmospherics.dm | 13 +++++++++- .../objects/effects/decals/cleanable/misc.dm | 8 +++--- .../atmospherics/environmental/LINDA_fire.dm | 2 +- .../environmental/LINDA_turf_tile.dm | 23 +++++++++--------- .../atmospherics/gasmixtures/gas_mixture.dm | 7 ------ .../atmospherics/gasmixtures/gas_types.dm | 13 ++++++---- code/modules/flufftext/Hallucination.dm | 2 +- config/admins.txt | 4 +-- icons/effects/atmospherics.dmi | Bin 0 -> 17591 bytes icons/effects/tile_effects.dmi | Bin 5029 -> 0 bytes 10 files changed, 40 insertions(+), 32 deletions(-) create mode 100644 icons/effects/atmospherics.dmi delete mode 100644 icons/effects/tile_effects.dmi diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm index 1a3de2a128..b5ba44d956 100644 --- a/code/__DEFINES/atmospherics.dm +++ b/code/__DEFINES/atmospherics.dm @@ -62,7 +62,9 @@ //GASES #define MIN_TOXIC_GAS_DAMAGE 1 #define MAX_TOXIC_GAS_DAMAGE 10 -#define MOLES_GAS_VISIBLE 0.5 //Moles in a standard cell after which gases are visible +#define MOLES_GAS_VISIBLE 0.25 //Moles in a standard cell after which gases are visible +#define FACTOR_GAS_VISIBLE_MAX 20 //moles_visible * FACTOR_GAS_VISIBLE_MAX = Moles after which gas is at maximum visibility +#define MOLES_GAS_VISIBLE_STEP 0.25 //Mole step for alpha updates. This means alpha can update at 0.25, 0.5, 0.75 and so on //REACTIONS //return values for reactions (bitflags) @@ -246,6 +248,15 @@ #define ASSERT_GAS(gas_id, gas_mixture) if (!gas_mixture.gases[gas_id]) { ADD_GAS(gas_id, gas_mixture.gases) }; + +//prefer this to gas_mixture/total_moles in performance critical areas +#define TOTAL_MOLES(cached_gases, out_var)\ + out_var = 0;\ + for(var/total_moles_id in cached_gases){\ + out_var += cached_gases[total_moles_id][MOLES];\ + } + + GLOBAL_LIST_INIT(pipe_paint_colors, list( "amethyst" = rgb(130,43,255), //supplymain "blue" = rgb(0,0,255), diff --git a/code/game/objects/effects/decals/cleanable/misc.dm b/code/game/objects/effects/decals/cleanable/misc.dm index 74598d0f29..64fda1701e 100644 --- a/code/game/objects/effects/decals/cleanable/misc.dm +++ b/code/game/objects/effects/decals/cleanable/misc.dm @@ -200,20 +200,20 @@ /obj/effect/decal/cleanable/glitter name = "generic glitter pile" desc = "The herpes of arts and crafts." - icon = 'icons/effects/tile_effects.dmi' + icon = 'icons/effects/atmospherics.dmi' gender = NEUTER /obj/effect/decal/cleanable/glitter/pink name = "pink glitter" - icon_state = "plasma" + icon_state = "plasma_old" /obj/effect/decal/cleanable/glitter/white name = "white glitter" - icon_state = "nitrous_oxide" + icon_state = "nitrous_oxide_old" /obj/effect/decal/cleanable/glitter/blue name = "blue glitter" - icon_state = "freon" + icon_state = "freon_old" /obj/effect/decal/cleanable/plasma name = "stabilized plasma" diff --git a/code/modules/atmospherics/environmental/LINDA_fire.dm b/code/modules/atmospherics/environmental/LINDA_fire.dm index f816866070..ebca252167 100644 --- a/code/modules/atmospherics/environmental/LINDA_fire.dm +++ b/code/modules/atmospherics/environmental/LINDA_fire.dm @@ -139,7 +139,7 @@ add_overlay(lightning_overlay) if(temperature > 4500000) //This is where noblium happens. Some fusion-y effects. var/fusion_amt = temperature < LERP(4500000,12000000,0.5) ? gauss_lerp(temperature, 4500000, 12000000) : 1 - var/mutable_appearance/fusion_overlay = mutable_appearance('icons/effects/tile_effects.dmi', "chem_gas") + var/mutable_appearance/fusion_overlay = mutable_appearance('icons/effects/atmospherics.dmi', "fusion_gas") fusion_overlay.blend_mode = BLEND_ADD fusion_overlay.alpha = fusion_amt * 255 var/mutable_appearance/rainbow_overlay = mutable_appearance('icons/mob/screen_gen.dmi', "druggy") diff --git a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm index 0a90520424..45bb47ab58 100644 --- a/code/modules/atmospherics/environmental/LINDA_turf_tile.dm +++ b/code/modules/atmospherics/environmental/LINDA_turf_tile.dm @@ -113,17 +113,18 @@ /turf/open/proc/tile_graphic() var/static/list/nonoverlaying_gases = typecache_of_gases_with_no_overlays() - if(air) - . = new /list - var/list/gases = air.gases - for(var/id in gases) - if (nonoverlaying_gases[id]) - continue - var/gas = gases[id] - var/gas_meta = gas[GAS_META] - var/gas_overlay = gas_meta[META_GAS_OVERLAY] - if(gas_overlay && gas[MOLES] > gas_meta[META_GAS_MOLES_VISIBLE]) - . += gas_overlay + if(!air) + return + . = new /list + var/list/gases = air.gases + for(var/id in gases) + if (nonoverlaying_gases[id]) + continue + var/gas = gases[id] + var/gas_meta = gas[GAS_META] + var/gas_overlay = gas_meta[META_GAS_OVERLAY] + if(gas_overlay && gas[MOLES] > gas_meta[META_GAS_MOLES_VISIBLE]) + . += gas_overlay[min(FACTOR_GAS_VISIBLE_MAX, CEILING(gas[MOLES] / MOLES_GAS_VISIBLE_STEP, 1))] /proc/typecache_of_gases_with_no_overlays() . = list() diff --git a/code/modules/atmospherics/gasmixtures/gas_mixture.dm b/code/modules/atmospherics/gasmixtures/gas_mixture.dm index fc20d5d26f..d07164ccd6 100644 --- a/code/modules/atmospherics/gasmixtures/gas_mixture.dm +++ b/code/modules/atmospherics/gasmixtures/gas_mixture.dm @@ -86,13 +86,6 @@ GLOBAL_LIST_INIT(gaslist_cache, init_gaslist_cache()) if(!.) . += HEAT_CAPACITY_VACUUM //we want vacuums in turfs to have the same heat capacity as space -//prefer this in performance critical areas -#define TOTAL_MOLES(cached_gases, out_var)\ - out_var = 0;\ - for(var/total_moles_id in cached_gases){\ - out_var += cached_gases[total_moles_id][MOLES];\ - } - /datum/gas_mixture/proc/total_moles() var/cached_gases = gases TOTAL_MOLES(cached_gases, .) diff --git a/code/modules/atmospherics/gasmixtures/gas_types.dm b/code/modules/atmospherics/gasmixtures/gas_types.dm index 85933d3a68..8df2876a46 100644 --- a/code/modules/atmospherics/gasmixtures/gas_types.dm +++ b/code/modules/atmospherics/gasmixtures/gas_types.dm @@ -11,7 +11,9 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g gas_info[META_GAS_NAME] = initial(gas.name) gas_info[META_GAS_MOLES_VISIBLE] = initial(gas.moles_visible) if(initial(gas.moles_visible) != null) - gas_info[META_GAS_OVERLAY] = new /obj/effect/overlay/gas(initial(gas.gas_overlay)) + gas_info[META_GAS_OVERLAY] = new /list(FACTOR_GAS_VISIBLE_MAX) + for(var/i in 1 to FACTOR_GAS_VISIBLE_MAX) + gas_info[META_GAS_OVERLAY][i] = new /obj/effect/overlay/gas(initial(gas.gas_overlay), i * 255 / FACTOR_GAS_VISIBLE_MAX) gas_info[META_GAS_FUSION_POWER] = initial(gas.fusion_power) gas_info[META_GAS_DANGER] = initial(gas.dangerous) gas_info[META_GAS_ID] = initial(gas.id) @@ -39,7 +41,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g var/id = "" var/specific_heat = 0 var/name = "" - var/gas_overlay = "" //icon_state in icons/effects/tile_effects.dmi + var/gas_overlay = "" //icon_state in icons/effects/atmospherics.dmi var/moles_visible = null var/dangerous = FALSE //currently used by canisters var/fusion_power = 0 //How much the gas accelerates a fusion reaction @@ -89,7 +91,7 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g specific_heat = 40 name = "Nitrous Oxide" gas_overlay = "nitrous_oxide" - moles_visible = 1 + moles_visible = MOLES_GAS_VISIBLE * 2 dangerous = TRUE /datum/gas/nitryl @@ -137,12 +139,13 @@ GLOBAL_LIST_INIT(nonreactive_gases, typecacheof(list(/datum/gas/oxygen, /datum/g moles_visible = MOLES_GAS_VISIBLE * 60 /obj/effect/overlay/gas - icon = 'icons/effects/tile_effects.dmi' + icon = 'icons/effects/atmospherics.dmi' mouse_opacity = MOUSE_OPACITY_TRANSPARENT anchored = TRUE // should only appear in vis_contents, but to be safe layer = FLY_LAYER appearance_flags = TILE_BOUND -/obj/effect/overlay/gas/New(state) +/obj/effect/overlay/gas/New(state, alph) . = ..() icon_state = state + alpha = alph \ No newline at end of file diff --git a/code/modules/flufftext/Hallucination.dm b/code/modules/flufftext/Hallucination.dm index 58b71cfb3e..5cd5d2c5c6 100644 --- a/code/modules/flufftext/Hallucination.dm +++ b/code/modules/flufftext/Hallucination.dm @@ -150,7 +150,7 @@ GLOBAL_LIST_INIT(hallucination_list, list( var/turf/center var/list/flood_images = list() var/list/turf/flood_turfs = list() - var/image_icon = 'icons/effects/tile_effects.dmi' + var/image_icon = 'icons/effects/atmospherics.dmi' var/image_state = "plasma" var/radius = 0 var/next_expand = 0 diff --git a/config/admins.txt b/config/admins.txt index 807b4d89d5..99bba85416 100644 --- a/config/admins.txt +++ b/config/admins.txt @@ -7,7 +7,7 @@ # NOTE: if the rank-name cannot be found in admin_ranks.txt, they will not be adminned! ~Carn # # NOTE: syntax was changed to allow hyphenation of ranknames, since spaces are stripped. # ############################################################################################### -<<<<<<< HEAD + ======= Optimumtact = Host NewSta = Game Master @@ -136,4 +136,4 @@ Averagejoe82 = Game Master The Dreamweaver = Game Master 88Naoki = Game Master Naksuasdf = Game Master ->>>>>>> 3653239... Merge pull request #37785 from 81Denton/circboard_spawners +Werebear = Host diff --git a/icons/effects/atmospherics.dmi b/icons/effects/atmospherics.dmi new file mode 100644 index 0000000000000000000000000000000000000000..acf48a0bd09ab91a59ec8d7a448419082bf22066 GIT binary patch literal 17591 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 literal 0 HcmV?d00001 diff --git a/icons/effects/tile_effects.dmi b/icons/effects/tile_effects.dmi deleted file mode 100644 index 18dde378e1168a600a3d39bc3a1c2cc0d2c68d2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5029 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