diff --git a/src/net/bdew/lib/Misc.scala b/src/net/bdew/lib/Misc.scala index 3703ad6..b355970 100644 --- a/src/net/bdew/lib/Misc.scala +++ b/src/net/bdew/lib/Misc.scala @@ -28,6 +28,7 @@ object Misc { def toLocal(s: String) = StatCollector.translateToLocal(s) def toLocalF(s: String, params: Any*) = StatCollector.translateToLocal(s).format(params: _*) + def hasLocal(s: String) = StatCollector.canTranslate(s) def flattenRecipe(pattern: Seq[String], items: Map[Char, AnyRef]) = pattern ++ items.map { diff --git a/src/net/bdew/lib/items/ItemUtils.scala b/src/net/bdew/lib/items/ItemUtils.scala index 65b0ee0..1223784 100644 --- a/src/net/bdew/lib/items/ItemUtils.scala +++ b/src/net/bdew/lib/items/ItemUtils.scala @@ -15,6 +15,7 @@ import net.minecraft.world.World import net.minecraft.entity.player.EntityPlayer import net.minecraft.inventory.IInventory import net.bdew.lib.Misc +import java.util.Random object ItemUtils { def throwItemAt(world: World, x: Int, y: Int, z: Int, stack: ItemStack) { @@ -81,4 +82,17 @@ object ItemUtils { Range(0, inv.getSizeInventory).map(x => x -> inv.getStackInSlot(x)) .find({ case (slot, stack) => stack != null && stack.getItem == item }) .map({ case (slot, stack) => slot }) + + def copyWithRandomSize(template: ItemStack, max: Int, rand: Random) = { + val newSize = rand.nextInt(max) + val newStack = template.copy() + newStack.stackSize = + if (newSize > newStack.getMaxStackSize) + newStack.getMaxStackSize + else if (newSize <= 0) + 1 + else + newSize + newStack + } } \ No newline at end of file