A bunch of circuit and other fixes (#22970)

Fixes https://github.com/Aurorastation/Aurora.3/issues/22959
Fixes https://github.com/Aurorastation/Aurora.3/issues/22960

changes:
- bugfix: "Integrated circuits can now display screen text and other
examine related things."
- bugfix: "Fixed the direction of the wall mounted integrated circuit
when placed."
  - bugfix: "Fixed that the integrated circuit kit had the wrong tools."
- bugfix: "Fixed that the integrated circuit printer put things on the
turf instead of in hand."
- bugfix: "Fixed that removing integrated circuit components put them on
the turf, and that they were dropped if they did not fit inside the
device."
- bugfix: "Harvesting a plant multiple times by clicking it repeatedly
before it finishes is no longer possible."
  - bugfix: "The kitchen machinery can now be upgraded."
  - bugfix: "The farmbot requirement in bounties was reduced."
  - bugfix: "Fixes the inability to put custom pizzas in the pizza box."
This commit is contained in:
Casper3667
2026-08-02 01:24:07 +00:00
committed by GitHub
parent 6ed9aa34a5
commit 2066ee6bc1
15 changed files with 89 additions and 27 deletions
@@ -200,8 +200,11 @@
/obj/item/electronic_assembly/feedback_hints(mob/user, distance, is_adjacent)
. = ..()
if(is_adjacent && opened)
for(var/obj/item/integrated_circuit/IC in contents)
for(var/obj/item/integrated_circuit/IC in contents)
var/examined = IC.external_examine()
if(length(examined))
. += examined
if(is_adjacent && opened)
. += SPAN_NOTICE("It contains \a [IC].")
/obj/item/electronic_assembly/proc/get_part_complexity()
@@ -246,6 +249,9 @@
to_chat(user, SPAN_WARNING("You can't seem to add the '[IC.name]', since this setup's too complicated for the case."))
return FALSE
if(!user.unEquip(IC))
return FALSE
if(!IC.forceMove(src))
return FALSE
@@ -264,9 +270,6 @@
/obj/item/electronic_assembly/attackby(obj/item/attacking_item, mob/user)
if(istype(attacking_item, /obj/item/integrated_circuit))
if(!user.unEquip(attacking_item))
return FALSE
if(add_circuit(attacking_item, user))
to_chat(user, SPAN_NOTICE("You slide \the [attacking_item] inside \the [src]."))
playsound(get_turf(src), 'sound/items/Deconstruct.ogg', 50, 1)
@@ -64,13 +64,12 @@
/obj/item/radio/headset/circuitry/feedback_hints(mob/user, distance, is_adjacent)
. = ..()
if(distance <= 1 && !circuit_assembly?.opened)
return
var/obj/item/electronic_assembly/E = get_cloneable_assembly()
if(E)
for(var/obj/item/integrated_circuit/IC in E.contents)
. += SPAN_NOTICE("It contains \a [IC].")
for(var/obj/item/integrated_circuit/IC in contents)
IC.external_examine()
if(is_adjacent && circuit_assembly?.opened)
. += SPAN_NOTICE("It contains \a [IC].")
/obj/item/radio/headset/circuitry/proc/clone_with_integrated_assembly(atom/location, obj/item/integrated_circuit_printer/printer, obj/item/electronic_assembly/source_assembly)
if(!location || !printer || !source_assembly)
@@ -284,10 +284,12 @@
if(get_dist(on_wall, user) > 1)
return
var/ndir = get_dir(on_wall, user)
var/ndir = get_dir(user, on_wall)
if(!(ndir in GLOB.cardinals))
return
dir = ndir
var/turf/T = get_turf(user)
if(!istype(T, /turf/simulated/floor))
to_chat(user, SPAN_WARNING("You cannot place \the [src] on this spot!"))
@@ -5,12 +5,12 @@ a creative player the means to solve many problems. Circuits are held inside an
/obj/item/integrated_circuit/examine(mob/user, distance, is_adjacent, infix, suffix, show_extended)
interact(user)
external_examine(user)
. += external_examine(user)
. = ..()
// This should be used when someone is examining from an 'outside' perspective, e.g. reading a screen or LED.
/obj/item/integrated_circuit/proc/external_examine(mob/user)
any_examine(user)
return any_examine(user)
/obj/item/integrated_circuit/proc/any_examine(mob/user)
. = list()
@@ -302,6 +302,8 @@ a creative player the means to solve many problems. Circuits are held inside an
disconnect_all()
var/turf/T = get_turf(src)
forceMove(T)
if(Adjacent(usr, src))
usr.put_in_hands(src)
assembly = null
playsound(T, 'sound/items/crowbar_pry.ogg', 50, 1)
to_chat(usr, SPAN_NOTICE("You pop \the [src] out of the case, and slide it out."))
@@ -499,11 +499,14 @@
metal -= cost
phoron -= phoron_cost
var/new_build
if(is_printed_assembly_container)
new build_type(get_turf(loc), TRUE)
new_build = new build_type(get_turf(loc), TRUE)
else
new build_type(get_turf(loc))
new_build = new build_type(get_turf(loc))
if(Adjacent(usr, src))
usr.put_in_hands(new_build)
return TRUE
@@ -234,8 +234,9 @@
/obj/item/electronic_assembly,
/obj/item/integrated_electronics,
/obj/item/crowbar,
/obj/item/screwdriver,
/obj/item/multitool
/obj/item/integrated_electronics/wirer,
/obj/item/integrated_electronics/debugger,
/obj/item/integrated_electronics/detailer
)
make_exact_fit = TRUE
@@ -255,8 +256,9 @@
new /obj/item/electronic_assembly(src)
new /obj/item/assembly/electronic_assembly(src)
new /obj/item/assembly/electronic_assembly(src)
new /obj/item/multitool(src)
new /obj/item/screwdriver(src)
new /obj/item/integrated_electronics/wirer(src)
new /obj/item/integrated_electronics/debugger(src)
new /obj/item/integrated_electronics/detailer(src)
new /obj/item/crowbar(src)
/obj/item/storage/bag/circuits/all/fill()
@@ -281,6 +283,7 @@
new /obj/item/electronic_assembly/drone(src)
new /obj/item/integrated_electronics/wirer(src)
new /obj/item/integrated_electronics/debugger(src)
new /obj/item/integrated_electronics/detailer(src)
new /obj/item/crowbar(src)
/obj/item/storage/bag/circuits/mini