Scriptname DefaultNoEnemiesFollowDoorScript extends ObjectReference  
{Block activation by anyone other than the Player and their Followers to prevent interferance with scenes.}

; factions that are allowed to use the door
Faction Property AllowDoorFaction01  Auto  
Faction Property AllowDoorFaction02  Auto  
Faction Property AllowDoorFaction03  Auto 

Faction Property PlayerFollowerFaction Auto
Faction Property CurrentFollowerFaction Auto

Event OnInit()
	BlockActivation()
EndEvent

Event OnActivate(ObjectReference akActionRef)
	; only do this check if activation is blocked
	if IsActivationBlocked() == false
; 		;debug.trace(self + "OnActivate " + akActionRef + " - not blocked, normal activation")
		return
	endif

	if (akActionRef == (Game.GetForm(0x14) as Actor))
; 		;debug.trace(self + "OnActivate - player, allow activation")
		Activate(akActionRef, true)
	else
		Actor actorRef = akActionRef as Actor
; 		;debug.trace(self + "OnActivate - " + actorRef)
		if (actorRef && (actorRef.isInFaction(AllowDoorFaction01) || actorRef.isInFaction(AllowDoorFaction02) || actorRef.isInFaction(AllowDoorFaction03) || actorRef.isInFaction(PlayerFollowerFaction) || actorRef.isInFaction(CurrentFollowerFaction) || actorRef.IsPlayerTeammate()))
; 			;debug.trace(self + "OnActivate - " + actorRef + ": allow activation")
			Activate(akActionRef, true)
		else		
; 			;debug.trace(self + "OnActivate - " + actorRef + ": activation BLOCKED")
		endif
	endif
EndEvent