From 21d94b7c6609bad4d6dcde1f2f6a6b141daaf565 Mon Sep 17 00:00:00 2001 From: SenseiKiwi Date: Sat, 15 Jun 2013 06:32:30 -0400 Subject: [PATCH] Tweaked loot generation Decreased the weight of DD items very slightly to make them a little more rare. Added a section to DDLoot.mergeCategories() that searches for the enchanted book loot and fixes its weight to 3 (instead of the usual 1). This makes enchanted books slightly more common. I confirmed that books are actually spawning in loot chests. There is the possibility that there is a built-in chance of an enchanted book taking up a chest slot but not actually generating anything. --- StevenDimDoors/mod_pocketDim/DDLoot.java | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/StevenDimDoors/mod_pocketDim/DDLoot.java b/StevenDimDoors/mod_pocketDim/DDLoot.java index 7e7eadf..7e6c646 100644 --- a/StevenDimDoors/mod_pocketDim/DDLoot.java +++ b/StevenDimDoors/mod_pocketDim/DDLoot.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Hashtable; import java.util.Random; +import net.minecraft.item.Item; import net.minecraft.util.WeightedRandomChestContent; import net.minecraftforge.common.ChestGenHooks; @@ -27,9 +28,9 @@ public class DDLoot { public static ChestGenHooks DungeonChestInfo = null; private static final int CHEST_SIZE = 5; - private static final int COMMON_LOOT_WEIGHT = 10; //As common as iron ingots - private static final int UNCOMMON_LOOT_WEIGHT = 5; //As common as iron armor loot - private static final int RARE_LOOT_WEIGHT = 3; //As common as diamonds + private static final int COMMON_LOOT_WEIGHT = 9; //1 less than weight of iron ingots + private static final int UNCOMMON_LOOT_WEIGHT = 4; //1 less than weight of iron armor + private static final int RARE_LOOT_WEIGHT = 1; //Same weight as music discs, golden apple private static final int DUNGEON_CHEST_WEIGHT_INFLATION = 10; // (weight of iron ingots in dungeon) / (weight of iron ingots in other chests) public static void registerInfo() @@ -113,6 +114,19 @@ public class DDLoot { } } + //I've added a minor hack here to make enchanted books more common + //If this is necessary for more items, create an override table and use that + //rather than hardcoding the changes below + final int enchantedBookID = Item.enchantedBook.itemID; + for (WeightedRandomChestContent item : container.values()) + { + if (item.theItemId.itemID == enchantedBookID) + { + item.itemWeight = 3; + break; + } + } + //Return merged list return new ArrayList( container.values() ); }