diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm index d8652e33f18..feef234b483 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_hermit.dmm @@ -99,7 +99,7 @@ /turf/open/floor/pod/dark, /area/ruin/powered) "w" = ( -/obj/machinery/smartfridge/survival_pod, +/obj/machinery/smartfridge/survival_pod/preloaded, /turf/open/floor/pod/dark, /area/ruin/powered) "x" = ( diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm index 01cbeb09fd6..33e3a32368f 100644 --- a/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm +++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_survivalpod.dmm @@ -26,7 +26,10 @@ /turf/open/floor/pod/dark, /area/ruin/powered) "g" = ( -/obj/machinery/smartfridge/survival_pod/empty, +/obj/machinery/smartfridge/survival_pod{ + name = "dusty survival pod storage"; + desc = "A heated storage unit. This one's seen better days." + }, /turf/open/floor/pod/dark, /area/ruin/powered) "h" = ( diff --git a/_maps/templates/shelter_1.dmm b/_maps/templates/shelter_1.dmm index 2c7db801045..15e5574abad 100644 --- a/_maps/templates/shelter_1.dmm +++ b/_maps/templates/shelter_1.dmm @@ -13,7 +13,7 @@ /turf/open/floor/pod, /area/survivalpod) "d" = ( -/obj/machinery/smartfridge/survival_pod, +/obj/machinery/smartfridge/survival_pod/preloaded, /turf/open/floor/pod, /area/survivalpod) "e" = ( diff --git a/_maps/templates/shelter_2.dmm b/_maps/templates/shelter_2.dmm index aae61df407b..e2b21fa1438 100644 --- a/_maps/templates/shelter_2.dmm +++ b/_maps/templates/shelter_2.dmm @@ -30,7 +30,7 @@ /turf/open/floor/pod, /area/survivalpod) "f" = ( -/obj/machinery/smartfridge/survival_pod, +/obj/machinery/smartfridge/survival_pod/preloaded, /turf/open/floor/pod, /area/survivalpod) "g" = ( diff --git a/code/game/objects/items/circuitboards/machine_circuitboards.dm b/code/game/objects/items/circuitboards/machine_circuitboards.dm index 6e862116094..255c6c2cfbf 100644 --- a/code/game/objects/items/circuitboards/machine_circuitboards.dm +++ b/code/game/objects/items/circuitboards/machine_circuitboards.dm @@ -429,14 +429,17 @@ /obj/machinery/smartfridge/chemistry/virology = "viruses", /obj/machinery/smartfridge/disks = "disks") needs_anchored = FALSE + var/is_special_type = FALSE -/obj/item/circuitboard/machine/smartfridge/Initialize(mapload, new_type) - if(new_type) - build_path = new_type +/obj/item/circuitboard/machine/smartfridge/apply_default_parts(obj/machinery/smartfridge/M) + build_path = M.base_build_path + if(!fridges_name_paths.Find(build_path, fridges_name_paths)) + name = "[initial(M.name)] (Machine Board)" //if it's a unique type, give it a unique name. + is_special_type = TRUE return ..() /obj/item/circuitboard/machine/smartfridge/attackby(obj/item/I, mob/user, params) - if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(!is_special_type && I.tool_behaviour == TOOL_SCREWDRIVER) var/position = fridges_name_paths.Find(build_path, fridges_name_paths) position = (position == fridges_name_paths.len) ? 1 : (position + 1) build_path = fridges_name_paths[position] @@ -446,6 +449,8 @@ /obj/item/circuitboard/machine/smartfridge/examine(mob/user) . = ..() + if(is_special_type) + return . += "[src] is set to [fridges_name_paths[build_path]]. You can use a screwdriver to reconfigure it." diff --git a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm index de26fc0e65c..71325e7395b 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/smartfridge.dm @@ -13,6 +13,7 @@ active_power_usage = 100 circuit = /obj/item/circuitboard/machine/smartfridge + var/base_build_path = /obj/machinery/smartfridge ///What path boards used to construct it should build into when dropped. Needed so we don't accidentally have them build variants with items preloaded in them. var/max_n_of_items = 1500 var/allow_ai_retrieve = FALSE var/list/initial_contents @@ -242,6 +243,7 @@ idle_power_usage = 5 active_power_usage = 200 visible_contents = FALSE + base_build_path = /obj/machinery/smartfridge/drying_rack //should really be seeing this without admin fuckery. var/drying = FALSE /obj/machinery/smartfridge/drying_rack/Initialize() @@ -356,6 +358,7 @@ /obj/machinery/smartfridge/drinks name = "drink showcase" desc = "A refrigerated storage unit for tasty tasty alcohol." + base_build_path = /obj/machinery/smartfridge/drinks /obj/machinery/smartfridge/drinks/accept_check(obj/item/O) if(!istype(O, /obj/item/reagent_containers) || (O.item_flags & ABSTRACT) || !O.reagents || !O.reagents.reagent_list.len) @@ -368,6 +371,7 @@ // ---------------------------- /obj/machinery/smartfridge/food desc = "A refrigerated storage unit for food." + base_build_path = /obj/machinery/smartfridge/food /obj/machinery/smartfridge/food/accept_check(obj/item/O) if(istype(O, /obj/item/reagent_containers/food/snacks/)) @@ -380,6 +384,7 @@ /obj/machinery/smartfridge/extract name = "smart slime extract storage" desc = "A refrigerated storage unit for slime extracts." + base_build_path = /obj/machinery/smartfridge/extract /obj/machinery/smartfridge/extract/accept_check(obj/item/O) if(istype(O, /obj/item/slime_extract)) @@ -398,6 +403,7 @@ name = "smart organ storage" desc = "A refrigerated storage unit for organ storage." max_n_of_items = 20 //vastly lower to prevent processing too long + base_build_path = /obj/machinery/smartfridge/organ var/repair_rate = 0 /obj/machinery/smartfridge/organ/accept_check(obj/item/O) @@ -437,6 +443,7 @@ /obj/machinery/smartfridge/chemistry name = "smart chemical storage" desc = "A refrigerated storage unit for medicine storage." + base_build_path = /obj/machinery/smartfridge/chemistry /obj/machinery/smartfridge/chemistry/accept_check(obj/item/O) var/static/list/chemfridge_typecache = typecacheof(list( @@ -478,6 +485,7 @@ /obj/machinery/smartfridge/chemistry/virology name = "smart virus storage" desc = "A refrigerated storage unit for volatile sample storage." + base_build_path = /obj/machinery/smartfridge/chemistry/virology /obj/machinery/smartfridge/chemistry/virology/preloaded initial_contents = list( @@ -499,6 +507,7 @@ icon_state = "disktoaster" pass_flags = PASSTABLE visible_contents = FALSE + base_build_path = /obj/machinery/smartfridge/disks /obj/machinery/smartfridge/disks/accept_check(obj/item/O) if(istype(O, /obj/item/disk/)) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index b1610cad833..1c397ef983e 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -197,22 +197,20 @@ desc = "A heated storage unit." icon_state = "donkvendor" icon = 'icons/obj/lavaland/donkvendor.dmi' + base_build_path = /obj/machinery/smartfridge/survival_pod light_range = 5 light_power = 1.2 light_color = "#DDFFD3" max_n_of_items = 10 pixel_y = -4 flags_1 = NODECONSTRUCT_1 - var/empty = FALSE /obj/machinery/smartfridge/survival_pod/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_blocker) -/obj/machinery/smartfridge/survival_pod/Initialize(mapload) +/obj/machinery/smartfridge/survival_pod/preloaded/Initialize(mapload) . = ..() - if(empty) - return for(var/i in 1 to 5) var/obj/item/reagent_containers/food/snacks/donkpocket/warm/W = new(src) load(W) @@ -226,11 +224,6 @@ /obj/machinery/smartfridge/survival_pod/accept_check(obj/item/O) return isitem(O) -/obj/machinery/smartfridge/survival_pod/empty - name = "dusty survival pod storage" - desc = "A heated storage unit. This one's seen better days." - empty = TRUE - //Fans /obj/structure/fans icon = 'icons/obj/lavaland/survival_pod.dmi' diff --git a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm index f469e1edb5c..d18d05fda0c 100644 --- a/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm +++ b/code/modules/mob/living/simple_animal/hostile/megafauna/colossus.dm @@ -291,6 +291,7 @@ Difficulty: Very Hard resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF pixel_y = -4 use_power = NO_POWER_USE + base_build_path = /obj/machinery/smartfridge/black_box var/memory_saved = FALSE var/list/stored_items = list() var/list/blacklist = list()