From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../fbs/alchemy/ItemEatableAlchemyMaterial.java | 178 +++++++++++++++++++++ 1 file changed, 178 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/alchemy/ItemEatableAlchemyMaterial.java (limited to 'src/main/java/jp/plusplus/fbs/alchemy/ItemEatableAlchemyMaterial.java') diff --git a/src/main/java/jp/plusplus/fbs/alchemy/ItemEatableAlchemyMaterial.java b/src/main/java/jp/plusplus/fbs/alchemy/ItemEatableAlchemyMaterial.java new file mode 100644 index 0000000..d5e0ecb --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/alchemy/ItemEatableAlchemyMaterial.java @@ -0,0 +1,178 @@ +package jp.plusplus.fbs.alchemy; + +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import jp.plusplus.fbs.FBS; +import jp.plusplus.fbs.alchemy.characteristic.*; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemFood; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.potion.Potion; +import net.minecraft.potion.PotionEffect; +import net.minecraft.util.IIcon; +import net.minecraft.world.World; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +/** + * Created by plusplus_F on 2016/02/23. + */ +public class ItemEatableAlchemyMaterial extends ItemFood implements IAlchemyMaterial { + public static String[] NAMES={ + "mushroomQli", "mushroomMatsu", "mushroomWarai", "mushroomNigaQli", + + //4 + "fruitsStamina", "fruitsItete", "fruitsSassa" + }; + + protected int[] heal={ + 2, 6, 2, 2, 2, 2, 2 + }; + protected float[] sat={ + 0.15f, 0.5f, 0.15f, 0.15f, 0.1f, 0.1f, 0.1f + }; + + protected IIcon[] icons; + + public ItemEatableAlchemyMaterial() { + super(0, 0, false); + setMaxDamage(0); + setHasSubtypes(true); + setCreativeTab(FBS.tabAlchemy); + } + + @Override + public int getMetadata(int par1) { + return par1; + } + + @Override + public String getUnlocalizedName(ItemStack p_77667_1_) { + int meta=p_77667_1_.getItemDamage(); + if(meta<0 ||meta>=NAMES.length) meta=0; + + return "item.fbs.material." + NAMES[meta]; + } + + @Override + @SideOnly(Side.CLIENT) + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i=0;i cbs=addCharacteristics(it, AlchemyRegistry.getRandom()); + AlchemyRegistry.WriteCharacteristicToNBT(it.getTagCompound(), cbs); + + list.add(it); + } + } + + @Override + @SideOnly(Side.CLIENT) + public void registerIcons(IIconRegister register) { + icons=new IIcon[NAMES.length]; + + for(int i=0;i=icons.length) p_77617_1_=0; + return icons[p_77617_1_]; + } + + @Override + @SideOnly(Side.CLIENT) + public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) { + AlchemyRegistry.AddCharacteristicsInfo(itemStack, list, p_77624_4_); + AlchemyRegistry.AddMaterialInfo(itemStack, list, p_77624_4_); + } + + + @Override + public int func_150905_g(ItemStack p_150905_1_) { + return heal[p_150905_1_.getItemDamage()]; + } + + @Override + public float func_150906_h(ItemStack p_150906_1_) { + return sat[p_150906_1_.getItemDamage()]; + } + + @Override + protected void onFoodEaten(ItemStack p_77849_1_, World p_77849_2_, EntityPlayer p_77849_3_) { + //特性の効果発動 + if (!p_77849_2_.isRemote) { + ArrayList list = AlchemyRegistry.ReadCharacteristicFromNBT(p_77849_1_.getTagCompound()); + for (CharacteristicBase cb : list) cb.affectEntity(p_77849_2_, p_77849_3_); + } + } + + @Override + public ArrayList addCharacteristics(ItemStack itemStack, Random rand) { + int meta=itemStack.getItemDamage(); + ArrayList list=new ArrayList(); + CharacteristicBase cb; + + //--------------------------なんにでもつくやつ-------------------------------- + float r; + //品質 + r = rand.nextFloat(); + if (r < 0.08f) { + cb = new CharacteristicQuality(); + cb.setValue(0); + list.add(cb); + } else if (r < 0.38f) { + cb = new CharacteristicQuality(); + cb.setValue(1); + list.add(cb); + } else if (r < 0.58f) { + cb = new CharacteristicQuality(); + cb.setValue(2); + list.add(cb); + } + + if(FBS.cooperatesSS2){ + if(meta==1 || meta==4){ + cb = new CharacteristicStamina.Gain(); + cb.setValue(0); + list.add(cb); + } + } + + if(meta==3){ + cb = new CharacteristicPoison.Gain(); + cb.setValue(0); + list.add(cb); + } + + if(meta==2){ + cb = new CharacteristicConfusion.Gain(); + cb.setValue(0); + list.add(cb); + } + + if(meta==5){ + cb = new CharacteristicHealth.Lose(); + cb.setValue(0); + list.add(cb); + } + + if(meta==6){ + cb = new CharacteristicSpeed.Gain(); + cb.setValue(0); + list.add(cb); + } + + return list; + } +} -- cgit v1.2.3