Beispiel #1
0
 // Token: 0x0600357D RID: 13693 RVA: 0x000C4494 File Offset: 0x000C2694
 protected override bool InstallToViewModel(ref global::ModViewModelAddArgs a)
 {
     if (this.isMesh && !a.isMesh)
     {
         return(base.InstallToViewModel(ref a));
     }
     if (!this.isMesh && a.isMesh)
     {
         return(base.InstallToViewModel(ref a));
     }
     if (a.vm == null)
     {
         Debug.Log("Viewmodel null for item attachment...");
     }
     if (this.attachObjectVM != null)
     {
         global::WeaponModRep weaponModRep = (global::WeaponModRep)a.modRep;
         GameObject           gameObject;
         if (a.isMesh)
         {
             global::Socket socketByName = this.GetSocketByName(a.vm, this.attachSocketName);
             gameObject = (Object.Instantiate(this.attachObjectVM, socketByName.offset, Quaternion.Euler(socketByName.eulerRotate)) as GameObject);
             gameObject.transform.parent           = socketByName.parent;
             gameObject.transform.localPosition    = socketByName.offset;
             gameObject.transform.localEulerAngles = socketByName.eulerRotate;
         }
         else
         {
             gameObject = this.GetSocketByName(a.vm, this.attachSocketName).InstantiateAsChild(this.attachObjectVM, true);
         }
         gameObject.name = this.attachObjectVM.name;
         weaponModRep.SetAttached(gameObject, true);
         global::ViewModelAttachment component = gameObject.GetComponent <global::ViewModelAttachment>();
         if (component)
         {
             if (this.socketOverrideName != string.Empty && component is global::VMAttachmentSocketOverride)
             {
                 global::VMAttachmentSocketOverride vmattachmentSocketOverride = (global::VMAttachmentSocketOverride)component;
                 this.SetSocketByname(a.vm, this.socketOverrideName, vmattachmentSocketOverride.socketOverride);
                 if (this.modifyZoomOffset)
                 {
                     a.vm.punchScalar  = this.punchScalar;
                     a.vm.zoomOffset.z = this.zoomOffsetZ;
                 }
             }
             component.viewModel = a.vm;
         }
     }
     return(true);
 }
Beispiel #2
0
 // Token: 0x0600357E RID: 13694 RVA: 0x000C4658 File Offset: 0x000C2858
 protected override void UninstallFromViewModel(ref global::ModViewModelRemoveArgs a)
 {
     if (this.attachObjectVM != null)
     {
         global::WeaponModRep        weaponModRep = (global::WeaponModRep)a.modRep;
         GameObject                  attached     = weaponModRep.attached;
         global::ViewModelAttachment component    = attached.GetComponent <global::ViewModelAttachment>();
         if (component)
         {
             component.viewModel = null;
         }
         global::Socket socketByName = this.GetSocketByName(a.vm, this.attachSocketName);
         Transform      transform    = socketByName.attachParent;
         if (transform == null)
         {
             transform = socketByName.parent;
         }
         if (attached)
         {
             weaponModRep.SetAttached(null, true);
             Object.Destroy(attached.gameObject);
         }
     }
 }