Removes some designs from the public circuit printer (#8680)

This commit is contained in:
Kashargul
2024-07-26 01:37:21 +02:00
committed by GitHub
parent 3442bf3e98
commit cd81c9618e
5 changed files with 45 additions and 6 deletions

View File

@@ -16,6 +16,8 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
var/mat_efficiency = 1
var/speed = 1
var/list/LockedDesigns = list() //CHOMPADDITION: FOR VR mainly.
materials = list(MAT_STEEL = 0, MAT_GLASS = 0, MAT_PLASTEEL = 0, MAT_PLASTIC = 0, MAT_GRAPHITE = 0, MAT_GOLD = 0, MAT_SILVER = 0, MAT_OSMIUM = 0, MAT_LEAD = 0, MAT_PHORON = 0, MAT_URANIUM = 0, MAT_DIAMOND = 0, MAT_DURASTEEL = 0, MAT_VERDANTIUM = 0, MAT_MORPHIUM = 0, MAT_METALHYDROGEN = 0, MAT_SUPERMATTER = 0)
hidden_materials = list(MAT_PLASTEEL, MAT_DURASTEEL, MAT_GRAPHITE, MAT_VERDANTIUM, MAT_MORPHIUM, MAT_METALHYDROGEN, MAT_SUPERMATTER)
@@ -48,6 +50,11 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
update_icon()
return
var/datum/design/D = queue[1]
//CHOMPAdd Start
if(!allowedToBuild(D))
removeFromQueue(1)
return
//CHOMPAdd End
if(canBuild(D))
busy = 1
progress += speed
@@ -174,6 +181,14 @@ using metal and glass, it uses glass and reagents (usually sulphuric acid).
queue.Cut(index, index + 1)
return
//CHOMPAdd Start, Locked Designs
/obj/machinery/r_n_d/circuit_imprinter/proc/allowedToBuild(var/datum/design/D)
if(is_type_in_list(D, LockedDesigns))
visible_message(span_warning("The fabricator denied to print \the [D]."))
return 0
return 1
//CHOMPAdd End, Locked Designs
/obj/machinery/r_n_d/circuit_imprinter/proc/canBuild(var/datum/design/D)
for(var/M in D.materials)
if(materials[M] < (D.materials[M] * mat_efficiency))

View File

@@ -62,6 +62,11 @@
update_icon()
return
var/datum/design/D = queue[1]
//CHOMPAdd Start
if(!allowedToBuild(D))
removeFromQueue(1)
return
//CHOMPAdd End
if(canBuild(D))
busy = 1
progress += speed
@@ -123,7 +128,7 @@
if(busy)
to_chat(user, "<span class='notice'>\The [src] is busy. Please wait for completion of previous operation.</span>")
return 1
if(!LAZYLEN(LockedDesigns) && default_deconstruction_screwdriver(user, O))//CHOMPADDITION Locked lathes are hard coded
if(default_deconstruction_screwdriver(user, O))
if(linked_console)
linked_console.linked_lathe = null
linked_console = null
@@ -190,12 +195,15 @@
queue.Cut(index, index + 1)
return
//CHOMPAdd Start, Locked Designs
/obj/machinery/r_n_d/protolathe/proc/allowedToBuild(var/datum/design/D)
if(is_type_in_list(D, LockedDesigns))
visible_message(span_warning("The fabricator denied to build \the [D]."))
return 0
return 1
//CHOMPAdd End, Locked Designs
/obj/machinery/r_n_d/protolathe/proc/canBuild(var/datum/design/D)
//CHOMPADDITION: LOCKED designs
for(var/datum/design/X in LockedDesigns)
if(X == D)
return 0
//CHOMPADDITION: LOCKED designs
for(var/M in D.materials)
if(materials[M] < (D.materials[M] * mat_efficiency))
return 0

View File

@@ -42,6 +42,9 @@ won't update every console in existence) but it's more of a hassle to do. Also,
var/obj/machinery/r_n_d/protolathe/linked_lathe = null //Linked Protolathe
var/obj/machinery/r_n_d/circuit_imprinter/linked_imprinter = null //Linked Circuit Imprinter
var/list/LockedLatheDesigns = list() //CHOMPADDITION: FOR VR mainly.
var/list/LockedPrinterDesigns = list() //CHOMPADDITION: FOR VR mainly.
var/id = 0 //ID of the computer (for server restrictions).
var/sync = 1 //If sync = 0, it doesn't show up on Server Control Console
var/is_public = FALSE //Above mentions the option for public consoles. But for that, we need to remove the sync tab from the console entirely
@@ -90,10 +93,14 @@ won't update every console in existence) but it's more of a hassle to do. Also,
if(linked_lathe == null)
linked_lathe = D
D.linked_console = src
linked_lathe.LockedDesigns.Cut()
linked_lathe.LockedDesigns = LockedLatheDesigns.Copy();
else if(istype(D, /obj/machinery/r_n_d/circuit_imprinter))
if(linked_imprinter == null)
linked_imprinter = D
D.linked_console = src
linked_imprinter.LockedDesigns.Cut()
linked_imprinter.LockedDesigns = LockedPrinterDesigns.Copy();
return
/obj/machinery/computer/rdconsole/proc/griefProtection() //Have it automatically push research to the CentCom server so wild griffins can't fuck up R&D's work

View File

@@ -227,6 +227,10 @@
continue
if(search && !findtext(D.name, search))
continue
//CHOMPAdd Start, Locked Designs
if(is_type_in_list(D, LockedLatheDesigns))
continue
//CHOMPAdd End, Locked Designs
var/list/mat_list = list()
for(var/M in D.materials)
@@ -265,6 +269,10 @@
continue
if(search && !findtext(D.name, search))
continue
//CHOMPAdd Start, Locked Designs
if(is_type_in_list(D, LockedPrinterDesigns))
continue
//CHOMPAdd End, Locked Designs
var/list/mat_list = list()
for(var/M in D.materials)