示例#1
0
    static public DGModuleDefinition find(DGModuleDefinition search)
    {
        //LOAD
        if (!loaded)
        {
            load();
        }


        //FIND
        List <DGModuleDefinition> modulesFound = new List <DGModuleDefinition>();

        for (int i = 0; i < modules.Length; i++)
        {
            DGModuleDefinition moduleDef = new DGModuleDefinition();
            moduleDef.index = i;

            moduleDef.type       = search.type;
            moduleDef.difficulty = search.difficulty;

            moduleDef.accessBottom = modules[i].accessBottom;
            moduleDef.accessLeft   = modules[i].accessLeft;
            moduleDef.accessRight  = modules[i].accessRight;
            moduleDef.accessTop    = modules[i].accessTop;

            moduleDef.rotation = 0;

            for (int r = 0; r < 4; r++)
            {
                if (moduleDef.accessLeft == search.accessLeft &&
                    moduleDef.accessTop == search.accessTop &&
                    moduleDef.accessRight == search.accessRight &&
                    moduleDef.accessBottom == search.accessBottom
                    )
                {
                    modulesFound.Add(moduleDef);
                    break;
                }
                else
                {
                    moduleDef.rotate();
                }
            }
        }

        //NOT FOUND
        if (modulesFound.Count < 1)
        {
            return(new DGModuleDefinition());
        }

        //SORT ONE
        return(modulesFound[Random.Range(0, modulesFound.Count)]);
    }
示例#2
0
    static private void createArrays()
    {
        Debug.LogWarning("Creating Arrays ...");
        if (errorStatus)
        {
            return;
        }

        //LEVEL ARRAY
        levelArray = new DGModuleDefinition[cols.value, rows.value];
        for (int y = 0; y < rows.value; y++)
        {
            for (int x = 0; x < cols.value; x++)
            {
                levelArray[x, y] = new DGModuleDefinition();
            }
        }

        //LISTS
        accessesList.Clear();
        pointsList.Clear();

        //debugLevelModules();
    }