/** * @private */ protected void _BuildSlots(BuildArmaturePackage dataPackage, Armature armature) { var currentSkin = dataPackage.skin; var defaultSkin = dataPackage.armature.defaultSkin; if (currentSkin == null || defaultSkin == null) { return; } Dictionary <string, List <DisplayData> > skinSlots = new Dictionary <string, List <DisplayData> >(); foreach (var key in defaultSkin.displays.Keys) { var displays = defaultSkin.GetDisplays(key); skinSlots[key] = displays; } if (currentSkin != defaultSkin) { foreach (var k in currentSkin.displays.Keys) { var displays = currentSkin.GetDisplays(k); skinSlots[k] = displays; } } foreach (var slotData in dataPackage.armature.sortedSlots) { var displays = skinSlots.ContainsKey(slotData.name)? skinSlots[slotData.name] : null; var slot = this._BuildSlot(dataPackage, slotData, displays, armature); armature.AddSlot(slot, slotData.parent.name); if (displays != null) { var displayList = new List <object>(); // for (const displayData of displays) { for (int i = 0, l = displays.Count; i < l; ++i) { var displayData = displays[i]; if (displayData != null) { displayList.Add(this._GetSlotDisplay(dataPackage, displayData, null, slot)); } else { displayList.Add(null); } } slot._SetDisplayList(displayList); } slot._SetDisplayIndex(slotData.displayIndex, true); } }
static int AddSlot(IntPtr L) { try { ToLua.CheckArgsCount(L, 3); DragonBones.Armature obj = (DragonBones.Armature)ToLua.CheckObject(L, 1, typeof(DragonBones.Armature)); DragonBones.Slot arg0 = (DragonBones.Slot)ToLua.CheckObject(L, 2, typeof(DragonBones.Slot)); string arg1 = ToLua.CheckString(L, 3); obj.AddSlot(arg0, arg1); return(0); } catch (Exception e) { return(LuaDLL.toluaL_exception(L, e)); } }
/** * @private */ protected void _buildSlots(BuildArmaturePackage dataPackage, Armature armature) { var currentSkin = dataPackage.skin; var defaultSkin = dataPackage.armature.defaultSkin; var slotDisplayDataSetMap = new Dictionary <string, SlotDisplayDataSet>(); foreach (var slotDisplayDataSet in defaultSkin.slots.Values) { slotDisplayDataSetMap[slotDisplayDataSet.slot.name] = slotDisplayDataSet; } if (currentSkin != defaultSkin) { foreach (var slotDisplayDataSet in currentSkin.slots.Values) { slotDisplayDataSetMap[slotDisplayDataSet.slot.name] = slotDisplayDataSet; } } foreach (var slotData in dataPackage.armature.sortedSlots) { if (!slotDisplayDataSetMap.ContainsKey(slotData.name)) { continue; } var slotDisplayDataSet = slotDisplayDataSetMap[slotData.name]; var slot = _generateSlot(dataPackage, slotDisplayDataSet, armature); if (slot != null) { slot._zOrder = slotData.zOrder; slot._displayDataSet = slotDisplayDataSet; slot._setDisplayIndex(slotData.displayIndex); slot._setBlendMode(slotData.blendMode); slot._setColor(slotData.color); armature.AddSlot(slot, slotData.parent.name); } } }
/** * @private */ protected void _buildSlots(BuildArmaturePackage dataPackage, Armature armature) { var currentSkin = dataPackage.skin; var defaultSkin = dataPackage.armature.defaultSkin; var skinSlotDatas = new Dictionary <string, SkinSlotData>(); foreach (var skinSlotData in defaultSkin.slots.Values) { skinSlotDatas[skinSlotData.slot.name] = skinSlotData; } if (currentSkin != defaultSkin) { foreach (var skinSlotData in currentSkin.slots.Values) { skinSlotDatas[skinSlotData.slot.name] = skinSlotData; } } var slots = dataPackage.armature.sortedSlots; for (int i = 0, l = slots.Count; i < l; ++i) { var slotData = slots[i]; if (!skinSlotDatas.ContainsKey(slotData.name)) { continue; } var skinSlotData = skinSlotDatas[slotData.name]; var slot = _generateSlot(dataPackage, skinSlotData, armature); if (slot != null) { armature.AddSlot(slot, slotData.parent.name); slot._setDisplayIndex(slotData.displayIndex); } } }