From 35acb5c1bbbc9a5704ca66f5c63081558182bbb7 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 17:08:56 +1100 Subject: [PATCH 01/17] Various fixes to log drops and material updates. --- code/game/objects/items/stacks/stack.dm | 2 +- code/game/objects/structures/flora/stump.dm | 2 +- code/game/objects/structures/flora/tree.dm | 2 +- code/modules/materials/material_sheets.dm | 6 +++++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index 79d9a817d85..e2c007e886a 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -414,7 +414,7 @@ if(!user.is_holding_offhand(src) || !can_split()) return ..() - var/N = input("How many stacks of [src] would you like to split off?", "Split stacks", 1) as num|null + var/N = input(user, "How many stacks of [src] would you like to split off?", "Split stacks", 1) as num|null if(!N) return TRUE diff --git a/code/game/objects/structures/flora/stump.dm b/code/game/objects/structures/flora/stump.dm index 46ad8854a4c..297be6ac8cf 100644 --- a/code/game/objects/structures/flora/stump.dm +++ b/code/game/objects/structures/flora/stump.dm @@ -17,9 +17,9 @@ . = ..() /obj/structure/flora/stump/create_dismantled_products(turf/T) - . = ..() if(log_type) LAZYADD(., new log_type(T, rand(2,3), material?.type, reinf_material?.type)) + . = ..() //Base tree stump /obj/structure/flora/stump/tree diff --git a/code/game/objects/structures/flora/tree.dm b/code/game/objects/structures/flora/tree.dm index 43ab8f54ee3..f42364ecd7c 100644 --- a/code/game/objects/structures/flora/tree.dm +++ b/code/game/objects/structures/flora/tree.dm @@ -68,7 +68,6 @@ animate(transform=M, pixel_x=init_px, time=6, easing=ELASTIC_EASING) /obj/structure/flora/tree/create_dismantled_products(turf/T) - . = ..() if(log_type) LAZYADD(., new log_type(T, rand(max(1,round(log_amount*0.5)), log_amount), material?.type, reinf_material?.type)) if(stump_type) @@ -76,6 +75,7 @@ stump.icon_state = icon_state //A bit dirty maybe, but its probably not worth writing a whole system for this when we have 3 kinds of trees.. if(paint_color) stump.set_color() + . = ..() /obj/structure/flora/tree/pine name = "pine tree" diff --git a/code/modules/materials/material_sheets.dm b/code/modules/materials/material_sheets.dm index 5174a0bac3d..127a1877106 100644 --- a/code/modules/materials/material_sheets.dm +++ b/code/modules/materials/material_sheets.dm @@ -17,6 +17,7 @@ plural_name = "sheets" abstract_type = /obj/item/stack/material is_spawnable_type = FALSE // Mapped subtypes set this so they can be spawned from the verb. + material_alteration = MAT_FLAG_ALTERATION_COLOR var/can_be_pulverized = FALSE var/can_be_reinforced = FALSE var/decl/material/reinf_material @@ -156,7 +157,10 @@ /obj/item/stack/material/on_update_icon() . = ..() - alpha = 100 + max(1, amount/25)*(material.opacity * 255) + if(material) + alpha = 100 + max(1, amount/25)*(material.opacity * 255) + else + alpha = initial(alpha) update_state_from_amount() if(drying_wetness > 0) var/image/I = new(icon, icon_state) From 9fa55db7c48450a50a9cc463a7bdf8c2fe76b968 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 17:59:04 +1100 Subject: [PATCH 02/17] Resets alpha mask on changeturf. --- code/game/turfs/turf_changing.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/turfs/turf_changing.dm b/code/game/turfs/turf_changing.dm index e23173d13c3..475e1a49288 100644 --- a/code/game/turfs/turf_changing.dm +++ b/code/game/turfs/turf_changing.dm @@ -161,6 +161,9 @@ if(update_open_turfs_above) update_open_above(old_open_turf_type) + for(var/atom/movable/AM in W.contents) + AM.update_turf_alpha_mask() + /turf/proc/transport_properties_from(turf/other) if(other.zone) if(!air) From 9bbd7d2c5657913d53a33a34ba8e77ec97a877a0 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 17:57:25 +1100 Subject: [PATCH 03/17] Reset alpha mask on item pickup. --- code/game/objects/items/__item.dm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/code/game/objects/items/__item.dm b/code/game/objects/items/__item.dm index 9f96108456c..5d86ac77d62 100644 --- a/code/game/objects/items/__item.dm +++ b/code/game/objects/items/__item.dm @@ -520,6 +520,9 @@ /obj/item/proc/equipped(var/mob/user, var/slot) SHOULD_CALL_PARENT(TRUE) + // Clear our alpha mask. + update_turf_alpha_mask() + add_fingerprint(user) hud_layerise() From ee271eafe16a1b07b8a05a31620f7ff5088c1e21 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 17:57:11 +1100 Subject: [PATCH 04/17] Added a couple of missing recipes to planks. --- code/modules/crafting/stack_recipes/recipes_planks.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/crafting/stack_recipes/recipes_planks.dm b/code/modules/crafting/stack_recipes/recipes_planks.dm index 6d5f1e68cf7..a0b3e437972 100644 --- a/code/modules/crafting/stack_recipes/recipes_planks.dm +++ b/code/modules/crafting/stack_recipes/recipes_planks.dm @@ -27,6 +27,10 @@ result_type = /obj/item/stick difficulty = MAT_VALUE_EASY_DIY +/decl/stack_recipe/planks/bucket + result_type = /obj/item/chems/glass/bucket/wood + difficulty = MAT_VALUE_EASY_DIY + /decl/stack_recipe/planks/noticeboard result_type = /obj/structure/noticeboard on_floor = TRUE @@ -114,3 +118,6 @@ /decl/stack_recipe/planks/furniture/chest result_type = /obj/structure/closet/crate/chest + +/decl/stack_recipe/planks/furniture/meathook + result_type = /obj/structure/meat_hook/improvised \ No newline at end of file From e9d23505aa410f1456d50814d30ec82a5ac841cd Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 18:03:40 +1100 Subject: [PATCH 05/17] Movables now call fluid_act() on entering a flooded turf. --- code/game/atoms_movable.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index 3a48893e150..d8bf2f7ee06 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -267,6 +267,11 @@ else if (isturf(loc) && (!old_loc || !TURF_IS_MIMICKING(old_loc)) && MOVABLE_SHALL_MIMIC(src)) SSzcopy.discover_movable(src) + if(isturf(loc)) + var/turf/T = loc + if(T.reagents) + fluid_act(T.reagents) + //called when src is thrown into hit_atom /atom/movable/proc/throw_impact(atom/hit_atom, var/datum/thrownthing/TT) SHOULD_CALL_PARENT(TRUE) From 7482fb50b742e99b2d9940899444ed2f5baa24b2 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 18:07:49 +1100 Subject: [PATCH 06/17] Meathooks reset offsets and plane on the carcass. --- code/modules/butchery/butchery.dm | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/code/modules/butchery/butchery.dm b/code/modules/butchery/butchery.dm index 48d0217e559..8af3207230d 100644 --- a/code/modules/butchery/butchery.dm +++ b/code/modules/butchery/butchery.dm @@ -150,14 +150,26 @@ /obj/structure/meat_hook/on_update_icon() ..() - if(occupant) - occupant.set_dir(SOUTH) - var/image/I = image(null) - I.appearance = occupant - var/matrix/M = matrix() - M.Turn(occupant.butchery_rotation) - I.transform = M - add_overlay(I) + if(!occupant) + return + + occupant.set_dir(SOUTH) + + var/image/I = image(null) + I.appearance = occupant + I.appearance_flags |= RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM + I.pixel_x = null + I.pixel_y = null + I.pixel_z = null + I.pixel_w = null + I.layer = FLOAT_LAYER + I.plane = FLOAT_PLANE + + var/matrix/M = matrix() + M.Turn(occupant.butchery_rotation) + I.transform = M + + add_overlay(I) /obj/structure/meat_hook/mob_breakout(mob/living/escapee) . = ..() From 045eee41ea61b42941637d74d6e7e64ae5f4fcb3 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 18:37:38 +1100 Subject: [PATCH 07/17] Fixes losing HUD on login/logout. --- code/_onclick/hud/hud.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 60b03559f7f..e15dbcd1711 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -10,6 +10,7 @@ /mob/proc/InitializeHud() if(istype(hud_used)) QDEL_NULL(hud_used) + hud_used = initial(hud_used) if(ispath(hud_used)) hud_used = new hud_used(src) refresh_lighting_master() From 867a1e11c192c4cdbe2bb4a7267df67f5e95e0e8 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 18:44:10 +1100 Subject: [PATCH 08/17] Fixes boulders dropping bricks. --- code/game/turfs/walls/wall_natural_xenoarch.dm | 4 ++-- code/modules/xenoarcheaology/boulder.dm | 13 +++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/walls/wall_natural_xenoarch.dm b/code/game/turfs/walls/wall_natural_xenoarch.dm index 09da24dccf0..e6b948399c6 100644 --- a/code/game/turfs/walls/wall_natural_xenoarch.dm +++ b/code/game/turfs/walls/wall_natural_xenoarch.dm @@ -61,14 +61,14 @@ if(newDepth >= 200) // This means the rock is mined out fully if(artifact_find) if( excavation_level > 0 || prob(15) ) - var/obj/structure/boulder/B = new(src, material?.type, paint_color) + var/obj/structure/boulder/excavated/B = new(src, material?.type, paint_color) B.artifact_find = artifact_find else place_artifact_debris(1) artifact_find = null SSxenoarch.artifact_spawning_turfs -= src else if(prob(5)) - new /obj/structure/boulder(src, material?.type) + new /obj/structure/boulder/excavated(src, material?.type) dismantle_wall() return diff --git a/code/modules/xenoarcheaology/boulder.dm b/code/modules/xenoarcheaology/boulder.dm index 8f641d3f8e3..33377fb6037 100644 --- a/code/modules/xenoarcheaology/boulder.dm +++ b/code/modules/xenoarcheaology/boulder.dm @@ -1,19 +1,28 @@ /obj/structure/boulder name = "boulder" - desc = "Leftover rock from an excavation, it's been partially dug out already but there's still a lot to go." + desc = "A large boulder, somewhat bigger than a small boulder." icon = 'icons/obj/mining.dmi' icon_state = "boulder1" density = TRUE opacity = TRUE anchored = TRUE material = /decl/material/solid/stone/sandstone - material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME + material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC var/excavation_level = 0 var/datum/artifact_find/artifact_find +/obj/structure/boulder/excavated + desc = "Leftover rock from an excavation, it's been partially dug out already but there's still a lot to go." + /obj/structure/boulder/basalt material = /decl/material/solid/stone/basalt +/obj/structure/boulder/create_dismantled_products(turf/T) + new /obj/item/stack/material/ore(T, rand(3,5), material?.type) + matter = null + material = null + return ..() + /obj/structure/boulder/Initialize(var/ml, var/_mat, var/coloration) . = ..() icon_state = "boulder[rand(1,6)]" From a248c0cd63d0ee4a794c6354a1b75c5849b4bf4b Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 19:10:42 +1100 Subject: [PATCH 09/17] Updating how cave systems assign ores. --- code/modules/random_map/automata/caves.dm | 42 +++++------------------ 1 file changed, 9 insertions(+), 33 deletions(-) diff --git a/code/modules/random_map/automata/caves.dm b/code/modules/random_map/automata/caves.dm index 7401624ef1f..128c173143f 100644 --- a/code/modules/random_map/automata/caves.dm +++ b/code/modules/random_map/automata/caves.dm @@ -5,22 +5,16 @@ floor_type = /turf/exterior/barren target_turf_type = /turf/unsimulated/mask - var/mineral_turf = /turf/wall/natural/random - var/list/ore_turfs = list() - var/list/minerals_sparse - var/list/minerals_rich - -/datum/random_map/automata/cave_system/New(var/tx, var/ty, var/tz, var/tlx, var/tly, var/do_not_apply, var/do_not_announce, var/used_area) - if(!minerals_sparse) - minerals_sparse = SSmaterials.weighted_minerals_sparse - if(!minerals_rich) - minerals_rich = SSmaterials.weighted_minerals_rich - ..() + var/sparse_mineral_turf = /turf/wall/natural/random + var/rich_mineral_turf = /turf/wall/natural/random/high_chance + var/list/ore_turfs = list() /datum/random_map/automata/cave_system/get_appropriate_path(var/value) switch(value) - if(DOOR_CHAR, EMPTY_CHAR) - return mineral_turf + if(DOOR_CHAR) + return sparse_mineral_turf + if(EMPTY_CHAR) + return rich_mineral_turf if(FLOOR_CHAR) return floor_type if(WALL_CHAR) @@ -69,37 +63,19 @@ if(!origin_x) origin_x = 1 if(!origin_y) origin_y = 1 if(!origin_z) origin_z = 1 - var/tmp_cell var/new_path var/num_applied = 0 for (var/thing in block(locate(origin_x, origin_y, origin_z), locate(limit_x, limit_y, origin_z))) var/turf/T = thing - new_path = null if (!T || (target_turf_type && !istype(T, target_turf_type))) continue - tmp_cell = TRANSLATE_COORD(T.x, T.y) - - var/minerals - switch (map[tmp_cell]) - if(DOOR_CHAR) - new_path = mineral_turf - minerals = pickweight(minerals_sparse) - if(EMPTY_CHAR) - new_path = mineral_turf - minerals = pickweight(minerals_rich) - if(FLOOR_CHAR) - new_path = floor_type - if(WALL_CHAR) - new_path = wall_type - + new_path = get_appropriate_path(map[tmp_cell]) if (!new_path) continue - num_applied += 1 - T.ChangeTurf(new_path, minerals) + T.ChangeTurf(new_path) get_additional_spawns(map[tmp_cell], T) CHECK_TICK - game_log("ASGEN", "Applied [num_applied] turfs.") \ No newline at end of file From 5616851299dd8765b4dafefad5cdc3d75e6e8dd3 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 20:04:43 +1100 Subject: [PATCH 10/17] Woven tiles no longer turn floors into plating. --- code/game/objects/items/stacks/tiles/tile_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index c2348284c4d..97754db4168 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -63,6 +63,7 @@ material = /decl/material/solid/organic/plantmatter/grass/dry color = COLOR_BEIGE material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME + replacement_turf_type = /turf/floor/woven /* * Wood From 188e26563aa94d9fcfcf3b27557a7190d4165313 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 20:04:55 +1100 Subject: [PATCH 11/17] Natural turfs will keep height when transitioning to mud etc. --- code/game/turfs/exterior/exterior_dirt.dm | 2 +- code/game/turfs/exterior/exterior_ice.dm | 2 +- code/game/turfs/exterior/exterior_mud.dm | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/code/game/turfs/exterior/exterior_dirt.dm b/code/game/turfs/exterior/exterior_dirt.dm index e5c591f276c..5ab14bcce25 100644 --- a/code/game/turfs/exterior/exterior_dirt.dm +++ b/code/game/turfs/exterior/exterior_dirt.dm @@ -13,5 +13,5 @@ /turf/exterior/dirt/fluid_act(var/datum/reagents/fluids) SHOULD_CALL_PARENT(FALSE) - var/turf/new_turf = ChangeTurf(/turf/exterior/mud, keep_air = TRUE, keep_air_below = TRUE) + var/turf/new_turf = ChangeTurf(/turf/exterior/mud, keep_air = TRUE, keep_air_below = TRUE, keep_height = TRUE) return new_turf.fluid_act(fluids) diff --git a/code/game/turfs/exterior/exterior_ice.dm b/code/game/turfs/exterior/exterior_ice.dm index acb8d184f22..1fd79e6fb30 100644 --- a/code/game/turfs/exterior/exterior_ice.dm +++ b/code/game/turfs/exterior/exterior_ice.dm @@ -35,4 +35,4 @@ /turf/exterior/snow/handle_melting(list/meltable_materials) . = ..() - ChangeTurf(/turf/exterior/ice) + ChangeTurf(/turf/exterior/ice, keep_height = TRUE) diff --git a/code/game/turfs/exterior/exterior_mud.dm b/code/game/turfs/exterior/exterior_mud.dm index ed86e75a37b..b437adf60f5 100644 --- a/code/game/turfs/exterior/exterior_mud.dm +++ b/code/game/turfs/exterior/exterior_mud.dm @@ -27,7 +27,7 @@ /turf/exterior/mud/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!reagents?.total_volume) - ChangeTurf(/turf/exterior/dry, keep_air = TRUE, keep_air_below = TRUE) + ChangeTurf(/turf/exterior/dry, keep_air = TRUE, keep_air_below = TRUE, keep_height = TRUE) return return ..() @@ -52,6 +52,6 @@ /turf/exterior/dry/fluid_act(datum/reagents/fluids) SHOULD_CALL_PARENT(FALSE) - var/turf/new_turf = ChangeTurf(/turf/exterior/mud, keep_air = TRUE, keep_air_below = TRUE) + var/turf/new_turf = ChangeTurf(/turf/exterior/mud, keep_air = TRUE, keep_air_below = TRUE, keep_height = TRUE) return new_turf.fluid_act(fluids) From a1515afa410f51dac19a2c85cab95ff105e3f144 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 20:07:35 +1100 Subject: [PATCH 12/17] Mud turfs will drop dirt clods when dug. --- code/game/turfs/exterior/exterior_mud.dm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/code/game/turfs/exterior/exterior_mud.dm b/code/game/turfs/exterior/exterior_mud.dm index b437adf60f5..88691073da9 100644 --- a/code/game/turfs/exterior/exterior_mud.dm +++ b/code/game/turfs/exterior/exterior_mud.dm @@ -25,6 +25,11 @@ footstep_type = /decl/footsteps/mud is_fundament_turf = TRUE +/turf/exterior/mud/drop_diggable_resources() + if(get_physical_height() > -(FLUID_DEEP)) + return list(/obj/item/stack/material/lump/large/soil = list(3, 2)) + return ..() + /turf/exterior/mud/fire_act(datum/gas_mixture/air, exposed_temperature, exposed_volume) if(!reagents?.total_volume) ChangeTurf(/turf/exterior/dry, keep_air = TRUE, keep_air_below = TRUE, keep_height = TRUE) From 2b3db9ab3cad352dfe0f350d05c2aa1178bf3289 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 20:14:56 +1100 Subject: [PATCH 13/17] Kilns now update temperature properly. --- code/game/objects/structures/fires.dm | 7 +++---- code/modules/crafting/pottery/pottery_structures.dm | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/code/game/objects/structures/fires.dm b/code/game/objects/structures/fires.dm index 7bb3bb98671..661ac978bae 100644 --- a/code/game/objects/structures/fires.dm +++ b/code/game/objects/structures/fires.dm @@ -146,6 +146,7 @@ return FALSE if(!process_fuel(ignition_temperature)) return FALSE + last_fuel_burn_temperature = max(last_fuel_burn_temperature, ignition_temperature) // needed for initial burn procs to function lit = FIRE_LIT refresh_affected_exterior_turfs() visible_message(SPAN_DANGER("\The [src] catches alight!")) @@ -249,14 +250,12 @@ . = list(type = amount) /obj/structure/fire_source/proc/burn_material(var/decl/material/mat, var/amount) - var/list/burn_products = mat.get_burn_products(amount, last_fuel_burn_temperature) - . = !isnull(burn_products) + . = mat.get_burn_products(amount, last_fuel_burn_temperature) if(.) if(mat.ignition_point && last_fuel_burn_temperature >= mat.ignition_point) if(mat.accelerant_value > FUEL_VALUE_NONE) fuel += amount * (1 + material.accelerant_value) - if(mat.burn_temperature) - last_fuel_burn_temperature = max(last_fuel_burn_temperature, mat.burn_temperature) + last_fuel_burn_temperature = max(last_fuel_burn_temperature, mat.burn_temperature) else if(mat.accelerant_value <= FUEL_VALUE_SUPPRESSANT) fuel -= amount * mat.accelerant_value fuel = max(fuel, 0) diff --git a/code/modules/crafting/pottery/pottery_structures.dm b/code/modules/crafting/pottery/pottery_structures.dm index 603e9c4d24c..4223582f653 100644 --- a/code/modules/crafting/pottery/pottery_structures.dm +++ b/code/modules/crafting/pottery/pottery_structures.dm @@ -4,7 +4,7 @@ icon = 'icons/obj/structures/kiln.dmi' icon_state = ICON_STATE_WORLD density = TRUE - cap_last_fuel_burn = FALSE + cap_last_fuel_burn = null var/list/pottery = list() var/maximum_items = 3 From 5962ec0b5bdea5446d2b6fd9fe45b866f2c1c570 Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 21:43:54 +1100 Subject: [PATCH 14/17] Progress bars for mining can no longer be stacked as fast as you can click. --- code/game/turfs/walls/wall_natural.dm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/code/game/turfs/walls/wall_natural.dm b/code/game/turfs/walls/wall_natural.dm index 565c4bf1042..7da15d2b367 100644 --- a/code/game/turfs/walls/wall_natural.dm +++ b/code/game/turfs/walls/wall_natural.dm @@ -9,6 +9,7 @@ var/ramp_slope_direction var/image/ore_overlay var/static/list/exterior_wall_shine_cache = list() + var/being_mined = FALSE /turf/wall/natural/get_paint_examine_message() return SPAN_NOTICE("It has been noticeably discoloured by the elements.") @@ -65,11 +66,16 @@ // Drill out natural walls. /turf/wall/natural/handle_wall_tool_interactions(obj/item/W, mob/user) - if(IS_PICK(W)) + if(IS_PICK(W) && !being_mined) if(W.material?.hardness < max(material?.hardness, reinf_material?.hardness)) to_chat(user, SPAN_WARNING("\The [W] is not hard enough to dig through \the [src].")) - else if(W.do_tool_interaction(TOOL_PICK, user, src, 2 SECONDS, suffix_message = destroy_artifacts(W, INFINITY))) - dismantle_wall() + else + if(being_mined) + return TRUE + being_mined = TRUE + if(W.do_tool_interaction(TOOL_PICK, user, src, 2 SECONDS, suffix_message = destroy_artifacts(W, INFINITY))) + dismantle_wall() + being_mined = FALSE return TRUE return FALSE From af7e7c3c505d79942544de99f5206a9206311b1c Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 21:45:03 +1100 Subject: [PATCH 15/17] Woven roof tiles now use colour/material properly. --- code/game/objects/items/stacks/tiles/tile_types.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/game/objects/items/stacks/tiles/tile_types.dm b/code/game/objects/items/stacks/tiles/tile_types.dm index 97754db4168..57208dfe892 100644 --- a/code/game/objects/items/stacks/tiles/tile_types.dm +++ b/code/game/objects/items/stacks/tiles/tile_types.dm @@ -391,6 +391,7 @@ icon_state = "woven" material = /decl/material/solid/organic/plantmatter/grass/dry replacement_turf_type = /turf/floor/woven + material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC /obj/item/stack/tile/roof/try_build_turf(var/mob/user, var/turf/target) From 46a2d539ee0b962060f677d7abb49ab848b2439d Mon Sep 17 00:00:00 2001 From: MistakeNot4892 Date: Fri, 22 Mar 2024 21:54:41 +1100 Subject: [PATCH 16/17] Added some stone foley sounds. --- code/game/turfs/walls/wall_natural.dm | 3 +-- .../definitions/solids/materials_solid_stone.dm | 2 ++ sound/effects/rockcrumble.ogg | Bin 0 -> 58582 bytes sound/foley/rockscrape.ogg | Bin 0 -> 11065 bytes 4 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 sound/effects/rockcrumble.ogg create mode 100644 sound/foley/rockscrape.ogg diff --git a/code/game/turfs/walls/wall_natural.dm b/code/game/turfs/walls/wall_natural.dm index 7da15d2b367..736d4c9a239 100644 --- a/code/game/turfs/walls/wall_natural.dm +++ b/code/game/turfs/walls/wall_natural.dm @@ -107,9 +107,8 @@ /turf/wall/natural/drop_dismantled_products(devastated, explode) drop_ore() -// TODO: rock crumble SFX /turf/wall/natural/get_dismantle_sound() - return 'sound/items/Welder.ogg' + return 'sound/effects/rockcrumble.ogg' /turf/wall/natural/dismantle_wall(devastated, explode, no_product, ramp_update = TRUE) destroy_artifacts(null, INFINITY) diff --git a/code/modules/materials/definitions/solids/materials_solid_stone.dm b/code/modules/materials/definitions/solids/materials_solid_stone.dm index 8e9dd094c2a..9f85c255069 100644 --- a/code/modules/materials/definitions/solids/materials_solid_stone.dm +++ b/code/modules/materials/definitions/solids/materials_solid_stone.dm @@ -18,6 +18,8 @@ /decl/material/solid/silicon = 1 ) ore_result_amount = 7 + sound_manipulate = 'sound/foley/rockscrape.ogg' + sound_dropped = 'sound/foley/rockscrape.ogg' /decl/material/solid/stone/sandstone name = "sandstone" diff --git a/sound/effects/rockcrumble.ogg b/sound/effects/rockcrumble.ogg new file mode 100644 index 0000000000000000000000000000000000000000..475d2c7ba663693f5580a94af9cef3bc80731e00 GIT binary patch literal 58582 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 Date: Fri, 22 Mar 2024 22:09:05 +1100 Subject: [PATCH 17/17] Allowed for 'no box' to be selected for survival boxes. --- code/datums/outfits/equipment/survival_box.dm | 4 ++++ code/datums/outfits/outfit.dm | 9 +++++---- .../client/preference_setup/general/04_equipment.dm | 8 ++++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/code/datums/outfits/equipment/survival_box.dm b/code/datums/outfits/equipment/survival_box.dm index c7a04b0d823..0e1fca9dd5c 100644 --- a/code/datums/outfits/equipment/survival_box.dm +++ b/code/datums/outfits/equipment/survival_box.dm @@ -4,6 +4,10 @@ var/name = "survival box option" var/box_type +/decl/survival_box_option/none + name = "nothing" + uid = "survival_box_nothing" + /decl/survival_box_option/survival name = "survival kit" box_type = /obj/item/storage/box/survival diff --git a/code/datums/outfits/outfit.dm b/code/datums/outfits/outfit.dm index 596c774cf77..e4a9859cb59 100644 --- a/code/datums/outfits/outfit.dm +++ b/code/datums/outfits/outfit.dm @@ -186,10 +186,11 @@ var/global/list/outfits_decls_by_type_ if(H.species && !(OUTFIT_ADJUSTMENT_SKIP_SURVIVAL_GEAR & equip_adjustments)) var/decl/survival_box_option/chosen_survival_box = H?.client?.prefs.survival_box_choice - if(outfit_flags & OUTFIT_EXTENDED_SURVIVAL) - H.species.equip_survival_gear(H, /obj/item/storage/box/engineer) - else if(chosen_survival_box?.box_type) - H.species.equip_survival_gear(H, chosen_survival_box.box_type) + if(chosen_survival_box?.box_type) + if(outfit_flags & OUTFIT_EXTENDED_SURVIVAL) + H.species.equip_survival_gear(H, /obj/item/storage/box/engineer) + else + H.species.equip_survival_gear(H, chosen_survival_box.box_type) if(H.client?.prefs?.give_passport) global.using_map.create_passport(H) diff --git a/code/modules/client/preference_setup/general/04_equipment.dm b/code/modules/client/preference_setup/general/04_equipment.dm index 2091879bb86..ed6c34d9ae9 100644 --- a/code/modules/client/preference_setup/general/04_equipment.dm +++ b/code/modules/client/preference_setup/general/04_equipment.dm @@ -106,8 +106,12 @@ if(!ispath(pref.starting_cash_choice, /decl/starting_cash_choice)) pref.starting_cash_choice = global.using_map.default_starting_cash_choice - if(!pref.survival_box_choice && length(global.using_map.survival_box_choices)) // if you have at least one box available, 'none' must be its own bespoke option - pref.survival_box_choice = global.using_map.survival_box_choices[global.using_map.survival_box_choices[1]] + // if you have at least one box available, 'none' must be its own bespoke option + if(length(global.using_map.survival_box_choices)) + if(!pref.survival_box_choice || !(pref.survival_box_choice.type in global.using_map.survival_box_choices)) + pref.survival_box_choice = global.using_map.survival_box_choices[global.using_map.survival_box_choices[1]] + else + pref.survival_box_choice = null /datum/category_item/player_setup_item/physical/equipment/content() . = list()