Advertisement
cab404

Random provider provider :D

Mar 17th, 2014
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.58 KB | None | 0 0
  1.  
  2.     public ValueProvider getRandomProvider(Class cls) {
  3.         List<ValueProvider> list = providers.get(cls);
  4.  
  5.         if (list == null || list.isEmpty())
  6.             return null;
  7.  
  8.         float sum = 0;
  9.         for (ValueProvider provider : list)
  10.             sum += provider.getProbability();
  11.  
  12.         float random = (float) (Math.random() * sum);
  13.  
  14.         for (ValueProvider provider : list) {
  15.             random -= provider.getProbability();
  16.             if (random <= 0)
  17.                 return provider;
  18.         }
  19.  
  20.         throw new RuntimeException("WAT?");
  21.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement