Exemplo n.º 1
0
        void UpdateActiveTarget(Vehicle vehicle)
        {
            // Get the GameObject we're looking at
            var activeTarget = default(GameObject);

            Targeting.GetTarget(vehicle.gameObject, 6f, out activeTarget, out float dist, null);

            // Check if not null
            if (activeTarget != null)
            {
                // Get the root object, or the hit object if root is null
                var root = UWE.Utils.GetEntityRoot(activeTarget) ?? activeTarget;
                if (root.GetComponentProfiled <Pickupable>())
                {
                    activeTarget = root;
                }
                else
                {
                    root = null;
                }
            }

            // Get the GUIHand component
            var guiHand = Player.main.GetComponent <GUIHand>();

            if (activeTarget)
            {
                // Send the Hover message to the GameObject we're looking at.
                GUIHand.Send(activeTarget, HandTargetEventType.Hover, guiHand);
            }
        }
Exemplo n.º 2
0
        void UpdateActiveTarget()
        {
            if (GetLastDockedOnMapRoom().storageContainer.container.GetCount(Main.pickupModule.TechType) > 0)
            {
                Targeting.GetTarget(gameObject, 7f, out GameObject target, out float distance, null);

                var root = UWE.Utils.GetEntityRoot(target);
                root = root != null ? root : target;

                if (root.GetComponentProfiled <Pickupable>() is not null &&
                    CraftData.GetTechType(root) != TechType.MapRoomCamera)
                {
                    target = root;
                }
                else
                {
                    target = null;
                }

                _activeTarget = target;

                var guiHand = Player.main.GetComponent <GUIHand>();
                if (_activeTarget is not null)
                {
                    GUIHand.Send(_activeTarget, HandTargetEventType.Hover, guiHand);
                }
            }
Exemplo n.º 3
0
        private void UpdateActiveTarget(bool canPickup, bool canDrill)
        {
            GameObject targetObject = null;

            ObjectType objectType = ObjectType.None;

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

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

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

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

            activeTarget = targetObject;

            if (activeTarget && currentSelectedArm != SeaTruckArm.None)
            {
                if (canDrill && objectType == ObjectType.Drillable && GetSelectedArmTechType() == SeaTruckDrillArm_Prefab.TechTypeID)
                {
                    GUIHand component = Player.main.GetComponent <GUIHand>();
                    GUIHand.Send(activeTarget, HandTargetEventType.Hover, component);
                }
                else if (canPickup && objectType == ObjectType.Pickupable && GetSelectedArmTechType() == SeaTruckClawArm_Prefab.TechTypeID)
                {
                    Pickupable pickupable = activeTarget.GetComponent <Pickupable>();
                    TechType   techType   = pickupable.GetTechType();

                    HandReticle.main.SetText(HandReticle.TextType.Hand, LanguageCache.GetPickupText(techType), false, GameInput.Button.LeftHand);
                    HandReticle.main.SetIcon(HandReticle.IconType.Hand, 1f);
                }
            }
        }
        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.º 5
0
        static bool Prefix(Exosuit __instance, bool canPickup, bool canDrill)
        {
            GameObject target = null;

            if (canPickup || canDrill)
            {
                Targeting.GetTarget(__instance.gameObject, 6f, out target, out float num, null);
            }
            if (target)
            {
                GameObject root = UWE.Utils.GetEntityRoot(target);
                root = root != null ? root : target;

                if (canPickup && root.GetComponentProfiled <Pickupable>())
                {
                    target = root;
                }
                else if (canDrill && root.GetComponentProfiled <Drillable>())
                {
                    target = root;
                }
                else
                {
                    target = null;
                }
            }
            __instance.activeTarget = target;
            GUIHand component = Player.main.GetComponent <GUIHand>();

            if (__instance.activeTarget)
            {
                GUIHand.Send(__instance.activeTarget, HandTargetEventType.Hover, component);
            }

            return(false);
        }