using System; using System.Collections.Generic; using UnityEngine; namespace ABI.CCK.Components { [System.Serializable] public class CVRInteractableAction { public enum ActionRegister { OnGrab = 1, OnDrop = 2, OnInteractDown = 3, OnInteractUp = 4, OnEnterTrigger = 5, OnExitTrigger = 6, OnEnterCollider = 7, OnExitCollider = 8, OnEnable = 9, OnDisable = 10, OnTimer = 11, OnParticleHit = 12, OnVariableBufferUpdate = 13, OnVariableBufferComparision = 14, OnCron = 15, OnPointerEnter = 16, OnWorldTrigger = 17, OnCustomTrigger = 18, OnInputDown = 19, OnInputUp = 20, OnAPFTrigger = 21, OnAPFBoolChange = 22, OnAPFIntChange = 23, OnAPFFloatChange = 24, OnAPFStringChange = 27, OnGazeEnter = 25, OnGazeExit = 26 } public enum ExecutionType { LocalNotNetworked = 1, GlobalNetworked = 2, GlobalNetworkedBuffered = 4, GlobalInstanceOwnerOnly = 3, GlobalInstanceOwnerOnlyBuffered = 5, GlobalNetworkedAllInstanceModerators = 6, GlobalNetworkedAllInstanceModeratorsBuffered = 7 } public float delay = 0f; public List operations = new List(); public ActionRegister actionType = ActionRegister.OnInteractDown; public ExecutionType execType = ExecutionType.GlobalNetworked; public LayerMask layerMask = 0; public float floatVal = 0; public float floatVal2 = 0; public float floatVal3 = 0; public bool boolVal; public CVRVariableBuffer varBufferVal; public CVRVariableBuffer varBufferVal2; public string stringVal = ""; public List allowedPointer = new List(); public bool allowedPointerCollapse = false; public List allowedTypes = new List(); public bool allowedTypesCollapse = false; public List specificParticleSystems = new List(); public bool specificParticleSystemsCollapse = false; public enum InteractionFilter { Global = 0, Looking = 1, Attached = 2, Held = 3, Sitting = 4 } public InteractionFilter interactionFilter = InteractionFilter.Global; public enum InteractionInput { A = KeyCode.A, B = KeyCode.B, C = KeyCode.C, D = KeyCode.D, E = KeyCode.E, F = KeyCode.F, G = KeyCode.G, H = KeyCode.H, I = KeyCode.I, J = KeyCode.J, K = KeyCode.K, L = KeyCode.L, M = KeyCode.M, N = KeyCode.N, O = KeyCode.O, P = KeyCode.P, Q = KeyCode.Q, R = KeyCode.R, S = KeyCode.S, T = KeyCode.T, U = KeyCode.U, V = KeyCode.V, W = KeyCode.W, X = KeyCode.X, Y = KeyCode.Y, Z = KeyCode.Z, Alpha0 = KeyCode.Alpha0, Alpha1 = KeyCode.Alpha1, Alpha2 = KeyCode.Alpha2, Alpha3 = KeyCode.Alpha3, Alpha4 = KeyCode.Alpha4, Alpha5 = KeyCode.Alpha5, Alpha6 = KeyCode.Alpha6, Alpha7 = KeyCode.Alpha7, Alpha8 = KeyCode.Alpha8, Alpha9 = KeyCode.Alpha9, InputHorizontalNegative = 10000, InputHorizontalPositive = 10001, InputVerticalNegative = 10002, InputVerticalPositive = 10003, InputJump = 10004, InputAccelerate = 10005, InputBrake = 10006, InputLeftClick = 10007, InputRightClick = 10008 } public InteractionInput interactionInput = InteractionInput.Alpha0; public enum InteractionInputModifier { LeftCtrl = 1, LeftShift = 2, LeftAlt = 4, RightCtrl = 8, RightShift = 16, RightAlt = 32 } public InteractionInputModifier interactionInputModifier = 0; [HideInInspector] public string guid = ""; private bool IsInLayerMask(GameObject obj, LayerMask inLayerMask) { return ((inLayerMask.value & (1 << obj.layer)) > 0); } } }