Exemplo n.º 1
0
    protected override void UninstallFromItemModRepresentation(ItemModRepresentation rep)
    {
        WeaponModRep weaponModRep = (WeaponModRep)rep;
        GameObject   gameObject   = weaponModRep.attached;

        if (gameObject)
        {
            weaponModRep.SetAttached(null, false);
            UnityEngine.Object.Destroy(gameObject);
        }
        base.UninstallFromItemModRepresentation(rep);
    }
Exemplo n.º 2
0
    protected override void UninstallFromItemModRepresentation(ItemModRepresentation rep)
    {
        WeaponModRep rep2     = (WeaponModRep)rep;
        GameObject   attached = rep2.attached;

        if (attached != null)
        {
            rep2.SetAttached(null, false);
            Object.Destroy(attached);
        }
        base.UninstallFromItemModRepresentation(rep);
    }
Exemplo n.º 3
0
    protected override bool InstallToViewModel(ref ModViewModelAddArgs a)
    {
        GameObject gameObject;

        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)
        {
            WeaponModRep weaponModRep = (WeaponModRep)a.modRep;
            if (!a.isMesh)
            {
                gameObject = this.GetSocketByName(a.vm, this.attachSocketName).InstantiateAsChild(this.attachObjectVM, true);
            }
            else
            {
                Socket socketByName = this.GetSocketByName(a.vm, this.attachSocketName);
                gameObject = UnityEngine.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;
            }
            gameObject.name = this.attachObjectVM.name;
            weaponModRep.SetAttached(gameObject, true);
            ViewModelAttachment component = gameObject.GetComponent <ViewModelAttachment>();
            if (component)
            {
                if (this.socketOverrideName != string.Empty && component is VMAttachmentSocketOverride)
                {
                    VMAttachmentSocketOverride vMAttachmentSocketOverride = (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);
    }
Exemplo n.º 4
0
 protected override void UninstallFromViewModel(ref ModViewModelRemoveArgs a)
 {
     if (this.attachObjectVM != null)
     {
         WeaponModRep        weaponModRep = (WeaponModRep)a.modRep;
         GameObject          gameObject   = weaponModRep.attached;
         ViewModelAttachment component    = gameObject.GetComponent <ViewModelAttachment>();
         if (component)
         {
             component.viewModel = null;
         }
         Socket socketByName = this.GetSocketByName(a.vm, this.attachSocketName);
         if (socketByName.attachParent == null)
         {
             Transform transforms = socketByName.parent;
         }
         if (gameObject)
         {
             weaponModRep.SetAttached(null, true);
             UnityEngine.Object.Destroy(gameObject.gameObject);
         }
     }
 }