diff --git a/changelog b/changelog index ad05a57f2..f20ee23ba 100644 --- a/changelog +++ b/changelog @@ -1,66 +1,10 @@ -## Added -* More axes - * Bismuth, volcanic, chlorophyte and mese tool materials now have axes - * Axes also double as offensive weapons, being a lot more powerful than their pickaxe counterparts -* Drainage pipe - * Spills fluid, allowing to void up to 1.000mB per tick - * Might slightly alter the landscape, depending on whether the fluid was poisonous - * Viscous, flammable liquids cause oil spill blocks to appear - * Not all liquids have the appropriate pollution stats yet, the system is still subject to change - ## Changed -* After three quarters of a decade, three separate models, countless rebalances and hours of senseless yapping, the industrial generator has finally met its end. Suddenly, yet not unsurprisingly, on this here day the industrial generator has closed its eyes for the final time. It was a long and eventful journey, but as with all things in life, it too had to come to an end. - * And this is why we can't ever have anything nice -* Rebalanced glyphids - * We'll see how it goes - * Still prone to changes, there's still a few inconsistencies and some behavior has barely been tested it all, but I have consulted the almighty spreadsheet and it said "yeah it ok" -* Did some spring cleaning - * Removed cloud residue (looked horrible, allowed for weird dupes and made no sense overall) - * Bottlecap blocks now use a single block ID and metadata instead of using one ID per type. This change however will delete all existing bottlecap blocks in the world - * Removed the config option for silos (the option no longer works anyway since the new silos use the structure component system) - * Finally removed the deaerator and the large shredder - * Removed some of the ancient test blocks that haven't been needed in about 8 years - * Removed all the siege blocks, since siege mode will never be finished anyway - * Removed reinforced niter - * Removed a few other minor things that won't be mentioned because nobody's gonna even notice their absence anyway -* Retextured the laser detonator to look more like the old detonator, but keeping the 3D model -* Bedrock ores can now be customized in creative mode. Using a drillbit sets the tier, a fluid container sets the borefluid requirement and any other item sets the resource. - * The texture used is random, and the color applied is based on the auto detect system. The system doesn't work with layered items, so the resulting color won't be the same as naturally generated bedrock ore. The bedrock ore item in particular will always result in a white ore, no matter the type -* The polluting fluid trait is now recognized by machines, which means that pollution amounts now depend on the fluid used, not the machine - * This means that flare stacks are now significantly less polluting, assuming natural gas is burned - * Flare stacks and barrels now also respect the spilling tag, which means that simply venting the gas may cause poison pollution - * Hydrogen doesn't have the polluting tag, so hydrogen burning generators won't create soot anymore -* Compressing blood no longer creates oil, rather it makes heavy oil (250mB) -* Tier 2 pickaxes (bismuth and up) now use the large item renderer -* Added the metal block material to the sellafite conversion list of nuclear explosions -* Changed the mechanics for schottky particle diodes - * Instead of randomizing directions, schottky diodes will now split particles into "virtual particles" which take mutliple paths at once - * The particles will collapse as soon as the first virtual particle with a valid outcome reaches the end - * This change allows branching accelerators to be made, where the particle will always take the shortest path necessary to complete the operation. In essence, it allows a single accelerator to do any recipe, without requiring to power the entire accelerator, as only the path of the finishing particle will use up energy. -* The particle accelerator as well as the schottky particle diodes now have presentations explaining how they work -* Loot pools are now configurable. Loot is divided into different categories, and structures may generate things from certain categories. - * The config currently includes all items spawned in dungeon chests/crates/safes/lockers, excluding black book spawns, but also including the loot pool for red room pedestals - * Also added satellites as configurable loot pools. Yay! -* Pylons and wire connectors now use a texture instead of a solid colored wire - * The cable model has been simplified, being only a single face instead of three faces stuck inside each other at weird angles - * Cables now sag slightly more at long ranges -* There are now configs for toggling the startup message as well as the guidebook -* Cybercrab spawners will only start spawning as soon as a player is within 25 blocks of the spawner -* Improved inventory shift-clicking for the FEL, assembler, chemplant, large mining drill, gas centrifuge, shredder and turbofan -* Updated chinese localization +* Glyphid hive treasures, hive bone piles and bottlecap stashes now have configurable item pools +* Adjusted glyphid hive treasures, there's now more variety +* Launch code pieces can now be found in the "expensive" loot pool with low chance +* Removed Brandon ## Fixed -* WarTec should now be compatible again -* Fixed the "Hold shift for more info" line appearing on fluid info when shift is held, and disappearing otherwise -* Fixed smokestacks being able to void any fluid under certain conditions -* Fixed the hydrotreater only using half as much crude oil per operation as it should -* Fixed the old launchpad printing the wrong message when successfully launched via detonator -* Oil spills should no longer save, fixing an issue where chunkloaded derricks would constantly spill oil entities into unloaded chunks, causing them to get stuck -* Fixed schrabidium conversion happening outside the main crater instead of inside -* Fixed wood burning generator creating smoke even if no power is being generated -* Fixed one of the woodburner's ports being offset in certain orientations -* Fixed fog caching causing weird behavior with the sky color change in response to crater biomes (or lack thereof) -* Fixed "F1 for help" keybind not working on non-standard inventories such as the NEI item list -* Fixed pylon wire rendering having incorrect corrdinates for brightness checks -* Fixed dupe caused by shift clicking certain slots in the fusion reactor -* Fixed snowglobe rendering lighting setup leak causing blocks rendered after them in inventory to not have correct lighting +* Fixed satellite item pool not being registered, resulting in satellites only delivering things from the backup pool +* Fixed drill bits not correctly setting the tier when customizing a bedrock ore +* Fixed debugging display showing glyphid damage still being in the game diff --git a/gradle.properties b/gradle.properties index fc5237b73..1c7eda94d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,6 @@ mod_version=1.0.27 # Empty build number makes a release type -mod_build_number=4914 +mod_build_number=4915 credits=HbMinecraft, rodolphito (explosion algorithms), grangerave (explosion algorithms),\ \ Hoboy (textures, models), Doctor17 (russian localization), Drillgon200 (effects, models,\ diff --git a/src/main/java/com/hbm/blocks/ModBlocks.java b/src/main/java/com/hbm/blocks/ModBlocks.java index ff2393147..2f0eb4c1d 100644 --- a/src/main/java/com/hbm/blocks/ModBlocks.java +++ b/src/main/java/com/hbm/blocks/ModBlocks.java @@ -1092,7 +1092,7 @@ public class ModBlocks { public static Block turret_howard_damaged; public static Block turret_maxwell; public static Block turret_fritz; - public static Block turret_brandon; + //public static Block turret_brandon; public static Block turret_arty; public static Block turret_himars; public static Block turret_sentry; @@ -2147,7 +2147,7 @@ public class ModBlocks { turret_howard_damaged = new TurretHowardDamaged(Material.iron).setBlockName("turret_howard_damaged").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_rust"); turret_maxwell = new TurretMaxwell(Material.iron).setBlockName("turret_maxwell").setHardness(5.0F).setResistance(60.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_fritz = new TurretFritz(Material.iron).setBlockName("turret_fritz").setHardness(5.0F).setResistance(10.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); - turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); + //turret_brandon = new TurretBrandon(Material.iron).setBlockName("turret_brandon").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_arty = new TurretArty(Material.iron).setBlockName("turret_arty").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_himars = new TurretHIMARS(Material.iron).setBlockName("turret_himars").setHardness(5.0F).setResistance(600.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); turret_sentry = new TurretSentry().setBlockName("turret_sentry").setHardness(5.0F).setResistance(5.0F).setCreativeTab(MainRegistry.weaponTab).setBlockTextureName(RefStrings.MODID + ":block_steel"); @@ -2936,7 +2936,7 @@ public class ModBlocks { GameRegistry.registerBlock(turret_howard_damaged, turret_howard_damaged.getUnlocalizedName()); GameRegistry.registerBlock(turret_maxwell, turret_maxwell.getUnlocalizedName()); GameRegistry.registerBlock(turret_fritz, turret_fritz.getUnlocalizedName()); - GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); + //GameRegistry.registerBlock(turret_brandon, turret_brandon.getUnlocalizedName()); GameRegistry.registerBlock(turret_arty, turret_arty.getUnlocalizedName()); GameRegistry.registerBlock(turret_himars, turret_himars.getUnlocalizedName()); GameRegistry.registerBlock(turret_sentry, turret_sentry.getUnlocalizedName()); diff --git a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java index 5782b6416..04341d2a2 100644 --- a/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java +++ b/src/main/java/com/hbm/blocks/generic/BlockBedrockOreTE.java @@ -79,7 +79,7 @@ public class BlockBedrockOreTE extends BlockContainer implements ILookOverlay, I if(stack.getItem() == ModItems.drillbit) { EnumDrillType type = EnumUtil.grabEnumSafely(EnumDrillType.class, stack.getItemDamage()); - ore.tier = type.ordinal(); + ore.tier = type.tier; } else if(FluidContainerRegistry.getFluidType(stack) != Fluids.NONE) { FluidType type = FluidContainerRegistry.getFluidType(stack); int amount = FluidContainerRegistry.getFluidContent(stack, type); diff --git a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java index c1171c5c8..a3ac74fbf 100644 --- a/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java +++ b/src/main/java/com/hbm/entity/mob/glyphid/EntityGlyphid.java @@ -336,13 +336,12 @@ public class EntityGlyphid extends EntityMob { /** Provides a direct entrypoint from outside to access the superclass' implementation because otherwise we end up wwith infinite recursion */ public boolean attackSuperclass(DamageSource source, float amount) { - NBTTagCompound data = new NBTTagCompound(); + /*NBTTagCompound data = new NBTTagCompound(); data.setString("type", "debug"); data.setInteger("color", 0x0000ff); data.setFloat("scale", 2.5F); data.setString("text", "" + (int) amount); - PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50)); - + PacketDispatcher.wrapper.sendToAllAround(new AuxParticlePacketNT(data, posX, posY + 2, posZ), new TargetPoint(dimension, posX, posY + 2, posZ, 50));*/ return super.attackEntityFrom(source, amount); } diff --git a/src/main/java/com/hbm/itempool/ItemPool.java b/src/main/java/com/hbm/itempool/ItemPool.java index eb85f2f9f..0d4fd2d11 100644 --- a/src/main/java/com/hbm/itempool/ItemPool.java +++ b/src/main/java/com/hbm/itempool/ItemPool.java @@ -5,6 +5,7 @@ import static com.hbm.lib.HbmChestContents.weighted; import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.Random; import com.hbm.items.ModItems; @@ -12,10 +13,20 @@ import net.minecraft.block.Block; import net.minecraft.init.Items; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; public class ItemPool { + public static void initialize() { + ItemPoolsLegacy.init(); + ItemPoolsComponent.init(); + ItemPoolsSingle.init(); + ItemPoolsRedRoom.init(); + ItemPoolsSatellite.init(); + ItemPoolsPile.init(); + } + public static HashMap pools = new HashMap(); public String name; @@ -47,13 +58,6 @@ public class ItemPool { return this; } - public static void initialize() { - ItemPoolsLegacy.init(); - ItemPoolsComponent.init(); - ItemPoolsSingle.init(); - ItemPoolsRedRoom.init(); - } - /** Grabs the specified item pool out of the pool map, will return the backup pool if the given pool is not present */ public static WeightedRandomChestContent[] getPool(String name) { ItemPool pool = pools.get(name); @@ -61,6 +65,13 @@ public class ItemPool { return pool.pool; } + public static ItemStack getStack(WeightedRandomChestContent[] pool, Random rand) { + WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(rand, pool); + ItemStack stack = weighted.theItemId.copy(); + stack.stackSize = weighted.theMinimumChanceToGenerateItem + rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); + return stack; + } + /** Should a pool be lost due to misconfiguration or otherwise, this pool will be returned in its place */ private static WeightedRandomChestContent[] backupPool = new WeightedRandomChestContent[] { weighted(Items.bread, 0, 1, 3, 10), diff --git a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java index 54025813f..865c39464 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsLegacy.java @@ -131,7 +131,8 @@ public class ItemPoolsLegacy { weighted(ModItems.bomb_caller, 2, 1, 1, 1), weighted(ModItems.gas_mask_filter, 0, 1, 1, 4), weighted(ModItems.journal_pip, 0, 1, 1, 1), - weighted(ModItems.journal_bj, 0, 1, 1, 1) + weighted(ModItems.journal_bj, 0, 1, 1, 1), + weighted(ModItems.launch_code_piece, 0, 1, 1, 1) }; }}; diff --git a/src/main/java/com/hbm/itempool/ItemPoolsPile.java b/src/main/java/com/hbm/itempool/ItemPoolsPile.java new file mode 100644 index 000000000..46bf7adca --- /dev/null +++ b/src/main/java/com/hbm/itempool/ItemPoolsPile.java @@ -0,0 +1,73 @@ +package com.hbm.itempool; + +import static com.hbm.lib.HbmChestContents.weighted; + +import com.hbm.items.ItemAmmoEnums.Ammo357Magnum; +import com.hbm.items.ItemAmmoEnums.AmmoFatman; +import com.hbm.items.ModItems; + +import net.minecraft.init.Items; +import net.minecraft.util.WeightedRandomChestContent; + +public class ItemPoolsPile { + + public static final String POOL_PILE_HIVE = "POOL_PILE_HIVE"; + public static final String POOL_PILE_BONES = "POOL_PILE_BONES"; + public static final String POOL_PILE_CAPS = "POOL_PILE_CAPS"; + + public static void init() { + + //items found in glyphid hives + new ItemPool(POOL_PILE_HIVE) {{ + this.pool = new WeightedRandomChestContent[] { + //Materials + weighted(Items.iron_ingot, 0, 1, 3, 10), + weighted(ModItems.ingot_steel, 0, 1, 2, 10), + weighted(ModItems.ingot_aluminium, 0, 1, 2, 10), + weighted(ModItems.scrap, 0, 3, 6, 10), + //Armor + weighted(ModItems.gas_mask_m65, 0, 1, 1, 10), + weighted(ModItems.steel_plate, 0, 1, 1, 5), + weighted(ModItems.steel_legs, 0, 1, 1, 5), + //Gear + weighted(ModItems.steel_pickaxe, 0, 1, 1, 5), + weighted(ModItems.steel_shovel, 0, 1, 1, 5), + //Weapons + weighted(ModItems.gun_lever_action, 0, 1, 1, 5), + weighted(ModItems.gun_bio_revolver, 0, 1, 1, 1), + weighted(ModItems.grenade_if_generic, 0, 1, 2, 5), + weighted(ModItems.ammo_20gauge, 0, 8, 8, 10), + weighted(ModItems.ammo_12gauge, 0, 4, 4, 10), + weighted(ModItems.ammo_357, Ammo357Magnum.LEAD.ordinal(), 6, 12, 10), + weighted(ModItems.ammo_grenade, 0, 1, 1, 2), + weighted(ModItems.ammo_nuke, AmmoFatman.PUMPKIN.ordinal(), 1, 1, 1), + //Consumables + weighted(ModItems.bottle_nuka, 0, 1, 2, 20), + weighted(ModItems.bottle_quantum, 0, 1, 2, 1), + weighted(ModItems.definitelyfood, 0, 5, 12, 20), + weighted(ModItems.egg_glyphid, 0, 1, 3, 30), + weighted(ModItems.syringe_metal_stimpak, 0, 1, 1, 5), + weighted(ModItems.iv_blood, 0, 1, 1, 10), + weighted(Items.experience_bottle, 0, 1, 3, 5), + }; + }}; + + //items found in glyphid bone piles + new ItemPool(POOL_PILE_BONES) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(Items.bone, 0, 1, 1, 10), + weighted(Items.rotten_flesh, 0, 1, 1, 5), + weighted(ModItems.biomass, 0, 1, 1, 2) + }; + }}; + + //bottlecap stashess + new ItemPool(POOL_PILE_CAPS) {{ + this.pool = new WeightedRandomChestContent[] { + weighted(ModItems.cap_nuka, 0, 4, 4, 20), + weighted(ModItems.cap_quantum, 0, 4, 4, 3), + weighted(ModItems.cap_sparkle, 0, 4, 4, 1), + }; + }}; + } +} diff --git a/src/main/java/com/hbm/itempool/ItemPoolSatellite.java b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java similarity index 98% rename from src/main/java/com/hbm/itempool/ItemPoolSatellite.java rename to src/main/java/com/hbm/itempool/ItemPoolsSatellite.java index c70a7def7..4c5eefd03 100644 --- a/src/main/java/com/hbm/itempool/ItemPoolSatellite.java +++ b/src/main/java/com/hbm/itempool/ItemPoolsSatellite.java @@ -8,7 +8,7 @@ import com.hbm.items.ModItems; import net.minecraft.init.Items; import net.minecraft.util.WeightedRandomChestContent; -public class ItemPoolSatellite { +public class ItemPoolsSatellite { public static final String POOL_SAT_MINER = "POOL_SAT_MINER"; public static final String POOL_SAT_LUNAR = "POOL_SAT_LUNAR"; //woona diff --git a/src/main/java/com/hbm/lib/RefStrings.java b/src/main/java/com/hbm/lib/RefStrings.java index 088c4391d..40677cd5e 100644 --- a/src/main/java/com/hbm/lib/RefStrings.java +++ b/src/main/java/com/hbm/lib/RefStrings.java @@ -3,7 +3,7 @@ package com.hbm.lib; public class RefStrings { public static final String MODID = "hbm"; public static final String NAME = "Hbm's Nuclear Tech Mod"; - public static final String VERSION = "1.0.27 BETA (4914)"; + public static final String VERSION = "1.0.27 BETA (4915)"; //HBM's Beta Naming Convention: //V T (X) //V -> next release version diff --git a/src/main/java/com/hbm/main/MainRegistry.java b/src/main/java/com/hbm/main/MainRegistry.java index 33710f98f..4f7856367 100644 --- a/src/main/java/com/hbm/main/MainRegistry.java +++ b/src/main/java/com/hbm/main/MainRegistry.java @@ -1254,6 +1254,7 @@ public class MainRegistry { ignoreMappings.add("hbm:tile.siege_emergency"); ignoreMappings.add("hbm:tile.siege_hole"); ignoreMappings.add("hbm:tile.machine_shredder_large"); + ignoreMappings.add("hbm:tile.turret_brandon"); /// REMAP /// remapItems.put("hbm:item.gadget_explosive8", ModItems.early_explosive_lenses); diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java index ca4ad67af..4249dd8db 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteLunarMiner.java @@ -1,10 +1,10 @@ package com.hbm.saveddata.satellites; -import com.hbm.itempool.ItemPoolSatellite; +import com.hbm.itempool.ItemPoolsSatellite; public class SatelliteLunarMiner extends SatelliteMiner { static { - registerCargo(SatelliteLunarMiner.class, ItemPoolSatellite.POOL_SAT_LUNAR); + registerCargo(SatelliteLunarMiner.class, ItemPoolsSatellite.POOL_SAT_LUNAR); } } \ No newline at end of file diff --git a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java index 4b398e281..8481a54e9 100644 --- a/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java +++ b/src/main/java/com/hbm/saveddata/satellites/SatelliteMiner.java @@ -1,6 +1,6 @@ package com.hbm.saveddata.satellites; -import com.hbm.itempool.ItemPoolSatellite; +import com.hbm.itempool.ItemPoolsSatellite; import com.hbm.util.WeightedRandomObject; import net.minecraft.nbt.NBTTagCompound; @@ -43,6 +43,6 @@ public class SatelliteMiner extends Satellite { } static { - registerCargo(SatelliteMiner.class, ItemPoolSatellite.POOL_SAT_MINER); + registerCargo(SatelliteMiner.class, ItemPoolsSatellite.POOL_SAT_MINER); } } diff --git a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java index 08bab11cb..f195414d3 100644 --- a/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java +++ b/src/main/java/com/hbm/tileentity/machine/TileEntityMachineSatDock.java @@ -22,7 +22,6 @@ import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.AxisAlignedBB; -import net.minecraft.util.WeightedRandom; import net.minecraft.util.WeightedRandomChestContent; import net.minecraft.world.World; @@ -240,10 +239,7 @@ public class TileEntityMachineSatDock extends TileEntity implements ISidedInvent WeightedRandomChestContent[] cargo = ItemPool.getPool(satellite.getCargo()); for(int i = 0; i < itemAmount; i++) { - WeightedRandomChestContent weighted = (WeightedRandomChestContent) WeightedRandom.getRandomItem(worldObj.rand, cargo); - ItemStack stack = weighted.theItemId.copy(); - stack.stackSize = weighted.theMinimumChanceToGenerateItem + worldObj.rand.nextInt(weighted.theMaximumChanceToGenerateItem - weighted.theMinimumChanceToGenerateItem + 1); - addToInv(stack); + addToInv(ItemPool.getStack(cargo, worldObj.rand)); } } diff --git a/src/main/java/com/hbm/util/LootGenerator.java b/src/main/java/com/hbm/util/LootGenerator.java index 48ffe68d6..404375df6 100644 --- a/src/main/java/com/hbm/util/LootGenerator.java +++ b/src/main/java/com/hbm/util/LootGenerator.java @@ -4,6 +4,8 @@ import java.util.Random; import com.hbm.blocks.ModBlocks; import com.hbm.blocks.generic.BlockLoot.TileEntityLoot; +import com.hbm.itempool.ItemPool; +import com.hbm.itempool.ItemPoolsPile; import com.hbm.items.ModItems; import com.hbm.items.special.ItemBookLore; import com.hbm.items.ItemAmmoEnums.AmmoFatman; @@ -79,12 +81,9 @@ public class LootGenerator { for(int i = -1; i <= 1; i++) { for(int j = -1; j <= 1; j++) { - int r = world.rand.nextInt(10); - Item cap = r < 9 ? ModItems.cap_nuka : ModItems.cap_quantum; - int count = world.rand.nextInt(5) + 3; for(int k = 0; k < count; k++) { - addItemWithDeviation(loot, world.rand, new ItemStack(cap, 4), i * 0.3125, k * 0.03125, j * 0.3125); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_CAPS), world.rand), i * 0.3125, k * 0.03125, j * 0.3125); } } } @@ -144,7 +143,7 @@ public class LootGenerator { int limit = world.rand.nextInt(3) + 3; for(int i = 0; i < limit; i++) { - addItemWithDeviation(loot, world.rand, new ItemStack(Items.bone), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_BONES), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); } } } @@ -157,23 +156,7 @@ public class LootGenerator { int limit = world.rand.nextInt(3) + 3; for(int i = 0; i < limit; i++) { - - ItemStack stack = new ItemStack(ModItems.ammo_12gauge, 4); - - switch(world.rand.nextInt(11)) { - case 0: stack = new ItemStack(ModItems.steel_plate); break; - case 1: stack = new ItemStack(ModItems.gun_lever_action); break; - case 2: stack = new ItemStack(ModItems.grenade_if_generic); break; - case 3: - case 4: stack = new ItemStack(ModItems.bottle_nuka, 1 + world.rand.nextInt(2)); break; - case 5: - case 6: stack = new ItemStack(ModItems.ingot_steel, 3 + world.rand.nextInt(10)); break; - case 7: stack = new ItemStack(ModItems.steel_pickaxe); break; - case 8: stack = new ItemStack(ModItems.gas_mask_m65); break; - case 9: stack = new ItemStack(ModItems.ammo_20gauge, 8); break; - } - - addItemWithDeviation(loot, world.rand, stack, world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); + addItemWithDeviation(loot, world.rand, ItemPool.getStack(ItemPool.getPool(ItemPoolsPile.POOL_PILE_HIVE), world.rand), world.rand.nextDouble() - 0.5, i * 0.03125, world.rand.nextDouble() - 0.5); } } }