enum EDoorType
{
	NONE = 0,
	INTERACTIVE = 1,
	AUTOMATIC = 2,
	PHYSICAL = 3,
	REMOTELY_CONTROLLED = 4,
}

enum EDoorStatus
{
	SEALED = -2,
	LOCKED = -1,
	CLOSED = 0,
	OPENED = 1,
}

enum EDoorOpeningType
{
	SLIDING_HORIZONTALLY = 0,
	SLIDING_VERTICALLY = 1,
	HINGED = 2,
	GATE = 3,
	HINGED_SIDE_ONE = 4,
	HINGED_SIDE_TWO = 5,
}

enum EAnimationType
{
	REGULAR = 0,
	TRANSFORM = 1,
	TRANSFORM_TWO_SIDES = 2,
	NONE = 3,
}

enum EDoorTriggerSide
{
	OUTSIDE = 0,
	ONE = 1,
	TWO = 2,
}

enum EDoorSkillcheckSide
{
	BOTH = 0,
	ONE = 1,
	TWO = 2,
}

class ChangeHalfLights extends Event
{
	var m_isAuthorization : Bool;
}

class AnimFeatureDoor extends AnimFeature
{
	editable var m_progress : Float;
	editable var m_openingSpeed : Float;
	editable var m_openingType : Int32;
	editable var m_doorSide : Int32;
	editable var m_malfunctioning : Int32;
}

struct LedColors
{
	var off : ScriptLightSettings;
	var red : ScriptLightSettings;
	var green : ScriptLightSettings;
}

struct DoorPersistentData
{
	var m_doorType : EDoorType;
	var m_canPlayerToggleLockState : Bool;
	var m_canPlayerToggleSealState : Bool;
	var m_initialStatus : EDoorStatus;
	var m_keycardName : TweakDBID;
	var m_passcode : CName;
}

struct DoorResaveData
{
	var m_doorType : EDoorType;
	var m_canPlayerToggleLockState : Bool;
	var m_canPlayerToggleSealState : Bool;
	var m_initialStatus : EDoorStatus;
	var m_keycardName : TweakDBID;
	var m_passcode : CName;
}

class DoorReplicatedState extends DeviceReplicatedState
{
	var m_isOpen : Bool;
	var m_wasImmediateChange : Bool;
}

class DoorColliderEnableEvent extends Event
{
}

class DoorTriggerDelayedEvent extends Event
{
	var activator : weak< GameObject >;
	var force : Bool;
}

class OccluderEnableEvent extends Event
{
}

class SetBusyEvent extends Event
{
}

