示例#1
0
 private void CheckModuleExist()
 {
     ProtoWorldMenu.AddModuleIfNotExist(moduleName);
     //var module = GameObject.Find(moduleName);
     //if (module == null)
     //{
     //    PrefabUtility.DisconnectPrefabInstance(PrefabUtility.InstantiatePrefab(pedestrianModule));
     //    //EditorUtility.DisplayDialog("GameObject added...", moduleName + "was added to the scene", "OK");
     //}
 }
示例#2
0
    private void InstantiatePrefab(string prefab, Vector3 point, GameObject parent = null)
    {
        var instance = ProtoWorldMenu.AddPrefabToScene(prefab);

        instance.transform.position = point;
        if (parent != null)
        {
            instance.transform.SetParent(parent.transform);
        }
        //Undo.RegisterCreatedObjectUndo(instance, "Prefab instantiated...");
    }
    void OnGUI()
    {
        useDefaultValues = EditorGUILayout.Toggle("use MapBoundaries values", useDefaultValues);
        var aramGis = FindObjectOfType <MapBoundaries>();

        if (useDefaultValues)
        {
            EditorGUILayout.LabelField("address", aramGis.serverAddress);
            EditorGUILayout.LabelField("port", aramGis.serverPort);
            EditorGUILayout.LabelField("user id", aramGis.serverUserId);
            EditorGUILayout.LabelField("password", aramGis.serverPassword);
            EditorGUILayout.LabelField("database name", aramGis.serverDatabaseName);
            connectionString = aramGis.GetOverridenConnectionString();
        }
        else
        {
            serverAddress      = EditorGUILayout.TextField("address", serverAddress);
            serverPort         = EditorGUILayout.TextField("port", serverPort);
            serverUserId       = EditorGUILayout.TextField("user id", serverUserId);
            serverPassword     = EditorGUILayout.TextField("password", serverPassword);
            serverDatabaseName = EditorGUILayout.TextField("database name", serverDatabaseName);
            connectionString   = string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", serverAddress, serverPort, serverDatabaseName, serverUserId, serverPassword);
        }
        GUILayout.Space(20);

        if (GUILayout.Button("Read matsim event files "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            MatSimContainer container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                container = go.AddComponent <MatSimContainer>();
            }

            path = EditorUtility.OpenFilePanel("Matsim event file", path, "");

            if (File.Exists(path))
            {
                status = "Read events...";
                Debug.Log(status);
                container.LoadEvents(path);

                //var vehEvents = container.matSimEvents.FindEvents("Veh140021");
                //foreach (var ev in vehEvents)
                //{
                //    Debug.Log(ev.ToString());
                //}
            }
        }

        if (GUILayout.Button("Export events to Postgre DB "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            var container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                Debug.Log("Something wrong when getting 'MatSimContainer'");
                return;
            }

            //string connectionString = string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", serverAddress, serverPort, serverDatabaseName, serverUserId, serverPassword);
            status = "Exporting events...";
            container.ExportEventsToPostgre(connectionString);
        }

        GUILayout.Space(20);

        if (GUILayout.Button("Read matsim files "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            MatSimContainer container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                container = go.AddComponent <MatSimContainer>();
            }

            path = EditorUtility.OpenFolderPanel("Matsim input files folder", path, "");

            status = "Read network...";
            Debug.Log(status);
            container.LoadNetwork(path);

            status = "Read schedules...";
            Debug.Log(status);
            container.LoadSchedule(path);

            status = "Read vehicles...";
            Debug.Log(status);
            container.LoadVehicles(path);

            status = "Done reading network, schedule & vehicles...";
        }

        if (GUILayout.Button("Export network to Postgre DB "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            var container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                Debug.Log("Something wrong when getting 'MatSimContainer'");
                return;
            }
            //Debug.Log("Found 'MatSimContainer', proceeding...");
            //string connectionString = string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", serverAddress, serverPort, serverDatabaseName, serverUserId, serverPassword);
            //Debug.Log(connectionString);
            status = "Exporting network...";
            container.ExportNetworkToPostgre(connectionString);

            status = "Done exporting network.";
        }

        if (GUILayout.Button("Export schedule to Postgre DB "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            var container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                Debug.Log("Something wrong when getting 'MatSimContainer'");
                return;
            }
            //string connectionString = string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", serverAddress, serverPort, serverDatabaseName, serverUserId, serverPassword);
            status = "Exporting schedule...";
            container.ExportScheduleToPostgre(connectionString);

            status = "Done exporting schedule.";
        }

        if (GUILayout.Button("Export vehicles to Postgre DB "))
        {
            var go = ProtoWorldMenu.AddTrafficIntegModule();
            if (go == null)
            {
                Debug.Log("Something wrong when adding 'Traffic Integration Module'");
                return;
            }

            var container = go.GetComponent <MatSimContainer>();
            if (container == null)
            {
                Debug.Log("Something wrong when getting 'MatSimContainer'");
                return;
            }
            //string connectionString = string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", serverAddress, serverPort, serverDatabaseName, serverUserId, serverPassword);
            status = "Exporting vehicles...";
            container.ExportVehiclesToPostgre(connectionString);

            status = "Done exporting vehicles.";
        }
        GUILayout.Space(20);
        if (GUILayout.Button("Close"))
        {
            Close();
        }
        EditorGUILayout.LabelField(status);
    }