Exemplo n.º 1
0
 private void OnEnable()
 {
     human       = GetComponent <Human>();
     ragdoll     = GetComponent <Ragdoll>();
     ballRadius  = GetComponent <SphereCollider>().radius;
     grabManager = GetComponent <GrabManager>();
 }
 private void Update()
 {
     if (input.value >= threshold && GrabManager.IsGrabbedAny(item))
     {
         GrabManager.Release(item, blockTime);
     }
 }
Exemplo n.º 3
0
    private void FixedUpdate()
    {
        if (!fixInPlace || !(fixJoint == null) || !(bodyToFix != null))
        {
            return;
        }
        bool flag = false;

        foreach (Rigidbody contactMagnetBody in contactMagnetBodies)
        {
            if (bodyToFix == contactMagnetBody && !GrabManager.IsGrabbedAny(contactMagnetBody.gameObject))
            {
                flag = true;
            }
        }
        if (flag)
        {
            fixTimer += Time.fixedDeltaTime;
            if (fixTimer >= timeToFix)
            {
                fixJoint = bodyToFix.gameObject.AddComponent <FixedJoint>();
                fixJoint.connectedBody = Body;
                CalculateMagnetActive();
                fixTimer = 0f;
            }
        }
        else
        {
            fixTimer = 0f;
        }
    }
Exemplo n.º 4
0
 public void RemoveGrabber(GrabManager grabManager)
 {
     if (activeGrabbers.Contains(grabManager))
     {
         activeGrabbers.Remove(grabManager);
     }
 }
Exemplo n.º 5
0
		public void DespawnPlayer()
		{
			if (NetGame.netlog)
			{
				Debug.LogFormat("Destroying {0}", netId);
			}
			if (isLocalPlayer)
			{
				if (skin != null)
				{
					App.StopPlaytimeForItem(skin.workshopId);
				}
				MenuCameraEffects.instance.RemoveHuman(this);
				Listener.instance.RemoveHuman(human);
				if (App.state == AppSate.Customize)
				{
					Player0Device = controls.device;
				}
			}
			host.RemovePlayer(this);
			if (isLocalPlayer)
			{
				PlayerManager.instance.OnLocalPlayerRemoved(this);
			}
			if (base.gameObject != null)
			{
				GrabManager.Release(base.gameObject);
			}
			Object.Destroy(base.gameObject);
		}
Exemplo n.º 6
0
 private void OnEnable()
 {
     thisTransform = base.transform;
     thisBody      = GetComponent <Rigidbody>();
     grabManager   = GetComponentInParent <GrabManager>();
     groundManager = GetComponentInParent <GroundManager>();
     human         = GetComponentInParent <Human>();
 }
Exemplo n.º 7
0
		protected override void OnDestroy()
		{
			base.OnDestroy();
			if (base.gameObject != null)
			{
				GrabManager.Release(base.gameObject);
			}
		}
Exemplo n.º 8
0
    // Use this for initialization
    void Start()
    {
        gameCam = Camera.main;
        grabber = gameObject.GetComponent <GrabManager> ();

        mouseman  = this;
        uiManager = gameObject.transform.parent.GetComponentInChildren <UIManager> ();
    }
 public void OnFryMeToTheMoonAchievementCheck(GameObject objectToBeGrabbing)
 {
     if (objectToBeGrabbing != null && GrabManager.IsGrabbedAny(objectToBeGrabbing))
     {
         Debug.Log("FRY ME TO THE MOON ACHIEVEMENT COMPLETE");
         StatsAndAchievements.UnlockAchievement(Achievement.ACH_HALLOWEEN_FRY_ME_TO_THE_MOON);
     }
 }
Exemplo n.º 10
0
 public void OnRelease()
 {
     if (!NetGame.isClient)
     {
         screen.Hide();
     }
     GrabManager.Release(screen.gameObject, 0.3f);
 }
Exemplo n.º 11
0
 protected override void Start()
 {
     base.Start();
     m_crosshair        = gameObject.GetComponentInChildren <GrabbableCrosshair>();
     m_renderer         = gameObject.GetComponent <Renderer>();
     m_crosshairManager = FindObjectOfType <GrabManager>();
     m_mpb = new MaterialPropertyBlock();
     RefreshCrosshair();
 }
Exemplo n.º 12
0
 public void OnGrab()
 {
     if (NetGame.isServer)
     {
         Human    human    = GrabManager.GrabbedBy(base.gameObject);
         CSteamID cSteamID = (CSteamID)human.player.host.connection;
         userId = cSteamID.m_SteamID;
     }
 }
Exemplo n.º 13
0
 private void OnEnable()
 {
     all.Add(this);
     instance       = this;
     grabManager    = GetComponent <GrabManager>();
     groundManager  = GetComponent <GroundManager>();
     motionControl2 = GetComponent <HumanMotion2>();
     controls       = GetComponentInParent <HumanControls>();
 }
Exemplo n.º 14
0
        public void OnGrabbed(GrabManager grabManager)
        {
            if (!activeGrabbers.Contains(grabManager))
            {
                activeGrabbers.Add(grabManager);
            }

            rigidBody.isKinematic = true;
            rigidBody.useGravity  = false;
        }
Exemplo n.º 15
0
 private void UpdateIdle()
 {
     if (GrabManager.IsGrabbedAny(windlass.gameObject))
     {
         SetState(CatapultState.Wind);
     }
     else if (windlassAngle != topWindlassAngle && GrabManager.IsGrabbedAny(release.gameObject))
     {
         SetState(CatapultState.Trigger);
     }
 }
        protected override void HandleGrabPointLetGo(GrabPointGrabFeature grabPoint)
        {
            base.HandleGrabPointLetGo(grabPoint);

            if (grabPoint.Priority == GrabPointPriority.Primary)
            {
                InputController.Instance.UnregisterTriggerTriggeredNotify(grabPoint.Grabbable.ActiveGrabber.Hand, HandleTriggerTriggered);
            }

            activeGrabber = null;
        }
Exemplo n.º 17
0
    private void UpdateFire()
    {
        if (fired)
        {
            if (!GrabManager.IsGrabbedAny(release.gameObject))
            {
                if (timeFired > 1f)
                {
                    SetState(CatapultState.Idle);
                    return;
                }
                PullDownTrigger();
                timeFired += Time.fixedDeltaTime;
            }
            else
            {
                timeFired = 0f;
            }
            WriteArm();
            WriteWindlass();
            return;
        }
        timeFired = 0f;
        bool flag = GrabManager.IsGrabbedAny(arm.gameObject) || GroundManager.IsStandingAny(arm.gameObject);

        speed         += acceleration * Time.fixedDeltaTime * ((!flag) ? 1f : 0.9f);
        windlassAngle -= speed * Time.fixedDeltaTime;
        if (windlassAngle > topWindlassAngle)
        {
            currentTooth = (windlassAngle = topWindlassAngle);
        }
        WriteArm();
        WriteWindlass();
        if (windlassAngle != topWindlassAngle)
        {
            return;
        }
        for (int i = 0; i < Human.all.Count; i++)
        {
            Human human = Human.all[i];
            if (human.ragdoll.partLeftHand.sensor.grabBody == arm.GetComponent <Rigidbody>())
            {
                human.ragdoll.partLeftHand.sensor.ReleaseGrab(0.1f);
            }
            if (human.ragdoll.partRightHand.sensor.grabBody == arm.GetComponent <Rigidbody>())
            {
                human.ragdoll.partRightHand.sensor.ReleaseGrab(0.1f);
            }
            human.ragdoll.ReleaseHeavyArms();
        }
        fired = true;
    }
Exemplo n.º 18
0
        public void OnLetGo(GrabManager grabManager)
        {
            RemoveGrabber(grabManager);

            if (activeGrabbers.Count == 0)
            {
                rigidBody.isKinematic = false;
                rigidBody.useGravity  = true;

                rigidBody.velocity        = grabManager.Velocity * throwSpeedMultiplier;
                rigidBody.angularVelocity = grabManager.AngularVelocity;
            }
        }
Exemplo n.º 19
0
        public void OnTriggerEnter(Collider other)
        {
            if (doneMixing || other == null)
            {
                return;
            }
            bool flag = false;

            for (int i = 0; i < items.Length; i++)
            {
                if (!other.gameObject.transform.IsChildOf(items[i].item.transform))
                {
                    continue;
                }
                flag = true;
                if (items[i].mixEffect == MixEffect.Destroy || (itemAdded[i] == 0 && items[i].mixEffect == MixEffect.DestroyFirst))
                {
                    if (other.gameObject == items[i].item)
                    {
                        GrabManager.Release(other.gameObject);
                        SendDestroyIngredient(i, -1);
                    }
                    else
                    {
                        for (int j = 0; j < items[i].item.transform.childCount; j++)
                        {
                            Transform child = items[i].item.transform.GetChild(j);
                            if (other.gameObject.transform.IsChildOf(child))
                            {
                                GrabManager.Release(other.gameObject);
                                GrabManager.Release(child.gameObject);
                                SendDestroyIngredient(i, j);
                                break;
                            }
                        }
                    }
                }
                itemAdded[i]++;
                items[i].itemAdded.Invoke();
                if (itemAdded.All((int x) => x != 0))
                {
                    allItemsHaveBeenAdded = true;
                    allItems.SetValue(1f);
                }
                break;
            }
            if (!flag)
            {
                badItemAdded.Invoke();
            }
        }
Exemplo n.º 20
0
    void Awake()
    {
        if (_instance != null)
        {
            Destroy(this.gameObject);
            return;
        }

        Cursor.SetCursor(cursorsImage[0], Vector3.zero, CursorMode.ForceSoftware);

        _instance = this;
        _instance.Initialize();
        DontDestroyOnLoad(_instance.gameObject);
    }
Exemplo n.º 21
0
 protected virtual void Shatter(Vector3 contactPoint, Vector3 adjustedImpulse, float impactMagnitude, uint seed, uint netId)
 {
     renderer.enabled = false;
     collider.enabled = false;
     if (audio != null)
     {
         audio.Shatter(impactMagnitude, contactPoint);
     }
     if (audioSource != null)
     {
         audioSource.Shatter(impactMagnitude, contactPoint);
     }
     GrabManager.Release(base.gameObject);
 }
Exemplo n.º 22
0
        private void FixedUpdate()
        {
            if (parentBody == null || !connectable)
            {
                return;
            }
            bool flag = GrabManager.IsGrabbedAny(parentBody.gameObject);

            if (flag && connectedPipe == null)
            {
                PipePort pipePort = Scan();
                if (pipePort != null && pipePort != ignorePipe)
                {
                    ConnectPipe(pipePort);
                    return;
                }
            }
            if (!flag)
            {
                ignorePipe = null;
            }
            if (!(connectedPipe != null) || !isMaster)
            {
                return;
            }
            Vector3 position = base.transform.position;

            if (position.y < -40f && springIn != null)
            {
                DisconnectPipe();
                return;
            }
            if (breakableIn > 0f)
            {
                ApplyJointForce(loose: false, Apply: false);
                breakableIn -= Time.fixedDeltaTime;
                return;
            }
            bool loose = flag || (connectedPipe.parentBody != null && GrabManager.IsGrabbedAny(connectedPipe.parentBody.gameObject));

            ApplyJointForce(loose, Apply: false);
            float magnitude = (base.transform.position - connectedPipe.transform.position).magnitude;

            if (springIn != null && magnitude > breakTreshold)
            {
                DisconnectPipe();
            }
        }
Exemplo n.º 23
0
        private void Start()
        {
            grabManager        = GetComponent <GrabManager>();
            rangedGrabDetector = GetComponent <RangedGrabDetector>();
            InputController.Instance.RegisterGripTriggeredNotify(grabManager.Hand, HandleGrabTriggered);
            InputController.Instance.RegisterGripCanceledNotify(grabManager.Hand, HandleGripLetGo);

            if (flickActivated)
            {
                InputController.Instance.RegisterDeviceAngularVelocityNotify(grabManager.Hand, HandleAngularVelocityChange);
            }
            else
            {
                InputController.Instance.RegisterTriggerTriggeredNotify(grabManager.Hand, HandleTriggerTriggered);
            }
        }
Exemplo n.º 24
0
    public void OnTriggerStay(Collider other)
    {
        Rigidbody componentInParent = other.GetComponentInParent <Rigidbody>();

        if (componentInParent == null || componentInParent.isKinematic || bodiesAffected.Contains(componentInParent))
        {
            return;
        }
        bodiesAffected.Add(componentInParent);
        worldWind = base.transform.TransformVector(wind) * input.value;
        normal    = worldWind.normalized;
        D         = Vector3.Dot(base.transform.position, normal);
        if (!(worldWind == Vector3.zero))
        {
            float   num       = Vector3.Dot(componentInParent.worldCenterOfMass, normal) - D;
            Vector3 vector    = componentInParent.worldCenterOfMass - num * normal - base.transform.position;
            float   num2      = Mathf.InverseLerp(coreRadius + radialFalloff, coreRadius, vector.magnitude);
            float   num3      = Mathf.InverseLerp(dist + distFalloff, dist, num);
            Human   component = componentInParent.GetComponent <Human>();
            float   num4      = componentInParent.mass;
            if (component != null)
            {
                num4 = component.mass / (float)component.rigidbodies.Length;
            }
            float   d       = num4;
            Vector3 vector2 = (worldWind - componentInParent.velocity).magnitude * (worldWind - componentInParent.velocity) * cDrag * d;
            if (vector.magnitude > 0.1f)
            {
                vector2 += (0f - componentInParent.mass) * vector * centeringSpring;
                vector2 += componentInParent.mass * Vector3.Project(-componentInParent.velocity, vector) * centeringDamper;
            }
            vector2 *= num2 * num3;
            vector2  = Vector3.ClampMagnitude(vector2, num4 * maxAcceleration);
            if (vector2.magnitude / num4 > 10f && GrabManager.IsGrabbedAny(componentInParent.gameObject))
            {
                GrabManager.Release(componentInParent.gameObject, 0.2f);
            }
            componentInParent.AddForce(vector2);
            Debug.DrawRay(componentInParent.worldCenterOfMass, vector2 / 10f / componentInParent.mass, Color.cyan, 0.1f);
            if (component != null)
            {
                componentInParent.AddForce(component.controls.walkDirection * humanFlyForce);
            }
        }
    }
Exemplo n.º 25
0
        public void Respawn(Vector3 offset)
        {
            if (ReplayRecorder.isPlaying || NetGame.isClient)
            {
                return;
            }
            GrabManager.Release(base.gameObject);
            Vector3    vector     = startPos + offset;
            Quaternion quaternion = startRot;

            if (overrides != null)
            {
                RespawningBodyOverride respawningBodyOverride = null;
                for (int i = 0; i < overrides.Count; i++)
                {
                    if (overrides[i].checkpoint.number <= Game.instance.currentCheckpointNumber && (respawningBodyOverride == null || overrides[i].checkpoint.number > respawningBodyOverride.checkpoint.number))
                    {
                        respawningBodyOverride = overrides[i];
                    }
                }
                if (respawningBodyOverride != null)
                {
                    vector     = respawningBodyOverride.initialToNewLocationMatrtix.MultiplyPoint3x4(vector);
                    quaternion = respawningBodyOverride.initialToNewLocationRotation * quaternion;
                }
            }
            mJustReset              = 5;
            mResetPosition          = vector;
            mResetRotation          = quaternion;
            base.transform.position = vector;
            base.transform.rotation = quaternion;
            if (syncLocalScale)
            {
                base.transform.localScale = startLocalScale;
            }
            UpdateVisibility();
            if (m_respawnEvent != null)
            {
                m_respawnEvent.Invoke();
            }
            else
            {
                Debug.LogError("Null respawn event.", this);
            }
        }
Exemplo n.º 26
0
    // Start is called before the first frame update
    void Start()
    {
        gui_day = go_gui_day.GetComponent <TextMeshProUGUI>();

        sc_aura     = go_aura.GetComponent <AuraDetection>();
        sc_pc       = go_player.GetComponent <PlayerController_Sonic3>();
        sc_pool     = GetComponent <ObjectPooler>();
        sc_list     = GetComponent <ShoppingListManager>();
        sc_spawn    = GetComponent <ItemSpawnManager>();
        sc_customer = GetComponent <CustomerManager>();
        sc_grab     = GetComponent <GrabManager>();

        go_canvas.SetActive(true);

        sc_pool.FillPool();

        SetMenu(MenuState.Start);
    }
Exemplo n.º 27
0
        public void Grab(GrabPointGrabFeature grabbedPoint)
        {
            if (grabbedPoint.Priority == GrabPointPriority.Primary)
            {
                primaryGrabPoint   = grabbedPoint;
                primaryGrabManager = primaryGrabPoint.Grabbable.ActiveGrabber;

                onWeaponGrabPointGrabbed?.Invoke(primaryGrabPoint);
            }
            else
            {
                secondaryGrabPoint   = grabbedPoint;
                secondaryGrabManager = secondaryGrabPoint.Grabbable.ActiveGrabber;

                onWeaponGrabPointGrabbed?.Invoke(secondaryGrabPoint);
            }

            isGrabbed = true;
        }
Exemplo n.º 28
0
 private void Update()
 {
     if (ReplayRecorder.isPlaying || NetGame.isClient)
     {
         return;
     }
     if (gearbox.gear != currentGear)
     {
         SetGet(gearbox.gear);
     }
     if (GrabManager.IsGrabbedAny(lever.gameObject) != leverGrabbed)
     {
         if (!leverGrabbed)
         {
             GrabLever();
         }
         else
         {
             ReleaseLever();
         }
     }
 }
Exemplo n.º 29
0
 private void FixedUpdate()
 {
     if (!topGrabbable && GrabManager.IsGrabbedAny(topTrack.gameObject))
     {
         GrabManager.Release(topTrack.gameObject, 1f);
     }
     if (!bottomGrabbable && GrabManager.IsGrabbedAny(bottomTrack.gameObject))
     {
         GrabManager.Release(bottomTrack.gameObject, 1f);
     }
     if (!startGrabbable && GrabManager.IsGrabbedAny(startTrack.gameObject))
     {
         GrabManager.Release(startTrack.gameObject, 1f);
     }
     if (!endGrabbable && GrabManager.IsGrabbedAny(endTrack.gameObject))
     {
         GrabManager.Release(endTrack.gameObject, 1f);
     }
     if (!ReplayRecorder.isPlaying && !NetGame.isClient && input.value != 0f && !(topTrack == null))
     {
         AdvanceArrays(input.value * speed * Time.fixedDeltaTime);
     }
 }
Exemplo n.º 30
0
    public void Respawn()
    {
        if (ReplayRecorder.isPlaying || NetGame.isClient || GrabManager.IsGrabbedAny(base.gameObject))
        {
            return;
        }
        RestartableRigid component = GetComponent <RestartableRigid>();

        if (component != null)
        {
            component.Reset(Vector3.up * respawnHeight);
            return;
        }
        base.transform.position = startPos + Vector3.up * respawnHeight;
        base.transform.rotation = startRot;
        Rigidbody component2 = GetComponent <Rigidbody>();

        if (component2 != null)
        {
            component2.velocity        = Vector3.zero;
            component2.angularVelocity = Vector3.zero;
        }
    }