public CSEntity _createEntity(CSEntityAttr attr) { // Assembly if (attr.m_Type == CSConst.etAssembly) { m_Assembly = new CSAssembly(); m_Assembly.m_Info = CSInfoMgr.m_AssemblyInfo; m_Assembly.ID = attr.m_InstanceId; m_Assembly.gameLogic = attr.m_LogicObj; m_Assembly.gameObject = attr.m_Obj; m_Assembly.m_Creator = this; //multiMode only m_Assembly._ColonyObj = attr.m_ColonyBase; m_Assembly.CreateData(); m_Assembly.Position = attr.m_Pos; m_Assembly.ItemID = attr.m_protoId; m_Assembly.Bound = attr.m_Bound; m_Assembly.Data.m_Alive = true; m_Assembly.InitErodeMap(attr.m_Pos, m_Assembly.Radius); m_Timer.Tick = m_Assembly.Data.m_TimeTicks; return(m_Assembly); } else { CSCommon csc = _CreateCommon(attr.m_Type); csc.ID = attr.m_InstanceId; //multiMode only csc._ColonyObj = attr.m_ColonyBase; csc.CreateData(); csc.Position = attr.m_Pos; csc.m_Power = attr.m_Power; csc.gameLogic = attr.m_LogicObj; csc.gameObject = attr.m_Obj; csc.ItemID = attr.m_protoId; csc.Bound = attr.m_Bound; csc.BaseData.m_Alive = true; m_CommonEntities.Add(csc.ID, csc); return(csc); } }