// It.. uses a lot of power. Everything under power is engineering stuff, at least. /obj/machinery/computer/gravity_control_computer name = "Gravity Generator Control" desc = "A computer to control a local gravity generator. Qualified personnel only." icon = 'icons/obj/computer.dmi' icon_state = "airtunnel0e" anchored = 1 density = 1 var/obj/machinery/gravity_generator = null /obj/machinery/gravity_generator/ name = "Gravitational Generator" desc = "A device which produces a gravaton field when set up." icon = 'icons/obj/singularity.dmi' icon_state = "TheSingGen" anchored = 1 density = 1 use_power = 1 idle_power_usage = 200 active_power_usage = 1000 var/on = 1 var/list/localareas = list() var/effectiverange = 25 // Borrows code from cloning computer /obj/machinery/computer/gravity_control_computer/New() ..() spawn(5) updatemodules() return return /obj/machinery/gravity_generator/New() ..() spawn(5) locatelocalareas() return return /obj/machinery/computer/gravity_control_computer/proc/updatemodules() src.gravity_generator = findgenerator() /obj/machinery/gravity_generator/proc/locatelocalareas() for(var/area/A in range(src,effectiverange)) if(A.name == "Space") continue // No (de)gravitizing space. if(!(A in localareas)) localareas += A /obj/machinery/computer/gravity_control_computer/proc/findgenerator() var/obj/machinery/gravity_generator/foundgenerator = null for(dir in list(NORTH,EAST,SOUTH,WEST)) //world << "SEARCHING IN [dir]" foundgenerator = locate(/obj/machinery/gravity_generator/, get_step(src, dir)) if (!isnull(foundgenerator)) //world << "FOUND" break return foundgenerator /obj/machinery/computer/gravity_control_computer/attack_ai(mob/user as mob) return attack_hand(user) /obj/machinery/computer/gravity_control_computer/attack_hand(mob/user as mob) user.set_machine(src) add_fingerprint(user) if(stat & (BROKEN|NOPOWER)) return updatemodules() var/dat = "