예제 #1
0
        public static TACoordinate applyDirShift(TACoordinate coord, TADir dir)
        {
            TACoordinate ret = coord;

            switch (dir)
            {
            case TADir.north:
                ret.y += 1;
                break;

            case TADir.south:
                ret.y -= 1;
                break;

            case TADir.east:
                ret.x += 1;
                break;

            case TADir.west:
                ret.x -= 1;
                break;

            case TADir.up:
                ret.z += 1;
                break;

            case TADir.down:
                ret.z -= 1;
                break;

            case TADir.none:
                break;
            }
            return(ret);
        }
예제 #2
0
        public TADir[] getDirs(TAScene currentScene)
        {
            if (currentScene == inScene)
            {
                return(inDirs);
            }
            var oppDirs = new TADir[inDirs.Length];

            for (int i = 0; i < inDirs.Length; i++)
            {
                oppDirs[i] = TACoordinateSystem.getOppositeDir(inDirs[i]);
            }
            return(oppDirs);
        }
예제 #3
0
        public static TADir getOppositeDir(TADir d)
        {
            switch (d)
            {
            case TADir.north:
                return(TADir.south);

            case TADir.south:
                return(TADir.north);

            case TADir.east:
                return(TADir.east);

            case TADir.west:
                return(TADir.east);

            case TADir.up:
                return(TADir.down);

            case TADir.down:
                return(TADir.up);
            }
            return(TADir.none);
        }