blob: 28a3af07a9204f32decc95f221fcf893882bf578 [file] [log] [blame] [raw]
package li.cil.oc
import net.minecraftforge.common.ChestGenHooks
import net.minecraft.util.WeightedRandomChestContent
import net.minecraft.nbt.NBTTagCompound
import scala.collection.convert.WrapAsScala._
import java.util.Random
import net.minecraft.inventory.IInventory
import net.minecraft.item.ItemStack
import scala.collection.mutable
object Loot extends WeightedRandomChestContent(api.Items.get("lootDisk").createItemStack(1), 1, 1, Settings.get.lootProbability) {
val containers = Array(
ChestGenHooks.DUNGEON_CHEST,
ChestGenHooks.PYRAMID_DESERT_CHEST,
ChestGenHooks.PYRAMID_JUNGLE_CHEST,
ChestGenHooks.STRONGHOLD_LIBRARY)
val disks = mutable.ArrayBuffer.empty[ItemStack]
def init() {
for (container <- containers) {
ChestGenHooks.addItem(container, Loot)
}
val list = new java.util.Properties()
val listFile = getClass.getResourceAsStream("/assets/" + Settings.resourceDomain + "/" + "loot/loot.properties")
list.load(listFile)
listFile.close()
for (key <- list.stringPropertyNames) {
val value = list.getProperty(key)
val data = new NBTTagCompound()
data.setString(Settings.namespace + "fs.label", value)
val tag = new NBTTagCompound("tag")
tag.setTag(Settings.namespace + "data", data)
// Store this top level, so it won't get wiped on save.
tag.setString(Settings.namespace + "lootPath", key)
val disk = api.Items.get("lootDisk").createItemStack(1)
disk.setTagCompound(tag)
disks += disk
}
}
override def generateChestContent(random: Random, newInventory: IInventory) =
if (disks.length > 0)
ChestGenHooks.generateStacks(random, disks(random.nextInt(disks.length)),
theMinimumChanceToGenerateItem, theMaximumChanceToGenerateItem)
else Array.empty
}