From 2f525670380daaa86fe3c03a5e561c24c3395450 Mon Sep 17 00:00:00 2001 From: Filatelele Date: Tue, 2 Apr 2024 14:51:12 +0300 Subject: [PATCH 1/8] fix(solar): removes excess of electronics dupe --- code/modules/power/solar.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/power/solar.dm b/code/modules/power/solar.dm index a8ae51e01d5..0bf7b2068d4 100644 --- a/code/modules/power/solar.dm +++ b/code/modules/power/solar.dm @@ -225,7 +225,7 @@ var/list/solars_list = list() /obj/item/solar_assembly/attackby(obj/item/W, mob/user) if(!tracker) - if(istype(W, /obj/item/tracker_electronics) && user.drop(W)) + if(istype(W, /obj/item/tracker_electronics) && user.drop(W, src)) tracker = 1 user.visible_message("[user] inserts the electronics into the solar assembly.") return 1 From f0e9942ca45cc73a99590351b876364731cbc908 Mon Sep 17 00:00:00 2001 From: Filatelele Date: Tue, 2 Apr 2024 15:13:46 +0300 Subject: [PATCH 2/8] fix(assorted): fixes construction logic of coffemaker and sauna --- code/__defines/_render.dm | 7 +++ code/game/machinery/atmoalter/sauna.dm | 57 +++++++++++++++---- code/game/machinery/coffeemaker.dm | 7 ++- .../machinery/machinery_circuitboards.dm | 2 +- .../circuitprinter/dc-machine_boards.dm | 16 +++++- 5 files changed, 73 insertions(+), 16 deletions(-) diff --git a/code/__defines/_render.dm b/code/__defines/_render.dm index cd1a28d2849..361c8e04f8d 100644 --- a/code/__defines/_render.dm +++ b/code/__defines/_render.dm @@ -326,6 +326,7 @@ INITIALIZE_IMMEDIATE(/atom/movable/renderer) switch(quality) if(GLOB.PREF_LOW) gas_heat_object = new /atom/movable/heat_effect(null) + steam_object = new /atom/movable/steam_effect(null) if(GLOB.PREF_MED) gas_heat_object = new /atom/movable/particle_emitter/heat(null) steam_object = new /atom/movable/particle_emitter/steam(null) @@ -343,6 +344,12 @@ INITIALIZE_IMMEDIATE(/atom/movable/renderer) render_target = HEAT_EFFECT_TARGET mouse_opacity = MOUSE_OPACITY_UNCLICKABLE +/atom/movable/steam_effect + icon = 'icons/effects/effects.dmi' + icon_state = "smoke" + appearance_flags = PIXEL_SCALE | NO_CLIENT_COLOR + render_target = STEAM_EFFECT_TARGET + mouse_opacity = MOUSE_OPACITY_UNCLICKABLE /* * * This system works by exploiting BYONDs color matrix filter to use layers to handle emissive blockers. diff --git a/code/game/machinery/atmoalter/sauna.dm b/code/game/machinery/atmoalter/sauna.dm index 33535cde49b..c714ea9dfa9 100644 --- a/code/game/machinery/atmoalter/sauna.dm +++ b/code/game/machinery/atmoalter/sauna.dm @@ -9,18 +9,21 @@ icon = 'icons/obj/machines/sauna.dmi' icon_state = "sauna" base_icon_state = "sauna" + obj_flags = OBJ_FLAG_ANCHORABLE use_power = POWER_USE_IDLE density = TRUE anchored = TRUE stat = POWEROFF // Disabled at roundstart + component_types = list( + /obj/item/circuitboard/sauna, + /obj/item/reagent_containers/vessel/beaker/large = 1, + /obj/item/stock_parts/capacitor = 1 + ) + /// Container storing reagents for steam var/obj/item/reagent_containers/container - var/list/reagent_whitelist - - reagent_whitelist = list(/datum/reagent/water) - var/static/image/container_overlay = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "container") var/static/image/on_bad = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "on_bad") var/static/image/on_good = image(icon = 'icons/obj/machines/sauna.dmi', icon_state = "on_good") @@ -57,6 +60,10 @@ if(issilicon(user)) return + if(!anchored) + show_splash_text(user, "anchor it first!", "\The [src] must be anchored to the floor!") + return + var/list/options = list() if(istype(container)) @@ -99,10 +106,10 @@ playsound(get_turf(src), GET_SFX(SFX_USE_KNOB), 45, TRUE) /obj/machinery/sauna/attackby(obj/item/attack_item, mob/living/user, params) - if(!container && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) + if(!container && default_deconstruction_screwdriver(user, attack_item)) return - if(default_deconstruction_crowbar(attack_item)) + if(default_deconstruction_crowbar(user, attack_item)) return if(istype(attack_item, /obj/item/reagent_containers/vessel) && attack_item.is_open_container()) @@ -115,6 +122,20 @@ return ..() +/obj/machinery/sauna/wrench_floor_bolts(mob/user) + if(!(stat & (NOPOWER | BROKEN | POWEROFF))) + show_splash_text(user, "turn off first!", "\The [src] must be turned off first!") + return + + . = ..() + if(!.) + return + + if(!anchored) + stat |= POWEROFF + STOP_PROCESSING(SSmachines, src) + update_icon() + /obj/machinery/sauna/Process() if(stat & (NOPOWER | BROKEN | POWEROFF)) STOP_PROCESSING(SSmachines, src) @@ -191,6 +212,14 @@ /// Generic toggle proc. Nothing special. /obj/machinery/sauna/proc/toggle(mob/user) + if(stat & NOPOWER) + show_splash_text(user, "no power!", "\The [src] is not powered!") + return + + if(stat & BROKEN) + show_splash_text(user, "broken!", "\The [src] is broken!") + return + if(stat & POWEROFF) stat &= ~POWEROFF show_splash_text(user, "enabled", "You turn on \the [src]") @@ -242,14 +271,15 @@ AddOverlays(emissive) /obj/machinery/sauna/proc/update_glow() - if(!(stat & (BROKEN | NOPOWER | POWEROFF))) + if(stat & (BROKEN | NOPOWER | POWEROFF)) set_light(0) return FALSE if(istype(container) && container?.reagents.get_reagent_amount(/datum/reagent/water)) - set_light(0.15, 0.1, 1, 2, "#82ff4c") + set_light(0.15, 1, 2, 3.5, "#82ff4c") else - set_light(0.15, 0.1, 1, 2, "#f86060") + set_light(0.15, 1, 2, 3.5, "#f86060") + return TRUE /obj/machinery/sauna/examine(mob/user, infix) . = ..() @@ -262,6 +292,9 @@ . += SPAN_NOTICE("Its temperature is set at [CONV_KELVIN_CELSIUS(target_temperature)] celsius.") + if(panel_open) + . += SPAN_NOTICE("[src]'s maintenance hatch is open!") + /atom/movable/steam_controller anchored = TRUE invisibility = INVISIBILITY_SYSTEM @@ -287,6 +320,8 @@ for(var/turf/turf in turfs) turf.vis_contents.Remove(overlay) + QDEL_NULL(overlay) + var/obj/machinery/sauna/sauna = sauna_ref.resolve() if(istype(sauna)) sauna.steam = null @@ -305,11 +340,9 @@ condense(turfs) return - if(isnull(reagents)) - create_reagents(1000) - if(turfs?.len * WATER_UNIT_PER_TILE > reagents?.get_reagent_amount(/datum/reagent/water)) disappear() + return if(turfs?.len * WATER_UNIT_PER_TILE < reagents?.get_reagent_amount(/datum/reagent/water)) reagents?.remove_reagent(/datum/reagent/water, turfs?.len * WATER_UNIT_PER_TILE) diff --git a/code/game/machinery/coffeemaker.dm b/code/game/machinery/coffeemaker.dm index 55342775cde..5571330770a 100644 --- a/code/game/machinery/coffeemaker.dm +++ b/code/game/machinery/coffeemaker.dm @@ -8,6 +8,9 @@ base_icon_state = "coffeemaker_impressa" obj_flags = OBJ_FLAG_ANCHORABLE density = TRUE + + component_types = list(/obj/item/circuitboard/coffeemaker) + var/obj/item/reagent_containers/vessel/coffeepot/coffeepot = null var/brewing = FALSE var/brew_time = 8 SECONDS @@ -191,10 +194,10 @@ return TRUE /obj/machinery/coffeemaker/attackby(obj/item/attack_item, mob/living/user, params) - if(!coffeepot && default_deconstruction_screwdriver(user, icon_state, icon_state, attack_item)) + if(!coffeepot && default_deconstruction_screwdriver(user, attack_item)) return - if(default_deconstruction_crowbar(attack_item)) + if(default_deconstruction_crowbar(user, attack_item)) return if(panel_open) //Can't insert objects when its screwed open diff --git a/code/game/objects/items/circuitboards/machinery/machinery_circuitboards.dm b/code/game/objects/items/circuitboards/machinery/machinery_circuitboards.dm index 9c7be5f915f..5b030bae9f4 100644 --- a/code/game/objects/items/circuitboards/machinery/machinery_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machinery/machinery_circuitboards.dm @@ -44,7 +44,7 @@ /obj/item/stock_parts/micro_laser = 3, /obj/item/stock_parts/manipulator = 1) -/obj/item/circuitboard/microwave +/obj/item/circuitboard/sauna name = T_BOARD("sauna") build_path = /obj/machinery/sauna board_type = "machine" diff --git a/code/modules/research/designs/circuitprinter/dc-machine_boards.dm b/code/modules/research/designs/circuitprinter/dc-machine_boards.dm index e66db978779..5d81a404dad 100644 --- a/code/modules/research/designs/circuitprinter/dc-machine_boards.dm +++ b/code/modules/research/designs/circuitprinter/dc-machine_boards.dm @@ -295,8 +295,22 @@ sort_string = "KCAAG" /datum/design/circuit/unloading_machine - name = "unloading_machine" + name = "unloading machine" id = "unloading_machine" req_tech = list(TECH_ENGINEERING = 1) build_path = /obj/item/circuitboard/unloading_machine sort_string = "KCAAH" + +/datum/design/circuit/coffeemaker + name = "coffeemaker" + id = "coffeemaker" + req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 1) + build_path = /obj/item/circuitboard/coffeemaker + sort_string = "KCAAI" + +/datum/design/circuit/sauna + name = "sauna" + id = "sauna" + req_tech = list(TECH_ENGINEERING = 2, TECH_POWER = 2) + build_path = /obj/item/circuitboard/sauna + sort_string = "KCAAJ" From 410d6e6e7a74092fc0689171dfd36d10b16ccec1 Mon Sep 17 00:00:00 2001 From: Filatelele Date: Tue, 2 Apr 2024 15:14:02 +0300 Subject: [PATCH 3/8] fix(nasral): removes excess of nameof lacking callbacks --- code/_onclick/click.dm | 4 ++-- code/_onclick/hud/alert.dm | 2 +- code/controllers/subsystems/statpanels.dm | 2 +- code/datums/appearances/automatic/cardborg.dm | 2 +- code/datums/sound_player.dm | 2 +- code/game/gamemodes/godmode/form_items/narsie_items.dm | 2 +- code/game/gamemodes/godmode/god_altar.dm | 6 +++--- code/game/gamemodes/godmode/god_pylon.dm | 2 +- code/game/machinery/slot_machine.dm | 2 +- code/game/machinery/turret/_turrets.dm | 2 +- code/modules/holodeck/computer.dm | 2 +- code/modules/mob/living/deity/phenomena/communication.dm | 2 +- 12 files changed, 15 insertions(+), 15 deletions(-) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index b604bb6968e..cad9568fafc 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -500,11 +500,11 @@ var/const/CLICK_HANDLER_ALL = (~0) ..() src.user = user if(flags & (CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT)) - register_signal(user, SIGNAL_LOGGED_OUT, /datum/click_handler/proc/OnMobLogout) + register_signal(user, SIGNAL_LOGGED_OUT, nameof(/datum/click_handler.proc/OnMobLogout)) /datum/click_handler/Destroy() if(flags & (CLICK_HANDLER_REMOVE_ON_MOB_LOGOUT)) - unregister_signal(user, SIGNAL_LOGGED_OUT, /datum/click_handler/proc/OnMobLogout) + unregister_signal(user, SIGNAL_LOGGED_OUT, nameof(/datum/click_handler.proc/OnMobLogout)) user = null . = ..() diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7865ec83788..b3b0f19ceb8 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -43,7 +43,7 @@ thealert.timeout = null thealert.owner = src - thealert.register_signal(thealert.owner, SIGNAL_QDELETING, /datum/proc/qdel_self) + thealert.register_signal(thealert.owner, SIGNAL_QDELETING, nameof(/datum.proc/qdel_self)) if(new_master) var/old_layer = new_master.layer diff --git a/code/controllers/subsystems/statpanels.dm b/code/controllers/subsystems/statpanels.dm index b15e967b637..d2146996380 100644 --- a/code/controllers/subsystems/statpanels.dm +++ b/code/controllers/subsystems/statpanels.dm @@ -186,7 +186,7 @@ SUBSYSTEM_DEF(statpanels) // Now, we're gonna queue image generation out of those refs to_make += turf_item already_seen[turf_item] = OBJ_IMAGE_LOADING - obj_window.register_signal(turf_item, SIGNAL_QDELETING, nameof(/datum/object_window_info/proc/viewing_atom_deleted)) // we reset cache if anything in it gets deleted + obj_window.register_signal(turf_item, SIGNAL_QDELETING, nameof(/datum/object_window_info.proc/viewing_atom_deleted)) // we reset cache if anything in it gets deleted return turf_items diff --git a/code/datums/appearances/automatic/cardborg.dm b/code/datums/appearances/automatic/cardborg.dm index 7c552c448f0..b95ef531baa 100644 --- a/code/datums/appearances/automatic/cardborg.dm +++ b/code/datums/appearances/automatic/cardborg.dm @@ -17,7 +17,7 @@ var/image/I = get_image_from_backpack(H) AddAltAppearance(H, I, GLOB.silicon_mob_list+H) //you look like a robot to robots! (including yourself because you're totally a robot) - register_global_signal(SIGNAL_LOGGED_IN, /decl/appearance_handler/cardborg/proc/mob_joined) // Duplicate registration request are handled for us + register_global_signal(SIGNAL_LOGGED_IN, nameof(/decl/appearance_handler/cardborg.proc/mob_joined)) // Duplicate registration request are handled for us /decl/appearance_handler/cardborg/proc/item_removed(obj/item/item, mob/user) if((istype(item, /obj/item/clothing/suit/cardborg) || istype(item, /obj/item/clothing/head/cardborg)) || istype(item, /obj/item/storage/backpack)) diff --git a/code/datums/sound_player.dm b/code/datums/sound_player.dm index 44c3f04083a..bfd7b18b1cc 100644 --- a/code/datums/sound_player.dm +++ b/code/datums/sound_player.dm @@ -214,7 +214,7 @@ GLOBAL_DATUM_INIT(sound_player, /decl/sound_player, new) null_sound = null_sound || new(channel = sound.channel) sound_to(listener, null_sound) unregister_signal(listener, SIGNAL_MOVED) - unregister_signal(listener, SIGNAL_QDELETING, /datum/sound_token/proc/PrivRemoveListener) + unregister_signal(listener, SIGNAL_QDELETING, nameof(/datum/sound_token.proc/PrivRemoveListener)) listeners -= listener /datum/sound_token/proc/PrivUpdateListenerLoc(atom/listener, update_sound = TRUE) diff --git a/code/game/gamemodes/godmode/form_items/narsie_items.dm b/code/game/gamemodes/godmode/form_items/narsie_items.dm index 6c74cb9a882..2b3893cfacb 100644 --- a/code/game/gamemodes/godmode/form_items/narsie_items.dm +++ b/code/game/gamemodes/godmode/form_items/narsie_items.dm @@ -60,7 +60,7 @@ if(ismob(a)) var/mob/M = a if(!M.is_ooc_dead()) - register_signal(M, SIGNAL_MOB_DEATH, /obj/item/material/twohanded/fireaxe/cult/proc/gain_power) + register_signal(M, SIGNAL_MOB_DEATH, nameof(/obj/item/material/twohanded/fireaxe/cult.proc/gain_power)) spawn(30) unregister_signal(M, SIGNAL_MOB_DEATH) return ..() diff --git a/code/game/gamemodes/godmode/god_altar.dm b/code/game/gamemodes/godmode/god_altar.dm index a47a9cb4e7b..44f4be7079c 100644 --- a/code/game/gamemodes/godmode/god_altar.dm +++ b/code/game/gamemodes/godmode/god_altar.dm @@ -60,9 +60,9 @@ set_next_think(world.time + 1 SECOND) target = L update_icon() - register_signal(L, SIGNAL_QDELETING, /obj/structure/deity/altar/proc/remove_target) - register_signal(L, SIGNAL_MOVED, /obj/structure/deity/altar/proc/remove_target) - register_signal(L, SIGNAL_MOB_DEATH, /obj/structure/deity/altar/proc/remove_target) + register_signal(L, SIGNAL_QDELETING, nameof(/obj/structure/deity/altar.proc/remove_target)) + register_signal(L, SIGNAL_MOVED, nameof(/obj/structure/deity/altar.proc/remove_target)) + register_signal(L, SIGNAL_MOB_DEATH, nameof(/obj/structure/deity/altar.proc/remove_target)) /obj/structure/deity/altar/proc/remove_target() set_next_think(0) diff --git a/code/game/gamemodes/godmode/god_pylon.dm b/code/game/gamemodes/godmode/god_pylon.dm index 8444a2a1247..09d0df52548 100644 --- a/code/game/gamemodes/godmode/god_pylon.dm +++ b/code/game/gamemodes/godmode/god_pylon.dm @@ -30,7 +30,7 @@ return to_chat(L, "You place your hands on \the [src], feeling yourself intune to its vibrations.") intuned += L - register_signal(L, SIGNAL_QDELETING, /obj/structure/deity/pylon/proc/remove_intuned) + register_signal(L, SIGNAL_QDELETING, nameof(/obj/structure/deity/pylon.proc/remove_intuned)) /obj/structure/deity/pylon/proc/remove_intuned(mob/living/L) if(!(L in intuned)) diff --git a/code/game/machinery/slot_machine.dm b/code/game/machinery/slot_machine.dm index 5ea75a935f8..e164141ff75 100644 --- a/code/game/machinery/slot_machine.dm +++ b/code/game/machinery/slot_machine.dm @@ -74,7 +74,7 @@ /obj/machinery/slot_machine/proc/money_roll() plays = TRUE update_icon() - addtimer(CALLBACK(src, .proc/_money_roll), 3 SECONDS) + addtimer(CALLBACK(src, nameof(.proc/_money_roll)), 3 SECONDS) /obj/machinery/slot_machine/proc/_money_roll() var/roll = rand(1, max_roll) diff --git a/code/game/machinery/turret/_turrets.dm b/code/game/machinery/turret/_turrets.dm index dd079958c68..ba5f5a8d901 100644 --- a/code/game/machinery/turret/_turrets.dm +++ b/code/game/machinery/turret/_turrets.dm @@ -506,7 +506,7 @@ GLOBAL_LIST_EMPTY(all_turrets) to_chat(user, SPAN_WARNING("You short out \the [src]'s threat assessment circuits.")) visible_message("\The [src] hums oddly...") enabled = FALSE - addtimer(CALLBACK(src, .proc/emagged_targeting), 6 SECONDS) + addtimer(CALLBACK(src, nameof(.proc/emagged_targeting)), 6 SECONDS) state_machine.evaluate() /obj/machinery/turret/proc/emagged_targeting() diff --git a/code/modules/holodeck/computer.dm b/code/modules/holodeck/computer.dm index 480c49a7762..6f694a7a54e 100644 --- a/code/modules/holodeck/computer.dm +++ b/code/modules/holodeck/computer.dm @@ -233,7 +233,7 @@ clear_projections() var/offline_template = SSmapping.holodeck_templates[offline_program] - INVOKE_ASYNC(CALLBACK(offline_template, nameof(/datum/map_template/proc/load), bottom_left)) + INVOKE_ASYNC(CALLBACK(offline_template, nameof(/datum/map_template.proc/load), bottom_left)) /obj/machinery/computer/holodeck/Process() if(!active) diff --git a/code/modules/mob/living/deity/phenomena/communication.dm b/code/modules/mob/living/deity/phenomena/communication.dm index f4ae34de855..7c967899738 100644 --- a/code/modules/mob/living/deity/phenomena/communication.dm +++ b/code/modules/mob/living/deity/phenomena/communication.dm @@ -35,7 +35,7 @@ if((M in view) && M.client) to_chat(M, "Your attention is eerily drawn to \the [a].") M.client.images += arrow - register_signal(M, SIGNAL_LOGGED_OUT, /datum/phenomena/point/proc/remove_image) + register_signal(M, SIGNAL_LOGGED_OUT, nameof(/datum/phenomena/point.proc/remove_image)) spawn(20) if(M.client) remove_image(M) From 4b3c0b74cc330b4149b605d8d5d38d0e7635e55b Mon Sep 17 00:00:00 2001 From: Filatelele Date: Tue, 2 Apr 2024 15:15:57 +0300 Subject: [PATCH 4/8] fix(proximity): theoretically fixes GC failures --- code/game/objects/effects/proximity.dm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/code/game/objects/effects/proximity.dm b/code/game/objects/effects/proximity.dm index 0a4eb2ca15d..40ec206ba42 100644 --- a/code/game/objects/effects/proximity.dm +++ b/code/game/objects/effects/proximity.dm @@ -29,6 +29,8 @@ SetRange(current_range,TRUE) /datum/proximity_monitor/Destroy() + if(!isnull(host)) + unregister_signal(host, SIGNAL_MOVED) host = null last_host_loc = null hasprox_receiver = null From 4621f0f9adcc12d46843f5c5d67acf007e0da036 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:18:58 +0300 Subject: [PATCH 5/8] update(changelog): 2.4.2024 --- html/changelog.html | 18 ++++++++++++++-- html/changelogs/.all_changelog.json | 31 ++++++++++++++++++++++++++++ tools/ChangelogGenerator/last_pr.txt | 2 +- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/html/changelog.html b/html/changelog.html index 7d7b6613883..bc03da1892a 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -45,12 +45,26 @@
+
02 апрель 2024
+

Filatelele updated:

+
    +
  • Сборка/разборка кофемашины и сауны теперь работает.

    +#12050
  • +
  • Сауну теперь можно откручивать.

    +#12050
  • +
  • Платы кофемашины и сауны добавлены в РнД.

    +#12050
  • +
  • Исправлен дюп электроники солнечных панелей.

    +#12047
  • +
  • Разборка турелей и их панелей снова должна работать.

    +#12040
  • +
01 апрель 2024

Filatelele updated:

  • Серия фиксов кофемашины.

    #12014
  • -
  • Руководство выделило деньги на качественное улучшение досуга экипажа. Добро пожаловать в обновленную сауну Исхода.

    +
  • /🆑

    #12012
  • Исправлено недоразумение со сваркой и болтами шлюза.

    #12015
  • @@ -15219,4 +15233,4 @@

    Banditoz updated:

- + \ No newline at end of file diff --git a/html/changelogs/.all_changelog.json b/html/changelogs/.all_changelog.json index 2dcc49c4f77..3c4b26dfe32 100644 --- a/html/changelogs/.all_changelog.json +++ b/html/changelogs/.all_changelog.json @@ -1,4 +1,35 @@ [ + { + "author": "Filatelele", + "date": "2024-04-02T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Сборка/разборка кофемашины и сауны теперь работает.", + "pr": 12050 + }, + { + "prefix": "BugFix", + "message": "Сауну теперь можно откручивать.", + "pr": 12050 + }, + { + "prefix": "Tweak", + "message": "Платы кофемашины и сауны добавлены в РнД.", + "pr": 12050 + }, + { + "prefix": "BugFix", + "message": "Исправлен дюп электроники солнечных панелей.", + "pr": 12047 + }, + { + "prefix": "BugFix", + "message": "Разборка турелей и их панелей снова должна работать.", + "pr": 12040 + } + ] + }, { "author": "Filatelele", "date": "2024-04-01T00:00:00+03:00", diff --git a/tools/ChangelogGenerator/last_pr.txt b/tools/ChangelogGenerator/last_pr.txt index f903ed171f1..13882255ff2 100644 --- a/tools/ChangelogGenerator/last_pr.txt +++ b/tools/ChangelogGenerator/last_pr.txt @@ -1 +1 @@ -04/01/2024 13:41:41 \ No newline at end of file +04/02/2024 12:13:47 \ No newline at end of file From c00c820365483990b158dda72026d392f05abc15 Mon Sep 17 00:00:00 2001 From: PartingGlass <45202681+TobyThorne@users.noreply.github.com> Date: Tue, 2 Apr 2024 17:30:29 +0500 Subject: [PATCH 6/8] fix(walls): removes lack of shading --- baystation12.dme | 2 +- code/game/turfs/simulated/wall_icon.dm | 16 +++++++++------- code/game/turfs/simulated/walls.dm | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/baystation12.dme b/baystation12.dme index 74f0d4cd131..851c4a32822 100644 --- a/baystation12.dme +++ b/baystation12.dme @@ -362,10 +362,10 @@ #include "code\datums\configuration\server_configuration.dm" #include "code\datums\configuration\vote_section.dm" #include "code\datums\elements\_element.dm" -#include "code\datums\elements\simple_rotation.dm" #include "code\datums\elements\connect_loc.dm" #include "code\datums\elements\last_words.dm" #include "code\datums\elements\point_of_interest.dm" +#include "code\datums\elements\simple_rotation.dm" #include "code\datums\events\apc_damage.dm" #include "code\datums\events\biohazard_outbreak.dm" #include "code\datums\events\brand_intelligence.dm" diff --git a/code/game/turfs/simulated/wall_icon.dm b/code/game/turfs/simulated/wall_icon.dm index 9450b3b06b7..60f6d86b288 100644 --- a/code/game/turfs/simulated/wall_icon.dm +++ b/code/game/turfs/simulated/wall_icon.dm @@ -45,18 +45,18 @@ var/image/I if(!density) - I = OVERLAY(masks_icon, "[material.icon_base]fwall_open") - I.color = material.icon_colour - AddOverlays(I) + icon = masks_icon + icon_state = "[material.icon_base]fwall_open" + color = material.icon_colour return - I = image(GLOB.bitmask_icon_sheets["wall_[material.icon_base]"], "[wall_connections]") - I.color = material.icon_colour - AddOverlays(I) + icon = GLOB.bitmask_icon_sheets["wall_[material.icon_base]"] + icon_state = "[wall_connections]" + color = material.icon_colour if(reinf_material) if(construction_stage != null && construction_stage < 6) - I = OVERLAY(masks_icon, "reinf_construct-[construction_stage]") + I = OVERLAY(masks_icon, "reinf_construct-[construction_stage]", appearance_flags = RESET_COLOR) I.color = reinf_material.icon_colour AddOverlays(I) else @@ -65,10 +65,12 @@ if("[reinf_material.icon_reinf]0" in mask_overlay_states[masks_icon]) I = image(GLOB.bitmask_icon_sheets["wall_[reinf_material.icon_reinf]"], "[wall_connections]") I.color = reinf_material.icon_colour + I.appearance_flags = DEFAULT_APPEARANCE_FLAGS | RESET_COLOR AddOverlays(I) else I = OVERLAY(masks_icon, reinf_material.icon_reinf) I.color = reinf_material.icon_colour + I.appearance_flags = DEFAULT_APPEARANCE_FLAGS | RESET_COLOR AddOverlays(I) if(damage != 0) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index c6d2f805b7c..49589e893bb 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -6,7 +6,7 @@ opacity = 1 density = 1 blocks_air = 1 - plane = TURF_PLANE + plane = DEFAULT_PLANE // TURF_PLANE is for floors, but here we need structure-like rendering. thermal_conductivity = WALL_HEAT_TRANSFER_COEFFICIENT heat_capacity = 312500 //a little over 5 cm thick , 312500 for 1 m by 2.5 m by 0.25 m plasteel wall hitby_sound = 'sound/effects/metalhit2.ogg' From 3ef1e4b401b6c5c2593ccf3da0aede047d788cad Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 2 Apr 2024 15:34:02 +0300 Subject: [PATCH 7/8] update(changelog): 2.4.2024 --- html/changelog.html | 5 +++++ html/changelogs/.all_changelog.json | 11 +++++++++++ tools/ChangelogGenerator/last_pr.txt | 2 +- 3 files changed, 17 insertions(+), 1 deletion(-) diff --git a/html/changelog.html b/html/changelog.html index bc03da1892a..11291a38d19 100644 --- a/html/changelog.html +++ b/html/changelog.html @@ -58,6 +58,11 @@

Filatelele updated:

#12047
  • Разборка турелей и их панелей снова должна работать.

    #12040
  • + +

    TobyThorne updated:

    +
      +
    • Стены снова умеют в ambient occlusion (aka затеняют пол).

      +#12060
    01 апрель 2024

    Filatelele updated:

    diff --git a/html/changelogs/.all_changelog.json b/html/changelogs/.all_changelog.json index 3c4b26dfe32..393afb49967 100644 --- a/html/changelogs/.all_changelog.json +++ b/html/changelogs/.all_changelog.json @@ -30,6 +30,17 @@ } ] }, + { + "author": "TobyThorne", + "date": "2024-04-02T00:00:00+03:00", + "changes": [ + { + "prefix": "BugFix", + "message": "Стены снова умеют в ambient occlusion (aka затеняют пол).", + "pr": 12060 + } + ] + }, { "author": "Filatelele", "date": "2024-04-01T00:00:00+03:00", diff --git a/tools/ChangelogGenerator/last_pr.txt b/tools/ChangelogGenerator/last_pr.txt index 13882255ff2..25c741a8ba1 100644 --- a/tools/ChangelogGenerator/last_pr.txt +++ b/tools/ChangelogGenerator/last_pr.txt @@ -1 +1 @@ -04/02/2024 12:13:47 \ No newline at end of file +04/02/2024 12:30:29 \ No newline at end of file From a8a6c0b208acb10a2c704f4d77e73509c61970ba Mon Sep 17 00:00:00 2001 From: PartingGlass <45202681+TobyThorne@users.noreply.github.com> Date: Tue, 2 Apr 2024 21:00:03 +0500 Subject: [PATCH 8/8] fix(things): removes runtimes PR #12067 --- code/datums/sound_player.dm | 4 +++- code/modules/clothing/clothing.dm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/code/datums/sound_player.dm b/code/datums/sound_player.dm index bfd7b18b1cc..72293e283cf 100644 --- a/code/datums/sound_player.dm +++ b/code/datums/sound_player.dm @@ -221,7 +221,9 @@ GLOBAL_DATUM_INIT(sound_player, /decl/sound_player, new) var/turf/source_turf = get_turf(source) var/turf/listener_turf = get_turf(listener) - ASSERT(istype(source_turf) && istype(listener_turf)) + if(!istype(source_turf) && !istype(listener_turf)) // Oh look somebody's got nullspace'd + PrivRemoveListener(listener) + return var/distance = get_dist(source_turf, listener_turf) if(!listener_turf || (distance > range) || !(listener_turf in can_be_heard_from)) diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 40362a34862..f88eef0a9fa 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -50,7 +50,7 @@ GLOBAL_LIST_EMPTY(clothing_blood_icons) if(slot == slot_l_hand_str || slot == slot_r_hand_str) return - var/image/ret = . + var/image/ret = . ? . : image('icons/effects/blank.dmi') if(ishuman(user_mob)) var/mob/living/carbon/human/user_human = user_mob