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); } }
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); } }
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); } } }
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); }