/// <summary> /// 是否数据一致 /// </summary> protected override bool toDataEquals(BaseData data) { UnitFuncData mData = (UnitFuncData)data; if (mData.itemDic != null) { if (this.itemDic == null) { return(false); } if (!this.itemDic.dataEquals(mData.itemDic)) { return(false); } } else { if (this.itemDic != null) { return(false); } } return(true); }
/// <summary> /// 复制(潜拷贝) /// </summary> protected override void toShadowCopy(BaseData data) { if (!(data is UnitFuncData)) { return; } UnitFuncData mData = (UnitFuncData)data; this.itemDic = mData.itemDic; }
/// <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 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 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; }
/// <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; } }
/// <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; } }