private void BuildingAIRenderMesh(RenderManager.CameraInfo cameraInfo, ushort buildingID, ref Building data, BuildingInfo info, ref RenderManager.Instance instance) { if (info.m_overrideMainRenderer != null) { InstanceID empty = InstanceID.Empty; empty.Building = buildingID; BuildingInfo buildingInfo = info.ObtainPrefabInstance<BuildingInfo>(empty, 255); if (buildingInfo != null) { buildingInfo.m_buildingAI.SetRenderParameters(cameraInfo, buildingID, ref data, instance.m_position, instance.m_rotation, instance.m_dataVector0, instance.m_dataVector3, instance.m_dataColor0); return; } } BuildingManager instance2 = Singleton<BuildingManager>.instance; instance2.m_materialBlock.Clear(); instance2.m_materialBlock.AddVector(instance2.ID_BuildingState, instance.m_dataVector0); instance2.m_materialBlock.AddVector(instance2.ID_ObjectIndex, instance.m_dataVector3); instance2.m_materialBlock.AddColor(instance2.ID_Color, instance.m_dataColor0); if (info.m_requireHeightMap) { instance2.m_materialBlock.AddTexture(instance2.ID_HeightMap, instance.m_dataTexture0); instance2.m_materialBlock.AddVector(instance2.ID_HeightMapping, instance.m_dataVector1); instance2.m_materialBlock.AddVector(instance2.ID_SurfaceMapping, instance.m_dataVector2); } BuildingManager expr_134_cp_0 = instance2; expr_134_cp_0.m_drawCallData.m_defaultCalls = expr_134_cp_0.m_drawCallData.m_defaultCalls + 1; Bounds bounds = info.m_mesh.bounds; if (bounds.min.y > 0.1f - instance.m_dataVector0.w) { Vector3 min = bounds.min; min.y = -instance.m_dataVector0.w; bounds.min = min; info.m_mesh.bounds = bounds; } Graphics.DrawMesh(info.m_mesh, instance.m_dataMatrix1, info.m_material, info.m_prefabDataLayer, null, 0, instance2.m_materialBlock); }