code: public IIconProvider build()
  	{
  		switch (type)
  		{
  			case DEFAULT:
  				return (IIconProvider) () -> defaultIcon;
  			case SIDES:
  				return (ISidesIconProvider) side -> MoreObjects.firstNonNull(sidesIcons.get(side), defaultIcon);
  			case STATE:
  				return getStateIconProvider();
  			case WALL:
  				return getWallIconProvider();
  			case CONNECTED:
  				return new ConnectedIconsProvider(this);
  			case MODEL:
  				return new ModelIconProvider(this);
  
  			default:
  				return null;
  		}
  	}
docs: Creates the {@link IIconProvider}
  
  @return the i icon provider