public LootHandler() { for (String s : TABLES) { LootTableList.register(new ResourceLocation(LibMisc.MOD_ID, s)); } LootConditionManager.registerCondition(new TrueGuardianKiller.Serializer()); LootConditionManager.registerCondition(new EnableRelics.Serializer()); LootFunctionManager.registerFunction(new BindUuid.Serializer()); }
@SubscribeEvent public void onLootTableLoad(LootTableLoadEvent event) { // wither skellies drop necrotic bones if(event.getName().equals(LootTableList.ENTITIES_WITHER_SKELETON)) { LootCondition[] lootConditions = new LootCondition[0]; LootEntry entry = new LootEntryItem(TinkerCommons.matNecroticBone.getItem(), 1, 0, new LootFunction[]{new SetMetadata(lootConditions, new RandomValueRange(TinkerCommons.matNecroticBone.getMetadata()))}, lootConditions, "necrotic_bone"); event.getTable().addPool(new LootPool(new LootEntry[]{entry}, new LootCondition[]{ new KilledByPlayer(false), new RandomChanceWithLooting(0.07f, 0.05f) }, new RandomValueRange(1), new RandomValueRange(0), "necrotic_bone")); } }
public GadgetEvents() { LootEntry entry = new LootEntryItem(TinkerGadgets.spaghetti, 1, 1, new LootFunction[0], new LootCondition[0], "moms_spaghetti"); LootCondition chance = new RandomChance(0.05f); pool = new LootPool(new LootEntry[] {entry}, new LootCondition[] {chance}, new RandomValueRange(1), new RandomValueRange(0), "moms_spaghetti"); }
public PoolBuilder chance(float chance) { return this.condition(new RandomChance(chance)); }
public static void preInit() { MINE_WORLD = DimensionType.register("The Mine", "_hf_mine", MINING_ID, MiningProvider.class, false); DimensionManager.registerDimension(MINING_ID, MINE_WORLD); registerModEntity(EntityDarkCow.class, "dark_cow", EntityIDs.DARK_COW, HarvestFestival.instance, 80, 3, true); registerModEntity(EntityDarkSheep.class, "dark_sheep", EntityIDs.DARK_SHEEP, HarvestFestival.instance, 80, 3, true); registerModEntity(EntityDarkChicken.class, "dark_chicken", EntityIDs.DARK_CHICKEN, HarvestFestival.instance, 80, 3, true); registerModEntity(EntityDarkChick.class, "dark_chick", EntityIDs.DARK_CHICK, HarvestFestival.instance, 80, 3, true); OreDictionary.registerOre("feather", DARK_DROP.getStackFromEnum(DarkDrop.FEATHER)); OreDictionary.registerOre("leather", DARK_DROP.getStackFromEnum(DarkDrop.LEATHER)); registerTiles(TileElevator.class); LootConditionManager.registerCondition(new From.Serializer()); LootConditionManager.registerCondition(new Between.Serializer()); LootConditionManager.registerCondition(new Between100.Serializer()); LootConditionManager.registerCondition(new EndsIn.Serializer()); LootConditionManager.registerCondition(new Exact.Serializer()); LootConditionManager.registerCondition(new MultipleOf.Serializer()); LootConditionManager.registerCondition(new Obtained.Serializer()); LootConditionManager.registerCondition(new Seasonal.Serializer()); registerOreIfNotExists("gemRuby", MATERIALS.getStackFromEnum(Material.RUBY)); registerOreIfNotExists("gemTopaz", MATERIALS.getStackFromEnum(Material.TOPAZ)); registerOreIfNotExists("gemAmethyst", MATERIALS.getStackFromEnum(Material.AMETHYST)); registerSellable(DIAMOND, 100L); registerSellable(EMERALD, 80L); }
@SubscribeEvent public void loadLootTable( LootTableLoadEvent event ) { if( event.getName() == LootTableList.CHESTS_ABANDONED_MINESHAFT ) { // TODO 1.9.4 aftermath - All these loot quality, pools and stuff. Figure it out and balance it. final IMaterials materials = AEApi.instance().definitions().materials(); materials.certusQuartzCrystal().maybeStack( 1 ).ifPresent( is -> { event.getTable() .addPool( new LootPool( new LootEntry[] { new LootEntryItem( is.getItem(), 2, 3, new LootFunction[] { new SetMetadata( null, new RandomValueRange( is.getItemDamage() ) ) }, new LootCondition[] { new RandomChance( 1 ) }, "AE2 Crystal_" + is.getItemDamage() ) }, new LootCondition[0], new RandomValueRange( 1, 4 ), new RandomValueRange( 0, 2 ), "AE2 Crystals" ) ); } ); materials.certusQuartzDust().maybeStack( 1 ).ifPresent( is -> { event.getTable() .addPool( new LootPool( new LootEntryItem[] { new LootEntryItem( is.getItem(), 2, 3, new LootFunction[] { new SetMetadata( null, new RandomValueRange( is.getItemDamage() ) ) }, new LootCondition[] { new RandomChance( 1 ) }, "AE2 Dust_" + is.getItemDamage() ) }, new LootCondition[0], new RandomValueRange( 1, 4 ), new RandomValueRange( 0, 2 ), "AE2 DUSTS" ) ); } ); } }
private LootHandler() { for (String s : INJECTION_TABLES) { LootTableList.register(new ResourceLocation(REFERENCE.MODID, s)); } LootFunctionManager.registerFunction(new AddBookNbt.Serializer()); LootFunctionManager.registerFunction(new SetItemTier.Serializer()); LootFunctionManager.registerFunction(new SetItemBloodCharge.Serializer()); LootFunctionManager.registerFunction(new SetMetaBasedOnLevel.Serializer()); LootConditionManager.registerCondition(new StakeCondition.Serializer()); }
private @Nonnull static LootEntry createLootCapacitor(float chance) { capCount++; return new LootEntryItem(itemBasicCapacitor.getItemNN(), 1, 1, new LootFunction[] { ls, setMetadata(3, 4) }, new LootCondition[] { new RandomChance(chance) }, itemBasicCapacitor.getUnlocalisedName() + capCount); }
@SuppressWarnings("ConstantConditions") public static void preInit() { MCTab.getFishery().setStack(new ItemStack(FISHING_ROD)); NetworkRegistry.INSTANCE.registerGuiHandler(Mariculture.instance, new GuiHandler()); //Register the gui handler here, as the bait bag will be the only gui EntityRegistry.registerModEntity(EntityFishHookMC.class, "hook", 0, Mariculture.instance, 64, 5, true); EntityRegistry.instance().lookupModSpawn(EntityFishHookMC.class, false).setCustomSpawning(null, true); MaricultureAPI.fishing.createPole("wood", 64, 3).setTraits(XP_BONUS); MaricultureAPI.fishing.createPole("reed", 96, 2).setTraits(LUCK_BONUS); MaricultureAPI.fishing.createPole("polished_wood", 256, 5).setTraits(RESISTANCE); MaricultureAPI.fishing.createReel("wood", 1F, 0F, 0.15D).setTraits(XP_BONUS); MaricultureAPI.fishing.createReel("iron", 1.1F, 0.5F, 0.25D).setTraits(RESISTANCE); MaricultureAPI.fishing.createString("string", 1.0F).setTraits(SPEED_BONUS); MaricultureAPI.fishing.createString("reinforced", 1.2F).setTraits(LUCK_BONUS); MaricultureAPI.fishing.createString("tensile", 1.5F).setTraits(RESISTANCE); MaricultureAPI.fishing.createHook("wood", 1, TINY, SMALL).setTraits(XP_BONUS); MaricultureAPI.fishing.createHook("iron", 2, HUGE, GIGANTIC).setTraits(RESISTANCE); MaricultureAPI.fishing.createHook("fly", 2, MEDIUM, LARGE).setTraits(SPEED_BONUS); //Register the custom loot conditions for mariculture LootConditionManager.registerCondition(new FishSize.Serializer()); LootConditionManager.registerCondition(new RodStrength.Serializer()); LootConditionManager.registerCondition(new InBiomeType.Serializer()); LootConditionManager.registerCondition(new SalinityType.Serializer()); LootConditionManager.registerCondition(new WorldHeight.Serializer()); LootConditionManager.registerCondition(new WorldTime.Serializer()); LootConditionManager.registerCondition(new WorldDimension.Serializer()); }
private @Nonnull static LootEntry createDarkSteelLootEntry(@Nonnull Item item, int meta, int minStackSize, int maxStackSize, float chance) { LootCondition[] chanceCond = new LootCondition[] { new RandomChance(chance) }; final ResourceLocation registryName = NullHelper.notnull(item.getRegistryName(), "found unregistered item"); return new LootEntryItem(item, 1, 1, new LootFunction[] { setCount(minStackSize, maxStackSize), setDamage(item, meta), setUpgrades(), setEnergy() }, chanceCond, registryName.toString() + ":" + meta); }
@SuppressWarnings("unchecked") public static void preInit(){ LootFunctionManager.registerFunction(new SetWeight.Serializer()); LootConditionManager.registerCondition(new ConditionTime.Serializer()); LootConditionManager.registerCondition(new ConditionTier.Serializer()); EntityRegistry.registerModEntity(EntityFishHookHF.class, "hook", EntityIDs.FISHING, HarvestFestival.instance, 64, 5, true); EntityRegistry.instance().lookupModSpawn(EntityFishHookHF.class, false).setCustomSpawning(null, true); HFApi.shipping.registerSellable(new ItemStack(Items.FISH, 1, 0), 10L); HFApi.shipping.registerSellable(new ItemStack(Items.FISH, 1, 1), 30L); HFApi.shipping.registerSellable(new ItemStack(Items.FISH, 1, 2), 50L); HFApi.shipping.registerSellable(new ItemStack(Items.FISH, 1, 3), 100L); HFApi.shipping.registerSellable(new ItemStack(Items.COOKED_FISH, 1, 0), (long) (10 * COOKING_SELL_MODIFIER)); HFApi.shipping.registerSellable(new ItemStack(Items.COOKED_FISH, 1, 1), (long) (30 * COOKING_SELL_MODIFIER)); HFApi.fishing.registerBait(JUNK.getStackFromEnum(Junk.BAIT)); registerTiles(TileTrap.class, TileHatchery.class); FishingAPI.INSTANCE.breeding.register(Ore.of("fish"), 3); //Register vanilla fish for (FishType fish: FishType.values()) { registerOreIfNotExists("fish", new ItemStack(Items.FISH, 1, fish.getMetadata())); } //Register my fish for (Fish fish: Fish.values()) { registerOreIfNotExists("fish", FISH.getStackFromEnum(fish)); } }
private @Nonnull static LootEntry createLootEntry(@Nonnull ItemStack stack, int minStackSize, int maxStackSize, float chance) { LootCondition[] chanceCond = new LootCondition[] { new RandomChance(chance) }; final ResourceLocation registryName = NullHelper.notnull(stack.getItem().getRegistryName(), "found unregistered item"); return new LootEntryItem(stack.getItem(), 1, 1, new LootFunction[] { setCount(minStackSize, maxStackSize), setMetadata(stack.getMetadata()) }, chanceCond, registryName.toString() + ":" + stack.getMetadata()); }
private @Nonnull static LootEntry createLootEntry(@Nonnull Item item, int meta, int minStackSize, int maxStackSize, float chance) { LootCondition[] chanceCond = new LootCondition[] { new RandomChance(chance) }; final ResourceLocation registryName = NullHelper.notnull(item.getRegistryName(), "found unregistered item"); if (item.isDamageable()) { return new LootEntryItem(item, 1, 1, new LootFunction[] { setCount(minStackSize, maxStackSize), setDamage(item, meta), setEnergy() }, chanceCond, registryName.toString() + ":" + meta); } else { return new LootEntryItem(item, 1, 1, new LootFunction[] { setCount(minStackSize, maxStackSize), setMetadata(meta) }, chanceCond, registryName.toString() + ":" + meta); } }
lp.addEntry( new LootEntryItem(ModObject.itemSoulVial.getItemNN(), 1, 1, new LootFunction[] { setCount(1, 1), new SetNBT(NO_CONDITIONS, polarBear.toNbt(null)) }, new LootCondition[] { new RandomChance(.2F) }, "PolarBearSoulVial")); new LootCondition[] { new RandomChance(.05F) }, bucket.getItem().getUnlocalizedName() + ":" + bucket.getMetadata())); lp.addEntry( new LootEntryItem(ModObject.itemSoulVial.getItemNN(), 1, 1, new LootFunction[] { setCount(1, 1), new SetNBT(NO_CONDITIONS, shulker.toNbt(null)) }, new LootCondition[] { new RandomChance(.2F) }, "ShulkerSoulVial"));