mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-12 11:13:16 +00:00
60 lines
1.2 KiB
Plaintext
60 lines
1.2 KiB
Plaintext
//Engine component object
|
|
|
|
var/list/ship_engines = list()
|
|
/datum/ship_engine
|
|
var/name = "ship engine"
|
|
var/obj/machinery/engine //actual engine object
|
|
var/zlevel = 0
|
|
|
|
/datum/ship_engine/New(var/obj/machinery/holder)
|
|
engine = holder
|
|
zlevel = holder.z
|
|
for(var/obj/machinery/computer/engines/E in machines)
|
|
if (E.z == zlevel && !(src in E.engines))
|
|
E.engines += src
|
|
break
|
|
|
|
//Tries to fire the engine. If successfull, returns 1
|
|
/datum/ship_engine/proc/burn()
|
|
if(!engine)
|
|
die()
|
|
return 1
|
|
|
|
//Returns status string for this engine
|
|
/datum/ship_engine/proc/get_status()
|
|
if(!engine)
|
|
die()
|
|
return "All systems nominal"
|
|
|
|
/datum/ship_engine/proc/get_thrust()
|
|
if(!engine)
|
|
die()
|
|
return 100
|
|
|
|
//Sets thrust limiter, a number between 0 and 1
|
|
/datum/ship_engine/proc/set_thrust_limit(var/new_limit)
|
|
if(!engine)
|
|
die()
|
|
return 1
|
|
|
|
/datum/ship_engine/proc/get_thrust_limit()
|
|
if(!engine)
|
|
die()
|
|
return 1
|
|
|
|
/datum/ship_engine/proc/is_on()
|
|
if(!engine)
|
|
die()
|
|
return 1
|
|
|
|
/datum/ship_engine/proc/toggle()
|
|
if(!engine)
|
|
die()
|
|
return 1
|
|
|
|
/datum/ship_engine/proc/die()
|
|
for(var/obj/machinery/computer/engines/E in machines)
|
|
if (E.z == zlevel)
|
|
E.engines -= src
|
|
break
|
|
qdel(src) |