diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm index 3ed75494289..d6471a6e61b 100644 --- a/code/_onclick/ai.dm +++ b/code/_onclick/ai.dm @@ -99,14 +99,14 @@ for AI shift, ctrl, and alt clicking. */ -/mob/living/silicon/ai/CtrlShiftClickOn(atom/A) - A.AICtrlShiftClick(src) +/mob/living/silicon/ai/CtrlShiftClickOn(atom/A) // Procs overriden in modular_skyrat/modules/Silicon_QoL + A.AICtrlShiftClick(src) /mob/living/silicon/ai/ShiftClickOn(atom/A) A.AIShiftClick(src) /mob/living/silicon/ai/CtrlClickOn(atom/A) A.AICtrlClick(src) /mob/living/silicon/ai/AltClickOn(atom/A) - A.AIAltClick(src) + A.AIAltClick(src) /* The following criminally helpful code is just the previous code cleaned up; @@ -124,7 +124,6 @@ return /atom/proc/AICtrlShiftClick() return - /* Airlocks */ /obj/machinery/door/airlock/AICtrlClick() // Bolts doors if(obj_flags & EMAGGED) @@ -148,7 +147,7 @@ user_toggle_open(usr) add_hiddenprint(usr) - + /obj/machinery/door/airlock/AICtrlShiftClick() // Sets/Unsets Emergency Access Override if(obj_flags & EMAGGED) return diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm index ba02c8dd3b3..bc776d7fd29 100644 --- a/code/_onclick/cyborg.dm +++ b/code/_onclick/cyborg.dm @@ -85,14 +85,14 @@ //Give cyborgs hotkey clicks without breaking existing uses of hotkey clicks // for non-doors/apcs -/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) - A.BorgCtrlShiftClick(src) +/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) // Procs overridden in skyrat_modular/modules/Silicon_QoL + A.BorgCtrlShiftClick(src) /mob/living/silicon/robot/ShiftClickOn(atom/A) - A.BorgShiftClick(src) + A.BorgShiftClick(src) /mob/living/silicon/robot/CtrlClickOn(atom/A) A.BorgCtrlClick(src) /mob/living/silicon/robot/AltClickOn(atom/A) - A.BorgAltClick(src) + A.BorgAltClick(src) /atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overridden CtrlShiftClick(user) diff --git a/modular_skyrat/modules/SiliconQoL/code/_onclick.dm b/modular_skyrat/modules/SiliconQoL/code/_onclick.dm new file mode 100644 index 00000000000..aaee3d40170 --- /dev/null +++ b/modular_skyrat/modules/SiliconQoL/code/_onclick.dm @@ -0,0 +1,85 @@ +///////////////////// +/////AI Changes////// +///////////////////// +/mob/living/silicon/ai/CtrlShiftClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A + if(airlock) + airlock.AICtrlShiftClick(src) + else + A.AICtrlShiftClick(src) // End of skyrat edit + +/mob/living/silicon/ai/ShiftClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A + if(airlock) + airlock.AIShiftClick(src) + else + A.AIShiftClick(src) + A.AIExamine(A) + +/mob/living/silicon/ai/CtrlClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A + if(airlock) + airlock.AICtrlClick(src) + else + A.AICtrlClick(src) + +/mob/living/silicon/ai/AltClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A + if(airlock) + airlock.AIAltClick(src) + else + A.AIAltClick(src) + +/atom/proc/AIExamine() // Used for AI specific examines .Currently only employed to stop door examines. + usr.examinate(src) + +// Should keep all AI Examines in here in a list. +/obj/machinery/door/airlock/AIExamine() // Lets not spam the AI with door examinations + return + +/mob/living/silicon/ai/ClickOn(atom/A, params) + ..() + var/list/modifiers = params2list(params) + if(isturf(A)&&(!modifiers)) // Have to check for modifiers. + var/obj/machinery/door/firedoor/TheDoor = locate(/obj/machinery/door/firedoor) in A + if(TheDoor) + TheDoor.attack_ai(usr) + +///////////////////////// +/////Cyborg changes////// +///////////////////////// +/mob/living/silicon/robot/CtrlShiftClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit + if(airlock) + airlock.BorgCtrlShiftClick(src) + else + A.BorgCtrlShiftClick(src) + +/mob/living/silicon/robot/ShiftClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit + if(airlock) + airlock.BorgShiftClick(src) + else + A.BorgShiftClick(src) + +/mob/living/silicon/robot/CtrlClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit + if(airlock) + airlock.BorgCtrlClick(src) + else + A.BorgCtrlClick(src) // End of skyrat edit + +/mob/living/silicon/robot/AltClickOn(atom/A) + if(isturf(A)) + var/obj/machinery/door/airlock/airlock = locate(/obj/machinery/door/airlock) in A // Skyrat edit + if(airlock) + airlock.BorgAltClick(src) + else + A.BorgAltClick(src) diff --git a/modular_skyrat/modules/SiliconQoL/readme.md b/modular_skyrat/modules/SiliconQoL/readme.md new file mode 100644 index 00000000000..e4102c5cc03 --- /dev/null +++ b/modular_skyrat/modules/SiliconQoL/readme.md @@ -0,0 +1,30 @@ +https://github.com/Skyrat-SS13/Skyrat-tg/pull/1167 +## Title: Allows AI to examine and adds more QoL features. #1167 + +MODULE ID: SiliconQoL + +### Description: +1.Ports AI/Cyborg QoL from SkyratSS13 + -Interacting with doors no longer requires to click the sprite itself , it now also works by clicking the turf. +2.Allows AI to examine , creates a new proc for it. +3.Allows AI to close firelocks by clicking the turf they are on. +### TG Proc Changes: + +Added a comment informing of the overrides. + +### Defines: + +- N/A + +### Master file additions + +- N/A + +### Included files that are not contained in this module: + +- N/A + +### Credits: + +MLGTastica - Code , Ideas +Bobjoga - Helping with the code , a lot.