/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); if (stream.readBoolean()) { BaseData itemDicT = stream.readDataFullNotNull(); if (itemDicT != null) { if (itemDicT is ItemDicContainerData) { this.itemDic = (ItemDicContainerData)itemDicT; } else { this.itemDic = new ItemDicContainerData(); if (!(itemDicT.GetType().IsAssignableFrom(typeof(ItemDicContainerData)))) { stream.throwTypeReadError(typeof(ItemDicContainerData), itemDicT.GetType()); } this.itemDic.shadowCopy(itemDicT); } } else { this.itemDic = null; } } else { this.itemDic = null; } stream.endReadObj(); }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { if (stream.readBoolean()) { this.itemDic = (ItemDicContainerData)stream.readDataSimpleNotNull(); } else { this.itemDic = null; } }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is UnitFuncData)) { return; } UnitFuncData mData = (UnitFuncData)data; this.itemDic = mData.itemDic; }
protected override void toSetData(FuncToolData data) { base.toSetData(data); _data = (ItemDicContainerData)data; _showListDirty = true; _data = (ItemDicContainerData)data; _dic = _data.items; //_gridNum=_data.gridNum; _gridNum = 0; //TODO:之后实现完整gridNum }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { base.toShadowCopy(data); if (!(data is ItemDicContainerData)) { return; } ItemDicContainerData mData = (ItemDicContainerData)data; this.items = mData.items; this.serverItemIndex = mData.serverItemIndex; this.clientItemIndex = mData.clientItemIndex; }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is UnitFuncData)) { return; } UnitFuncData mData = (UnitFuncData)data; if (mData.itemDic != null) { this.itemDic = (ItemDicContainerData)mData.itemDic.clone(); } else { this.itemDic = null; } }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.itemDic = null; }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { if (!base.toDataEquals(data)) { return(false); } ItemDicContainerData mData = (ItemDicContainerData)data; if (mData.items != null) { if (this.items == null) { return(false); } if (this.items.size() != mData.items.size()) { return(false); } IntObjectMap <ItemData> itemsR = mData.items; if (!this.items.isEmpty()) { int itemsKFreeValue = this.items.getFreeValue(); int[] itemsKKeys = this.items.getKeys(); ItemData[] itemsVValues = this.items.getValues(); for (int itemsKI = itemsKKeys.Length - 1; itemsKI >= 0; --itemsKI) { int itemsK = itemsKKeys[itemsKI]; if (itemsK != itemsKFreeValue) { ItemData itemsV = itemsVValues[itemsKI]; ItemData itemsU = itemsR.get(itemsK); if (itemsU != null) { if (itemsV == null) { return(false); } if (!itemsV.dataEquals(itemsU)) { return(false); } } else { if (itemsV != null) { return(false); } } } } } } else { if (this.items != null) { return(false); } } if (this.serverItemIndex != mData.serverItemIndex) { return(false); } if (this.clientItemIndex != mData.clientItemIndex) { return(false); } return(true); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { base.toCopy(data); if (!(data is ItemDicContainerData)) { return; } ItemDicContainerData mData = (ItemDicContainerData)data; if (mData.items != null) { if (this.items != null) { this.items.clear(); this.items.ensureCapacity(mData.items.size()); } else { this.items = new IntObjectMap <ItemData>(mData.items.size()); } IntObjectMap <ItemData> itemsT = this.items; if (!mData.items.isEmpty()) { int itemsKFreeValue = mData.items.getFreeValue(); int[] itemsKKeys = mData.items.getKeys(); ItemData[] itemsVValues = mData.items.getValues(); for (int itemsKI = itemsKKeys.Length - 1; itemsKI >= 0; --itemsKI) { int itemsK = itemsKKeys[itemsKI]; if (itemsK != itemsKFreeValue) { ItemData itemsV = itemsVValues[itemsKI]; int itemsW; ItemData itemsU; itemsW = itemsK; if (itemsV != null) { itemsU = (ItemData)itemsV.clone(); } else { itemsU = null; nullObjError("itemsU"); } itemsT.put(itemsW, itemsU); } } } } else { this.items = null; nullObjError("items"); } this.serverItemIndex = mData.serverItemIndex; this.clientItemIndex = mData.clientItemIndex; }