mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-07-18 10:12:53 +00:00
Fix rarity selection stream... maybe
This commit is contained in:
parent
30eda70dda
commit
06a8e08244
@ -18,8 +18,11 @@
|
||||
|
||||
package com.volmit.iris.engine.object;
|
||||
|
||||
import com.volmit.iris.Iris;
|
||||
import com.volmit.iris.engine.EnginePanic;
|
||||
import com.volmit.iris.util.collection.KList;
|
||||
import com.volmit.iris.util.reflect.V;
|
||||
import com.volmit.iris.util.scheduling.J;
|
||||
import com.volmit.iris.util.stream.ProceduralStream;
|
||||
import com.volmit.iris.util.stream.arithmetic.FittedStream;
|
||||
import com.volmit.iris.util.stream.interpolation.Interpolated;
|
||||
@ -46,6 +49,31 @@ public interface IRare {
|
||||
});
|
||||
}
|
||||
|
||||
static <T extends IRare> T pickSlowly(List<T> possibilities, double noiseValue)
|
||||
{
|
||||
if(possibilities.isEmpty())
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
if(possibilities.size() == 1)
|
||||
{
|
||||
return possibilities.get(0);
|
||||
}
|
||||
|
||||
KList<T> rarityTypes = new KList<>();
|
||||
int totalRarity = 0;
|
||||
for (T i : possibilities) {
|
||||
totalRarity += IRare.get(i);
|
||||
}
|
||||
|
||||
for (T i : possibilities) {
|
||||
rarityTypes.addMultiple(i, totalRarity / IRare.get(i));
|
||||
}
|
||||
|
||||
return rarityTypes.get((int) (noiseValue * rarityTypes.last()));
|
||||
}
|
||||
|
||||
static <T extends IRare> T pick(List<T> possibilities, double noiseValue)
|
||||
{
|
||||
if(possibilities.isEmpty())
|
||||
@ -80,7 +108,7 @@ public interface IRare {
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
return possibilities.get(possibilities.size() - 1);
|
||||
}
|
||||
|
||||
static int get(Object v) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user