コード例 #1
0
        internal void AccessoriesCopiedEvent(object sender, AccessoryCopyEventArgs e)
        {
            foreach (int slot in e.CopiedSlotIndexes)
            {
                AccessoryDynamicBoneData.RemoveAll(x => x.CoordinateIndex == (int)e.CopyDestination && x.Slot == slot);

                List <DynamicBoneData> newAccessoryDynamicBoneData = new List <DynamicBoneData>();

                foreach (var dbData in AccessoryDynamicBoneData.Where(x => x.CoordinateIndex == (int)e.CopySource && x.Slot == slot))
                {
                    var newDBData = new DynamicBoneData((int)e.CopyDestination, slot, dbData.BoneName);
                    dbData.CopyTo(newDBData);
                    newAccessoryDynamicBoneData.Add(newDBData);
                }
                AccessoryDynamicBoneData.AddRange(newAccessoryDynamicBoneData);

                if (MakerAPI.InsideAndLoaded)
                {
                    if ((int)e.CopyDestination == CurrentCoordinateIndex)
                    {
                        UI.Visible = false;
                    }
                }
            }
        }
コード例 #2
0
 public void CopyTo(DynamicBoneData target)
 {
     target.FreezeAxis         = FreezeAxis;
     target.Weight             = Weight;
     target.Damping            = Damping;
     target.Elasticity         = Elasticity;
     target.Stiffness          = Stiffness;
     target.Inertia            = Inertia;
     target.Radius             = Radius;
     target.FreezeAxisOriginal = FreezeAxisOriginal;
     target.WeightOriginal     = WeightOriginal;
     target.DampingOriginal    = DampingOriginal;
     target.ElasticityOriginal = ElasticityOriginal;
     target.StiffnessOriginal  = StiffnessOriginal;
     target.InertiaOriginal    = InertiaOriginal;
     target.RadiusOriginal     = RadiusOriginal;
 }
コード例 #3
0
        public void SetRadius(int slot, DynamicBone dynamicBone, float value)
        {
            var dbData = GetDBData(slot, dynamicBone.m_Root.name);

            if (dbData == null)
            {
                dbData = new DynamicBoneData(CurrentCoordinateIndex, slot, dynamicBone.m_Root.name);
                AccessoryDynamicBoneData.Add(dbData);
            }
            if (dbData.GetRadiusOriginal(dynamicBone) == value)
            {
                dbData.Radius = null;
            }
            else
            {
                dbData.Radius = value;
            }
            dynamicBone.m_Radius = value;
            DBsToUpdate.Add(dynamicBone);
        }
コード例 #4
0
        internal void AccessoryTransferredEvent(object sender, AccessoryTransferEventArgs e)
        {
            AccessoryDynamicBoneData.RemoveAll(x => x.CoordinateIndex == CurrentCoordinateIndex && x.Slot == e.DestinationSlotIndex);

            List <DynamicBoneData> newAccessoryDynamicBoneData = new List <DynamicBoneData>();

            foreach (var dbData in AccessoryDynamicBoneData.Where(x => x.CoordinateIndex == CurrentCoordinateIndex && x.Slot == e.SourceSlotIndex))
            {
                var newDBData = new DynamicBoneData(dbData.CoordinateIndex, e.DestinationSlotIndex, dbData.BoneName);
                dbData.CopyTo(newDBData);
                newAccessoryDynamicBoneData.Add(newDBData);
            }
            AccessoryDynamicBoneData.AddRange(newAccessoryDynamicBoneData);

            if (MakerAPI.InsideAndLoaded)
            {
                UI.Visible = false;
            }

            StartCoroutine(ApplyData());
        }