示例#1
0
 private void onPropUsed()
 {
     SpawnedInstance = (IsInstance ? PrefabToSpawn : Object.Instantiate(PrefabToSpawn));
     if (ParentToUser)
     {
         SpawnedInstance.transform.SetParent(prop.PropUserRef.transform, worldPositionStays: false);
     }
     else
     {
         SpawnedInstance.transform.position = prop.OnUseDestination;
         CameraCullingMaskHelper.SetLayerRecursive(SpawnedInstance.transform, "AllPlayerInteractibles");
     }
     SpawnedInstance.InstanceId         = prop.ExperienceInstanceId;
     SpawnedInstance.OwnerId            = prop.OwnerId;
     SpawnedInstance.IsOwnerLocalPlayer = prop.IsOwnerLocalPlayer;
     SpawnedInstance.PropDef            = prop.PropDef;
     if (HideInitially)
     {
         SpawnedInstance.gameObject.SetActive(value: false);
     }
     else
     {
         SpawnedInstance.StartExperience();
     }
     if (ApplyUserForwardVect)
     {
         SpawnedInstance.transform.forward = prop.PropUserRef.transform.forward;
     }
 }
        private void OnPropEffectSpawned(string path, GameObject prefab)
        {
            GameObject gameObject = Object.Instantiate(prefab);

            if (ParentToUser && prop.PropUserRef != null)
            {
                gameObject.transform.SetParent(prop.PropUserRef.transform, worldPositionStays: false);
                CameraCullingMaskHelper.SetLayerRecursive(gameObject.transform, LayerMask.LayerToName(prop.PropUserRef.transform.gameObject.layer));
            }
        }
示例#3
0
 private void OnParticlesLoaded(string key, GameObject asset)
 {
     if (!base.gameObject.IsDestroyed())
     {
         GameObject gameObject = Object.Instantiate(asset);
         gameObject.transform.SetParent(base.transform, worldPositionStays: false);
         CameraCullingMaskHelper.SetLayerRecursive(gameObject.transform, LayerMask.LayerToName(base.gameObject.layer));
         if (isLocalPlayer)
         {
             StartCoroutine(DelayResetStatus(15f));
         }
     }
 }
示例#4
0
        private void spawnProjectile()
        {
            PropProjectile propProjectile = UnityEngine.Object.Instantiate(ProjectilePrefab);

            CameraCullingMaskHelper.SetLayerRecursive(propProjectile.transform, "AllPlayerInteractibles");
            propProjectile.WorldStart        = prop.transform.position;
            propProjectile.WorldDestination  = prop.OnUseDestination;
            propProjectile.transform.forward = prop.PropUserRef.transform.forward;
            if (this.ProjectileInstanceCreated != null)
            {
                this.ProjectileInstanceCreated(propProjectile);
            }
        }
示例#5
0
 private void onPropAccessoryLoaded(string path, GameObject prefab)
 {
     if (base.gameObject.IsDestroyed())
     {
         return;
     }
     if (prefab != null)
     {
         propAccessory = UnityEngine.Object.Instantiate(prefab);
         Prop component = GetComponent <Prop>();
         if (component != null && component.PropUserRef != null)
         {
             Rig component2 = component.PropUserRef.GetComponent <Rig>();
             parentPropAccessoryToTargetBone(component2);
             CameraCullingMaskHelper.SetLayerRecursive(component.transform, LayerMask.LayerToName(component.gameObject.layer));
         }
     }
     isLoadingComplete = true;
 }
示例#6
0
        private IEnumerator performPropRetrieve(Prop propToRetrieve, Vector3 immediateUseDestination)
        {
            while (anim != null && anim.GetCurrentAnimatorStateInfo(1).fullPathHash != AnimationHashes.States.TorsoIdle)
            {
                yield return(null);
            }
            if (anim == null || base.gameObject.IsDestroyed() || Prop != null)
            {
                yield break;
            }
            Prop = propToRetrieve;
            parentPropToTargetBone(Prop);
            Prop.PropUserRef = this;
            CameraCullingMaskHelper.SetLayerRecursive(Prop.transform, LayerMask.LayerToName(base.gameObject.layer));
            Prop.gameObject.SetActive(value: true);
            ShowPropControls();
            List <PropAccessory> accessories = new List <PropAccessory>(propToRetrieve.GetComponentsInChildren <PropAccessory>());
            float MAX_WAIT_TIME = 1f;
            float time          = Time.time;

            while (accessories.Count > 0)
            {
                yield return(null);

                if ((Time.time - time).CompareTo(MAX_WAIT_TIME) > 0)
                {
                    break;
                }
                for (int num = accessories.Count - 1; num >= 0; num--)
                {
                    if (accessories[num].IsLoadingComplete)
                    {
                        accessories.RemoveAt(num);
                    }
                }
            }
            if (Prop.AnimReplacementController != null)
            {
                anim.runtimeAnimatorController = Prop.AnimReplacementController;
            }
            else if (Prop.AnimOverrideController != null)
            {
                anim.runtimeAnimatorController = Prop.AnimOverrideController;
            }
            else
            {
                anim.runtimeAnimatorController = defaultAnimatorController;
            }
            setInteractionButtonActive();
            if (this.EPropSpawned != null)
            {
                this.EPropSpawned(Prop);
            }
            if (Prop.UseOnceImmediately)
            {
                UsePropAtDestination(immediateUseDestination);
                if (Prop.StoreAfterUse)
                {
                    StoreProp();
                }
            }
            StartUserPropMode(PropMode.Retrieve, waitForModeAnimCompletion: true);
            Prop.SetAnimatorMode(PropMode.Retrieve, OnPropRetrieveCompleted);
            if (Prop.PropDef.PropType == PropDefinition.PropTypes.InteractiveObject && Prop.IsOwnerLocalPlayer)
            {
                Service.Get <ICPSwrveService>().Action("game.interactive_object", Prop.PropDef.name, "start");
            }
        }