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