public UnityEventTargetReference([NotNull] IPlainScalarNode owner, EventHandlerArgumentMode mode, string type, FileID fileId) : base(owner) { myMode = mode; myType = type; myFileId = fileId; }
public EventHandlerSymbolFilter(EventHandlerArgumentMode mode, string type, IPsiModule psiModule) { myMode = mode; if (mode == EventHandlerArgumentMode.UnityType && type != null) { myType = TypeFactory.CreateTypeByCLRName(type, psiModule); } else if (mode != EventHandlerArgumentMode.None) { var predefinedTypes = psiModule.GetPredefinedType(); switch (mode) { case EventHandlerArgumentMode.Int: myType = predefinedTypes.Int; break; case EventHandlerArgumentMode.Float: myType = predefinedTypes.Float; break; case EventHandlerArgumentMode.String: myType = predefinedTypes.String; break; case EventHandlerArgumentMode.Bool: myType = predefinedTypes.Bool; break; } } }
public AssetMethodData(LocalReference location, string methodName, TextRange textRange, EventHandlerArgumentMode mode, string type, IHierarchyReference targetReference) { Location = location; MethodName = methodName; TextRange = textRange; Mode = mode; Type = type; TargetScriptReference = targetReference; }
public AssetMethodData(LocalReference location, string methodName, TextRange textRange, EventHandlerArgumentMode mode, string type, IHierarchyReference targetReference) { Assertion.Assert(location != null, "location != null"); Assertion.Assert(targetReference != null, "targetReference != null"); Assertion.Assert(methodName != null, "methodName != null"); Location = location; MethodName = methodName; TextRange = textRange; Mode = mode; Type = type; TargetScriptReference = targetReference; }
public AssetMethodUsages(string ownerName, string methodName, TextRange textRangeOwnerPsiPersistentIndex, OWORD textRangeOwner, EventHandlerArgumentMode mode, string type, IHierarchyReference targetReference) { Assertion.Assert(targetReference != null, "targetReference != null"); Assertion.Assert(methodName != null, "methodName != null"); OwnerName = ownerName; MethodName = methodName; TextRangeOwnerPsiPersistentIndex = textRangeOwnerPsiPersistentIndex; TextRangeOwner = textRangeOwner; Mode = mode; Type = type; TargetScriptReference = targetReference; }
public EventHandlerSymbolFilter(EventHandlerArgumentMode mode, string type, IPsiModule psiModule) { myTypes = new FrugalLocalList <IType>(); myMode = mode; var predefinedTypes = psiModule.GetPredefinedType(); switch (mode) { case EventHandlerArgumentMode.EventDefined: if (type != null) { // Find the UnityEvent base type, and use the type parameters as the required arguments // This only works for scenes serialised in Unity 2018.3 and below. The field was removed in 2018.4 var eventType = TypeFactory.CreateTypeByCLRName(type, psiModule); var unityEventType = GetUnityEventType(eventType); var unityEventTypeElement = unityEventType?.GetTypeElement(); if (unityEventType != null && unityEventTypeElement != null) { var(_, substitution) = unityEventType.Resolve(); var typeParameters = unityEventTypeElement.TypeParameters; foreach (var t in typeParameters) { myTypes.Add(substitution.Apply(t)); } } } break; case EventHandlerArgumentMode.UnityObject: myTypes.Add(type == null ? TypeFactory.CreateTypeByCLRName(KnownTypes.Object, NullableAnnotation.Unknown, psiModule) : TypeFactory.CreateTypeByCLRName(type, psiModule)); break; case EventHandlerArgumentMode.Int: myTypes.Add(predefinedTypes.Int); break; case EventHandlerArgumentMode.Float: myTypes.Add(predefinedTypes.Float); break; case EventHandlerArgumentMode.String: myTypes.Add(predefinedTypes.String); break; case EventHandlerArgumentMode.Bool: myTypes.Add(predefinedTypes.Bool); break; } }