Exemplo n.º 1
0
        public static TargetClassType ToClassType(TargetType type)
        {
            TargetClassType ctype = type as TargetClassType;

            if (ctype != null)
            {
                return(ctype);
            }

            TargetObjectType otype = type as TargetObjectType;

            if (otype != null && otype.HasClassType)
            {
                ctype = otype.ClassType;
                if (ctype != null)
                {
                    return(ctype);
                }
            }

            TargetArrayType atype = type as TargetArrayType;

            if (atype != null)
            {
                if (atype.Language.ArrayType != null)
                {
                    return(atype.Language.ArrayType);
                }
            }

            throw new Exception(string.Format("Type `{0}' is not a struct or class.", type.Name));
        }
        private void UpdateActiveTarget(bool canPickup, bool canDrill)
        {
            GameObject targetObject = null;

            TargetObjectType objectType = TargetObjectType.None;

            if (canPickup || canDrill)
            {
                Targeting.GetTarget(seamoth.gameObject, 4.8f, out targetObject, out float num, null);
            }

            if (targetObject)
            {
                GameObject rootObject = UWE.Utils.GetEntityRoot(targetObject);

                rootObject = (!(rootObject != null)) ? targetObject : rootObject;

                if (rootObject.GetComponentProfiled <Pickupable>())
                {
                    targetObject = rootObject;
                    objectType   = TargetObjectType.Pickupable;
                }
                else if (rootObject.GetComponentProfiled <Drillable>())
                {
                    targetObject = rootObject;
                    objectType   = TargetObjectType.Drillable;
                }
                else
                {
                    targetObject = null;
                }
            }

            activeTarget = targetObject;

            if (activeTarget && currentSelectedArm != SeamothArm.None)
            {
                if (canDrill && objectType == TargetObjectType.Drillable && GetSelectedArm().HasDrill())
                {
                    GUIHand component = Player.main.GetComponent <GUIHand>();
                    GUIHand.Send(activeTarget, HandTargetEventType.Hover, component);
                }
                else if (canPickup && objectType == TargetObjectType.Pickupable && GetSelectedArm().HasClaw())
                {
                    Pickupable pickupable = activeTarget.GetComponent <Pickupable>();
                    TechType   techType   = pickupable.GetTechType();

                    HandReticle.main.SetInteractText(LanguageCache.GetPickupText(techType), false, HandReticle.Hand.Left);
                    HandReticle.main.SetIcon(HandReticle.IconType.Hand, 1f);
                }
            }
        }
Exemplo n.º 3
0
        private static object HydrateCompactObject(TargetObjectType type, JToken item)
        {
            try
            {
                if (item != null)
                {
                    switch (type)
                    {
                    case TargetObjectType.Badge:
                        return(Badge.ParseJson(item));

                    case TargetObjectType.Checkin:
                        return(Checkin.ParseJson(item));

                    case TargetObjectType.Special:
                        // VenueId, if null, must be parsed out of the
                        // notification or else it will throw. FYI.
                        return(CompactSpecial.ParseJson(item, null));

                    case TargetObjectType.Tip:
                        return(Tip.ParseJson(item));

                    case TargetObjectType.Url:
                        Uri uri = Json.TryGetUriProperty(item, "url");
                        return(uri);

                    case TargetObjectType.User:
                        return(CompactUser.ParseJson(item));

                    case TargetObjectType.Venue:
                        return(CompactVenue.ParseJson(item));

                    default:
                        break;
                    }
                }
            }
            catch (Exception)
            {
            }

            return(null);
        }
Exemplo n.º 4
0
        private void WriteActivityLog(string activityText, ActivityLogType activityType, string targetId, TargetObjectType targetType)
        {
            var logData = new ActivityLog
            {
                UserId       = User.Identity.GetUserId(),
                ActivityText = activityText,
                ActivityType = activityType.ToString(),
                TargetId     = targetId,
                TargetType   = targetType.ToString(),
                IPAddress    = Request.UserHostAddress
            };

            _activityStore.WriteActivityLog(logData);
        }
Exemplo n.º 5
0
        private static object HydrateCompactObject(TargetObjectType type, JToken item)
        {
            try
            {
                if (item != null)
                {
                    switch (type)
                    {
                        case TargetObjectType.Badge:
                            return Badge.ParseJson(item);

                        case TargetObjectType.Checkin:
                            return Checkin.ParseJson(item);

                        case TargetObjectType.Special:
                            // VenueId, if null, must be parsed out of the 
                            // notification or else it will throw. FYI.
                            return CompactSpecial.ParseJson(item, null);

                        case TargetObjectType.Tip:
                            return Tip.ParseJson(item);

                        case TargetObjectType.Url:
                            Uri uri = Json.TryGetUriProperty(item, "url");
                            return uri;

                        case TargetObjectType.User:
                            return CompactUser.ParseJson(item);

                        case TargetObjectType.Venue:
                            return CompactVenue.ParseJson(item);

                        default:
                            break;
                    }
                }
            }
            catch (Exception)
            {
            }

            return null;
        }