diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm
index 4ffe6287eca..20b3a851265 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_wizard.dmm
@@ -135,7 +135,7 @@
dir = 4
},
/obj/structure/table/bronze,
-/obj/item/disk/design_disk/adv/knight_gear,
+/obj/item/disk/design_disk/knight_gear,
/turf/open/indestructible/necropolis,
/area/lavaland/surface/outdoors)
"q" = (
diff --git a/_maps/RandomRuins/SpaceRuins/clericden.dmm b/_maps/RandomRuins/SpaceRuins/clericden.dmm
index eb4421f68bf..0bf5a3a0579 100644
--- a/_maps/RandomRuins/SpaceRuins/clericden.dmm
+++ b/_maps/RandomRuins/SpaceRuins/clericden.dmm
@@ -71,7 +71,7 @@
"r" = (
/obj/effect/decal/cleanable/shreds,
/obj/effect/decal/remains/human,
-/obj/item/disk/design_disk/adv/cleric_mace,
+/obj/item/disk/design_disk/cleric_mace,
/obj/structure/trap/cult,
/turf/open/floor/carpet/airless,
/area/ruin/space)
diff --git a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
index 72f7c0842fd..cb86d311704 100644
--- a/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
+++ b/_maps/RandomRuins/SpaceRuins/dangerous_research.dmm
@@ -678,7 +678,7 @@
/area/ruin/space/has_grav/dangerous_research)
"ji" = (
/obj/structure/table,
-/obj/item/disk/tech_disk/spaceloot,
+/obj/item/disk/design_disk/bepis,
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron/dark,
/area/ruin/space/has_grav/dangerous_research/dorms)
diff --git a/_maps/shuttles/whiteship_pubby.dmm b/_maps/shuttles/whiteship_pubby.dmm
index 16f184e65fc..329b72f4f7b 100644
--- a/_maps/shuttles/whiteship_pubby.dmm
+++ b/_maps/shuttles/whiteship_pubby.dmm
@@ -195,12 +195,12 @@
pixel_y = 7
},
/obj/item/raw_anomaly_core/random,
-/obj/item/disk/tech_disk/spaceloot{
+/obj/item/disk/design_disk/bepis{
pixel_x = -3;
pixel_y = -3
},
-/obj/item/disk/tech_disk/spaceloot,
-/obj/item/disk/tech_disk/spaceloot{
+/obj/item/disk/design_disk/bepis,
+/obj/item/disk/design_disk/bepis{
pixel_x = 3;
pixel_y = 3
},
diff --git a/code/game/objects/effects/spawners/random/exotic.dm b/code/game/objects/effects/spawners/random/exotic.dm
index a4356b5ec3a..ce48a31e5fd 100644
--- a/code/game/objects/effects/spawners/random/exotic.dm
+++ b/code/game/objects/effects/spawners/random/exotic.dm
@@ -8,7 +8,7 @@
spawn_loot_count = 2
loot = list( // Space loot spawner. Couple of random bits of technology-adjacent stuff including anomaly cores and BEPIS techs.
/obj/item/raw_anomaly_core/random,
- /obj/item/disk/tech_disk/spaceloot,
+ /obj/item/disk/design_disk/bepis,
/obj/item/camera_bug,
)
diff --git a/code/modules/cargo/bounties/science.dm b/code/modules/cargo/bounties/science.dm
index aab8429b394..1807c5ae56f 100644
--- a/code/modules/cargo/bounties/science.dm
+++ b/code/modules/cargo/bounties/science.dm
@@ -18,8 +18,8 @@
description = "It turns out the diskettes the BEPIS prints experimental nodes on are extremely space-efficient. Send us one of your spares when you're done with it."
reward = CARGO_CRATE_VALUE * 8
wanted_types = list(
- /obj/item/disk/tech_disk/major = TRUE,
- /obj/item/disk/tech_disk/spaceloot = TRUE,
+ /obj/item/disk/design_disk/bepis/remove_tech = TRUE,
+ /obj/item/disk/design_disk/bepis = TRUE,
)
/datum/bounty/item/science/genetics
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index 709d4b76c87..2cbc2f288d0 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -29,7 +29,7 @@
mail_goodies = list(
/obj/item/raw_anomaly_core/random = 10,
- /obj/item/disk/tech_disk/spaceloot = 2,
+ /obj/item/disk/design_disk/bepis = 2,
/obj/item/camera_bug = 1
)
rpg_title = "Thaumaturgist"
diff --git a/code/modules/mapfluff/ruins/lavaland_ruin_code.dm b/code/modules/mapfluff/ruins/lavaland_ruin_code.dm
index be1e9ea9011..e622bee1b48 100644
--- a/code/modules/mapfluff/ruins/lavaland_ruin_code.dm
+++ b/code/modules/mapfluff/ruins/lavaland_ruin_code.dm
@@ -1,15 +1,13 @@
//If you're looking for spawners like ash walker eggs, check ghost_role_spawners.dm
///Wizard tower item
-/obj/item/disk/design_disk/adv/knight_gear
+/obj/item/disk/design_disk/knight_gear
name = "Magic Disk of Smithing"
-/obj/item/disk/design_disk/adv/knight_gear/Initialize(mapload)
+/obj/item/disk/design_disk/knight_gear/Initialize(mapload)
. = ..()
- var/datum/design/knight_armour/A = new
- var/datum/design/knight_helmet/H = new
- blueprints[1] = A
- blueprints[2] = H
+ blueprints += new /datum/design/knight_armour
+ blueprints += new /datum/design/knight_helmet
//Free Golems
@@ -17,12 +15,10 @@
name = "Golem Creation Disk"
desc = "A gift from the Liberator."
icon_state = "datadisk1"
- max_blueprints = 1
/obj/item/disk/design_disk/golem_shell/Initialize(mapload)
. = ..()
- var/datum/design/golem_shell/G = new
- blueprints[1] = G
+ blueprints += new /datum/design/golem_shell
/datum/design/golem_shell
name = "Golem Shell Construction"
diff --git a/code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm b/code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm
index 5f0e8f43803..2ea63245661 100644
--- a/code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm
+++ b/code/modules/mapfluff/ruins/spaceruin_code/clericsden.dm
@@ -1,13 +1,12 @@
/////////// cleric's den items.
//Primary reward: the cleric's mace design disk.
-/obj/item/disk/design_disk/adv/cleric_mace
+/obj/item/disk/design_disk/cleric_mace
name = "Enshrined Disc of Smiting"
-/obj/item/disk/design_disk/adv/cleric_mace/Initialize(mapload)
+/obj/item/disk/design_disk/cleric_mace/Initialize(mapload)
. = ..()
- var/datum/design/cleric_mace/M = new
- blueprints[1] = M
+ blueprints += new /datum/design/cleric_mace
/obj/item/paper/fluff/ruins/clericsden/contact
default_raw_text = "Father Aurellion, the ritual is complete, and soon our brothers at the bastion will see the error of our ways. After all, a god of clockwork or blood? Preposterous. Only the TRUE GOD should have so much power. Signed, Father Odivallus."
diff --git a/code/modules/mining/lavaland/tendril_loot.dm b/code/modules/mining/lavaland/tendril_loot.dm
index f11d8bf75fe..2ff38c371f0 100644
--- a/code/modules/mining/lavaland/tendril_loot.dm
+++ b/code/modules/mining/lavaland/tendril_loot.dm
@@ -9,7 +9,7 @@
/obj/item/disk/design_disk/modkit_disc/Initialize(mapload)
. = ..()
- blueprints[1] = new modkit_design
+ blueprints += new modkit_design
/obj/item/disk/design_disk/modkit_disc/mob_and_turf_aoe
name = "Offensive Mining Explosion Mod Disk"
diff --git a/code/modules/research/bepis.dm b/code/modules/research/bepis.dm
index d3e901a48b5..ffb54a8320f 100644
--- a/code/modules/research/bepis.dm
+++ b/code/modules/research/bepis.dm
@@ -268,7 +268,7 @@
if((gauss_real >= gauss_major)) //Major Success.
if(SSresearch.techweb_nodes_experimental.len > 0)
say("Experiment concluded with major success. New technology node discovered on technology disc.")
- new /obj/item/disk/tech_disk/major(dropturf,1)
+ new /obj/item/disk/design_disk/bepis/remove_tech(dropturf,1)
return
say("Expended all available experimental technology nodes. Resorting to minor rewards.")
if(gauss_real >= gauss_minor) //Minor Success.
diff --git a/code/modules/research/designs.dm b/code/modules/research/designs.dm
index 09a69a0cd68..0722ca9ab5c 100644
--- a/code/modules/research/designs.dm
+++ b/code/modules/research/designs.dm
@@ -99,19 +99,57 @@ other types of metals and chemistry for reagents).
name = "Component Design Disk"
desc = "A disk for storing device design data for construction in lathes."
icon_state = "datadisk1"
- custom_materials = list(/datum/material/iron =300, /datum/material/glass =100)
+ custom_materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
+
+ ///List of all `/datum/design` stored on the disk.
var/list/blueprints = list()
- var/max_blueprints = 1
/obj/item/disk/design_disk/Initialize(mapload)
. = ..()
- pixel_x = base_pixel_x + rand(-5, 5)
- pixel_y = base_pixel_y + rand(-5, 5)
- for(var/i in 1 to max_blueprints)
- blueprints += null
+ if(mapload)
+ pixel_x = base_pixel_x + rand(-5, 5)
+ pixel_y = base_pixel_y + rand(-5, 5)
+
+/**
+ * Used for special interactions with a techweb when uploading the designs.
+ * Args:
+ * - stored_research - The techweb that's storing us.
+ */
+/obj/item/disk/design_disk/proc/on_upload(datum/techweb/stored_research)
+ return
+
+/obj/item/disk/design_disk/bepis
+ name = "Old experimental technology disk"
+ desc = "A disk containing some long-forgotten technology from a past age. You hope it still works after all these years. Upload the disk to an R&D Console to redeem the tech."
+ icon_state = "rndmajordisk"
+
+ ///The bepis node we have the design id's of
+ var/datum/techweb_node/bepis_node
+
+/obj/item/disk/design_disk/bepis/Initialize(mapload)
+ . = ..()
+ var/bepis_id = pick(SSresearch.techweb_nodes_experimental)
+ bepis_node = (SSresearch.techweb_node_by_id(bepis_id))
+
+ for(var/entry in bepis_node.design_ids)
+ var/datum/design/new_entry = SSresearch.techweb_design_by_id(entry)
+ blueprints += new_entry
+
+///Unhide and research our node so we show up in the R&D console.
+/obj/item/disk/design_disk/bepis/on_upload(datum/techweb/stored_research)
+ stored_research.hidden_nodes -= bepis_node.id
+ stored_research.research_node(bepis_node, force = TRUE, auto_adjust_cost = FALSE)
+
+/**
+ * Subtype of Bepis tech disk
+ * Removes the tech disk that's held on it from the experimental node list, making them not show up in future disks.
+ */
+/obj/item/disk/design_disk/bepis/remove_tech
+ name = "Reformatted technology disk"
+ desc = "A disk containing a new, completed tech from the B.E.P.I.S. Upload the disk to an R&D Console to redeem the tech."
+
+/obj/item/disk/design_disk/bepis/remove_tech/Initialize(mapload)
+ . = ..()
+ SSresearch.techweb_nodes_experimental -= bepis_node.id
+ log_research("[bepis_node.display_name] has been removed from experimental nodes through the BEPIS techweb's \"remove tech\" feature.")
-/obj/item/disk/design_disk/adv
- name = "Advanced Component Design Disk"
- desc = "A disk for storing device design data for construction in lathes. This one has extra storage space."
- custom_materials = list(/datum/material/iron =300, /datum/material/glass = 100, /datum/material/silver = 50)
- max_blueprints = 5
diff --git a/code/modules/research/designs/electronics_designs.dm b/code/modules/research/designs/electronics_designs.dm
index 9bf02b2c4a5..c4922b092a6 100644
--- a/code/modules/research/designs/electronics_designs.dm
+++ b/code/modules/research/designs/electronics_designs.dm
@@ -42,30 +42,6 @@
////////////////////////////////////////
//////////Disk Construction Disks///////
////////////////////////////////////////
-/datum/design/design_disk
- name = "Design Storage Disk"
- desc = "Produce additional disks for storing device designs."
- id = "design_disk"
- build_type = PROTOLATHE | AWAY_LATHE | AUTOLATHE
- materials = list(/datum/material/iron = 300, /datum/material/glass = 100)
- build_path = /obj/item/disk/design_disk
- category = list(
- RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE
- )
- departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
-
-/datum/design/design_disk_adv
- name = "Advanced Design Storage Disk"
- desc = "Produce additional disks for storing device designs."
- id = "design_disk_adv"
- build_type = PROTOLATHE | AWAY_LATHE
- materials = list(/datum/material/iron = 300, /datum/material/glass = 100, /datum/material/silver=50)
- build_path = /obj/item/disk/design_disk/adv
- category = list(
- RND_CATEGORY_EQUIPMENT + RND_SUBCATEGORY_EQUIPMENT_SCIENCE
- )
- departmental_flags = DEPARTMENT_BITFLAG_SCIENCE
-
/datum/design/tech_disk
name = "Technology Data Storage Disk"
desc = "Produce additional disks for storing technology data."
diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm
index 53b56265ff4..d38b7a42d64 100644
--- a/code/modules/research/designs/limbgrower_designs.dm
+++ b/code/modules/research/designs/limbgrower_designs.dm
@@ -224,7 +224,6 @@
/obj/item/disk/design_disk/limbs/Initialize(mapload)
. = ..()
- max_blueprints = limb_designs.len
for(var/design in limb_designs)
var/datum/design/new_design = design
blueprints += new new_design
diff --git a/code/modules/research/rdconsole.dm b/code/modules/research/rdconsole.dm
index c6a330efd22..449a7078537 100644
--- a/code/modules/research/rdconsole.dm
+++ b/code/modules/research/rdconsole.dm
@@ -184,16 +184,9 @@ Nothing else in the console has ID requirements.
"stored_research" = t_disk.stored_research.researched_nodes,
)
if (d_disk)
- data["d_disk"] = list (
- "max_blueprints" = d_disk.max_blueprints,
- "blueprints" = list(),
- )
- for (var/i in 1 to d_disk.max_blueprints)
- if (d_disk.blueprints[i])
- var/datum/design/D = d_disk.blueprints[i]
- data["d_disk"]["blueprints"] += D.id
- else
- data["d_disk"]["blueprints"] += null
+ data["d_disk"] = list("blueprints" = list())
+ for (var/datum/design/D in d_disk.blueprints)
+ data["d_disk"]["blueprints"] += D.id
// Serialize all nodes to display
@@ -298,7 +291,7 @@ Nothing else in the console has ID requirements.
.["static_data"] = list(
"node_cache" = node_cache,
"design_cache" = design_cache,
- "id_cache" = flat_id_cache
+ "id_cache" = flat_id_cache,
)
/obj/machinery/computer/rdconsole/ui_act(action, list/params)
@@ -329,55 +322,6 @@ Nothing else in the console has ID requirements.
if ("ejectDisk")
eject_disk(params["type"])
return TRUE
- if ("writeDesign")
- if(QDELETED(d_disk))
- say("No Design Disk Inserted!")
- return TRUE
- var/slot = text2num(params["slot"])
- var/design_id = params["selectedDesign"]
- if(!stored_research.researched_designs.Find(design_id))
- stack_trace("ID did not map to a researched datum [design_id]")
- return
- var/datum/design/design = SSresearch.techweb_design_by_id(design_id)
- if(design)
- if(design.build_type & (AUTOLATHE|PROTOLATHE|AWAY_LATHE)) // Specifically excludes circuit imprinter and mechfab
- if(design.autolathe_exportable && !design.reagents_list.len)
- design.build_type |= AUTOLATHE
- design.category |= RND_CATEGORY_IMPORTED
- d_disk.blueprints[slot] = design
- return TRUE
- if ("uploadDesignSlot")
- if(QDELETED(d_disk))
- say("No design disk found.")
- return TRUE
- var/n = text2num(params["slot"])
- stored_research.add_design(d_disk.blueprints[n], TRUE)
- return TRUE
- if ("clearDesignSlot")
- if(QDELETED(d_disk))
- say("No design disk inserted!")
- return TRUE
- var/n = text2num(params["slot"])
- var/datum/design/D = d_disk.blueprints[n]
- say("Wiping design [D.name] from design disk.")
- d_disk.blueprints[n] = null
- return TRUE
- if ("eraseDisk")
- if (params["type"] == RND_DESIGN_DISK)
- if(QDELETED(d_disk))
- say("No design disk inserted!")
- return TRUE
- say("Wiping design disk.")
- for(var/i in 1 to d_disk.max_blueprints)
- d_disk.blueprints[i] = null
- if (params["type"] == RND_TECH_DISK)
- if(QDELETED(t_disk))
- say("No tech disk inserted!")
- return TRUE
- qdel(t_disk.stored_research)
- t_disk.stored_research = new
- say("Wiping technology disk.")
- return TRUE
if ("uploadDisk")
if (params["type"] == RND_DESIGN_DISK)
if(QDELETED(d_disk))
@@ -386,6 +330,9 @@ Nothing else in the console has ID requirements.
for(var/D in d_disk.blueprints)
if(D)
stored_research.add_design(D, TRUE)
+ say("Uploading blueprints from disk.")
+ d_disk.on_upload(stored_research)
+ return TRUE
if (params["type"] == RND_TECH_DISK)
if (QDELETED(t_disk))
say("No tech disk inserted!")
@@ -393,6 +340,7 @@ Nothing else in the console has ID requirements.
say("Uploading technology disk.")
t_disk.stored_research.copy_research_to(stored_research)
return TRUE
+ //Tech disk-only action.
if ("loadTech")
if(QDELETED(t_disk))
say("No tech disk inserted!")
diff --git a/code/modules/research/research_disk.dm b/code/modules/research/research_disk.dm
index 1d88fe78494..16f0ed7e646 100644
--- a/code/modules/research/research_disk.dm
+++ b/code/modules/research/research_disk.dm
@@ -21,23 +21,3 @@
/obj/item/disk/tech_disk/debug/Initialize(mapload)
stored_research = SSresearch.admin_tech
return ..()
-
-/obj/item/disk/tech_disk/major
- name = "Reformatted technology disk"
- desc = "A disk containing a new, completed tech from the B.E.P.I.S. Upload the disk to an R&D Console to redeem the tech."
- icon_state = "rndmajordisk"
- custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
-
-/obj/item/disk/tech_disk/major/Initialize(mapload)
- stored_research = new /datum/techweb/bepis
- return ..()
-
-/obj/item/disk/tech_disk/spaceloot
- name = "Old experimental technology disk"
- desc = "A disk containing some long-forgotten technology from a past age. You hope it still works after all these years. Upload the disk to an R&D Console to redeem the tech."
- icon_state = "rndmajordisk"
- custom_materials = list(/datum/material/iron=300, /datum/material/glass=100)
-
-/obj/item/disk/tech_disk/spaceloot/Initialize(mapload)
- stored_research = new /datum/techweb/bepis(remove_tech = FALSE)
- return ..()
diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm
index 6b40449fe7b..a4be5367abb 100644
--- a/code/modules/research/techweb/_techweb.dm
+++ b/code/modules/research/techweb/_techweb.dm
@@ -143,12 +143,11 @@
l[i] = amount
modify_point_list(l)
-/datum/techweb/proc/copy_research_to(datum/techweb/receiver, unlock_hidden = TRUE) //Adds any missing research to theirs.
- if(unlock_hidden)
- for(var/i in receiver.hidden_nodes)
- CHECK_TICK
- if(available_nodes[i] || researched_nodes[i] || visible_nodes[i])
- receiver.hidden_nodes -= i //We can see it so let them see it too.
+/datum/techweb/proc/copy_research_to(datum/techweb/receiver) //Adds any missing research to theirs.
+ for(var/i in receiver.hidden_nodes)
+ CHECK_TICK
+ if(available_nodes[i] || researched_nodes[i] || visible_nodes[i])
+ receiver.hidden_nodes -= i //We can see it so let them see it too.
for(var/i in researched_nodes)
CHECK_TICK
receiver.research_node_id(i, TRUE, FALSE, FALSE)
@@ -217,6 +216,8 @@
else
researched_designs[design.id] = TRUE
+ hidden_nodes -= design.id
+
return TRUE
/datum/techweb/proc/remove_design_by_id(id, custom = FALSE)
diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm
index e1a6299448c..53e45f51889 100644
--- a/code/modules/research/techweb/all_nodes.dm
+++ b/code/modules/research/techweb/all_nodes.dm
@@ -38,7 +38,6 @@
"conveyor_belt",
"conveyor_switch",
"custom_vendor_refill",
- "design_disk",
"destructive_analyzer",
"destructive_scanner",
"desttagger",
diff --git a/code/modules/research/techweb/techweb_types.dm b/code/modules/research/techweb/techweb_types.dm
index 32743b2b068..1f226793624 100644
--- a/code/modules/research/techweb/techweb_types.dm
+++ b/code/modules/research/techweb/techweb_types.dm
@@ -28,25 +28,6 @@
research_points[i] = INFINITY
hidden_nodes = list()
-/**
- * Techweb made through BEPIS machine
- * Should only contain 1 BEPIS tech at random.
- */
-/datum/techweb/bepis
- id = "EXPERIMENTAL"
- organization = "Nanotrasen R&D"
-
-/datum/techweb/bepis/New(remove_tech = TRUE)
- . = ..()
- var/bepis_id = pick(SSresearch.techweb_nodes_experimental) //To add a new tech to the BEPIS, add the ID to this pick list.
- var/datum/techweb_node/BN = (SSresearch.techweb_node_by_id(bepis_id))
- hidden_nodes -= BN.id //Has to be removed from hidden nodes
- research_node(BN, TRUE, FALSE, FALSE)
- update_node_status(BN)
- if(remove_tech)
- SSresearch.techweb_nodes_experimental -= bepis_id
- log_research("[BN.display_name] has been removed from experimental nodes through the BEPIS techweb's \"remove tech\" feature.")
-
/**
* Techweb made through tech disks
* Contains nothing, subtype mostly meant to make it easy for admins to see.
diff --git a/tgui/packages/tgui/interfaces/Techweb.js b/tgui/packages/tgui/interfaces/Techweb.js
index 34ce108ac7f..7b9d0814e6e 100644
--- a/tgui/packages/tgui/interfaces/Techweb.js
+++ b/tgui/packages/tgui/interfaces/Techweb.js
@@ -1,7 +1,6 @@
-import { filter, map, sortBy } from 'common/collections';
-import { flow } from 'common/fp';
+import { map, sortBy } from 'common/collections';
import { useBackend, useLocalState } from '../backend';
-import { Button, Section, Modal, Dropdown, Tabs, Box, Input, Flex, ProgressBar, Collapsible, Icon, Divider } from '../components';
+import { Button, Section, Modal, Tabs, Box, Input, Flex, ProgressBar, Collapsible, Icon, Divider } from '../components';
import { Window, NtosWindow } from '../layouts';
import { Experiment } from './ExperimentConfigure';
@@ -352,11 +351,6 @@ const TechwebDiskMenu = (props, context) => {
onClick={() => act('uploadDisk', { type: diskType })}>
Disk → Web
-