mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-13 11:12:14 +00:00
* Tablet apps are now deleted when necessary & removes console preset. (#75863) ## About The Pull Request Apps now properly delete themselves when removed, so they don't exist in nullspace anymore. Chat client now actually updates the uid, because its New() didn't call parent. Deletes the 'console' subtype of modular computer Updates how downloading and transferring files are handled Fixes being able to infinitely upload apps to a disk ## Why It's Good For The Game Fixes some more bugs I found with apps and prevents spamming apps in a disk. ## Changelog 🆑 fix: Maintenance data disks now properly transfer from PC to disk fix: Disks can no longer be flooded with the same app repeatedly. /🆑 * Tablet apps are now deleted when necessary & removes console preset. * updatepaths * feex --------- Co-authored-by: John Willard <53777086+JohnFulpWillard@users.noreply.github.com> Co-authored-by: Jolly-66 <70232195+Jolly-66@users.noreply.github.com>
119 lines
3.6 KiB
Plaintext
119 lines
3.6 KiB
Plaintext
/datum/computer_file/program/filemanager
|
|
filename = "filemanager"
|
|
filedesc = "File Manager"
|
|
extended_desc = "This program allows management of files."
|
|
program_icon_state = "generic"
|
|
size = 8
|
|
requires_ntnet = FALSE
|
|
available_on_ntnet = FALSE
|
|
undeletable = TRUE
|
|
tgui_id = "NtosFileManager"
|
|
program_icon = "folder"
|
|
|
|
var/open_file
|
|
var/error
|
|
|
|
/datum/computer_file/program/filemanager/ui_act(action, params, datum/tgui/ui, datum/ui_state/state)
|
|
switch(action)
|
|
if("PRG_deletefile")
|
|
var/datum/computer_file/file = computer.find_file_by_name(params["name"])
|
|
if(!file || file.undeletable)
|
|
return
|
|
computer.remove_file(file)
|
|
return TRUE
|
|
if("PRG_usbdeletefile")
|
|
if(!computer.inserted_disk)
|
|
return
|
|
var/datum/computer_file/file = computer.find_file_by_name(params["name"], computer.inserted_disk)
|
|
if(!file || file.undeletable)
|
|
return
|
|
computer.inserted_disk.remove_file(file)
|
|
return TRUE
|
|
if("PRG_renamefile")
|
|
var/datum/computer_file/file = computer.find_file_by_name(params["name"])
|
|
if(!file)
|
|
return
|
|
var/newname = reject_bad_name(params["new_name"])
|
|
if(!newname || newname != params["new_name"])
|
|
playsound(computer, 'sound/machines/terminal_error.ogg', 25, FALSE)
|
|
return
|
|
file.filename = newname
|
|
return TRUE
|
|
if("PRG_usbrenamefile")
|
|
if(!computer.inserted_disk)
|
|
return
|
|
var/datum/computer_file/file = computer.find_file_by_name(params["name"], computer.inserted_disk)
|
|
if(!file)
|
|
return
|
|
var/newname = reject_bad_name(params["new_name"])
|
|
if(!newname || newname != params["new_name"])
|
|
playsound(computer, 'sound/machines/terminal_error.ogg', 25, FALSE)
|
|
return
|
|
file.filename = newname
|
|
return TRUE
|
|
if("PRG_copytousb")
|
|
if(!computer.inserted_disk)
|
|
return
|
|
var/datum/computer_file/F = computer.find_file_by_name(params["name"])
|
|
if(!F)
|
|
return
|
|
if(computer.find_file_by_name(params["name"], computer.inserted_disk))
|
|
return
|
|
var/datum/computer_file/C = F.clone(FALSE)
|
|
computer.inserted_disk.add_file(C)
|
|
return TRUE
|
|
if("PRG_copyfromusb")
|
|
if(!computer.inserted_disk)
|
|
return
|
|
var/datum/computer_file/F = computer.find_file_by_name(params["name"], computer.inserted_disk)
|
|
if(!F || !istype(F))
|
|
return
|
|
if(!computer.can_store_file(F))
|
|
return FALSE
|
|
var/datum/computer_file/C = F.clone(FALSE)
|
|
computer.store_file(C)
|
|
return TRUE
|
|
if("PRG_togglesilence")
|
|
var/datum/computer_file/program/binary = computer.find_file_by_name(params["name"])
|
|
if(!binary || !istype(binary))
|
|
return
|
|
binary.alert_silenced = !binary.alert_silenced
|
|
|
|
/datum/computer_file/program/filemanager/ui_data(mob/user)
|
|
var/list/data = list()
|
|
if(error)
|
|
data["error"] = error
|
|
if(!computer)
|
|
data["error"] = "I/O ERROR: Unable to access hard drive."
|
|
else
|
|
var/list/files = list()
|
|
for(var/datum/computer_file/F as anything in computer.stored_files)
|
|
var/noisy = FALSE
|
|
var/silenced = FALSE
|
|
var/datum/computer_file/program/binary = F
|
|
if(istype(binary))
|
|
noisy = binary.alert_able
|
|
silenced = binary.alert_silenced
|
|
files += list(list(
|
|
"name" = F.filename,
|
|
"type" = F.filetype,
|
|
"size" = F.size,
|
|
"undeletable" = F.undeletable,
|
|
"alert_able" = noisy,
|
|
"alert_silenced" = silenced,
|
|
))
|
|
data["files"] = files
|
|
if(computer.inserted_disk)
|
|
data["usbconnected"] = TRUE
|
|
var/list/usbfiles = list()
|
|
for(var/datum/computer_file/F as anything in computer.inserted_disk.stored_files)
|
|
usbfiles += list(list(
|
|
"name" = F.filename,
|
|
"type" = F.filetype,
|
|
"size" = F.size,
|
|
"undeletable" = F.undeletable,
|
|
))
|
|
data["usbfiles"] = usbfiles
|
|
|
|
return data
|