anchor.diff:  	anchored = 1
   
   /atom/movable/light/Destroy(force)
  -	if(force)
  -		. = ..()
  -	else
  +	if(!force)
   		return QDEL_HINT_LETMELIVE
  +	var/turf/T = loc
  +	. = ..()
  +	if (T.lighting_object == src)
  +		T.lighting_object = null
  +	
  +/atom/movable/light/New()
  +	if (!isturf(loc))
  +		PutOut()
  +		throw EXCEPTION("Invalid light placement: loc must be a turf")
  +	var/turf/T = loc
  +	
  +	if (T.lighting_object && T.lighting_object != src)
  +		PutOut()
  +		throw EXCEPTION("BUG: /atom/movable/light created on a turf that already has one")
  +	T.lighting_object = src
  +	
  +/atom/movable/light/proc/PutOut()
  +	alpha = 0
  +	qdel(src, force = TRUE)
   
   /atom/movable/light/Move()
   	return 0
  
positive.code: 		if(AM == owner)
  			continue
  		if(AM.opacity)
  			range = 0
  			break
  
  	owner.luminosity = range
  	if (!range)
  		return 0
  	var/center_strength = 0
  	if (cap <= 0)
  		center_strength = LIGHTING_CAP/LIGHTING_LUM_FOR_FULL_BRIGHT*(luminosity)
  
negative.code: 		if(lighting_changed)
  			lighting_changed = 0
  		if(lighting_object)
  			lighting_object.PutOut()
  	else
  		if(!lighting_object)
  			lighting_object = new (src)
  