/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is UnitInfoData)) { return; } UnitInfoData mData = (UnitInfoData)data; if (mData.identity != null) { this.identity = (UnitIdentityData)mData.identity.clone(); } else { this.identity = null; nullObjError("identity"); } if (mData.avatar != null) { this.avatar = (UnitAvatarData)mData.avatar.clone(); } else { this.avatar = null; } }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); BaseData identityT = stream.readDataFullNotNull(); if (identityT != null) { if (identityT is UnitIdentityData) { this.identity = (UnitIdentityData)identityT; } else { this.identity = new UnitIdentityData(); if (!(identityT.GetType().IsAssignableFrom(typeof(UnitIdentityData)))) { stream.throwTypeReadError(typeof(UnitIdentityData), identityT.GetType()); } this.identity.shadowCopy(identityT); } } else { this.identity = null; } if (stream.readBoolean()) { BaseData avatarT = stream.readDataFullNotNull(); if (avatarT != null) { if (avatarT is UnitAvatarData) { this.avatar = (UnitAvatarData)avatarT; } else { this.avatar = new UnitAvatarData(); if (!(avatarT.GetType().IsAssignableFrom(typeof(UnitAvatarData)))) { stream.throwTypeReadError(typeof(UnitAvatarData), avatarT.GetType()); } this.avatar.shadowCopy(avatarT); } } else { this.avatar = null; } } else { this.avatar = null; } stream.endReadObj(); }
/// <summary> /// 初始化初值 /// </summary> public override void initDefault() { this.avatar = new UnitAvatarData(); this.avatar.initDefault(); this.fight = new UnitFightData(); this.fight.initDefault(); this.equips = new EquipContainerData(); this.equips.initDefault(); }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.id = 0; this.level = 0; this.avatar = null; this.fight = null; this.equips = null; this.mIndex = 0; this.isWorking = false; }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is UnitInfoData)) { return; } UnitInfoData mData = (UnitInfoData)data; this.identity = mData.identity; this.avatar = mData.avatar; }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is UnitAvatarData)) { return; } UnitAvatarData mData = (UnitAvatarData)data; this.modelID = mData.modelID; this.parts = mData.parts; }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is UnitAvatarData)) { return; } UnitAvatarData mData = (UnitAvatarData)data; this.modelID = mData.modelID; if (mData.parts != null) { if (this.parts != null) { this.parts.clear(); this.parts.ensureCapacity(mData.parts.size()); } else { this.parts = new IntIntMap(mData.parts.size()); } IntIntMap partsT = this.parts; if (!mData.parts.isEmpty()) { int partsKFreeValue = mData.parts.getFreeValue(); int[] partsKKeys = mData.parts.getKeys(); int[] partsVValues = mData.parts.getValues(); for (int partsKI = partsKKeys.Length - 1; partsKI >= 0; --partsKI) { int partsK = partsKKeys[partsKI]; if (partsK != partsKFreeValue) { int partsV = partsVValues[partsKI]; int partsW; int partsU; partsW = partsK; partsU = partsV; partsT.put(partsW, partsU); } } } } else { this.parts = null; nullObjError("parts"); } }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.instanceID = 0; this.identity = null; this.normal = null; this.pos = null; this.avatar = null; this.move = null; this.fight = null; this.fightEx = null; this.ai = null; this.func = null; }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { this.identity = (UnitIdentityData)stream.readDataSimpleNotNull(); if (stream.readBoolean()) { this.avatar = (UnitAvatarData)stream.readDataSimpleNotNull(); } else { this.avatar = null; } }
/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { UnitAvatarData mData = (UnitAvatarData)data; if (this.modelID != mData.modelID) { return(false); } if (mData.parts != null) { if (this.parts == null) { return(false); } if (this.parts.size() != mData.parts.size()) { return(false); } IntIntMap partsR = mData.parts; if (!this.parts.isEmpty()) { int partsKFreeValue = this.parts.getFreeValue(); int[] partsKKeys = this.parts.getKeys(); int[] partsVValues = this.parts.getValues(); for (int partsKI = partsKKeys.Length - 1; partsKI >= 0; --partsKI) { int partsK = partsKKeys[partsKI]; if (partsK != partsKFreeValue) { int partsV = partsVValues[partsKI]; int partsU = partsR.get(partsK); if (partsV != partsU) { return(false); } } } } } else { if (this.parts != null) { return(false); } } return(true); }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { this.id = stream.readInt(); this.level = stream.readInt(); this.avatar = (UnitAvatarData)stream.readDataSimpleNotNull(); this.fight = (UnitFightData)stream.readDataSimpleNotNull(); this.equips = (EquipContainerData)stream.readDataSimpleNotNull(); this.mIndex = stream.readInt(); this.isWorking = stream.readBoolean(); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is MUnitUseData)) { return; } MUnitUseData mData = (MUnitUseData)data; this.id = mData.id; this.level = mData.level; if (mData.avatar != null) { this.avatar = (UnitAvatarData)mData.avatar.clone(); } else { this.avatar = null; nullObjError("avatar"); } if (mData.fight != null) { this.fight = (UnitFightData)mData.fight.clone(); } else { this.fight = null; nullObjError("fight"); } if (mData.equips != null) { this.equips = (EquipContainerData)mData.equips.clone(); } else { this.equips = null; nullObjError("equips"); } this.mIndex = mData.mIndex; this.isWorking = mData.isWorking; }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is MUnitUseData)) { return; } MUnitUseData mData = (MUnitUseData)data; this.id = mData.id; this.level = mData.level; this.avatar = mData.avatar; this.fight = mData.fight; this.equips = mData.equips; this.mIndex = mData.mIndex; this.isWorking = mData.isWorking; }
/** 设置数据 */ public void setData(UnitFightData fightData, UnitAvatarData facadeData) { if ((_data = fightData) != null) { status.setData(fightData.status); attribute.setData(fightData.attributes); cd.setData(fightData.cds); buff.setData(fightData.buffs); avatar.setData(facadeData); } else { status.setData(null); attribute.setData(null); cd.setData(null); buff.setData(null); avatar.setData(null); } }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is UnitData)) { return; } UnitData mData = (UnitData)data; this.instanceID = mData.instanceID; this.identity = mData.identity; this.normal = mData.normal; this.pos = mData.pos; this.avatar = mData.avatar; this.move = mData.move; this.fight = mData.fight; this.fightEx = mData.fightEx; this.ai = mData.ai; this.func = mData.func; }
public void setData(UnitAvatarData data) { _data = data; if (data != null) { _lastDispatchModelID = data.modelID; int[] nowParts = _nowParts; IntIntMap[] normalPartsDic = _normalPartsDic; (_dataParts = data.parts).forEach((k, v) => { IntIntMap map = new IntIntMap(); map.put(v, 1); normalPartsDic[k] = map; nowParts[k] = v; }); } else { _dataParts = null; } }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); this.instanceID = stream.readInt(); BaseData identityT = stream.readDataFullNotNull(); if (identityT != null) { if (identityT is UnitIdentityData) { this.identity = (UnitIdentityData)identityT; } else { this.identity = new UnitIdentityData(); if (!(identityT.GetType().IsAssignableFrom(typeof(UnitIdentityData)))) { stream.throwTypeReadError(typeof(UnitIdentityData), identityT.GetType()); } this.identity.shadowCopy(identityT); } } else { this.identity = null; } BaseData normalT = stream.readDataFullNotNull(); if (normalT != null) { if (normalT is UnitNormalData) { this.normal = (UnitNormalData)normalT; } else { this.normal = new UnitNormalData(); if (!(normalT.GetType().IsAssignableFrom(typeof(UnitNormalData)))) { stream.throwTypeReadError(typeof(UnitNormalData), normalT.GetType()); } this.normal.shadowCopy(normalT); } } else { this.normal = null; } if (stream.readBoolean()) { BaseData posT = stream.readDataFullNotNull(); if (posT != null) { if (posT is UnitPosData) { this.pos = (UnitPosData)posT; } else { this.pos = new UnitPosData(); if (!(posT.GetType().IsAssignableFrom(typeof(UnitPosData)))) { stream.throwTypeReadError(typeof(UnitPosData), posT.GetType()); } this.pos.shadowCopy(posT); } } else { this.pos = null; } } else { this.pos = null; } if (stream.readBoolean()) { BaseData avatarT = stream.readDataFullNotNull(); if (avatarT != null) { if (avatarT is UnitAvatarData) { this.avatar = (UnitAvatarData)avatarT; } else { this.avatar = new UnitAvatarData(); if (!(avatarT.GetType().IsAssignableFrom(typeof(UnitAvatarData)))) { stream.throwTypeReadError(typeof(UnitAvatarData), avatarT.GetType()); } this.avatar.shadowCopy(avatarT); } } else { this.avatar = null; } } else { this.avatar = null; } if (stream.readBoolean()) { BaseData moveT = stream.readDataFullNotNull(); if (moveT != null) { if (moveT is UnitMoveData) { this.move = (UnitMoveData)moveT; } else { this.move = new UnitMoveData(); if (!(moveT.GetType().IsAssignableFrom(typeof(UnitMoveData)))) { stream.throwTypeReadError(typeof(UnitMoveData), moveT.GetType()); } this.move.shadowCopy(moveT); } } else { this.move = null; } } else { this.move = null; } if (stream.readBoolean()) { BaseData fightT = stream.readDataFullNotNull(); if (fightT != null) { if (fightT is UnitFightData) { this.fight = (UnitFightData)fightT; } else { this.fight = new UnitFightData(); if (!(fightT.GetType().IsAssignableFrom(typeof(UnitFightData)))) { stream.throwTypeReadError(typeof(UnitFightData), fightT.GetType()); } this.fight.shadowCopy(fightT); } } else { this.fight = null; } } else { this.fight = null; } if (stream.readBoolean()) { BaseData fightExT = stream.readDataFullNotNull(); if (fightExT != null) { if (fightExT is UnitFightExData) { this.fightEx = (UnitFightExData)fightExT; } else { this.fightEx = new UnitFightExData(); if (!(fightExT.GetType().IsAssignableFrom(typeof(UnitFightExData)))) { stream.throwTypeReadError(typeof(UnitFightExData), fightExT.GetType()); } this.fightEx.shadowCopy(fightExT); } } else { this.fightEx = null; } } else { this.fightEx = null; } if (stream.readBoolean()) { BaseData aiT = stream.readDataFullNotNull(); if (aiT != null) { if (aiT is UnitAIData) { this.ai = (UnitAIData)aiT; } else { this.ai = new UnitAIData(); if (!(aiT.GetType().IsAssignableFrom(typeof(UnitAIData)))) { stream.throwTypeReadError(typeof(UnitAIData), aiT.GetType()); } this.ai.shadowCopy(aiT); } } else { this.ai = null; } } else { this.ai = null; } if (stream.readBoolean()) { BaseData funcT = stream.readDataFullNotNull(); if (funcT != null) { if (funcT is UnitFuncData) { this.func = (UnitFuncData)funcT; } else { this.func = new UnitFuncData(); if (!(funcT.GetType().IsAssignableFrom(typeof(UnitFuncData)))) { stream.throwTypeReadError(typeof(UnitFuncData), funcT.GetType()); } this.func.shadowCopy(funcT); } } else { this.func = null; } } else { this.func = null; } stream.endReadObj(); }
/// <summary> /// 复制(深拷贝) /// </summary> protected override void toCopy(BaseData data) { if (!(data is UnitData)) { return; } UnitData mData = (UnitData)data; this.instanceID = mData.instanceID; if (mData.identity != null) { this.identity = (UnitIdentityData)mData.identity.clone(); } else { this.identity = null; nullObjError("identity"); } if (mData.normal != null) { this.normal = (UnitNormalData)mData.normal.clone(); } else { this.normal = null; nullObjError("normal"); } if (mData.pos != null) { this.pos = (UnitPosData)mData.pos.clone(); } else { this.pos = null; } if (mData.avatar != null) { this.avatar = (UnitAvatarData)mData.avatar.clone(); } else { this.avatar = null; } if (mData.move != null) { this.move = (UnitMoveData)mData.move.clone(); } else { this.move = null; } if (mData.fight != null) { this.fight = (UnitFightData)mData.fight.clone(); } else { this.fight = null; } if (mData.fightEx != null) { this.fightEx = (UnitFightExData)mData.fightEx.clone(); } else { this.fightEx = null; } if (mData.ai != null) { this.ai = (UnitAIData)mData.ai.clone(); } else { this.ai = null; } if (mData.func != null) { this.func = (UnitFuncData)mData.func.clone(); } else { this.func = null; } }
/// <summary> /// 回池 /// </summary> protected override void toRelease(DataPool pool) { this.identity = null; this.avatar = null; }
/// <summary> /// 读取字节流(完整版) /// </summary> protected override void toReadBytesFull(BytesReadStream stream) { stream.startReadObj(); this.id = stream.readInt(); this.level = stream.readInt(); BaseData avatarT = stream.readDataFullNotNull(); if (avatarT != null) { if (avatarT is UnitAvatarData) { this.avatar = (UnitAvatarData)avatarT; } else { this.avatar = new UnitAvatarData(); if (!(avatarT.GetType().IsAssignableFrom(typeof(UnitAvatarData)))) { stream.throwTypeReadError(typeof(UnitAvatarData), avatarT.GetType()); } this.avatar.shadowCopy(avatarT); } } else { this.avatar = null; } BaseData fightT = stream.readDataFullNotNull(); if (fightT != null) { if (fightT is UnitFightData) { this.fight = (UnitFightData)fightT; } else { this.fight = new UnitFightData(); if (!(fightT.GetType().IsAssignableFrom(typeof(UnitFightData)))) { stream.throwTypeReadError(typeof(UnitFightData), fightT.GetType()); } this.fight.shadowCopy(fightT); } } else { this.fight = null; } BaseData equipsT = stream.readDataFullNotNull(); if (equipsT != null) { if (equipsT is EquipContainerData) { this.equips = (EquipContainerData)equipsT; } else { this.equips = new EquipContainerData(); if (!(equipsT.GetType().IsAssignableFrom(typeof(EquipContainerData)))) { stream.throwTypeReadError(typeof(EquipContainerData), equipsT.GetType()); } this.equips.shadowCopy(equipsT); } } else { this.equips = null; } this.mIndex = stream.readInt(); this.isWorking = stream.readBoolean(); stream.endReadObj(); }
/// <summary> /// 读取字节流(简版) /// </summary> protected override void toReadBytesSimple(BytesReadStream stream) { this.instanceID = stream.readInt(); this.identity = (UnitIdentityData)stream.readDataSimpleNotNull(); this.normal = (UnitNormalData)stream.readDataSimpleNotNull(); if (stream.readBoolean()) { this.pos = (UnitPosData)stream.readDataSimpleNotNull(); } else { this.pos = null; } if (stream.readBoolean()) { this.avatar = (UnitAvatarData)stream.readDataSimpleNotNull(); } else { this.avatar = null; } if (stream.readBoolean()) { this.move = (UnitMoveData)stream.readDataSimpleNotNull(); } else { this.move = null; } if (stream.readBoolean()) { this.fight = (UnitFightData)stream.readDataSimpleNotNull(); } else { this.fight = null; } if (stream.readBoolean()) { this.fightEx = (UnitFightExData)stream.readDataSimpleNotNull(); } else { this.fightEx = null; } if (stream.readBoolean()) { this.ai = (UnitAIData)stream.readDataSimpleNotNull(); } else { this.ai = null; } if (stream.readBoolean()) { this.func = (UnitFuncData)stream.readDataSimpleNotNull(); } else { this.func = null; } }