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