コード例 #1
0
        /**
         * @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);
            }
        }
コード例 #2
0
 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));
     }
 }
コード例 #3
0
        /**
         * @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);
                }
            }
        }
コード例 #4
0
        /**
         * @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);
                }
            }
        }