Ejemplo n.º 1
0
 protected ObstaclesManager.PlaceHolder GetObstaclePlaceholder(SerializedObstaclePlaceholder sPlaceholder)
 {
     ObstaclesManager.PlaceHolder placeholder = new ObstaclesManager.PlaceHolder();
     placeholder.token    = tokenByName[sPlaceholder.tokenName];
     placeholder.position = new Vector3(sPlaceholder.position[0], sPlaceholder.position[1], sPlaceholder.position[2]);
     placeholder.item     = obstacleManager.ObstacleItemsByName[sPlaceholder.itemName];
     return(placeholder);
 }
Ejemplo n.º 2
0
    protected SerializedObstaclePlaceholder GetSerializedObstaclePlaceholder(ObstaclesManager.PlaceHolder placeholder)
    {
        SerializedObstaclePlaceholder sPlaceholder = new SerializedObstaclePlaceholder();

        sPlaceholder.tokenName   = placeholder.token.name;
        sPlaceholder.position[0] = placeholder.position.x;
        sPlaceholder.position[1] = placeholder.position.y;
        sPlaceholder.position[2] = placeholder.position.z;
        sPlaceholder.itemName    = placeholder.item.obstacle.name;
        return(sPlaceholder);
    }
Ejemplo n.º 3
0
    public void LoadDataStructures()
    {
        int crossesNum = environmentManager.Crosses.Count;

        crosses = new SerializedRoad[crossesNum];
        for (int i = 0; i < crossesNum; i++)
        {
            crosses[i] = GetSerializedRoad(environmentManager.Crosses[i]);
        }

        int vRoadsNum = environmentManager.VerticalRoads.Count;

        vRoadsArray = new SerializedRoad[vRoadsNum];
        for (int i = 0; i < vRoadsNum; i++)
        {
            vRoadsArray[i] = GetSerializedRoad(environmentManager.VerticalRoads[i]);
        }

        int hRoadsNum = environmentManager.HorizontalRoads.Count;

        hRoadsArray = new SerializedRoad[hRoadsNum];
        for (int i = 0; i < hRoadsNum; i++)
        {
            hRoadsArray[i] = GetSerializedRoad(environmentManager.HorizontalRoads[i]);
        }

        int buildingsNum = environmentManager.Buildings.Count;

        buildings = new SerializedBuilding[buildingsNum];
        for (int i = 0; i < buildingsNum; i++)
        {
            buildings[i] = GetSerializedBuilding(environmentManager.Buildings[i]);
        }

        int borderBuildingsNum = environmentManager.BorderBuildings.Count;

        borderBuildings = new SerializedBuilding[borderBuildingsNum];
        for (int i = 0; i < borderBuildingsNum; i++)
        {
            borderBuildings[i] = GetSerializedBuilding(environmentManager.BorderBuildings[i]);
        }

        //obstaclePlaceholdersList = new SerializedObstaclePlaceholder[GameplayManager.LevelCount][];
        //for (int j = 0; j < GameplayManager.LevelCount; j++)
        obstaclePlaceholdersList = new SerializedObstaclePlaceholder[gameplayManager.GetLevelCount()][];
        for (int j = 0; j < gameplayManager.GetLevelCount(); j++)
        {
            int placeholderNum = obstacleManager.ObstaclesPositionsList[j].Count;
            obstaclePlaceholdersList[j] = new SerializedObstaclePlaceholder[placeholderNum];
            for (int i = 0; i < placeholderNum; i++)
            {
                obstaclePlaceholdersList[j][i] = GetSerializedObstaclePlaceholder(obstacleManager.ObstaclesPositionsList[j][i]);
            }
        }

        floors = environmentManager.FloorList.ToArray();

        hTowerCoord   = environmentManager.HTowerCoord;
        vTowerCoord   = environmentManager.VTowerCoord;
        hRoads        = environmentManager.HRoads;
        vRoads        = environmentManager.VRoads;
        cityHeight    = environmentManager.CityHeight;
        cityWidth     = environmentManager.CityWidth;
        roadTextureId = environmentManager.RoadTextureId;

        int dayLightNum = environmentManager.isDayLight.Count;

        daylight = new bool[dayLightNum];
        for (int i = 0; i < dayLightNum; i++)
        {
            daylight[i] = environmentManager.isDayLight[i];
        }

        int obstacleVolumesNum = obstacleManager.volumesByLevel.Count;

        obstacleVolumes = new int[obstacleVolumesNum];
        for (int i = 0; i < obstacleVolumesNum; i++)
        {
            obstacleVolumes[i] = obstacleManager.volumesByLevel[i];
        }

        int obstClassesNum = obstacleManager.levelConfigs[0].obstacleAlphas.Count;

        obstClasses = new string[obstClassesNum];
        int c = 0;

        foreach (string key in obstacleManager.levelConfigs[0].obstacleAlphas.Keys)
        {
            obstClasses[c] = key;
            c++;
        }

        int obstLevelNum = obstacleManager.levelConfigs.Count;

        obstAlphas = new float[obstLevelNum][];
        obstSpeeds = new float[obstLevelNum][];
        for (int i = 0; i < obstLevelNum; i++)
        {
            int obstacleAlphasNum = obstacleManager.levelConfigs[i].obstacleAlphas.Count;
            obstAlphas[i] = new float[obstacleAlphasNum];
            obstSpeeds[i] = new float[obstacleAlphasNum];
            for (int j = 0; j < obstacleAlphasNum; j++)
            {
                obstAlphas[i][j] = obstacleManager.levelConfigs[i].obstacleAlphas[obstClasses[j]];
                if (obstacleManager.levelConfigs[i].obstacleSpeeds.ContainsKey(obstClasses[j]))
                {
                    obstSpeeds[i][j] = obstacleManager.levelConfigs[i].obstacleSpeeds[obstClasses[j]];
                }
                else
                {
                    obstSpeeds[i][j] = 0.0f;
                }
            }
        }

        int pedNum = environmentManager.totalPedestrians.Count;

        pedestrians = new int[pedNum];
        for (int i = 0; i < pedNum; i++)
        {
            pedestrians[i] = environmentManager.totalPedestrians[i];
        }

        int targetsNum = gameplayManager.targetNumByLevel.Count;

        targets = new int[targetsNum];
        for (int i = 0; i < targetsNum; i++)
        {
            targets[i] = gameplayManager.targetNumByLevel[i];
        }

        //Denis
        int levelCount  = gameplayManager.GetLevelCount();
        int targetCount = targets[0];

        levelsTargets = new int[levelCount, targetCount];
        levelsGates   = new int[levelCount, targetCount];
        //Debug.Log("@@@@@ START NEW PARTS IN LoadDataStructures levelCount = " + levelCount);
        for (int i = 0; i < levelCount; i++)
        {
            for (int k = 0; k < targetCount; k++)
            {
                if (gameplayManager.TargetIndexStack.Count > 0)
                {
                    levelsTargets[i, k] = gameplayManager.TargetIndexStack.Pop();
                }
                else
                {
                    if (k < targetCount - 1)
                    {
                        Debug.Log("targetCount: " + targetCount + ", levelCount " + levelCount + ", " + gameplayManager.TargetIndexStack.Count);
                        interfaces.SetTfSessionResult(true, "Error processing XML. Please try again", false);
                        interfaces.SetTfSaveResult(false);
                        interfaces.DisableSaveButton();
                    }
                }

                //levelsGates[i,k] = gameplayManager.GateIndexStack.Pop();
                //Debug.Log("@@@@@ levelsTargets["+ i +"][" + k + "] = " + levelsTargets[i,k]);
            }
        }
        //End Denis

        //show target on map
        int showTargetsNum = gameplayManager.showOnMapByLevel.Count;

        showTargets = new bool[showTargetsNum];
        for (int i = 0; i < showTargetsNum; i++)
        {
            showTargets[i] = gameplayManager.showOnMapByLevel[i];
        }

        int showMapssNum = gameplayManager.showMapByLevel.Count;

        showMaps = new bool[showMapssNum];
        for (int i = 0; i < showMapssNum; i++)
        {
            showMaps[i] = gameplayManager.showMapByLevel[i];
        }

        learningEnabled = gameplayManager.learningPhase;
        learningMap     = gameplayManager.mapOnLearning;
        learningTarget  = gameplayManager.targetOnLearning;

        //Debug.LogWarning("learningEnabled: " + learningEnabled);
    }