private void ADD_ROW(NFGUID self, string strRecordName, NFMsg.RecordAddRowStruct xAddStruct)
{
NFIObject go = mKernelModule.GetObject(self);
if (go == null)
{
Debug.LogError("error id" + self);
return;
}
NFIRecordManager xRecordManager = go.GetRecordManager();
Hashtable recordVecDesc = new Hashtable();
Hashtable recordVecData = new Hashtable();
for (int k = 0; k < xAddStruct.RecordIntList.Count; ++k)
{
NFMsg.RecordInt addIntStruct = (NFMsg.RecordInt)xAddStruct.RecordIntList[k];
if (addIntStruct.Col >= 0)
{
recordVecDesc[addIntStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_INT;
recordVecData[addIntStruct.Col] = addIntStruct.Data;
}
}
for (int k = 0; k < xAddStruct.RecordFloatList.Count; ++k)
{
NFMsg.RecordFloat addFloatStruct = (NFMsg.RecordFloat)xAddStruct.RecordFloatList[k];
if (addFloatStruct.Col >= 0)
{
recordVecDesc[addFloatStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_FLOAT;
recordVecData[addFloatStruct.Col] = addFloatStruct.Data;
}
}
for (int k = 0; k < xAddStruct.RecordStringList.Count; ++k)
{
NFMsg.RecordString addStringStruct = (NFMsg.RecordString)xAddStruct.RecordStringList[k];
if (addStringStruct.Col >= 0)
{
recordVecDesc[addStringStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_STRING;
if (addStringStruct.Data != null)
{
recordVecData[addStringStruct.Col] = addStringStruct.Data.ToStringUtf8();
}
else
{
recordVecData[addStringStruct.Col] = "";
}
}
}
for (int k = 0; k < xAddStruct.RecordObjectList.Count; ++k)
{
NFMsg.RecordObject addObjectStruct = (NFMsg.RecordObject)xAddStruct.RecordObjectList[k];
if (addObjectStruct.Col >= 0)
{
recordVecDesc[addObjectStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_OBJECT;
recordVecData[addObjectStruct.Col] = mHelpModule.PBToNF(addObjectStruct.Data);
}
}
for (int k = 0; k < xAddStruct.RecordVector2List.Count; ++k)
{
NFMsg.RecordVector2 addObjectStruct = (NFMsg.RecordVector2)xAddStruct.RecordVector2List[k];
if (addObjectStruct.Col >= 0)
{
recordVecDesc[addObjectStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_VECTOR2;
recordVecData[addObjectStruct.Col] = mHelpModule.PBToNF(addObjectStruct.Data);
}
}
for (int k = 0; k < xAddStruct.RecordVector3List.Count; ++k)
{
NFMsg.RecordVector3 addObjectStruct = (NFMsg.RecordVector3)xAddStruct.RecordVector3List[k];
if (addObjectStruct.Col >= 0)
{
recordVecDesc[addObjectStruct.Col] = NFDataList.VARIANT_TYPE.VTYPE_VECTOR3;
recordVecData[addObjectStruct.Col] = mHelpModule.PBToNF(addObjectStruct.Data);
}
}
NFDataList varListDesc = new NFDataList();
NFDataList varListData = new NFDataList();
for (int m = 0; m < recordVecDesc.Count; m++)
{
if (recordVecDesc.ContainsKey(m) && recordVecData.ContainsKey(m))
{
NFDataList.VARIANT_TYPE nType = (NFDataList.VARIANT_TYPE)recordVecDesc[m];
switch (nType)
{
case NFDataList.VARIANT_TYPE.VTYPE_INT:
{
varListDesc.AddInt(0);
varListData.AddInt((Int64)recordVecData[m]);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_FLOAT:
{
varListDesc.AddFloat(0.0f);
varListData.AddFloat((float)recordVecData[m]);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_STRING:
{
varListDesc.AddString("");
varListData.AddString((string)recordVecData[m]);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_OBJECT:
{
varListDesc.AddObject(new NFGUID());
varListData.AddObject((NFGUID)recordVecData[m]);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_VECTOR2:
{
varListDesc.AddVector2(new NFVector2());
varListData.AddVector2((NFVector2)recordVecData[m]);
}
break;
case NFDataList.VARIANT_TYPE.VTYPE_VECTOR3:
{
varListDesc.AddVector3(new NFVector3());
varListData.AddVector3((NFVector3)recordVecData[m]);
}
break;
default:
break;
}
}
else
{
//����
//Debug.LogException(i);
}
}
NFIRecord xRecord = xRecordManager.GetRecord(strRecordName);
if (null == xRecord)
{
Debug.Log("Empty record:" + strRecordName);
string strClassName = mKernelModule.QueryPropertyString(self, NFrame.IObject.ClassName);
NFIClass xLogicClass = mClassModule.GetElement(strClassName);
NFIRecord xStaticRecord = xLogicClass.GetRecordManager().GetRecord(strRecordName);
xRecord = xRecordManager.AddRecord(strRecordName, 512, varListDesc, xStaticRecord.GetTagData());
}
xRecord.AddRow(xAddStruct.Row, varListData);
}