mirror of
https://github.com/HbmMods/Hbm-s-Nuclear-Tech-GIT.git
synced 2026-01-25 10:32:49 +00:00
Merge remote-tracking branch 'origin/master'
This commit is contained in:
commit
c4a7efc23d
@ -43,7 +43,7 @@ public class ConsumableRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.apple_euphemium, 1), new Object[] { "EEE", "EAE", "EEE", 'E', EUPH.nugget(), 'A', Items.apple });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.tem_flakes, 1, 0), new Object[] { GOLD.nugget(), Items.paper });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.tem_flakes, 1, 1), new Object[] { GOLD.nugget(), GOLD.nugget(), GOLD.nugget(), Items.paper });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.tem_flakes, 1, 2), new Object[] { Items.gold_ingot, Items.gold_ingot, GOLD.nugget(), GOLD.nugget(), Items.paper });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.tem_flakes, 1, 2), new Object[] { GOLD.ingot(), GOLD.ingot(), GOLD.nugget(), GOLD.nugget(), Items.paper });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.glowing_stew, 1), new Object[] { Items.bowl, Item.getItemFromBlock(ModBlocks.mush), Item.getItemFromBlock(ModBlocks.mush) });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.balefire_scrambled, 1), new Object[] { Items.bowl, ModItems.egg_balefire });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.balefire_and_ham, 1), new Object[] { ModItems.balefire_scrambled, Items.cooked_beef });
|
||||
@ -99,8 +99,8 @@ public class ConsumableRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_antidote, 6), new Object[] { "SPS", "SMS", "SPS", 'S', ModItems.syringe_empty, 'P', Items.pumpkin_seeds, 'M', Items.reeds });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_poison, 1), new Object[] { "SLS", "LCL", "SLS", 'C', ModItems.syringe_empty, 'S', Items.spider_eye, 'L', PB.dust() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_poison, 1), new Object[] { "SLS", "LCL", "SLS", 'C', ModItems.syringe_empty, 'S', Items.spider_eye, 'L', ModItems.powder_poison });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SPS", "NCN", "SPS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', ModItems.nugget_pu238 });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SNS", "PCP", "SNS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', ModItems.nugget_pu238 });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SPS", "NCN", "SPS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', PU238.nugget() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_awesome, 1), new Object[] { "SNS", "PCP", "SNS", 'C', ModItems.syringe_empty, 'S', S.dust(), 'P', PU239.nugget(), 'N', PU238.nugget() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_empty, 6), new Object[] { "P", "C", "B", 'B', Blocks.iron_bars, 'C', ModItems.rod_empty, 'P', IRON.plate() });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_stimpak, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.nether_wart, 'S', ModItems.syringe_metal_empty });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.syringe_metal_medx, 1), new Object[] { " N ", "NSN", " N ", 'N', Items.quartz, 'S', ModItems.syringe_metal_empty });
|
||||
@ -130,10 +130,14 @@ public class ConsumableRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LLL", "SIS", "LLL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_stimpak, 'I', ModItems.pill_iodine });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.med_bag, 1), new Object[] { "LL", "SI", "LL", 'L', ModItems.plate_polymer, 'S', ModItems.syringe_metal_super, 'I', ModItems.radaway });
|
||||
|
||||
//IV Bags
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.iv_empty, 4), new Object[] { "S", "I", "S", 'S', ModItems.plate_polymer, 'I', IRON.plate() });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.iv_xp_empty, 1), new Object[] { ModItems.iv_empty, ModItems.powder_magic });
|
||||
|
||||
//Radaway
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.radaway, 1), new Object[] { "S", "M", "W", 'S', ModItems.plate_polymer, 'M', ModBlocks.mush, 'W', Items.potionitem });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.radaway_strong, 1), new Object[] { "S", "M", "W", 'S', Items.pumpkin_seeds, 'M', ModBlocks.mush, 'W', ModItems.radaway });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.radaway_flush, 1), new Object[] { "S", "M", "W", 'S', I.dust(), 'M', ModBlocks.mush, 'W', ModItems.radaway_strong });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.radaway, 1), new Object[] { ModItems.iv_blood, COAL.dust(), Items.pumpkin_seeds });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.radaway_strong, 1), new Object[] { ModItems.radaway, ModBlocks.mush });
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.radaway_flush, 1), new Object[] { ModItems.radaway_strong, I.dust() });
|
||||
|
||||
//Cladding
|
||||
CraftingManager.addShapelessAuto(new ItemStack(ModItems.cladding_paint, 1), new Object[] { PB.nugget(), PB.nugget(), PB.nugget(), PB.nugget(), Items.clay_ball, Items.glass_bottle });
|
||||
@ -172,7 +176,7 @@ public class ConsumableRecipes {
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.industrial_magnet, 1), new Object[] { "SMS", " B ", "SMS", 'S', STEEL.ingot(), 'M', ModItems.horseshoe_magnet, 'B', ModBlocks.fusion_conductor });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_container, 1), new Object[] { "HAH", "ACA", "HAH", 'H', ModItems.heart_piece, 'A', AL.ingot(), 'C', ModItems.coin_creeper });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_booster, 1), new Object[] { "GHG", "MCM", "GHG", 'G', GOLD.ingot(), 'H', ModItems.heart_container, 'M', ModItems.morning_glory, 'C', ModItems.coin_maskman });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', ModItems.billet_polonium, 'H', ModItems.heart_booster, 'M', ModItems.canteen_fab, 'C', ModItems.coin_worm });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.heart_fab, 1), new Object[] { "GHG", "MCM", "GHG", 'G', PO210.billet(), 'H', ModItems.heart_booster, 'M', ModItems.canteen_fab, 'C', ModItems.coin_worm });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.ink, 1), new Object[] { "FPF", "PIP", "FPF", 'F', new ItemStack(Blocks.red_flower, 1, OreDictionary.WILDCARD_VALUE), 'P', ModItems.armor_polish, 'I', KEY_BLACK });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.bathwater_mk2, 1), new Object[] { "MWM", "WBW", "MWM", 'M', ModItems.bottle_mercury, 'W', ModItems.nuclear_waste, 'B', ModItems.bathwater });
|
||||
CraftingManager.addRecipeAuto(new ItemStack(ModItems.back_tesla, 1), new Object[] { "DGD", "GTG", "DGD", 'D', ModItems.ducttape, 'G', ModItems.wire_gold, 'T', ModBlocks.tesla });
|
||||
|
||||
@ -23,6 +23,7 @@ import com.hbm.lib.RefStrings;
|
||||
import com.hbm.main.MainRegistry;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.tileentity.machine.rbmk.IRBMKFluxReceiver.NType;
|
||||
import com.hbm.util.EnchantmentUtil;
|
||||
|
||||
import api.hbm.block.IToolable.ToolType;
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
@ -37,6 +38,7 @@ import net.minecraft.item.ItemSoup;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.util.DamageSource;
|
||||
import net.minecraft.util.EnumChatFormatting;
|
||||
import net.minecraftforge.common.MinecraftForge;
|
||||
import net.minecraftforge.common.util.EnumHelper;
|
||||
@ -840,6 +842,10 @@ public class ModItems {
|
||||
public static Item syringe_metal_super;
|
||||
public static Item syringe_taint;
|
||||
public static Item syringe_mkunicorn;
|
||||
public static Item iv_empty;
|
||||
public static Item iv_blood;
|
||||
public static Item iv_xp_empty;
|
||||
public static Item iv_xp;
|
||||
public static Item radaway;
|
||||
public static Item radaway_strong;
|
||||
public static Item radaway_flush;
|
||||
@ -3263,10 +3269,45 @@ public class ModItems {
|
||||
syringe_metal_super = new ItemSyringe().setUnlocalizedName("syringe_metal_super").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_metal_super");
|
||||
syringe_taint = new ItemSyringe().setUnlocalizedName("syringe_taint").setFull3D().setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":syringe_taint");
|
||||
syringe_mkunicorn = new ItemSyringe().setUnlocalizedName("syringe_mkunicorn").setFull3D().setCreativeTab(null).setTextureName(RefStrings.MODID + ":syringe_mkunicorn");
|
||||
|
||||
iv_empty = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.syringe", new ItemStack(ModItems.iv_blood));
|
||||
user.attackEntityFrom(DamageSource.magic, 5F);
|
||||
}).setUnlocalizedName("iv_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_empty");
|
||||
|
||||
iv_blood = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.radaway", new ItemStack(ModItems.iv_empty));
|
||||
user.heal(5F);
|
||||
}).setUnlocalizedName("iv_blood").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_blood");
|
||||
|
||||
iv_xp_empty = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
if(user.experienceTotal >= 100) {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.syringe", new ItemStack(ModItems.iv_xp));
|
||||
EnchantmentUtil.setExperience(user, user.experienceTotal - 100);
|
||||
}
|
||||
}).setUnlocalizedName("iv_xp_empty").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_xp_empty");
|
||||
|
||||
iv_xp = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "random.orb", new ItemStack(ModItems.iv_xp_empty));
|
||||
EnchantmentUtil.addExperience(user, 100, false);
|
||||
}).setUnlocalizedName("iv_xp").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":iv_xp");
|
||||
|
||||
radaway = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.radaway", new ItemStack(ModItems.iv_empty));
|
||||
user.addPotionEffect(new PotionEffect(HbmPotion.radaway.id, 14, 9));
|
||||
}).setUnlocalizedName("radaway").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway");
|
||||
|
||||
radaway_strong = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.radaway", new ItemStack(ModItems.iv_empty));
|
||||
ItemSimpleConsumable.addPotionEffect(user, HbmPotion.radaway, 14, 9);
|
||||
}).setUnlocalizedName("radaway_strong").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_strong");
|
||||
|
||||
radaway_flush = new ItemSimpleConsumable().setUseActionServer((stack, user) -> {
|
||||
ItemSimpleConsumable.giveSoundAndDecrement(stack, user, "hbm:item.radaway", new ItemStack(ModItems.iv_empty));
|
||||
ItemSimpleConsumable.addPotionEffect(user, HbmPotion.radaway, 50, 19);
|
||||
}).setUnlocalizedName("radaway_flush").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_flush");
|
||||
|
||||
med_bag = new ItemSyringe().setUnlocalizedName("med_bag").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":med_bag");
|
||||
radaway = new ItemSyringe().setUnlocalizedName("radaway").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway");
|
||||
radaway_strong = new ItemSyringe().setUnlocalizedName("radaway_strong").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_strong");
|
||||
radaway_flush = new ItemSyringe().setUnlocalizedName("radaway_flush").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radaway_flush");
|
||||
radx = new ItemPill(0).setUnlocalizedName("radx").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":radx");
|
||||
siox = new ItemPill(0).setUnlocalizedName("siox").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":siox");
|
||||
xanax = new ItemPill(0).setUnlocalizedName("xanax").setCreativeTab(MainRegistry.consumableTab).setTextureName(RefStrings.MODID + ":xanax_2");
|
||||
@ -6253,9 +6294,9 @@ public class ModItems {
|
||||
//Universal Tank
|
||||
GameRegistry.registerItem(fluid_tank_empty, fluid_tank_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_tank_full, fluid_tank_full.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_tank_lead_full, fluid_tank_lead_full.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_tank_lead_empty, fluid_tank_lead_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_tank_lead_full, fluid_tank_lead_full.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_barrel_empty, fluid_barrel_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_barrel_full, fluid_barrel_full.getUnlocalizedName());
|
||||
GameRegistry.registerItem(fluid_barrel_infinite, fluid_barrel_infinite.getUnlocalizedName());
|
||||
|
||||
@ -7470,6 +7511,10 @@ public class ModItems {
|
||||
GameRegistry.registerItem(syringe_taint, syringe_taint.getUnlocalizedName());
|
||||
GameRegistry.registerItem(syringe_mkunicorn, syringe_mkunicorn.getUnlocalizedName());
|
||||
GameRegistry.registerItem(med_bag, med_bag.getUnlocalizedName());
|
||||
GameRegistry.registerItem(iv_empty, iv_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(iv_blood, iv_blood.getUnlocalizedName());
|
||||
GameRegistry.registerItem(iv_xp_empty, iv_xp_empty.getUnlocalizedName());
|
||||
GameRegistry.registerItem(iv_xp, iv_xp.getUnlocalizedName());
|
||||
GameRegistry.registerItem(radaway, radaway.getUnlocalizedName());
|
||||
GameRegistry.registerItem(radaway_strong, radaway_strong.getUnlocalizedName());
|
||||
GameRegistry.registerItem(radaway_flush, radaway_flush.getUnlocalizedName());
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
package com.hbm.items.special;
|
||||
|
||||
import java.util.function.BiConsumer;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import com.hbm.items.ModItems;
|
||||
import com.hbm.potion.HbmPotion;
|
||||
import com.hbm.util.Tuple.Pair;
|
||||
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.potion.Potion;
|
||||
import net.minecraft.potion.PotionEffect;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
public class ItemSimpleConsumable extends ItemCustomLore {
|
||||
|
||||
//if java is giving me the power of generics and delegates then i'm going to use them, damn it!
|
||||
private BiConsumer<ItemStack, EntityPlayer> useAction;
|
||||
private BiConsumer<ItemStack, EntityPlayer> useActionServer;
|
||||
private BiConsumer<ItemStack, Pair<EntityLivingBase, EntityLivingBase>> hitAction;
|
||||
private BiConsumer<ItemStack, Pair<EntityLivingBase, EntityLivingBase>> hitActionServer;
|
||||
|
||||
@Override
|
||||
public ItemStack onItemRightClick(ItemStack stack, World world, EntityPlayer player) {
|
||||
|
||||
if(this.useAction != null)
|
||||
this.useAction.accept(stack, player);
|
||||
|
||||
if(!world.isRemote && this.useActionServer != null)
|
||||
this.useActionServer.accept(stack, player);
|
||||
|
||||
return stack;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hitEntity(ItemStack stack, EntityLivingBase entity, EntityLivingBase entityPlayer) {
|
||||
|
||||
if(this.hitAction != null)
|
||||
this.hitAction.accept(stack, new Pair(entity, entityPlayer));
|
||||
|
||||
if(!entity.worldObj.isRemote && this.hitActionServer != null)
|
||||
this.hitActionServer.accept(stack, new Pair(entity, entityPlayer));
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
public static void giveSoundAndDecrement(ItemStack stack, EntityLivingBase entity, String sound, ItemStack container) {
|
||||
stack.stackSize--;
|
||||
entity.worldObj.playSoundAtEntity(entity, sound, 1.0F, 1.0F);
|
||||
ItemSimpleConsumable.tryAddItem(entity, container);
|
||||
}
|
||||
|
||||
public static void addPotionEffect(EntityLivingBase entity, Potion effect, int duration, int level) {
|
||||
|
||||
if(!entity.isPotionActive(effect)) {
|
||||
entity.addPotionEffect(new PotionEffect(effect.id, duration, level));
|
||||
} else {
|
||||
int d = entity.getActivePotionEffect(effect).getDuration() + duration;
|
||||
entity.addPotionEffect(new PotionEffect(effect.id, d, level));
|
||||
}
|
||||
}
|
||||
|
||||
public static void tryAddItem(EntityLivingBase entity, ItemStack stack) {
|
||||
if(entity instanceof EntityPlayer) {
|
||||
EntityPlayer player = (EntityPlayer) entity;
|
||||
if(!player.inventory.addItemStackToInventory(stack)) {
|
||||
player.dropPlayerItemWithRandomChoice(stack, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//this formatting style probably already has a name but i will call it "the greg"
|
||||
public ItemSimpleConsumable setUseAction( BiConsumer<ItemStack, EntityPlayer> delegate) { this.useAction = delegate; return this; }
|
||||
public ItemSimpleConsumable setUseActionServer( BiConsumer<ItemStack, EntityPlayer> delegate) { this.useActionServer = delegate; return this; }
|
||||
public ItemSimpleConsumable setHitAction( BiConsumer<ItemStack, Pair<EntityLivingBase, EntityLivingBase>> delegate) { this.hitAction = delegate; return this; }
|
||||
public ItemSimpleConsumable setHitActionServer( BiConsumer<ItemStack, Pair<EntityLivingBase, EntityLivingBase>> delegate) { this.hitActionServer = delegate; return this; }
|
||||
}
|
||||
@ -14,7 +14,7 @@ public class TileEntityHadronPower extends TileEntity implements IEnergyUser {
|
||||
|
||||
@Override
|
||||
public boolean canUpdate() {
|
||||
return this.worldObj.getTotalWorldTime() % 20 == 0;
|
||||
return this.worldObj != null && this.worldObj.getTotalWorldTime() % 20 == 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -1,15 +1,27 @@
|
||||
package com.hbm.util;
|
||||
|
||||
import net.minecraft.enchantment.Enchantment;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
public class EnchantmentUtil {
|
||||
|
||||
/**
|
||||
* Adds an enchantment of the given level to the supplied itemstack
|
||||
* @param stack
|
||||
* @param enchantment
|
||||
* @param level
|
||||
*/
|
||||
public static void addEnchantment(ItemStack stack, Enchantment enchantment, int level) {
|
||||
|
||||
stack.addEnchantment(enchantment, level);
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes an enchantment from the given itemstack, regardless of level
|
||||
* @param stack
|
||||
* @param enchantment
|
||||
*/
|
||||
public static void removeEnchantment(ItemStack stack, Enchantment enchantment) {
|
||||
|
||||
if(stack.getEnchantmentTagList() == null)
|
||||
@ -27,4 +39,78 @@ public class EnchantmentUtil {
|
||||
if(stack.getEnchantmentTagList().tagCount() == 0)
|
||||
stack.getTagCompound().removeTag("ench");
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the size of the XP bar for the given level
|
||||
* @param level
|
||||
* @return
|
||||
*/
|
||||
public static int xpBarCap(int level) {
|
||||
return level >= 30 ? 62 + (level - 30) * 7 : (level >= 15 ? 17 + (level - 15) * 3 : 17);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @param targetXp
|
||||
* @return
|
||||
*/
|
||||
public static int getLevelForExperience(int xp) {
|
||||
|
||||
int level = 0;
|
||||
|
||||
while (true) {
|
||||
|
||||
int xpCap = xpBarCap(level);
|
||||
|
||||
if (xp < xpCap)
|
||||
return level;
|
||||
|
||||
xp -= xpCap;
|
||||
level++;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Identical to EntityPlayer.addExperience but without increasing the player's score
|
||||
* @param player
|
||||
* @param xp
|
||||
*/
|
||||
public static void addExperience(EntityPlayer player, int xp, boolean silent) {
|
||||
|
||||
int j = Integer.MAX_VALUE - player.experienceTotal;
|
||||
|
||||
if(xp > j) {
|
||||
xp = j;
|
||||
}
|
||||
|
||||
player.experience += (float)xp / (float)player.xpBarCap();
|
||||
|
||||
for(player.experienceTotal += xp; player.experience >= 1.0F; player.experience /= (float)player.xpBarCap()) {
|
||||
player.experience = (player.experience - 1.0F) * (float)player.xpBarCap();
|
||||
|
||||
if(silent)
|
||||
addExperienceLevelSilent(player, 1);
|
||||
else
|
||||
player.addExperienceLevel(1);
|
||||
}
|
||||
}
|
||||
|
||||
public static void setExperience(EntityPlayer player, int xp) {
|
||||
|
||||
player.experienceLevel = 0;
|
||||
player.experience = 0.0F;
|
||||
player.experienceTotal = 0;
|
||||
|
||||
addExperience(player, xp, true);
|
||||
}
|
||||
|
||||
public static void addExperienceLevelSilent(EntityPlayer player, int level) {
|
||||
player.experienceLevel += level;
|
||||
|
||||
if (player.experienceLevel < 0) {
|
||||
player.experienceLevel = 0;
|
||||
player.experience = 0.0F;
|
||||
player.experienceTotal = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -52,8 +52,8 @@ public class LootGenerator {
|
||||
addItemWithDeviation(loot, world.rand, new ItemStack(syringe), 0.125, i * 0.03125, 0.25);
|
||||
}
|
||||
|
||||
int type = world.rand.nextInt(5);
|
||||
Item syringe = type < 2 ? ModItems.radaway : type < 4 ? ModItems.radx : ModItems.siox;
|
||||
int type = world.rand.nextInt(8);
|
||||
Item syringe = type < 2 ? ModItems.radaway : type < 4 ? ModItems.radx : type < 7 ? ModItems.iv_blood : ModItems.siox;
|
||||
addItemWithDeviation(loot, world.rand, new ItemStack(syringe), -0.25, 0, -0.125);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1593,6 +1593,8 @@ item.insert_polonium.name=Poloniumeinlage
|
||||
item.insert_steel.name=Schwere Stahleinlage
|
||||
item.insert_xsapi.name=XSAPI-Einlage
|
||||
item.insert_yharonite.name=Yharoniteinlage
|
||||
item.iv_blood.name=Blutbeutel
|
||||
item.iv_empty.name=Infusionsbeutel
|
||||
item.jackt.name=Verdammt stylische Kugeljacke
|
||||
item.jackt2.name=Verdammt stylische Kugeljacke 2: Tokyo Drift
|
||||
item.jetpack_boost.name=Boosterrucksack
|
||||
|
||||
@ -1662,6 +1662,8 @@ item.insert_polonium.name=Polonium Insert
|
||||
item.insert_steel.name=Heavy Steel Insert
|
||||
item.insert_xsapi.name=XSAPI Insert
|
||||
item.insert_yharonite.name=Yharonite Insert
|
||||
item.iv_blood.name=Blood Bag
|
||||
item.iv_empty.name=IV Bag
|
||||
item.jackt.name=Damn Stylish Ballistic Jacket
|
||||
item.jackt2.name=Damn Stylish Ballistic Jacket 2: Tokyo Drift
|
||||
item.jetpack_boost.name=Boostpack
|
||||
|
||||
BIN
src/main/resources/assets/hbm/textures/items/iv_blood.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/iv_blood.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 482 B |
BIN
src/main/resources/assets/hbm/textures/items/iv_empty.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/iv_empty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 251 B |
BIN
src/main/resources/assets/hbm/textures/items/iv_xp.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/iv_xp.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 443 B |
BIN
src/main/resources/assets/hbm/textures/items/iv_xp_empty.png
Normal file
BIN
src/main/resources/assets/hbm/textures/items/iv_xp_empty.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 258 B |
|
Before Width: | Height: | Size: 1.6 KiB After Width: | Height: | Size: 1.6 KiB |
Loading…
x
Reference in New Issue
Block a user