private void checkTransitives ( Collection < Tile > resolved , Tile tile ) { boolean isTransitive = false ; for ( final Tile neighbor : map . getNeighbors ( tile ) ) { final String group = mapGroup . getGroup ( tile ) ; final String neighborGroup = mapGroup . getGroup ( neighbor ) ; final Collection < GroupTransition > transitives = getTransitives ( group , neighborGroup ) ; if ( transitives . size ( ) > 1 && ( getTransition ( neighbor , group ) == null || isCenter ( neighbor ) ) ) { final int iterations = transitives . size ( ) - 3 ; int i = 0 ; for ( final GroupTransition transitive : transitives ) { updateTransitive ( resolved , tile , neighbor , transitive ) ; isTransitive = true ; i ++ ; if ( i > iterations ) { break ; } } } } // Restore initial tile once transition solved by transitive if ( isTransitive ) { map . setTile ( tile ) ; } }
Check tile transitive groups .