예제 #1
0
        /// <summary>
        /// Removes a body part from the container, including its sprite and Net ID
        /// </summary>
        /// <param name="implant">Body Part to remove</param>
        public void RemoveSpritesNID(BodyPart implant)
        {
            foreach (var BodyPart in implant.GetAllBodyPartsAndItself(new List <BodyPart>()))
            {
                if (ImplantBaseSpritesDictionary.ContainsKey(BodyPart) == false)
                {
                    continue;
                }

                var oldone = ImplantBaseSpritesDictionary[BodyPart];
                foreach (var Sprite in oldone)
                {
                    InternalNetIDs.Remove(Sprite.GetComponent <NetworkIdentity>().netId);
                    if (BodyPart.IsSurface)
                    {
                        PlayerSprites.SurfaceSprite.Remove(Sprite);
                    }

                    BodyPart.RelatedPresentSprites.Remove(Sprite);
                    PlayerSprites.Addedbodypart.Remove(Sprite);
                    Destroy(Sprite.gameObject);
                }
                RootBodyPartController.RequestUpdate(this);
                ImplantBaseSpritesDictionary.Remove(BodyPart);
            }
        }
예제 #2
0
        /// <summary>
        /// Takes a list and adds this body part to it, all body parts contained within this body part, as well
        /// as all body parts contained within those body parts, etc.
        /// </summary>
        /// <param name="ReturnList">List to be added to</param>
        /// <returns>The list with added body parts</returns>
        public List <BodyPart> GetAllBodyPartsAndItself(List <BodyPart> ReturnList)
        {
            ReturnList.Add(this);
            foreach (var BodyPart in ContainBodyParts)
            {
                BodyPart.GetAllBodyPartsAndItself(ReturnList);
            }

            return(ReturnList);
        }