438b251d8f
Optimized the selection of random dungeons with weights applied. We now have a class called WeightedContainer for taping into Minecraft's weighted selection code without having to extend the WeightedRandomItem class. Using that, we no longer need to keep a list with duplicate dungeons to achieve weighted selection, so I removed that variable.
27 lines
730 B
Java
27 lines
730 B
Java
package StevenDimDoors.mod_pocketDim.util;
|
|
|
|
import net.minecraft.util.WeightedRandomItem;
|
|
|
|
/*.
|
|
* Implements a simple generic item for using net.minecraft.util.WeightedRandom with objects of type T.
|
|
*
|
|
* This is generally useful for cases in which we already extend an existing class, which prevents us from also
|
|
* extending WeightedRandomItem or cases in which we would have to break compatibility with previous serialized
|
|
* instances to add support for WeightedRandomItem.
|
|
*/
|
|
public class WeightedContainer<T> extends WeightedRandomItem {
|
|
|
|
private T data;
|
|
|
|
public WeightedContainer(T data, int weight)
|
|
{
|
|
super(weight);
|
|
this.data = data;
|
|
super.itemWeight = weight;
|
|
}
|
|
|
|
public T getData()
|
|
{
|
|
return data;
|
|
}
|
|
}
|