コード例 #1
0
        public void CopyFrom(RelationItem source)
        {
            this.target = source.target;

            _defs.Clear();
            foreach (RelationDef info in source._defs)
            {
                RelationDef info2 = new RelationDef();
                info2.copyFrom(info);
                _defs.Add(info2);
            }
        }
コード例 #2
0
        public void CopyFrom(Relations source)
        {
            ClearAll();

            List <RelationItem> arr = source._items;

            foreach (RelationItem ri in arr)
            {
                RelationItem item = new RelationItem(_owner);
                item.CopyFrom(ri);
                _items.Add(item);
            }
        }
コード例 #3
0
        public void Add(GObject target, RelationType relationType, bool usePercent = false)
        {
            foreach (RelationItem item in _items)
            {
                if (item.target == target)
                {
                    item.Add(relationType, usePercent);
                    return;
                }
            }
            RelationItem newItem = new RelationItem(_owner);

            newItem.target = target;
            newItem.Add(relationType, usePercent);
            _items.Add(newItem);
        }
コード例 #4
0
        public void ClearFor(GObject target)
        {
            int cnt = _items.Count;
            int i   = 0;

            while (i < cnt)
            {
                RelationItem item = _items[i];
                if (item.target == target)
                {
                    item.Dispose();
                    _items.RemoveAt(i);
                    cnt--;
                }
                else
                {
                    i++;
                }
            }
        }
コード例 #5
0
        public void Remove(GObject target, RelationType relationType)
        {
            int cnt = _items.Count;
            int i   = 0;

            while (i < cnt)
            {
                RelationItem item = _items[i];
                if (item.target == target)
                {
                    item.Remove(relationType);
                    if (item.isEmpty)
                    {
                        item.Dispose();
                        _items.RemoveAt(i);
                        cnt--;
                    }
                }
                else
                {
                    i++;
                }
            }
        }