private static bool checkBlockName(BlockProperties blockProperties)
 {
     if (isBuildable(blockProperties)
         && !availableBlockTypes.Contains(blockProperties)
         && !usedBlockNames.Contains(blockProperties.getName()))
     {
         usedBlockNames.Add(blockProperties.getName());
         return true;
     }
     else return false;
 }
        public static bool isBuildable(BlockProperties blockProperties, bool includeAlternates = false)
        {
            if (!excludeNames.IsMatch(blockProperties.getName())
                || (includeAlternates && alternateBlockIds.Contains(blockProperties.getID())))
            {
                return true;
            }

            return false;
        }