diff --git a/_maps/map_files/Birdshot/birdshot.dmm b/_maps/map_files/Birdshot/birdshot.dmm index a2b4a432067..ecc6301334a 100644 --- a/_maps/map_files/Birdshot/birdshot.dmm +++ b/_maps/map_files/Birdshot/birdshot.dmm @@ -55547,10 +55547,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/captain, /turf/open/floor/plating, /area/station/maintenance/hallway/abandoned_command) -"tyv" = ( -/obj/machinery/lapvend, -/turf/open/floor/iron/white, -/area/station/hallway/primary/starboard) "tyx" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -111811,7 +111807,7 @@ rVX stP wbu tbD -tyv +ygu xdc ugC xSZ diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index ecc76d9ec38..7a48d2b1cb7 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2533,7 +2533,6 @@ /turf/open/space, /area/space/nearstation) "aFs" = ( -/obj/machinery/lapvend, /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 }, diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index 45fea9b4bcb..976be0016d3 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -75421,7 +75421,6 @@ /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat_interior) "xlf" = ( -/obj/machinery/lapvend, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 8 }, diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 11cd505784b..039edcaf5f6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2419,7 +2419,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/machinery/destructive_scanner, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 1 }, @@ -6973,10 +6972,10 @@ c_tag = "Science Lobby"; network = list("ss13","rd") }, -/obj/machinery/vending/modularpc, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 1 }, +/obj/machinery/destructive_scanner, /turf/open/floor/iron/white, /area/station/science/lobby) "cAG" = ( @@ -56553,11 +56552,11 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "ulX" = ( -/obj/machinery/lapvend, /obj/structure/cable, /obj/effect/turf_decal/tile/purple/half/contrasted{ dir = 1 }, +/obj/machinery/vending/modularpc, /turf/open/floor/iron/white, /area/station/science/lobby) "umS" = ( diff --git a/_maps/map_files/NorthStar/north_star.dmm b/_maps/map_files/NorthStar/north_star.dmm index 999cfc770cf..fd28020a1c7 100644 --- a/_maps/map_files/NorthStar/north_star.dmm +++ b/_maps/map_files/NorthStar/north_star.dmm @@ -4160,7 +4160,6 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/floor3/port/aft) "bcm" = ( -/obj/machinery/lapvend, /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark/side{ dir = 8 @@ -47394,7 +47393,6 @@ /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) "msf" = ( -/obj/machinery/lapvend, /obj/machinery/light/directional/north, /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 6696791501b..f8a008a44a4 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -55508,7 +55508,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, -/obj/machinery/lapvend, +/obj/machinery/vending/robotics, /turf/open/floor/iron/white, /area/station/science/lobby) "sSH" = ( diff --git a/code/modules/modular_computers/laptop_vendor.dm b/code/modules/modular_computers/laptop_vendor.dm deleted file mode 100644 index 28a6e12843f..00000000000 --- a/code/modules/modular_computers/laptop_vendor.dm +++ /dev/null @@ -1,152 +0,0 @@ -// A vendor machine for modular computer portable devices - Laptops and Tablets - -/obj/machinery/lapvend - name = "computer vendor" - desc = "A vending machine with microfabricator capable of dispensing various NT-branded computers." - icon = 'icons/obj/machines/vending.dmi' - icon_state = "robotics" - layer = 2.9 - density = TRUE - - // The actual laptop/tablet - var/obj/item/modular_computer/laptop/fabricated_laptop - var/obj/item/modular_computer/pda/fabricated_tablet - - // Utility vars - var/state = 0 // 0: Select device type, 1: Select loadout, 2: Payment, 3: Thankyou screen - var/devtype = 0 // 0: None(unselected), 1: Laptop, 2: Tablet - var/total_price = 0 // Price of currently vended device. - var/credits = 0 - -// Removes all traces of old order and allows you to begin configuration from scratch. -/obj/machinery/lapvend/proc/reset_order() - state = 0 - devtype = 0 - if(fabricated_laptop) - qdel(fabricated_laptop) - fabricated_laptop = null - if(fabricated_tablet) - qdel(fabricated_tablet) - fabricated_tablet = null - -// Recalculates the price and optionally even fabricates the device. -/obj/machinery/lapvend/proc/fabricate_and_recalc_price(fabricate = FALSE) - total_price = 0 - if(devtype == 1) // Laptop, generally cheaper to make it accessible for most station roles - if(fabricate) - fabricated_laptop = new /obj/item/modular_computer/laptop/buildable(src) - total_price = 99 - - return total_price - else if(devtype == 2) // Tablet, more expensive, not everyone could probably afford this. - if(fabricate) - fabricated_tablet = new(src) - total_price = 199 - return FALSE - -/obj/machinery/lapvend/ui_act(action, params) - . = ..() - if(.) - return - - switch(action) - if("pick_device") - if(state) // We've already picked a device type - return FALSE - devtype = text2num(params["pick"]) - state = 1 - fabricate_and_recalc_price(FALSE) - return TRUE - if("clean_order") - reset_order() - return TRUE - if("purchase") - try_purchase() - return TRUE - if((state != 1) && devtype) // Following IFs should only be usable when in the Select Loadout mode - return FALSE - switch(action) - if("confirm_order") - state = 2 // Wait for ID swipe for payment processing - fabricate_and_recalc_price(FALSE) - return TRUE - return FALSE - -/obj/machinery/lapvend/ui_interact(mob/user, datum/tgui/ui) - if(machine_stat & (BROKEN | NOPOWER | MAINT)) - if(ui) - ui.close() - return FALSE - - ui = SStgui.try_update_ui(user, src, ui) - if (!ui) - ui = new(user, src, "ComputerFabricator") - ui.open() - -/obj/machinery/lapvend/attackby(obj/item/I, mob/user) - if(istype(I, /obj/item/stack/spacecash)) - var/obj/item/stack/spacecash/c = I - if(!user.temporarilyRemoveItemFromInventory(c)) - return - credits += c.value - visible_message(span_info("[span_name("[user]")] inserts [c.value] cr into [src].")) - qdel(c) - return - else if(istype(I, /obj/item/holochip)) - var/obj/item/holochip/HC = I - credits += HC.credits - visible_message(span_info("[user] inserts a [HC.credits] cr holocredit chip into [src].")) - qdel(HC) - return - else if(isidcard(I)) - if(state != 2) - return - var/obj/item/card/id/ID = I - var/datum/bank_account/account = ID.registered_account - var/target_credits = total_price - credits - if(!account.adjust_money(-target_credits, "Vending: Laptop Vendor")) - say("Insufficient credits on card to purchase!") - return - credits += target_credits - say("[target_credits] cr have been withdrawn from your account.") - return - return ..() - -// Simplified payment processing, returns 1 on success. -/obj/machinery/lapvend/proc/process_payment() - if(total_price > credits) - say("Insufficient credits.") - return FALSE - else - return TRUE - -/obj/machinery/lapvend/ui_data(mob/user) - - var/list/data = list() - data["state"] = state - if(state == 1) - data["devtype"] = devtype - if(state == 1 || state == 2) - data["totalprice"] = total_price - data["credits"] = credits - - return data - - -/obj/machinery/lapvend/proc/try_purchase() - // Awaiting payment state - if(state == 2) - if(process_payment()) - fabricate_and_recalc_price(1) - if((devtype == 1) && fabricated_laptop) - fabricated_laptop.forceMove(src.loc) - fabricated_laptop = null - else if((devtype == 2) && fabricated_tablet) - fabricated_tablet.forceMove(src.loc) - fabricated_tablet = null - credits -= total_price - say("Enjoy your new product!") - state = 3 - addtimer(CALLBACK(src, PROC_REF(reset_order)), 100) - return TRUE - return FALSE diff --git a/tgstation.dme b/tgstation.dme index 870b0a6c6fe..6068c4d2138 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -4601,7 +4601,6 @@ #include "code\modules\mod\modules\modules_supply.dm" #include "code\modules\mod\modules\modules_timeline.dm" #include "code\modules\mod\modules\modules_visor.dm" -#include "code\modules\modular_computers\laptop_vendor.dm" #include "code\modules\modular_computers\computers\item\computer.dm" #include "code\modules\modular_computers\computers\item\computer_files.dm" #include "code\modules\modular_computers\computers\item\computer_power.dm" diff --git a/tgui/packages/tgui/interfaces/ComputerFabricator.js b/tgui/packages/tgui/interfaces/ComputerFabricator.js deleted file mode 100644 index 8f27f59a984..00000000000 --- a/tgui/packages/tgui/interfaces/ComputerFabricator.js +++ /dev/null @@ -1,202 +0,0 @@ -import { multiline } from 'common/string'; -import { useBackend } from '../backend'; -import { Box, Button, Grid, Section, Table, Tooltip } from '../components'; -import { Window } from '../layouts'; - -export const ComputerFabricator = (props, context) => { - const { act, data } = useBackend(context); - return ( - - -
- Your perfect device, only three steps away... -
- {data.state !== 0 && ( -