diff options
Diffstat (limited to 'src/main/java/jp/plusplus/fbs/item')
77 files changed, 3050 insertions, 0 deletions
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class Binary files differnew file mode 100644 index 0000000..34b39f3 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.java b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.java new file mode 100644 index 0000000..1cbe9ce --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.java @@ -0,0 +1,55 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.block.BlockAlchemistTable;
+import jp.plusplus.fbs.block.BlockAlchemyCauldron;
+import jp.plusplus.fbs.block.BlockCore;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/09/25.
+ * 死ね
+ */
+public class ItemAlchemyCauldron extends ItemBlock {
+ public ItemAlchemyCauldron(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ }
+
+ @Override
+ public void addInformation(ItemStack item, EntityPlayer p_77624_2_, List list, boolean flag){
+ list.add(StatCollector.translateToLocal("info.fbs.alchemyCauldron.0"));
+ list.add("Size:W2H1D2");
+ }
+
+ @Override
+ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) {
+ int l = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
+ int pSide=0;
+
+ /*
+ //プレイヤーの向きの決定
+ switch (l){
+ case 0: pSide=2; break;
+ case 1: pSide=5; break;
+ case 2: pSide=3; break;
+ case 3: pSide=4; break;
+ }
+ */
+ pSide=(l==0||l==2)?0:8;
+
+ ArrayList<BlockAlchemyCauldron.BlockPos> pos= ((BlockAlchemyCauldron)field_150939_a).getBlocks(world, x, y, z);
+ for(BlockAlchemyCauldron.BlockPos bp : pos){
+ if(!bp.getBlock(world).isReplaceable(world, bp.x, bp.y, bp.z)) return false;
+ }
+
+ return super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, pSide);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.class b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.class Binary files differnew file mode 100644 index 0000000..ee26cfb --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.java b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.java new file mode 100644 index 0000000..3f51f1d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.java @@ -0,0 +1,48 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.block.BlockAlchemistTable;
+import jp.plusplus.fbs.block.BlockBase;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/09/25.
+ * 死ね
+ */
+public class ItemAlchemyTable extends ItemBlock {
+ public ItemAlchemyTable(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ }
+
+ @Override
+ public void addInformation(ItemStack item, EntityPlayer p_77624_2_, List list, boolean flag){
+ list.add(StatCollector.translateToLocal("info.fbs.translator.0"));
+ list.add("Size:W2H1D1");
+ }
+
+ @Override
+ public boolean placeBlockAt(ItemStack stack, EntityPlayer player, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata) {
+ int l = MathHelper.floor_double((double) (player.rotationYaw * 4.0F / 360.0F) + 0.5D) & 3;
+ int pSide=0;
+
+ //プレイヤーの向きの決定
+ switch (l){
+ case 0: pSide=2; break;
+ case 1: pSide=5; break;
+ case 2: pSide=3; break;
+ case 3: pSide=4; break;
+ }
+
+ if(world.getBlock(x,y,z).isReplaceable(world,x,y,z) && world.getBlock(x+BlockAlchemistTable.X_SHIFT[pSide-2],y,z+BlockAlchemistTable.Z_SHIFT[pSide-2]).isReplaceable(world,x+BlockAlchemistTable.X_SHIFT[pSide-2],y,z+BlockAlchemistTable.Z_SHIFT[pSide-2])){
+ return super.placeBlockAt(stack, player, world, x, y, z, side, hitX, hitY, hitZ, pSide);
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.class b/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.class Binary files differnew file mode 100644 index 0000000..8cb260b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.java b/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.java new file mode 100644 index 0000000..e795704 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.java @@ -0,0 +1,65 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/11/22.
+ */
+public class ItemArmorInfinity extends ItemArmor {
+ public ItemArmorInfinity(ArmorMaterial p_i45325_1_, int p_i45325_3_) {
+ super(p_i45325_1_, 0, p_i45325_3_);
+ setCreativeTab(FBS.tab);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.infinity.0"));
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) {
+ if(slot==0 || slot==1 || slot==3) return FBS.MODID+":textures/armor/infinity1.png";
+ else return FBS.MODID+":textures/armor/infinity2.png";
+ }
+
+ @SideOnly(Side.CLIENT)
+ public boolean hasEffect(ItemStack par1ItemStack, int pass) {
+ return true;
+ }
+
+ public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
+ Item item=itemStack.getItem();
+
+ if(item==ItemCore.infinityHelm){
+ player.addPotionEffect(new PotionEffect(Potion.waterBreathing.getId(), 10, 0));
+ //player.addPotionEffect(new PotionEffect(Potion.nightVision.getId(), 10, 0));
+ }
+ else if(item==ItemCore.infinityArmor){
+ player.addPotionEffect(new PotionEffect(Potion.fireResistance.getId(), 10, 0));
+ player.addPotionEffect(new PotionEffect(Potion.regeneration.getId(), 10, 0));
+ }
+ else if(item==ItemCore.infinityLegs){
+ player.addPotionEffect(new PotionEffect(Potion.digSpeed.getId(), 10, 1));
+ }
+ else if(item==ItemCore.infinityBoots){
+ player.addPotionEffect(new PotionEffect(Potion.moveSpeed.getId(), 10, 0));
+ player.addPotionEffect(new PotionEffect(Potion.jump.getId(), 10, 0));
+ }
+
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBase.class b/src/main/java/jp/plusplus/fbs/item/ItemBase.class Binary files differnew file mode 100644 index 0000000..f81a79e --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBase.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBase.java b/src/main/java/jp/plusplus/fbs/item/ItemBase.java new file mode 100644 index 0000000..416a922 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBase.java @@ -0,0 +1,38 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/13.
+ */
+public class ItemBase extends Item {
+ public ItemBase(){
+ setCreativeTab(FBS.tab);
+ }
+
+ public Item setUnlocalizedName(String s){
+ super.setUnlocalizedName("fbs." + s);
+ return this;
+ }
+ public Item setTextureName(String s){
+ super.setTextureName(FBS.MODID + ":" + s);
+ return this;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(p_77624_1_.getItem()==ItemCore.potionBless){
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.potionBless.0"));
+ }
+ }
+
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBasket.class b/src/main/java/jp/plusplus/fbs/item/ItemBasket.class Binary files differnew file mode 100644 index 0000000..e659172 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBasket.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBasket.java b/src/main/java/jp/plusplus/fbs/item/ItemBasket.java new file mode 100644 index 0000000..99b5e6b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBasket.java @@ -0,0 +1,42 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Created by plusplus_F on 2015/03/09.
+ */
+public class ItemBasket extends ItemBase {
+ public Random rand = new Random();
+
+ public ItemBasket() {
+ setUnlocalizedName("basket");
+ setTextureName("basket");
+ setMaxStackSize(1);
+ setNoRepair();
+ setMaxDamage(0);
+ setCreativeTab(FBS.tabAlchemy);
+ }
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean flag) {
+ list.add(StatCollector.translateToLocal("info.fbs.basket.0"));
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
+ player.openGui(FBS.instance, FBS.GUI_BASKET_ID, world, MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ));
+ return itemStack;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.class b/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.class Binary files differnew file mode 100644 index 0000000..ac7ca97 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.java b/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.java new file mode 100644 index 0000000..910a30f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.java @@ -0,0 +1,36 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.block.BlockBase;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemBlockWithMetadata;
+import net.minecraft.item.ItemStack;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/14.
+ */
+public class ItemBlockBase extends ItemBlock {
+ public ItemBlockBase(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ setCreativeTab(FBS.tab);
+ }
+
+ public ItemBlock setUnlocalizedName(String s){
+ super.setUnlocalizedName("fbs." + s);
+ return this;
+ }
+ public Item setTextureName(String s){
+ super.setTextureName(FBS.MODID + ":" + s);
+ return this;
+ }
+
+ @Override
+ public void addInformation(ItemStack item, EntityPlayer p_77624_2_, List list, boolean flag){
+ if(field_150939_a instanceof BlockBase) ((BlockBase)(field_150939_a)).addBlockInformation(item, p_77624_2_, list, flag);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.class b/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.class Binary files differnew file mode 100644 index 0000000..a0a0142 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.java b/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.java new file mode 100644 index 0000000..f9359be --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.java @@ -0,0 +1,41 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.block.BlockBlock;
+import jp.plusplus.fbs.block.IMeta;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+/**
+ * Created by plusplus_F on 2015/08/25.
+ */
+public class ItemBlockMeta extends ItemBlockBase {
+ public ItemBlockMeta(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int p_77617_1_)
+ {
+ return this.field_150939_a.getIcon(2, p_77617_1_);
+ }
+
+ @Override
+ public int getMetadata(int p_77647_1_)
+ {
+ return p_77647_1_;
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack par1ItemStack) {
+ if(field_150939_a instanceof IMeta) {
+ return ((IMeta) field_150939_a).getUnlocalizedName(par1ItemStack.getItemDamage());
+ }
+ return super.getUnlocalizedName();
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.class b/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.class Binary files differnew file mode 100644 index 0000000..ce7e4b0 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.java b/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.java new file mode 100644 index 0000000..a41a49b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.java @@ -0,0 +1,56 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+/**
+ * Created by plusplus_F on 2015/08/24.
+ */
+public class ItemBookBroken extends ItemBase {
+ private IIcon iconOverlay;
+
+ public ItemBookBroken(){
+ setCreativeTab(FBS.tabBook);
+ setUnlocalizedName("bookBroken");
+ setTextureName("bookNoDecoded");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1){
+ return super.getIconFromDamage(par1);
+ }
+ @Override
+ public int getMetadata(int par1) {
+ return par1;
+ }
+ @Override
+ public int getSpriteNumber(){
+ return 1;
+ }
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ super.registerIcons(par1IconRegister);
+ iconOverlay=par1IconRegister.registerIcon(FBS.MODID+":bookBroken");
+ }
+ @SideOnly(Side.CLIENT)
+ public boolean requiresMultipleRenderPasses(){
+ return true;
+ }
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamageForRenderPass(int par1, int par2){
+ return par2 > 0 ? iconOverlay : itemIcon;
+ }
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack par1ItemStack, int par2) {
+ if(par2==0) return 0xffffff;
+ int d=par1ItemStack.getItemDamage();
+ int r=(d>>8)&0xf, g=(d>>4)&0xf, b=d&0xf;
+ return ~(((r*17)<<16)+((g*17)<<8)+(b*17));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded$1.class b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded$1.class Binary files differnew file mode 100644 index 0000000..3a8f357 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded$1.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class Binary files differnew file mode 100644 index 0000000..5e955b0 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.java b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.java new file mode 100644 index 0000000..723ce62 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.java @@ -0,0 +1,189 @@ +package jp.plusplus.fbs.item;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.*;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.*;
+
+/**
+ * Createdby pluslus_Fon 2015/06/06.
+ */
+public class ItemBookNoDecoded extends ItemBase {
+ private IIcon iconOverlay;
+
+ public ItemBookNoDecoded(){
+ setCreativeTab(FBS.tabBook);
+ setMaxStackSize(1);
+ setUnlocalizedName("bookNDec");
+ setTextureName("bookNoDecoded");
+ setHasSubtypes(true);
+ }
+
+ @Override
+ public int getMaxItemUseDuration(ItemStack p_77626_1_){
+ return 20*6;
+ }
+ @Override
+ public EnumAction getItemUseAction(ItemStack p_77661_1_)
+ {
+ return FBS.actionDecode;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ /*
+ ItemStack helm=p_77659_3_.getCurrentArmor(3);
+ if(helm!=null && helm.getItem() instanceof ItemMonocle) {
+ p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
+ }
+ */
+ if(ItemMonocle.findMonocle(p_77659_3_)!=null) p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
+ return p_77659_1_;
+ }
+ @Override
+ public ItemStack onEaten(ItemStack itemStack, World world, EntityPlayer player) {
+ if(!itemStack.hasTagCompound()) return itemStack;
+
+ ItemStack monocle=ItemMonocle.findMonocle(player);
+ if(monocle==null) return itemStack;
+
+ if(!player.capabilities.isCreativeMode){
+ ItemMonocle.damageMonocle(player, monocle);
+ player.inventory.markDirty();
+ }
+
+ if(world.isRemote) return itemStack;
+
+ NBTTagCompound nbt=itemStack.getTagCompound();
+ boolean result=Registry.TryDecodingBook(nbt.getString("title"), player, true);
+ if(result){
+ NBTTagCompound nbtNew=(NBTTagCompound)nbt.copy();
+ nbtNew.setString("decoder", player.getDisplayName());
+
+ ItemStack ret=null;
+ String t=nbt.getString("title");
+ if(Registry.GetBook(t).isMagic) {
+ ret=new ItemStack(ItemCore.bookSorcery, 1, itemStack.getItemDamage());
+ ret.setTagCompound(nbtNew);
+ ((ItemBookSorcery)ItemCore.bookSorcery).setMagicMaxUse(ret, Registry.GetMagic(t));
+ }
+ else{
+ ret=new ItemStack(ItemCore.bookOld, 1, itemStack.getItemDamage());
+ ret.setTagCompound(nbtNew);
+ }
+
+ return ret;
+ }
+
+ //p_77654_2_.playSoundAtEntity(p_77654_3_, "random.burp", 0.5F, p_77654_2_.rand.nextFloat() * 0.1F + 0.9F);
+ return itemStack;
+ }
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ Map.Entry<String, Registry.BookData>[] books=Registry.GetBooks();
+ Arrays.sort(books, new Comparator<Map.Entry<String, Registry.BookData>>() {
+ @Override
+ public int compare(Map.Entry<String, Registry.BookData> o1, Map.Entry<String, Registry.BookData> o2) {
+ return o1.getValue().lv-o2.getValue().lv;
+ }
+ });
+
+ for(int i=0;i<books.length;i++){
+ if(books[i].getValue().weight<=0) continue;
+
+ ItemStack itemStack = new ItemStack(this, 1, itemRand.nextInt(0xfff+1));
+ NBTTagCompound nbt = new NBTTagCompound();
+ nbt.setString("title", books[i].getValue().title);
+ itemStack.setTagCompound(nbt);//ItemStackにNBTTagCompoundを格納
+ itemList.add(itemStack);//クリエイティブタブのアイテムリストに追加
+ }
+ }
+
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ Registry.BookData bd=Registry.GetBookDataFromItemStack(itemStack);
+ if(bd==null) return;
+
+ /*
+ ItemStack helm=player.getCurrentArmor(3);
+ if(helm!=null && helm.getItem() instanceof ItemMonocle){
+ */
+ if(ItemMonocle.findMonocle(player)!=null){
+ FBSEntityProperties prop=FBSEntityProperties.get(player);
+ if(prop==null) return;
+
+ String d;
+ float prob=Registry.GetDecodingProbability(prop.getMagicLevel(), bd.lv, bd.scProb);
+ if(prob<0.3f) d=ChatFormatting.RED+ I18n.format("info.fbs.book.high");
+ else if(prob<0.8) d=ChatFormatting.YELLOW+I18n.format("info.fbs.book.middle");
+ else d=ChatFormatting.DARK_GREEN+I18n.format("info.fbs.book.low");
+
+ list.add(I18n.format("info.fbs.book.lv")+":"+bd.lv);
+ list.add(I18n.format("info.fbs.book.difficult")+":"+d);
+ }
+ else{
+ list.add(I18n.format("info.fbs.book.lv")+":???");
+ list.add(I18n.format("info.fbs.book.difficult")+":???");
+ }
+ }
+
+ public String getLocalizedBookTitle(ItemStack item){
+ NBTTagCompound nbt=item.getTagCompound();
+ if(nbt==null) return "";
+ return StatCollector.translateToLocal("book."+nbt.getString("title")+".title");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1){
+ return super.getIconFromDamage(par1);
+ }
+ @Override
+ public int getMetadata(int par1) {
+ return par1;
+ }
+ @Override
+ public int getSpriteNumber(){
+ return 1;
+ }
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ super.registerIcons(par1IconRegister);
+ iconOverlay=par1IconRegister.registerIcon(FBS.MODID+":book");
+ }
+ @SideOnly(Side.CLIENT)
+ public boolean requiresMultipleRenderPasses(){
+ return true;
+ }
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamageForRenderPass(int par1, int par2){
+ return par2 > 0 ? iconOverlay : itemIcon;
+ }
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack par1ItemStack, int par2) {
+ if(par2==0) return 0xffffff;
+ int d=par1ItemStack.getItemDamage();
+ int r=(d>>8)&0xf, g=(d>>4)&0xf, b=d&0xf;
+ return ~(((r*17)<<16)+((g*17)<<8)+(b*17));
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack item){
+ String s=getLocalizedBookTitle(item);
+ if(s.length()==0) return super.getItemStackDisplayName(item);
+ return s;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.class b/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.class Binary files differnew file mode 100644 index 0000000..17e7a3c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.java b/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.java new file mode 100644 index 0000000..30aca10 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.java @@ -0,0 +1,251 @@ +package jp.plusplus.fbs.item;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import cpw.mods.fml.common.FMLLog;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.api.event.PlayerUseMagicEvent;
+import jp.plusplus.fbs.exprop.SanityManager;
+import jp.plusplus.fbs.api.IMagicEnchant;
+import jp.plusplus.fbs.api.MagicBase;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.ChatComponentTranslation;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Random;
+
+/**
+ * Createdby pluslus_Fon 2015/06/06.
+ */
+public class ItemBookSorcery extends ItemBookNoDecoded {
+ Random rand=new Random();
+
+ public ItemBookSorcery(){
+ setMaxStackSize(1);
+ setCreativeTab(null);
+ setUnlocalizedName("bookDec");
+ setTextureName("bookNoDecoded");
+ setHasSubtypes(true);
+ }
+
+ @Override
+ public boolean hasEffect(ItemStack itemStack, int i){
+ return true;
+ }
+
+ @Override
+ public int getMaxItemUseDuration(ItemStack p_77626_1_){
+ Registry.MagicData md=Registry.GetMagicDataFromItemStack(p_77626_1_);
+ if(md==null) return 32;
+ return md.ariaTick;
+ }
+ @Override
+ public EnumAction getItemUseAction(ItemStack p_77661_1_)
+ {
+ return FBS.actionSpell;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ if(getMagicMaxUse(p_77659_1_)>0) {
+ if (p_77659_3_.isSneaking()) {
+ executesMagic(p_77659_1_, p_77659_2_, p_77659_3_, false);
+ } else {
+ p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
+ }
+ }
+ return p_77659_1_;
+ }
+ @Override
+ public ItemStack onEaten(ItemStack itemStack, World world, EntityPlayer player) {
+ if(getMagicMaxUse(itemStack)>0){
+ executesMagic(itemStack, world, player, true);
+ }
+ return itemStack;
+ }
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ Registry.BookData bd = Registry.GetBookDataFromItemStack(itemStack);
+ Registry.MagicData md = Registry.GetMagicDataFromItemStack(itemStack);
+ if (bd == null || md==null) return;
+
+ //list.add("\"" + bd.getLocalizedTitle() + "\"");
+ list.add(I18n.format("info.fbs.book.decoder")+":"+itemStack.getTagCompound().getString("decoder"));
+ list.add(I18n.format("info.fbs.book.lv") + ":" + bd.lv);
+
+ String s=I18n.format("magic.type.fbs.type") + ":" + I18n.format("magic.type."+md.type);
+ if(IMagicEnchant.class.isAssignableFrom(md.magic)) s+=","+I18n.format("magic.type.fbs.enchant");
+ list.add(s);
+
+ for(int i=0;i<5;i++){
+ String sss="flavor."+bd.title+"."+i;
+ if(!StatCollector.canTranslate(sss)) break;
+ list.add(ChatFormatting.ITALIC+StatCollector.translateToLocal(sss));
+ }
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack item){
+ return super.getItemStackDisplayName(item)+"("+StatCollector.translateToLocal("info.fbs.book.decoded")+")["+getMagicMaxUse(item)+"]";
+ }
+
+ public void executesMagic(ItemStack itemStack, World world, EntityPlayer player, boolean spell){
+ if(!itemStack.hasTagCompound() || world.isRemote) return;
+
+ Registry.MagicData md=Registry.GetMagicDataFromItemStack(itemStack);
+ if(md==null) return;
+
+ try {
+ MagicBase mb = md.getMagic(world, player, spell);
+
+ String cir=mb.getMagicCircleName();
+ if(cir!=null && !cir.equals("null") && !mb.checkMagicCircle(cir)){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.magic.circle.need"));
+ return;
+ }
+
+ PlayerUseMagicEvent pume=new PlayerUseMagicEvent.Pre(player, mb, new ItemStack[]{itemStack});
+ if(!MinecraftForge.EVENT_BUS.post(pume)){
+
+ double exp=md.exp;
+ if(mb.checkSuccess() || player.capabilities.isCreativeMode){
+ mb.success();
+ }
+ else{
+ mb.failureMessage();
+ mb.failure();
+ exp*=0.2;
+ }
+ if(!spell) exp*=0.1;
+ SanityManager.addExp(player, exp, true);
+
+ pume=new PlayerUseMagicEvent.Post(player, mb, new ItemStack[]{itemStack});
+ MinecraftForge.EVENT_BUS.post(pume);
+ }
+ }
+ catch (Exception e){
+ FMLLog.severe("Error! magic:"+md.title);
+ e.printStackTrace();
+ }
+
+ if(!player.capabilities.isCreativeMode){
+ reduceMagicMaxUse(itemStack);
+ }
+ }
+ public void executesMagicWithStaff(World world, EntityPlayer player, ItemStack[] staffItems, int bookNum) {
+ if (world.isRemote) return;
+
+ //共鳴しているかどうかの判定用リストを作成する
+ LinkedList<ItemStack> books = new LinkedList<ItemStack>();
+ for (int i = 0; i < bookNum; i++) {
+ if (staffItems[i] != null && staffItems[i].getItem() == ItemCore.bookSorcery) {
+ books.add(staffItems[i]);
+ }
+ }
+ if (books.isEmpty()) return;
+
+ //共鳴している魔法がデータとして存在するか確認
+ Registry.MagicData md = Registry.GetResonanceMagicData(books);
+ if (md == null) return;
+
+ try {
+ //魔法のインスタンスを作成
+ MagicBase mb = md.getMagic(world, player, false);
+
+ //その魔法が魔法陣を必要とする場合、要求された魔法陣の中心にいるかどうかの判定
+ String cir=mb.getMagicCircleName();
+ if(cir!=null && !cir.equals("null") && !mb.checkMagicCircle(cir)){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.magic.circle.need"));
+ return;
+ }
+
+ //魔法使用直前のイベントを発生させ、キャンセルされていない場合魔法を実行する
+ if(!MinecraftForge.EVENT_BUS.post(new PlayerUseMagicEvent.Pre(player, mb, books.toArray(new ItemStack[books.size()])))){
+ boolean sc = mb.checkSuccess();
+ double exp = md.exp;
+ mb.isSpelled = true;
+ if (sc || player.capabilities.isCreativeMode) {
+ mb.success();
+ } else {
+ //失敗
+ mb.failureMessage();
+
+ //スタッフにセットされているチャームを探す
+ int charm = -1;
+ for (int i = bookNum; i < staffItems.length; i++) {
+ if (staffItems[i] != null && staffItems[i].getItem() == ItemCore.charm) {
+ charm = i;
+ break;
+ }
+ }
+
+ //チャームがセットされている場合、それを消費して魔法失敗時のデメリット回避
+ if (charm != -1) {
+ staffItems[charm].stackSize--;
+ if (staffItems[charm].stackSize <= 0) staffItems[charm] = null;
+ player.addChatComponentMessage(new ChatComponentText(StatCollector.translateToLocal("info.fbs.magic.charm")));
+ } else mb.failure();
+
+ exp *= 0.2;
+ }
+
+ exp *= 0.5;//スタッフ使用時、経験値に補正をかける
+ SanityManager.addExp(player, exp, true);
+
+ //魔法使用直後のイベント発生
+ MinecraftForge.EVENT_BUS.post(new PlayerUseMagicEvent.Post(player, mb, books.toArray(new ItemStack[books.size()])));
+ }
+ } catch (Exception e) {
+ FMLLog.severe("Error! magic:" + md.title);
+ e.printStackTrace();
+ }
+
+ //魔導書の使用回数を減らす
+ if (!player.capabilities.isCreativeMode) {
+ for (ItemStack item : books) {
+ reduceMagicMaxUse(item);
+ }
+ }
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ itemList.add(new ItemStack(this, 1, itemRand.nextInt(0xffffff+1)));
+ }
+
+ public static void setMagicMaxUse(ItemStack item, Registry.MagicData md){
+ NBTTagCompound nbt=item.getTagCompound();
+ if(nbt==null) return;
+ if(nbt.hasKey("useAmount")) nbt.removeTag("useAmount");
+ nbt.setInteger("useAmount", md.minUse+itemRand.nextInt(md.maxUse-md.minUse+1));
+ }
+ public static void setMagicMaxUse(ItemStack item, int num){
+ NBTTagCompound nbt=item.getTagCompound();
+ if(nbt==null) return;
+ if(nbt.hasKey("useAmount")) nbt.removeTag("useAmount");
+ nbt.setInteger("useAmount", num);
+ }
+ public static int getMagicMaxUse(ItemStack item){
+ NBTTagCompound nbt=item.getTagCompound();
+ if(nbt==null) return 0;
+ return nbt.getInteger("useAmount");
+ }
+ public static void reduceMagicMaxUse(ItemStack item){
+ NBTTagCompound nbt=item.getTagCompound();
+ if(nbt==null) return;
+ int c=nbt.getInteger("useAmount")-1;
+ nbt.removeTag("useAmount");
+ nbt.setInteger("useAmount", c);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.class b/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.class Binary files differnew file mode 100644 index 0000000..0632932 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.java b/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.java new file mode 100644 index 0000000..e780a9c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.java @@ -0,0 +1,54 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.*;
+
+/**
+ * Created by plusplus_F on 2015/08/25.
+ */
+public class ItemBookWhite extends ItemBase {
+ protected Random rand=new Random();
+
+ public ItemBookWhite(){
+ setCreativeTab(FBS.tabBook);
+ setUnlocalizedName("bookWhite");
+ setTextureName("bookWhite");
+ setMaxStackSize(1);
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ if(p_77659_2_.isRemote) return p_77659_1_;
+
+ ArrayList<Registry.BookData> list=new ArrayList<Registry.BookData>();
+ Map.Entry<String, Registry.BookData>[] books=Registry.GetBooks();
+
+ //魔導書の抽出
+ for(Map.Entry<String, Registry.BookData> bd : books){
+ if(!bd.getValue().isMagic) continue;
+
+ Registry.MagicData md=Registry.GetMagic(bd.getValue().title);
+ if(md.isResonance) continue;
+
+ list.add(bd.getValue());
+ }
+
+ //ランダムに変化
+ int r=rand.nextInt(list.size());
+ return Registry.GetBookItemStack(list.get(r).title);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.bookWhite.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookmark.class b/src/main/java/jp/plusplus/fbs/item/ItemBookmark.class Binary files differnew file mode 100644 index 0000000..31f872a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookmark.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookmark.java b/src/main/java/jp/plusplus/fbs/item/ItemBookmark.java new file mode 100644 index 0000000..a51aec9 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemBookmark.java @@ -0,0 +1,140 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.block.BlockCore;
+import jp.plusplus.fbs.world.structure.MapGenSealdLib;
+import net.minecraft.client.multiplayer.ChunkProviderClient;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.ChatComponentTranslation;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.ChunkPosition;
+import net.minecraft.world.World;
+import net.minecraft.world.chunk.Chunk;
+import net.minecraft.world.chunk.IChunkProvider;
+import net.minecraft.world.gen.ChunkProviderServer;
+import net.minecraft.world.gen.structure.MapGenStructureIO;
+
+import java.util.List;
+
+/**
+ * Created by pluslus_F on 2015/06/23.
+ */
+public class ItemBookmark extends ItemBase {
+ public ItemBookmark() {
+ setUnlocalizedName("bookmark");
+ setTextureName("bookmark");
+ setMaxDamage(64);
+ setMaxStackSize(1);
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player){
+ if(!world.isRemote){
+ /*
+ まー言いたい事はいろいろあるけどさ、
+ なんでfindClosestStructureが実質Stronghold限定の実装なのよ。
+ わざわざ引数に構造物名とっといてさ。
+
+ @もやん
+ fニヽ
+ |_||
+ |= |
+ | |
+ |= |
+ i⌒| |⌒i_
+ /| | | | ヽ
+ | ( ( ( ( |
+ |/ |
+ | |
+ \ ノ
+ \ /
+ | |
+ */
+ item.damageItem(1, player);
+
+ int x=MathHelper.floor_double(player.posX), z=MathHelper.floor_double(player.posZ);
+ int dx=(x/16)-1, dz=(z/16);
+
+ //FBS.logger.info("at:"+dx+","+dz);
+
+ //強硬手段
+ for(int i=10;i<50;i++){
+ if(world.getBlock(x, i, z)== BlockCore.plank){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.shining"));
+ break;
+ }
+ }
+
+ if(MapGenSealdLib.isLibraryChunk(world, dx, dz)){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.success"));
+ }
+ else{
+ boolean found=false;
+ for(int i=0;i<3 && !found;i++){
+ for(int k=0;k<3 && !found;k++){
+ if(MapGenSealdLib.isLibraryChunk(world, dx+(i-1), dz+(k-1))){
+ found=true;
+ }
+ }
+ }
+ if(found){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.found"));
+ }
+ else{
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.failure"));
+ }
+ }
+ }
+
+
+ return item;
+ }
+
+ /*
+ @Override
+ public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int x, int y, int z, int side, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ if(world.isRemote) return true;
+
+ item.damageItem(1, player);
+
+ world.findClosestStructure("Sealed Library", )
+
+ if(world.provider.dimensionCrackId!=0){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.failure"));
+ return true;
+ }
+
+ int dx=(x/16)-1, dz=(z/16);
+
+ if(MapGenSealdLib.isLibraryChunk(world, dx, dz)){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.success"));
+ }
+ else{
+ boolean found=false;
+ for(int i=0;i<3 && !found;i++){
+ for(int k=0;k<3 && !found;k++){
+ if(MapGenSealdLib.isLibraryChunk(world, dx+(i-1), dz+(k-1))){
+ found=true;
+ }
+ }
+ }
+ if(found){
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.found"));
+ }
+ else{
+ player.addChatComponentMessage(new ChatComponentTranslation("info.fbs.bookmark.failure"));
+ }
+ }
+
+ return true;
+ }
+ */
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.bookmark.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemButterfly.class b/src/main/java/jp/plusplus/fbs/item/ItemButterfly.class Binary files differnew file mode 100644 index 0000000..184b549 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemButterfly.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemButterfly.java b/src/main/java/jp/plusplus/fbs/item/ItemButterfly.java new file mode 100644 index 0000000..e952580 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemButterfly.java @@ -0,0 +1,278 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.block.BlockCore;
+import jp.plusplus.fbs.entity.EntityButterfly;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockLiquid;
+import net.minecraft.block.material.Material;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.EntityLiving;
+import net.minecraft.entity.EntityLivingBase;
+import net.minecraft.entity.IEntityLivingData;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.Facing;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.MovingObjectPosition;
+import net.minecraft.world.World;
+import net.minecraftforge.common.util.ForgeDirection;
+
+/**
+ * Created by plusplus_F on 2015/08/20.
+ * ちょうちょ
+ */
+public class ItemButterfly extends ItemBase {
+ public ItemButterfly() {
+ setUnlocalizedName("butterfly");
+ setTextureName("butterfly");
+ }
+
+ //Entityの生成
+ public static Entity spawnCreature(World par0World, int meta, double x, double y, double z) {
+ Entity entity = null;
+ entity = new EntityButterfly(par0World);
+
+ EntityLiving entityliving = (EntityLiving) entity;
+ entity.setLocationAndAngles(x, y, z, MathHelper.wrapAngleTo180_float(par0World.rand.nextFloat() * 360.0F), 0.0F);
+ entityliving.rotationYawHead = entityliving.rotationYaw;
+ entityliving.renderYawOffset = entityliving.rotationYaw;
+ entityliving.onSpawnWithEgg((IEntityLivingData) null);
+ par0World.spawnEntityInWorld(entity);
+ entityliving.playLivingSound();
+
+ return entity;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) {
+ if (par2World.isRemote) {
+ return par1ItemStack;
+ } else {
+ MovingObjectPosition movingobjectposition = this.getMovingObjectPositionFromPlayer(par2World, par3EntityPlayer, true);
+
+ if (movingobjectposition == null) {
+ return par1ItemStack;
+ } else {
+ if (movingobjectposition.typeOfHit == MovingObjectPosition.MovingObjectType.BLOCK) {
+ int i = movingobjectposition.blockX;
+ int j = movingobjectposition.blockY;
+ int k = movingobjectposition.blockZ;
+
+ if (!par2World.canMineBlock(par3EntityPlayer, i, j, k)) {
+ return par1ItemStack;
+ }
+
+ if (!par3EntityPlayer.canPlayerEdit(i, j, k, movingobjectposition.sideHit, par1ItemStack)) {
+ return par1ItemStack;
+ }
+
+ if (par2World.getBlock(i, j, k) instanceof BlockLiquid) {
+ Entity entity = spawnCreature(par2World, par1ItemStack.getItemDamage(), (double) i, (double) j, (double) k);
+
+ if (entity != null) {
+ if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) {
+ ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName());
+ }
+
+ if (!par3EntityPlayer.capabilities.isCreativeMode) {
+ --par1ItemStack.stackSize;
+ }
+ }
+ }
+ }
+
+ return par1ItemStack;
+ }
+ }
+ }
+ @Override
+ public boolean onItemUse(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, World par3World, int x, int y, int z, int side, float par8, float par9, float par10) {
+ if (par3World.isRemote) {
+ return true;
+ } else {
+ Block block = par3World.getBlock(x, y, z);
+ x += Facing.offsetsXForSide[side];
+ y += Facing.offsetsYForSide[side];
+ z += Facing.offsetsZForSide[side];
+
+ //-------------------------------ポータル生成処理-------------------------------
+ boolean genPortal=false;
+ if(block==BlockCore.plank){
+ int sizeMax=4;//半径
+ int sizeU=0, sizeD=0, sizeL=0, sizeR=0;
+ int sx=x, sy=y, sz=z;
+
+ //縦方向に木材があるか
+ boolean foundT=false, foundB=false;
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundT=b==BlockCore.plank;
+ sizeU=i;
+ break;
+ }
+ sy++;
+ }
+ sy=y;
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundB=b==BlockCore.plank;
+ sizeD=i;
+ break;
+ }
+ sy--;
+ }
+
+ //縦方向が揃っていれば次は横
+ if(foundT && foundB){
+ //横方向に木材があるかどうか
+ boolean foundL=false, foundR=false;
+ sy=y;
+
+ //南北
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundL=b==BlockCore.plank;
+ sizeL=i;
+ break;
+ }
+ sz--;
+ }
+ sz=z;
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundR=b==BlockCore.plank;
+ sizeR=i;
+ break;
+ }
+ sz++;
+ }
+
+ if(foundL && foundR){
+ //ポータル生成
+ if(tryMakePortal(par3World, x,y,z, false, sizeU, sizeD, sizeL, sizeR)){
+ return true;
+ }
+ }
+
+ //東西
+ foundL=foundR=false;
+ sz=z;
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundL=b==BlockCore.plank;
+ sizeL=i;
+ break;
+ }
+ sx--;
+ }
+ sx=x;
+ for(int i=0;i<sizeMax;i++){
+ Block b=par3World.getBlock(sx, sy, sz);
+ if(b.getMaterial()!= Material.air){
+ foundR=b==BlockCore.plank;
+ sizeR=i;
+ break;
+ }
+ sx++;
+ }
+ if(foundL && foundR){
+ //ポータル生成
+ if(tryMakePortal(par3World, x,y,z, true, sizeU, sizeD, sizeL, sizeR)){
+ return true;
+ }
+ }
+
+ }
+ }
+
+ //--------------------------蝶をスポーンする-------------------------------------
+ if(!genPortal){
+ double d0 = 0.0D;
+
+ if (side == 1 && block.getRenderType() == 11) {
+ d0 = 0.5D;
+ }
+
+ Entity entity = spawnCreature(par3World, par1ItemStack.getItemDamage(), (double) x + 0.5D, (double) y + d0, (double) z + 0.5D);
+ if (entity != null) {
+ if (entity instanceof EntityLivingBase && par1ItemStack.hasDisplayName()) {
+ ((EntityLiving) entity).setCustomNameTag(par1ItemStack.getDisplayName());
+ }
+
+ if (!par2EntityPlayer.capabilities.isCreativeMode) {
+ --par1ItemStack.stackSize;
+ }
+ }
+ }
+
+ return true;
+ }
+ }
+
+ /**
+ * ポータルを生成できるか判定し、生成できたらtrue
+ * @param world
+ * @param x
+ * @param y
+ * @param z
+ * @param sizeU
+ * @param sizeD
+ * @param sizeL
+ * @param sizeR
+ * @return
+ */
+ protected boolean tryMakePortal(World world, int x, int y, int z, boolean we, int sizeU, int sizeD, int sizeL, int sizeR){
+ int sizeUD=sizeU+sizeD+1;
+ int sizeLR=sizeL+sizeR+1;
+
+ int dx=x-sizeL;
+ int dy=y-sizeD;
+ int dz=z-sizeL;
+ if(we){
+ //枠が揃ってるか調べる
+ for(int i=0;i<sizeLR;i++){
+ if(world.getBlock(dx+i, dy, z)!=BlockCore.plank) return false;
+ if(world.getBlock(dx+i, dy+sizeUD-1, z)!=BlockCore.plank) return false;
+ }
+ for(int i=0;i<sizeUD;i++){
+ if(world.getBlock(dx, dy+i, z)!=BlockCore.plank) return false;
+ if(world.getBlock(dx+sizeLR-1, dy+i, z)!=BlockCore.plank) return false;
+ }
+
+ //ポータル生成
+ for(int xx=dx+1;xx<dx+sizeLR-1;xx++){
+ for(int yy=dy+1;yy<dy+sizeUD-1;yy++){
+ world.setBlock(xx,yy,z,BlockCore.portal2,1,2);
+ }
+ }
+
+ return true;
+ }
+ else{
+ //枠が揃ってるか調べる
+ for(int i=0;i<sizeLR;i++){
+ if(world.getBlock(x, dy, dz+i)!=BlockCore.plank) return false;
+ if(world.getBlock(x, dy+sizeUD-1, dz+i)!=BlockCore.plank) return false;
+ }
+ for(int i=0;i<sizeUD;i++){
+ if(world.getBlock(x, dy+i, dz)!=BlockCore.plank) return false;
+ if(world.getBlock(x, dy+i, dz+sizeLR-1)!=BlockCore.plank) return false;
+ }
+
+ //ポータル生成
+ for(int zz=dz+1;zz<dz+sizeLR-1;zz++){
+ for(int yy=dy+1;yy<dy+sizeUD-1;yy++){
+ world.setBlock(x,yy,zz,BlockCore.portal2,2,2);
+ }
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCharm.class b/src/main/java/jp/plusplus/fbs/item/ItemCharm.class Binary files differnew file mode 100644 index 0000000..c3e60fd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCharm.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCharm.java b/src/main/java/jp/plusplus/fbs/item/ItemCharm.java new file mode 100644 index 0000000..f1a2615 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCharm.java @@ -0,0 +1,92 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.block.BlockCore;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemDye;
+import net.minecraft.item.ItemRedstone;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/15.
+ */
+public class ItemCharm extends ItemBase {
+ public static final int[] COLOR_VALUE = {0x333333, 0xff0000, 0x009113, 0x552700, 0x2b00ff, 0xff00f7, 0x00afaf, 0xcdcdcd,
+ 0x787878, 0xffaaaa, 0x48ff37, 0xffea00, 0x00ffff, 0xd7008b, 0xff9500, 0xffffff};
+
+ public ItemCharm() {
+ setHasSubtypes(true);
+ setUnlocalizedName("charm");
+ setTextureName("charm");
+ getContainerItem(null);
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ for (int i = 0; i < 16; i++) itemList.add(new ItemStack(this, 1, i));
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack item) {
+ return StatCollector.translateToLocal("item.fbs.charm." + ItemDye.field_150923_a[item.getItemDamage()] + ".name");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack par1ItemStack, int par2) {
+ return COLOR_VALUE[par1ItemStack.getItemDamage()];
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ if (p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_) != Blocks.snow_layer) {
+ if (p_77648_7_ == 0) {
+ --p_77648_5_;
+ }
+
+ if (p_77648_7_ == 1) {
+ ++p_77648_5_;
+ }
+
+ if (p_77648_7_ == 2) {
+ --p_77648_6_;
+ }
+
+ if (p_77648_7_ == 3) {
+ ++p_77648_6_;
+ }
+
+ if (p_77648_7_ == 4) {
+ --p_77648_4_;
+ }
+
+ if (p_77648_7_ == 5) {
+ ++p_77648_4_;
+ }
+
+ if (!p_77648_3_.isAirBlock(p_77648_4_, p_77648_5_, p_77648_6_)) {
+ return false;
+ }
+ }
+
+ if (!p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_)) {
+ return false;
+ } else {
+ if (BlockCore.charm.canPlaceBlockAt(p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_)) {
+ --p_77648_1_.stackSize;
+ p_77648_3_.setBlock(p_77648_4_, p_77648_5_, p_77648_6_, BlockCore.charm);
+ p_77648_3_.setBlockMetadataWithNotify(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_1_.getItemDamage()^15, 2);
+ }
+
+ return true;
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCloak.class b/src/main/java/jp/plusplus/fbs/item/ItemCloak.class Binary files differnew file mode 100644 index 0000000..d8db710 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCloak.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCloak.java b/src/main/java/jp/plusplus/fbs/item/ItemCloak.java new file mode 100644 index 0000000..3602dcd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCloak.java @@ -0,0 +1,33 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/08/25.
+ */
+public class ItemCloak extends ItemArmor {
+ public ItemCloak(ArmorMaterial p_i45325_1_) {
+ super(p_i45325_1_, 0, 1);
+ setCreativeTab(FBS.tab);
+ setUnlocalizedName("fbs.cloak");
+ setTextureName(FBS.MODID+":cloak");
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) {
+ return FBS.MODID+":textures/armor/monocle.png";
+ }
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.cloak.0"));
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.valuable"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCore.class b/src/main/java/jp/plusplus/fbs/item/ItemCore.class Binary files differnew file mode 100644 index 0000000..44d48a8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCore.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemCore.java b/src/main/java/jp/plusplus/fbs/item/ItemCore.java new file mode 100644 index 0000000..4d6a328 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemCore.java @@ -0,0 +1,301 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.common.registry.GameRegistry;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.alchemy.*;
+import jp.plusplus.fbs.block.BlockCore;
+import jp.plusplus.fbs.item.enchant.EnchantmentCleverness;
+import jp.plusplus.fbs.item.enchant.EnchantmentSanityProtect;
+import jp.plusplus.fbs.item.enchant.EnchantmentWealth;
+import jp.plusplus.fbs.spirit.ItemSwordSpirit;
+import jp.plusplus.fbs.storage.ItemMealFragment;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemSeeds;
+import net.minecraftforge.common.util.EnumHelper;
+
+/**
+ * Createdby pluslus_Fon 2015/06/05.
+ */
+public class ItemCore {
+ public static ItemArmor.ArmorMaterial materialMonocleWood;
+ public static ItemArmor.ArmorMaterial materialMonocle;
+ public static ItemArmor.ArmorMaterial materialMonocleGold;
+ public static ItemArmor.ArmorMaterial materialInifinity;
+
+ public static int eIdSanity;
+ public static int eIdCleverness;
+ public static int eIdWealth;
+ public static Enchantment enchantmentSanity;
+ public static Enchantment enchantmentCleverness;
+ public static Enchantment enchantmentWealth;
+
+ public static Item gem;
+
+ public static Item seedLavender;
+ public static Item lavender;
+ public static Item seedRedLily;
+ public static Item redLily;
+ public static Item redLilyDirty;
+
+ public static Item stick;
+ public static Item butterfly;
+ public static Item instantMana;
+ public static Item membership;
+ public static Item enchantScroll;
+ public static Item mpCoin;
+ public static Item potionBless;
+ public static Item cookieFortune;
+
+ public static Item monocleWood;
+ public static Item monocle;
+ public static Item monocleGold;
+ public static Item cloak;
+ public static Item infinityHelm;
+ public static Item infinityArmor;
+ public static Item infinityLegs;
+ public static Item infinityBoots;
+ public static Item luckyDagger;
+
+ public static Item bucketMana;
+ public static Item bookmark;
+ public static Item net;
+ public static Item shovel;
+ public static Item foldingFan;
+ public static Item tableware;
+
+ public static Item potionOblivion;
+ public static Item potionSan;
+
+ public static Item stoneInactive;
+ public static Item stoneActive;
+ public static Item stoneActiveMale;
+ public static Item stoneActiveFemale;
+ public static Item spiritSword;
+
+ public static Item staffHead1;
+ public static Item staffHead2;
+ public static Item staffHead3;
+ public static Item staffHead4;
+ public static Item staffHead5;
+
+ public static Item staff1_1;
+ public static Item staff1_2;
+ public static Item staff1_3;
+ public static Item staff1_4;
+ public static Item staff1_5;
+ public static Item staff2_1;
+ public static Item staff2_2;
+ public static Item staff2_3;
+ public static Item staff2_4;
+ public static Item staff2_5;
+
+ public static Item charm;
+
+ public static ItemBookNoDecoded bookNoDecoded;
+ public static ItemOldBook bookOld;
+ public static ItemBookSorcery bookSorcery;
+ public static ItemBookBroken bookBroken;
+ public static ItemBookWhite bookWhite;
+
+ public static Item clayWet;
+ public static Item clayGlow;
+
+ public static Item basket;
+ public static Item alchemyMaterial;
+ public static Item alchemyIntermediateMaterial;
+ public static Item alchemyMaterialEatable;
+ public static Item alchemyPotion;
+ public static Item alchemyRecipe;
+
+ public static Item herbUnknown;
+ public static Item seedsUnknown;
+ public static Item fruitsUnknown;
+ public static Item flowerUnknown;
+ public static Item grassUnknown;
+ public static Item mushroomUnknown;
+
+ public static Item mealFragment;
+
+ public static Item potMagic;
+
+
+ public static void Init(){
+ materialMonocleWood=EnumHelper.addArmorMaterial("MonocleWood", 1, new int[]{0,0,0,0}, 0);
+ materialMonocle=EnumHelper.addArmorMaterial("Monocle", 5, new int[]{0,0,0,0}, 0);
+ materialMonocleGold=EnumHelper.addArmorMaterial("MonocleGold", 3, new int[]{0,0,0,0}, 0);
+ materialInifinity=EnumHelper.addArmorMaterial("Infinity", 60, new int[]{3,8,6,3}, 0);
+
+ enchantmentSanity=new EnchantmentSanityProtect(eIdSanity, 8);
+ enchantmentCleverness=new EnchantmentCleverness(eIdCleverness, 2);
+ enchantmentWealth=new EnchantmentWealth(eIdWealth, 2);
+
+ gem=new ItemGem();
+ GameRegistry.registerItem(gem, "gem");
+
+ seedLavender=new ItemSeeds(BlockCore.cropLavender, Blocks.farmland).setCreativeTab(FBS.tab).setUnlocalizedName("fbs.seedLavender").setTextureName(FBS.MODID+":seedLavender");
+ lavender=new ItemLavender();
+ seedRedLily=new ItemSeedRedLily();
+ redLily=new ItemBase().setCreativeTab(FBS.tab).setUnlocalizedName("redLily").setTextureName("redLily");
+ redLilyDirty=new ItemBase().setCreativeTab(FBS.tab).setUnlocalizedName("redLilyDirty").setTextureName("redLilyDirty");
+ GameRegistry.registerItem(seedLavender, "seedLavender");
+ GameRegistry.registerItem(lavender, "lavender");
+ GameRegistry.registerItem(seedRedLily, "seedRedLily");
+ GameRegistry.registerItem(redLily, "redLily");
+ GameRegistry.registerItem(redLilyDirty, "redLilyDirty");
+
+ stick=new ItemBase().setUnlocalizedName("stick").setTextureName("stick").setFull3D();
+ butterfly=new ItemButterfly();
+ instantMana=new ItemBase().setUnlocalizedName("instantMana").setTextureName("instantMana");
+ membership=new ItemBase().setUnlocalizedName("membership").setTextureName("membership");
+ enchantScroll=new ItemEnchantScroll();
+ mpCoin=new ItemMPCoin();
+ potionBless=new ItemBase().setUnlocalizedName("potionBless").setTextureName("potionBless");
+ cookieFortune=new ItemFortuneCookie();
+ GameRegistry.registerItem(stick, "stick");
+ GameRegistry.registerItem(butterfly, "butterfly");
+ GameRegistry.registerItem(instantMana, "instantMana");
+ GameRegistry.registerItem(membership, "membership");
+ GameRegistry.registerItem(enchantScroll, "enchantScroll");
+ GameRegistry.registerItem(mpCoin, "mpCoin");
+ GameRegistry.registerItem(potionBless, "potionBless");
+ GameRegistry.registerItem(cookieFortune, "cookieFortune");
+
+ monocleWood=new ItemMonocle(materialMonocleWood).setUnlocalizedName("fbs.monocleWood").setTextureName(FBS.MODID+":monocleWood");
+ monocle=new ItemMonocle(materialMonocle).setUnlocalizedName("fbs.monocle").setTextureName(FBS.MODID+":monocle");
+ monocleGold=new ItemMonocle(materialMonocleGold).setUnlocalizedName("fbs.monocleGold").setTextureName(FBS.MODID+":monocleGold");
+ cloak=new ItemCloak(materialMonocle);
+ infinityHelm=new ItemArmorInfinity(materialInifinity, 0).setUnlocalizedName("fbs.infinityHelm").setTextureName(FBS.MODID+":infinityHelm");
+ infinityArmor=new ItemArmorInfinity(materialInifinity, 1).setUnlocalizedName("fbs.infinityArmor").setTextureName(FBS.MODID+":infinityArmor");
+ infinityLegs=new ItemArmorInfinity(materialInifinity, 2).setUnlocalizedName("fbs.infinityLegs").setTextureName(FBS.MODID+":infinityLegs");
+ infinityBoots=new ItemArmorInfinity(materialInifinity, 3).setUnlocalizedName("fbs.infinityBoots").setTextureName(FBS.MODID+":infinityBoots");
+ luckyDagger=new ItemLuckyDagger();
+ GameRegistry.registerItem(monocleWood, "monocleWood");
+ GameRegistry.registerItem(monocle, "monocle");
+ GameRegistry.registerItem(monocleGold, "monocleGold");
+ GameRegistry.registerItem(cloak, "cloak");
+ GameRegistry.registerItem(infinityHelm, "infinityHelm");
+ GameRegistry.registerItem(infinityArmor, "infinityArmor");
+ GameRegistry.registerItem(infinityLegs, "infinityLegs");
+ GameRegistry.registerItem(infinityBoots, "infinityBoots");
+ GameRegistry.registerItem(luckyDagger, "luckyDagger");
+
+ bucketMana=new Item().setCreativeTab(FBS.tab).setTextureName(FBS.MODID+":bucketMana").setUnlocalizedName("fbs.bucketMana").setMaxStackSize(1);
+ bookmark=new ItemBookmark();
+ net=new ItemNet();
+ shovel=new ItemShovel();
+ foldingFan=new ItemFoldingFan();
+ tableware=new ItemPlaceable();
+ GameRegistry.registerItem(bucketMana, "bucketMana");
+ GameRegistry.registerItem(bookmark, "bookmark");
+ GameRegistry.registerItem(net, "net");
+ GameRegistry.registerItem(shovel, "shovel");
+ GameRegistry.registerItem(foldingFan, "foldingFan");
+ GameRegistry.registerItem(tableware, "tableware");
+
+ potionOblivion=new ItemPotionOblivion();
+ potionSan=new ItemPotionSanity();
+ GameRegistry.registerItem(potionOblivion, "potionOblivion");
+ GameRegistry.registerItem(potionSan, "potionSan");
+
+ stoneInactive=new ItemBase().setCreativeTab(FBS.tabSpirit).setUnlocalizedName("stoneInactive").setTextureName("stoneInactive").setMaxStackSize(1);
+ stoneActive=new ItemStoneSpirit().setUnlocalizedName("stoneActivated").setTextureName("stoneActivated");
+ stoneActiveMale=new ItemStoneSpirit().setUnlocalizedName("stoneActivatedMale").setTextureName("stoneActivatedMale");
+ stoneActiveFemale=new ItemStoneSpirit().setUnlocalizedName("stoneActivatedFemale").setTextureName("stoneActivatedFemale");
+ spiritSword=new ItemSwordSpirit();
+ GameRegistry.registerItem(stoneInactive, "stoneInactive");
+ GameRegistry.registerItem(stoneActive, "stoneActive");
+ GameRegistry.registerItem(stoneActiveMale, "stoneActiveMale");
+ GameRegistry.registerItem(stoneActiveFemale, "stoneActiveFemale");
+ GameRegistry.registerItem(spiritSword, "spiritSword");
+
+ staffHead1=new ItemBase().setTextureName("staffhead1").setUnlocalizedName("staffHead1");
+ staffHead2=new ItemBase().setTextureName("staffhead2").setUnlocalizedName("staffHead2");
+ staffHead3=new ItemBase().setTextureName("staffhead3").setUnlocalizedName("staffHead3");
+ staffHead4=new ItemBase().setTextureName("staffhead4").setUnlocalizedName("staffHead4");
+ staffHead5=new ItemBase().setTextureName("staffhead5").setUnlocalizedName("staffHead5");
+ GameRegistry.registerItem(staffHead1, "staffHead1");
+ GameRegistry.registerItem(staffHead2, "staffHead2");
+ GameRegistry.registerItem(staffHead3, "staffHead3");
+ GameRegistry.registerItem(staffHead4, "staffHead4");
+ GameRegistry.registerItem(staffHead5, "staffHead5");
+
+ staff1_1 =new ItemStaff(1, 1);
+ staff1_2 =new ItemStaff(1, 2);
+ staff1_3 =new ItemStaff(1, 3);
+ staff1_4 =new ItemStaff(1, 4);
+ staff1_5 =new ItemStaff(1, 5);
+ GameRegistry.registerItem(staff1_1, "staff1_1");
+ GameRegistry.registerItem(staff1_2, "staff1_2");
+ GameRegistry.registerItem(staff1_3, "staff1_3");
+ GameRegistry.registerItem(staff1_4, "staff1_4");
+ GameRegistry.registerItem(staff1_5, "staff1_5");
+
+ staff2_1 =new ItemStaff(2, 1);
+ staff2_2 =new ItemStaff(2, 2);
+ staff2_3 =new ItemStaff(2, 3);
+ staff2_4 =new ItemStaff(2, 4);
+ staff2_5 =new ItemStaff(2, 5);
+ GameRegistry.registerItem(staff2_1, "staff2_1");
+ GameRegistry.registerItem(staff2_2, "staff2_2");
+ GameRegistry.registerItem(staff2_3, "staff2_3");
+ GameRegistry.registerItem(staff2_4, "staff2_4");
+ GameRegistry.registerItem(staff2_5, "staff2_5");
+
+ charm=new ItemCharm();
+ GameRegistry.registerItem(charm, "charm");
+
+ bookWhite=new ItemBookWhite();
+ bookBroken=new ItemBookBroken();
+ bookNoDecoded=new ItemBookNoDecoded();
+ bookOld=new ItemOldBook();
+ bookSorcery=new ItemBookSorcery();
+ GameRegistry.registerItem(bookWhite, "bookWhite");
+ GameRegistry.registerItem(bookBroken, "bookBroken");
+ GameRegistry.registerItem(bookNoDecoded, "bookNoDecoded");
+ GameRegistry.registerItem(bookOld, "bookOld");
+ GameRegistry.registerItem(bookSorcery, "bookSorcery");
+
+ clayWet=new ItemBase().setUnlocalizedName("clayWet").setTextureName("clayWet").setCreativeTab(FBS.tabPottery);
+ clayGlow=new ItemBase().setUnlocalizedName("clayGlow").setTextureName("clayGlow").setCreativeTab(FBS.tabPottery);
+ GameRegistry.registerItem(clayWet, "clayWet");
+ GameRegistry.registerItem(clayGlow, "clayGlow");
+
+ basket=new ItemBasket();
+ alchemyRecipe=new ItemRecipeBook();
+ GameRegistry.registerItem(basket, "basket");
+ GameRegistry.registerItem(alchemyRecipe, "alchemyRecipe");
+
+ herbUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.herb").setTextureName("herbUnknown");
+ seedsUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.seeds").setTextureName("seedsUnknown");
+ flowerUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.flower").setTextureName("flowerUnknown");
+ fruitsUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.fruits").setTextureName("fruitsUnknown");
+ grassUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.grass").setTextureName("grassUnknown");
+ mushroomUnknown=new ItemBase().setCreativeTab(FBS.tabAlchemy).setUnlocalizedName("in.mushroom").setTextureName("mushroomUnknown");
+ GameRegistry.registerItem(herbUnknown, "herbUnknown");
+ GameRegistry.registerItem(seedsUnknown, "seedsUnknown");
+ GameRegistry.registerItem(flowerUnknown, "flowerUnknown");
+ GameRegistry.registerItem(fruitsUnknown, "fruitsUnknown");
+ GameRegistry.registerItem(grassUnknown, "grassUnknown");
+ GameRegistry.registerItem(mushroomUnknown, "mushroomUnknown");
+
+ alchemyMaterial =new ItemAlchemyMaterial();
+ alchemyIntermediateMaterial=new ItemAlchemyIntermediateMaterial();
+ alchemyMaterialEatable=new ItemEatableAlchemyMaterial();
+ alchemyPotion =new ItemAlchemyPotion();
+ GameRegistry.registerItem(alchemyMaterial, "materials0");
+ GameRegistry.registerItem(alchemyIntermediateMaterial, "materials1");
+ GameRegistry.registerItem(alchemyMaterialEatable, "materials2");
+ GameRegistry.registerItem(alchemyPotion, "potions0");
+
+ mealFragment=new ItemMealFragment();
+ GameRegistry.registerItem(mealFragment, "mealFragment");
+
+ /*
+ potMagic=new ItemPotteryUsableBase();
+ GameRegistry.registerItem(potMagic, "potMagic");
+ */
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.class b/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.class Binary files differnew file mode 100644 index 0000000..09687e1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.java b/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.java new file mode 100644 index 0000000..d273567 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.java @@ -0,0 +1,38 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.MathHelper;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2015/10/19.
+ */
+public class ItemEnchantScroll extends ItemBase {
+ public ItemEnchantScroll(){
+ setMaxStackSize(1);
+ setUnlocalizedName("enchantScroll");
+ setTextureName("enchantScroll");
+ setMaxDamage(100);
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ if(!p_77659_2_.isRemote){
+ p_77659_3_.openGui(FBS.instance, FBS.GUI_ENCHANTMENT_ID, p_77659_2_, MathHelper.floor_double(p_77659_3_.posX), MathHelper.floor_double(p_77659_3_.posY), MathHelper.floor_double(p_77659_3_.posZ));
+ }
+ return p_77659_1_;
+ }
+ /*
+ @Override
+ public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+
+ if(!p_77648_3_.isRemote){
+ p_77648_2_.openGui(FBS.instance, FBS.GUI_ENCHANTMENT_ID, p_77648_3_, p_77648_4_, p_77648_5_, p_77648_6_);
+ }
+
+ return true;
+ }
+ */
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.class b/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.class Binary files differnew file mode 100644 index 0000000..1d8d701 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.java b/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.java new file mode 100644 index 0000000..76b556f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemSword;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.common.util.EnumHelper;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/08/21.
+ */
+public class ItemFoldingFan extends ItemSword{
+ public ItemFoldingFan() {
+ super(EnumHelper.addToolMaterial("fbs.foldingFan", 0, 131, 3.0f, 2.0f, 0));
+ setCreativeTab(FBS.tab);
+ setUnlocalizedName("fbs.foldingFan");
+ setTextureName(FBS.MODID + ":foldingFan");
+ }
+
+ public static ItemStack GetItemStack(){
+ ItemStack it=new ItemStack(ItemCore.foldingFan, 1, 0);
+ it.addEnchantment(Enchantment.knockback, 2);
+
+ return it;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) {
+ p_150895_3_.add(GetItemStack());
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ list.add(StatCollector.translateToLocal("info.fbs.foldingFan.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.class b/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.class Binary files differnew file mode 100644 index 0000000..fa09ec3 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.java b/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.java new file mode 100644 index 0000000..d7b372b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.java @@ -0,0 +1,51 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemFood;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+/**
+ * Created by plusplus_F on 2016/03/31.
+ */
+public class ItemFortuneCookie extends ItemFood {
+ public ItemFortuneCookie() {
+ super(2, 0.1f, false);
+ setUnlocalizedName("fbs.cookieFortune");
+ setTextureName(FBS.MODID + ":cookieFortune");
+ setCreativeTab(FBS.tab);
+ }
+
+ @Override
+ public ItemStack onEaten(ItemStack itemStack, World world, EntityPlayer player) {
+ super.onEaten(itemStack, world, player);
+
+ //メッセージを出す
+ if(!world.isRemote){
+ if(world.rand.nextInt(256)==1){
+ //願い判定
+ player.openGui(FBS.instance, FBS.GUI_WISH_ID, world, MathHelper.floor_double(player.posX), MathHelper.floor_double(player.posY), MathHelper.floor_double(player.posZ));
+ }
+ else{
+ //ランダムにメッセージ
+ String m= Registry.GetRandomMessage();
+ int v=Registry.GetRandomMessageVariant(m);
+ player.addChatComponentMessage(new ChatComponentText("<"+itemStack.getDisplayName()+">"+Registry.GetLocalizedFortuneCookieMessage(m, v)));
+ }
+ }
+
+ return itemStack;
+ }
+
+ @Override
+ protected void onFoodEaten(ItemStack itemStack, World world, EntityPlayer player) {
+ super.onFoodEaten(itemStack, world, player);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemGem.class b/src/main/java/jp/plusplus/fbs/item/ItemGem.class Binary files differnew file mode 100644 index 0000000..b748ee8 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemGem.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemGem.java b/src/main/java/jp/plusplus/fbs/item/ItemGem.java new file mode 100644 index 0000000..b3ed77d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemGem.java @@ -0,0 +1,69 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.init.Items;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemDye;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/15.
+ */
+public class ItemGem extends ItemBase {
+ public static final String[] NAMES={"gemRuby","gemSapphire","gemAmethyst", "gemInfinity"};
+ public static final int[] COLOR_VALUE={0xff3333, 0x3333ff, 0xcc00cc, 0xc8e6ff};
+ private IIcon overlay;
+
+ public ItemGem(){
+ setHasSubtypes(true);
+ setTextureName("gem");
+ setUnlocalizedName("gem");
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ for(int i=0;i<NAMES.length;i++) itemList.add(new ItemStack(this, 1, i));
+ }
+
+ @Override
+ public String getUnlocalizedName(ItemStack item){
+ return "item.fbs."+NAMES[item.getItemDamage()];
+ }
+
+
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister p_94581_1_){
+ super.registerIcons(p_94581_1_);
+ overlay=p_94581_1_.registerIcon(FBS.MODID+":gemOverlay");
+ }
+
+ @SideOnly(Side.CLIENT)
+ public boolean hasEffect(ItemStack par1ItemStack, int pass) {
+ return par1ItemStack.getItemDamage()==3;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public boolean requiresMultipleRenderPasses()
+ {
+ return true;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamageForRenderPass(int p_77618_1_, int pass){
+ return pass == 0 ? itemIcon : overlay;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack par1ItemStack, int par2) {
+ return par2==0?COLOR_VALUE[par1ItemStack.getItemDamage()]:0xffffff;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemLavender.class b/src/main/java/jp/plusplus/fbs/item/ItemLavender.class Binary files differnew file mode 100644 index 0000000..800bb06 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemLavender.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemLavender.java b/src/main/java/jp/plusplus/fbs/item/ItemLavender.java new file mode 100644 index 0000000..9ab9f13 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemLavender.java @@ -0,0 +1,37 @@ +package jp.plusplus.fbs.item;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import jp.plusplus.fbs.exprop.SanityManager;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemFood;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/05.
+ */
+public class ItemLavender extends ItemFood{
+ public ItemLavender() {
+ super(2, 0.2f, false);
+ setCreativeTab(FBS.tab);
+ setUnlocalizedName("fbs.lavender");
+ setTextureName(FBS.MODID+":lavender");
+ setAlwaysEdible();
+ }
+ public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
+ return super.onEaten(p_77654_1_, p_77654_2_, p_77654_3_);
+ }
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer player) {
+ FBSEntityProperties prop=FBSEntityProperties.get(player);
+ if(prop!=null && prop.getSanity()<prop.getMaxSanity()) {
+ player.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_));
+ }
+
+ return p_77659_1_;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.class b/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.class Binary files differnew file mode 100644 index 0000000..1680b73 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.java b/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.java new file mode 100644 index 0000000..69f832b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.java @@ -0,0 +1,51 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnchantmentHelper;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemSword;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.common.util.EnumHelper;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2016/04/01.
+ */
+public class ItemLuckyDagger extends ItemSword {
+ public ItemLuckyDagger() {
+ super(EnumHelper.addToolMaterial("fbs.luckyDagger", 0, 1024, 5.0f, 1.5f, 0));
+ setUnlocalizedName("fbs.luckyDagger");
+ setTextureName(FBS.MODID + ":luckyDagger");
+ setCreativeTab(FBS.tab);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) {
+ p_150895_3_.add(getItemStack());
+ }
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.valuable"));
+ }
+
+ public static ItemStack getItemStack(){
+ ItemStack itemStack=new ItemStack(ItemCore.luckyDagger);
+ LinkedHashMap linkedhashmap = new LinkedHashMap();
+ linkedhashmap.put(ItemCore.enchantmentWealth.effectId, ItemCore.enchantmentWealth.getMaxLevel());
+ linkedhashmap.put(Enchantment.looting.effectId, Enchantment.looting.getMaxLevel());
+ linkedhashmap.put(Enchantment.field_151369_A.effectId, Enchantment.field_151369_A.getMaxLevel());
+ EnchantmentHelper.setEnchantments(linkedhashmap, itemStack);
+ return itemStack;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.class b/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.class Binary files differnew file mode 100644 index 0000000..17d4de3 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.java b/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.java new file mode 100644 index 0000000..ffd1671 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMPCoin.java @@ -0,0 +1,68 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+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.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import shift.mceconomy2.api.MCEconomyAPI;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/10/20.
+ */
+public class ItemMPCoin extends ItemBase {
+ protected IIcon[] icons;
+
+ public ItemMPCoin() {
+ setMaxStackSize(1);
+ setMaxDamage(0);
+ setHasSubtypes(true);
+ setUnlocalizedName("mpCoin");
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) {
+ int v = p_77659_1_.getItemDamage();
+ if (!p_77659_2_.isRemote && v > 0) {
+ MCEconomyAPI.addPlayerMP(p_77659_3_, v, false);
+ }
+ p_77659_1_.stackSize=0;
+ return p_77659_1_;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister p_94581_1_) {
+ icons=new IIcon[2];
+ icons[0]=p_94581_1_.registerIcon(FBS.MODID+":coin0");
+ icons[1]=p_94581_1_.registerIcon(FBS.MODID+":coin1");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int p_77617_1_) {
+ return p_77617_1_>=1000?icons[1]:icons[0];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) {
+ p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1));
+ p_150895_3_.add(new ItemStack(p_150895_1_, 1, 500));
+ p_150895_3_.add(new ItemStack(p_150895_1_, 1, 1000));
+ p_150895_3_.add(new ItemStack(p_150895_1_, 1, 2000));
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+ return super.getItemStackDisplayName(p_77653_1_)+"("+p_77653_1_.getItemDamage()+"MP)";
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.class b/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.class Binary files differnew file mode 100644 index 0000000..5d6c916 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.java b/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.java new file mode 100644 index 0000000..063182c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.java @@ -0,0 +1,28 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemDye;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+
+import java.util.List;
+
+/**
+ * Created by pluslus_F on 2015/06/17.
+ */
+public class ItemMagicCore extends ItemBlock {
+ public ItemMagicCore(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ setUnlocalizedName("fbs.magicCore");
+ setTextureName(FBS.MODID+":magicCore");
+ }
+
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.magicCore.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMonocle.class b/src/main/java/jp/plusplus/fbs/item/ItemMonocle.class Binary files differnew file mode 100644 index 0000000..a02e8a1 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMonocle.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemMonocle.java b/src/main/java/jp/plusplus/fbs/item/ItemMonocle.java new file mode 100644 index 0000000..dcd1b41 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemMonocle.java @@ -0,0 +1,80 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.AchievementRegistry;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.api.event.CheckingMonocleEvent;
+import jp.plusplus.fbs.api.event.DamageMonocleEvent;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemArmor;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+import net.minecraftforge.common.MinecraftForge;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/06.
+ */
+public class ItemMonocle extends ItemArmor{
+ public ItemMonocle(ArmorMaterial p_i45325_1_) {
+ super(p_i45325_1_, 0, 0);
+ setCreativeTab(FBS.tab);
+ }
+
+ @Override
+ public String getArmorTexture(ItemStack stack, Entity entity, int slot, String layer) {
+ Item item=stack.getItem();
+ if(item==ItemCore.monocleWood) return FBS.MODID+":textures/armor/monocleWood.png";
+ if(item==ItemCore.monocleGold) return FBS.MODID+":textures/armor/monocleGold.png";
+ return FBS.MODID+":textures/armor/monocle.png";
+ }
+ @Override
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.monocle.0"));
+ if(p_77624_1_.getItem()==ItemCore.monocleGold) p_77624_3_.add(StatCollector.translateToLocal("info.fbs.monocle.1"));
+ }
+
+
+ public static ItemStack findMonocle(EntityPlayer player){
+ //まずモノクル
+ ItemStack helm = player.getCurrentArmor(3);
+ if (helm == null || !(helm.getItem() instanceof ItemMonocle)){
+ helm=null;
+ }
+
+ //だめならイベントで
+ CheckingMonocleEvent event=new CheckingMonocleEvent(player, helm);
+ MinecraftForge.EVENT_BUS.post(event);
+
+ if(event.hasMonocle()){
+ return event.getMonocle();
+ }
+ return null;
+ }
+ public static void damageMonocle(EntityPlayer player, ItemStack monocle){
+ DamageMonocleEvent event=new DamageMonocleEvent(player, monocle);
+ if(!MinecraftForge.EVENT_BUS.post(event)){
+ monocle.damageItem(1, player);
+ if(monocle.stackSize<=0 || monocle.getItemDamage()>monocle.getMaxDamage()){
+ player.playSound("random.break", 0.8F, 0.8F + player.worldObj.rand.nextFloat() * 0.4F);
+ for(int i=0;i<player.inventory.getSizeInventory();i++){
+ ItemStack itemStack=player.inventory.getStackInSlot(i);
+ if( itemStack!=null && monocle.isItemEqual(itemStack)){
+ player.inventory.setInventorySlotContents(i, null);
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ @Override
+ public void onArmorTick(World world, EntityPlayer player, ItemStack itemStack) {
+ if(!world.isRemote) player.triggerAchievement(AchievementRegistry.monocle);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemNet.class b/src/main/java/jp/plusplus/fbs/item/ItemNet.class Binary files differnew file mode 100644 index 0000000..e06ccc0 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemNet.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemNet.java b/src/main/java/jp/plusplus/fbs/item/ItemNet.java new file mode 100644 index 0000000..c314785 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemNet.java @@ -0,0 +1,56 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.entity.EntityButterfly;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.AxisAlignedBB;
+import net.minecraft.util.MathHelper;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/08/23.
+ * 虫取り網
+ */
+public class ItemNet extends ItemBase {
+ public ItemNet(){
+ setUnlocalizedName("net");
+ setTextureName("net");
+ setFull3D();
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack item, World w, EntityPlayer p) {
+ if(w.isRemote) return item;
+
+ FBS.logger.info("net!");
+
+ AxisAlignedBB aabb=AxisAlignedBB.getBoundingBox(p.posX-0.5, p.posY+p.getEyeHeight()-0.5, p.posZ-0.5, p.posX+0.5, p.posY+p.getEyeHeight()+0.5, p.posZ+0.5);
+ aabb=aabb.expand(4,2,4);
+ List list=w.getEntitiesWithinAABB(EntityButterfly.class, aabb);
+ if(!list.isEmpty()){
+ for(int i=0;i<list.size();i++){
+ EntityButterfly eb=(EntityButterfly)list.get(i);
+ eb.setDead();
+ eb.entityDropItem(new ItemStack(ItemCore.butterfly), 0);
+ /*
+ p.inventory.addItemStackToInventory(new ItemStack(ItemCore.butterfly));
+ p.inventory.markDirty();
+ */
+ }
+ }
+
+ return item;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.net.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemOldBook.class b/src/main/java/jp/plusplus/fbs/item/ItemOldBook.class Binary files differnew file mode 100644 index 0000000..13de297 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemOldBook.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemOldBook.java b/src/main/java/jp/plusplus/fbs/item/ItemOldBook.java new file mode 100644 index 0000000..f63f055 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemOldBook.java @@ -0,0 +1,66 @@ +package jp.plusplus.fbs.item;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/06.
+ */
+public class ItemOldBook extends ItemBookNoDecoded {
+ public ItemOldBook(){
+ setHasSubtypes(true);
+ setCreativeTab(null);
+ setUnlocalizedName("bookOld");
+ setTextureName("bookNoDecoded");
+ setMaxStackSize(1);
+ }
+ @Override
+ public boolean hasEffect(ItemStack itemStack, int i){
+ return true;
+ }
+
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ Registry.BookData bd = Registry.GetBookDataFromItemStack(itemStack);
+ if (bd == null) return;
+
+ //list.add("\"" + bd.getLocalizedTitle() + "\"");
+ list.add(I18n.format("info.fbs.book.decoder")+":"+itemStack.getTagCompound().getString("decoder"));
+ list.add(I18n.format("info.fbs.book.lv") + ":" + bd.lv);
+ }
+
+ @Override
+ public EnumAction getItemUseAction(ItemStack p_77661_1_)
+ {
+ return EnumAction.none;
+ }
+ public ItemStack onEaten(ItemStack itemStack, World world, EntityPlayer player){
+ return itemStack;
+ }
+ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_){
+ return p_77659_1_;
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ itemList.add(new ItemStack(this, 1, itemRand.nextInt(0xffffff+1)));
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack item){
+ return super.getItemStackDisplayName(item)+"("+StatCollector.translateToLocal("info.fbs.book.decoded")+")";
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemOre.class b/src/main/java/jp/plusplus/fbs/item/ItemOre.class Binary files differnew file mode 100644 index 0000000..6072f17 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemOre.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemOre.java b/src/main/java/jp/plusplus/fbs/item/ItemOre.java new file mode 100644 index 0000000..62a637a --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemOre.java @@ -0,0 +1,31 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.block.BlockBlock;
+import net.minecraft.block.Block;
+import net.minecraft.item.ItemBlock;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by pluslus_F on 2015/06/23.
+ */
+public class ItemOre extends ItemBlock {
+ public ItemOre(Block p_i45328_1_) {
+ super(p_i45328_1_);
+ setCreativeTab(FBS.tab);
+ this.setMaxDamage(0);
+ this.setHasSubtypes(true);
+ }
+
+ @Override
+ public int getMetadata(int par1) {
+ return par1;
+ }
+ @Override
+ public String getUnlocalizedName(ItemStack par1ItemStack) {
+ if(field_150939_a instanceof BlockBlock) {
+ return super.getUnlocalizedName() + BlockBlock.NAMES[par1ItemStack.getItemDamage()];
+ }
+ return super.getUnlocalizedName();
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.class b/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.class Binary files differnew file mode 100644 index 0000000..74e77ab --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.java b/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.java new file mode 100644 index 0000000..a4239bc --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPlaceable.java @@ -0,0 +1,135 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.alchemy.AlchemyRegistry;
+import jp.plusplus.fbs.alchemy.characteristic.CharacteristicBase;
+import jp.plusplus.fbs.entity.EntityTableware;
+import net.minecraft.block.Block;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/11/06.
+ */
+public class ItemPlaceable extends ItemBase {
+ public static final String[] NAMES={"Spoon", "Knife", "Fork"};
+ protected IIcon[] icons;
+
+ public ItemPlaceable(){
+ setUnlocalizedName("tableware");
+ setTextureName("tableware");
+ setMaxDamage(0);
+ setHasSubtypes(true);
+ }
+
+
+ @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 super.getUnlocalizedName() + NAMES[meta];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item item, CreativeTabs tab, List list) {
+ for(int i=0;i<NAMES.length;i++){
+ list.add(new ItemStack(item, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister register) {
+ icons=new IIcon[NAMES.length];
+ for(int i=0;i<NAMES.length;i++){
+ icons[i]=register.registerIcon(FBS.MODID+":tableware"+NAMES[i]);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int p_77617_1_) {
+ if(p_77617_1_<0 || p_77617_1_>=icons.length) p_77617_1_=0;
+ return icons[p_77617_1_];
+ }
+
+
+ public boolean onItemUse(ItemStack item, EntityPlayer player, World world, int x, int y, int z, int side, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ //カラスさんありがとー
+ if(player != null && player.isSneaking()) {
+ this.onItemRightClick(item, world, player);
+ return false;
+ } else {
+ Block block = world.getBlock(x, y, z);
+ if(block == Blocks.snow_layer && (world.getBlockMetadata(x, y, z) & 7) < 1) {
+ side = 1;
+ } else if(block != Blocks.vine && block != Blocks.tallgrass && block != Blocks.deadbush && !block.isReplaceable(world, x, y, z)) {
+ if(side == 0) {
+ --y;
+ }
+
+ if(side == 1) {
+ ++y;
+ }
+
+ if(side == 2) {
+ --z;
+ }
+
+ if(side == 3) {
+ ++z;
+ }
+
+ if(side == 4) {
+ --x;
+ }
+
+ if(side == 5) {
+ ++x;
+ }
+ }
+
+ if(item.stackSize == 0) {
+ return false;
+ } else if(!player.canPlayerEdit(x, y, z, side, item)) {
+ return false;
+ } else if(y >= 255) {
+ return false;
+ } else{
+ int m = this.getMetadata(item.getItemDamage());
+ if(!world.isRemote && this.spawnEntity(world, player, new ItemStack(this, 1, m), (double) ((float) x + 0.5F), (double) ((float) y + 0.0F), (double) ((float) z + 0.5F))) {
+ world.playSoundEffect((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), block.stepSound.func_150496_b(), (block.stepSound.getVolume() + 1.0F) / 2.0F, block.stepSound.getPitch() * 0.8F);
+ --item.stackSize;
+ }
+
+ return true;
+ }
+ }
+ }
+
+ protected boolean spawnEntity(World world, EntityPlayer player, ItemStack item, double x, double y, double z) {
+ EntityTableware entity=new EntityTableware(world, item, x,y,z);
+ world.spawnEntityInWorld(entity);
+ return true;
+ }
+
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.class b/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.class Binary files differnew file mode 100644 index 0000000..ff90c51 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.java b/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.java new file mode 100644 index 0000000..1009d2f --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.java @@ -0,0 +1,92 @@ +package jp.plusplus.fbs.item;
+
+import com.mojang.realmsclient.gui.ChatFormatting;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import jp.plusplus.fbs.exprop.SanityManager;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.entity.projectile.EntityPotion;
+import net.minecraft.init.Items;
+import net.minecraft.item.EnumAction;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemPotion;
+import net.minecraft.item.ItemStack;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.potion.PotionHelper;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/06.
+ */
+public class ItemPotionOblivion extends ItemPotion {
+ public ItemPotionOblivion() {
+ setCreativeTab(FBS.tab);
+ setUnlocalizedName("fbs.potOblivion");
+ setTextureName("potion");
+ setMaxStackSize(64);
+
+ }
+
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack p_82790_1_, int p_82790_2_) {
+ return p_82790_2_==0?0xaaaaff:0xffffff;
+ }
+
+ public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
+ if (!p_77654_3_.capabilities.isCreativeMode) {
+ --p_77654_1_.stackSize;
+ }
+
+ if (!p_77654_2_.isRemote) {
+ FBSEntityProperties prop = FBSEntityProperties.get(p_77654_3_);
+ if (prop != null) {
+ prop.setMagicLevel(prop.getMagicLevel() - 5);
+
+ String str=String.format(StatCollector.translateToLocal("info.fbs.lv.0"), prop.getMagicLevel());
+ p_77654_3_.addChatComponentMessage(new ChatComponentText(str));
+
+ SanityManager.sendPacket(p_77654_3_);
+ }
+ }
+
+ if (!p_77654_3_.capabilities.isCreativeMode) {
+ if (p_77654_1_.stackSize <= 0) {
+ return new ItemStack(Items.glass_bottle);
+ }
+
+ p_77654_3_.inventory.addItemStackToInventory(new ItemStack(Items.glass_bottle));
+ }
+
+ return p_77654_1_;
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs, List itemList) {
+ itemList.add(new ItemStack(this));
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack p_77653_1_) {
+ return StatCollector.translateToLocal(getUnlocalizedName()+".name");
+ }
+
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int p_77617_1_){
+ return super.getIconFromDamage(0);
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack p_77624_1_, EntityPlayer p_77624_2_, List p_77624_3_, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ p_77624_3_.add(StatCollector.translateToLocal("info.fbs.potObl.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.class b/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.class Binary files differnew file mode 100644 index 0000000..269687b --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.java b/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.java new file mode 100644 index 0000000..5f0dfd5 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.java @@ -0,0 +1,50 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.exprop.FBSEntityProperties;
+import jp.plusplus.fbs.exprop.SanityManager;
+import net.minecraft.client.resources.I18n;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Items;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.ChatComponentText;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.List;
+
+/**
+ * Created by pluslus_F on 2015/06/16.
+ */
+public class ItemPotionSanity extends ItemPotionOblivion {
+ public ItemPotionSanity(){
+ setUnlocalizedName("fbs.potSan");
+ }
+
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack p_82790_1_, int p_82790_2_) {
+ return p_82790_2_==0?0x99ff99:0xffffff;
+ }
+
+ public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) {
+ if (!p_77654_3_.capabilities.isCreativeMode) {
+ --p_77654_1_.stackSize;
+ }
+
+ if (!p_77654_3_.capabilities.isCreativeMode) {
+ if (p_77654_1_.stackSize <= 0) {
+ return new ItemStack(Items.glass_bottle);
+ }
+
+ p_77654_3_.inventory.addItemStackToInventory(new ItemStack(Items.glass_bottle));
+ }
+
+ return p_77654_1_;
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {}
+
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.class b/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.class Binary files differnew file mode 100644 index 0000000..d9fc7f2 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.java b/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.java new file mode 100644 index 0000000..dddbdcd --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.java @@ -0,0 +1,57 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.block.BlockCore;
+import net.minecraft.block.Block;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.ItemSeeds;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.IBlockAccess;
+import net.minecraft.world.World;
+import net.minecraftforge.common.EnumPlantType;
+import net.minecraftforge.common.util.ForgeDirection;
+
+/**
+ * Created by plusplus_F on 2015/08/24.
+ */
+public class ItemSeedRedLily extends ItemSeeds {
+ protected Block fucking_private_field_150925_a;
+
+ public ItemSeedRedLily() {
+ super(BlockCore.cropRedLily, Blocks.dirt);
+ setUnlocalizedName("fbs.seedRedLily");
+ setTextureName(FBS.MODID+":seedRedLily");
+ setCreativeTab(FBS.tab);
+ fucking_private_field_150925_a=BlockCore.cropRedLily;
+ }
+
+ @Override
+ public EnumPlantType getPlantType(IBlockAccess world, int x, int y, int z) {
+ return EnumPlantType.Plains;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack p_77648_1_, EntityPlayer p_77648_2_, World p_77648_3_, int p_77648_4_, int p_77648_5_, int p_77648_6_, int p_77648_7_, float p_77648_8_, float p_77648_9_, float p_77648_10_) {
+ if (p_77648_7_ != 1) {
+ return false;
+ } else if (p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_, p_77648_6_, p_77648_7_, p_77648_1_) && p_77648_2_.canPlayerEdit(p_77648_4_, p_77648_5_ + 1, p_77648_6_, p_77648_7_, p_77648_1_)) {
+ Block b=p_77648_3_.getBlock(p_77648_4_, p_77648_5_, p_77648_6_);
+
+ if(b==Blocks.dirt || b==Blocks.grass || b==Blocks.farmland || b==BlockCore.fallenLeaves){
+ if (p_77648_3_.isAirBlock(p_77648_4_, p_77648_5_ + 1, p_77648_6_)) {
+ p_77648_3_.setBlock(p_77648_4_, p_77648_5_ + 1, p_77648_6_, fucking_private_field_150925_a);
+ --p_77648_1_.stackSize;
+ return true;
+ } else {
+ return false;
+ }
+ }
+ else return false;
+
+
+ } else {
+ return false;
+ }
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemShovel.class b/src/main/java/jp/plusplus/fbs/item/ItemShovel.class Binary files differnew file mode 100644 index 0000000..6073a2c --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemShovel.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemShovel.java b/src/main/java/jp/plusplus/fbs/item/ItemShovel.java new file mode 100644 index 0000000..6bff900 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemShovel.java @@ -0,0 +1,45 @@ +package jp.plusplus.fbs.item;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import jp.plusplus.fbs.FBS;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.item.ItemSword;
+import net.minecraft.util.StatCollector;
+import net.minecraftforge.common.util.EnumHelper;
+
+import java.util.List;
+
+/**
+ * Created by plusplus_F on 2015/08/21.
+ */
+public class ItemShovel extends ItemSword{
+ public ItemShovel() {
+ super(EnumHelper.addToolMaterial("fbs.shovel", 0, 250, 6.0f, 2.0f, 0));
+ setCreativeTab(FBS.tab);
+ setUnlocalizedName("fbs.shovel");
+ setTextureName(FBS.MODID + ":shovel");
+ }
+
+ public static ItemStack GetItemStack(){
+ ItemStack it=new ItemStack(ItemCore.shovel, 1, 0);
+ it.addEnchantment(Enchantment.smite, 2);
+
+ return it;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public void getSubItems(Item p_150895_1_, CreativeTabs p_150895_2_, List p_150895_3_) {
+ p_150895_3_.add(GetItemStack());
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ list.add(StatCollector.translateToLocal("info.fbs.shovel.0"));
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemStaff.class b/src/main/java/jp/plusplus/fbs/item/ItemStaff.class Binary files differnew file mode 100644 index 0000000..ba07f2d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemStaff.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemStaff.java b/src/main/java/jp/plusplus/fbs/item/ItemStaff.java new file mode 100644 index 0000000..15b1e45 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemStaff.java @@ -0,0 +1,152 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+import jp.plusplus.fbs.Registry;
+import jp.plusplus.fbs.api.IResonance;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * Createdby pluslus_Fon 2015/06/15.
+ * 闇の実装
+ */
+public class ItemStaff extends ItemBase {
+ public int gemNum;
+ public int bookNum=1;
+ public ItemStaff(int bookNum, int gem) {
+ this.bookNum = bookNum;
+ gemNum = gem;
+ setMaxStackSize(1);
+ setUnlocalizedName("staff" + bookNum + "_" + gem);
+ setTextureName("staff" + bookNum + "_" + gem);
+ setFull3D();
+ setMaxDamage(59);
+ setNoRepair();
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) {
+ if(player.isSneaking()) openGUI(itemStack, world, player);
+ else{
+ ItemStack[] items=loadInventory(itemStack);
+ String name=getStaffMagicName(itemStack);
+ if(name.equals("null")) openGUI(itemStack, world, player);
+ else{
+ if(getStaffMagicMaxUse(itemStack)>0) {
+ execute(itemStack, items, world, player);
+ saveInventory(itemStack, items);
+ }
+ itemStack.damageItem(1, player);
+ player.swingItem();
+ }
+ }
+ return itemStack;
+ }
+
+ public static ItemStack[] loadInventory(ItemStack itemStack){
+ ItemStaff staff=(ItemStaff)itemStack.getItem();
+ ItemStack[] items=new ItemStack[staff.gemNum+staff.bookNum];
+
+ if (!itemStack.hasTagCompound()) {
+ itemStack.setTagCompound(new NBTTagCompound());
+ }
+ if(!itemStack.getTagCompound().hasKey("Items")){
+ itemStack.getTagCompound().setTag("Items", new NBTTagList());
+ }
+ NBTTagList tags = (NBTTagList) itemStack.getTagCompound().getTag("Items");
+
+ for (int i = 0; i < tags.tagCount(); i++) {
+ NBTTagCompound tagCompound = tags.getCompoundTagAt(i);
+ int slot = tagCompound.getByte("Slot");
+ if (slot >= 0 && slot < items.length) {
+ items[slot] = ItemStack.loadItemStackFromNBT(tagCompound);
+ }
+ }
+
+ return items;
+ }
+ public static void saveInventory(ItemStack itemStack, ItemStack[] inv){
+ NBTTagList tagList = new NBTTagList();
+ for (int i = 0; i < inv.length; i++) {
+ if (inv[i] != null) {
+ NBTTagCompound compound = new NBTTagCompound();
+ compound.setByte("Slot", (byte) i);
+ inv[i].writeToNBT(compound);
+ tagList.appendTag(compound);
+ }
+ }
+ itemStack.setTagCompound(new NBTTagCompound());
+ itemStack.getTagCompound().setTag("Items", tagList);
+
+ //resonance
+ int minUse=9999;
+ LinkedList<ItemStack> books=new LinkedList<ItemStack>();
+ for(int i=0;i<((ItemStaff)itemStack.getItem()).bookNum;i++){
+ if (inv[i] != null && inv[i].getItem() == ItemCore.bookSorcery) {
+ books.add(inv[i]);
+ int u=ItemBookSorcery.getMagicMaxUse(inv[i]);
+ if(u<minUse) minUse=u;
+ }
+ }
+
+ Registry.MagicData md=Registry.GetResonanceMagicData(books);
+ if(md==null) itemStack.getTagCompound().setString("MagicName", "null");
+ else itemStack.getTagCompound().setString("MagicName", md.title);
+ itemStack.getTagCompound().setInteger("MagicMinUse", minUse);
+ }
+
+ public static String getStaffMagicName(ItemStack item){
+ if(!item.hasTagCompound()) return "null";
+ NBTTagCompound nbt=item.getTagCompound();
+ return nbt.hasKey("MagicName")?nbt.getString("MagicName"):"null";
+ }
+ public static int getStaffMagicMaxUse(ItemStack item){
+ if(!item.hasTagCompound()) return 0;
+ NBTTagCompound nbt=item.getTagCompound();
+ return nbt.hasKey("MagicMinUse")?nbt.getInteger("MagicMinUse"):0;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack item){
+ if(!item.hasTagCompound()) return super.getItemStackDisplayName(item);
+
+ String n=getStaffMagicName(item);
+ if(n.length()==0 || n.equals("null")) return super.getItemStackDisplayName(item);
+
+ String ln="";
+ IResonance r=Registry.GetResonance(n);
+ if(r!=null){
+ ItemStack[] items=loadInventory(item);
+ String[] tt=new String[bookNum];
+ for(int i=0;i<bookNum;i++){
+ if(items==null) continue;
+ tt[i]=Registry.GetUnlocalizedBookTitleFromItemStack(items[i]);
+ }
+ ln=r.getDisplayMagicName(tt);
+ }
+ else ln=Registry.GetMagic(n).getLocalizedTitle();
+
+ return super.getItemStackDisplayName(item)+"("+ln+"["+getStaffMagicMaxUse(item)+"]"+")";
+ }
+
+ @Override
+ public void addInformation(ItemStack itemStack, EntityPlayer player, List list, boolean p_77624_4_) {
+ if(!FBS.enableDescription) return;
+ list.add(String.format(StatCollector.translateToLocal("info.fbs.staff.0"), bookNum));
+ list.add(String.format(StatCollector.translateToLocal("info.fbs.staff.1"), gemNum));
+ }
+
+ public void openGUI(ItemStack itemStack, World world, EntityPlayer player){
+ player.openGui(FBS.instance, FBS.GUI_STAFF_ID, world, (int) player.posX, (int) player.posY, (int) player.posZ);
+ }
+ public void execute(ItemStack itemStack, ItemStack[] items, World world, EntityPlayer player){
+ ((ItemBookSorcery) ItemCore.bookSorcery).executesMagicWithStaff(world, player, items, ((ItemStaff)itemStack.getItem()).bookNum);
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.class b/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.class Binary files differnew file mode 100644 index 0000000..50d96cc --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.class diff --git a/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.java b/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.java new file mode 100644 index 0000000..16c8556 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.java @@ -0,0 +1,23 @@ +package jp.plusplus.fbs.item;
+
+import jp.plusplus.fbs.FBS;
+
+import java.util.Random;
+
+/**
+ * Created by plusplus_F on 2015/11/14.
+ */
+public class ItemStoneSpirit extends ItemBase {
+ protected Random rand=new Random();
+
+ public ItemStoneSpirit(){
+ setCreativeTab(FBS.tabSpirit);
+ setMaxStackSize(1);
+ }
+
+ public boolean getSex(){
+ if(this==ItemCore.stoneActiveFemale) return false;
+ if(this==ItemCore.stoneActiveMale) return true;
+ return rand.nextBoolean();
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.class b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.class Binary files differnew file mode 100644 index 0000000..15fb8a7 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.class diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.java b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.java new file mode 100644 index 0000000..bf736ee --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.java @@ -0,0 +1,55 @@ +package jp.plusplus.fbs.item.enchant;
+
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.fbs.item.ItemStaff;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnchantmentHelper;
+import net.minecraft.enchantment.EnumEnchantmentType;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by nori on 2016/03/17.
+ */
+public class EnchantmentCleverness extends Enchantment {
+ public EnchantmentCleverness(int id, int weight) {
+ super(id, weight, EnumEnchantmentType.armor_head);
+ this.setName("fbs.cleverness");
+ }
+
+ @Override
+ public boolean canApply(ItemStack p_92089_1_) {
+ if(p_92089_1_.getItem() instanceof ItemStaff) return true;
+ return this.type.canEnchantItem(p_92089_1_.getItem());
+ }
+
+ @Override
+ public int getMinEnchantability(int p_77321_1_) {
+ return 2 + (p_77321_1_ - 1) * 5;
+ }
+
+ @Override
+ public int getMaxEnchantability(int p_77317_1_) {
+ return this.getMinEnchantability(p_77317_1_) + 10;
+ }
+
+ @Override
+ public int getMaxLevel()
+ {
+ return 5;
+ }
+
+ public static int getSum(EntityPlayer ep){
+ int sum=0;
+
+ for(ItemStack armor : ep.inventory.armorInventory){
+ if(armor==null) continue;
+ sum+=EnchantmentHelper.getEnchantmentLevel(ItemCore.eIdCleverness, armor);
+ }
+ if(ep.getCurrentEquippedItem()!=null){
+ sum+=EnchantmentHelper.getEnchantmentLevel(ItemCore.eIdCleverness, ep.getCurrentEquippedItem());
+ }
+
+ return sum;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.class b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.class Binary files differnew file mode 100644 index 0000000..a53739d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.class diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.java b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.java new file mode 100644 index 0000000..46ed123 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.java @@ -0,0 +1,55 @@ +package jp.plusplus.fbs.item.enchant;
+
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.fbs.item.ItemStaff;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnchantmentHelper;
+import net.minecraft.enchantment.EnumEnchantmentType;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by nori on 2016/03/17.
+ */
+public class EnchantmentSanityProtect extends Enchantment {
+ public EnchantmentSanityProtect(int id, int weight) {
+ super(id, weight, EnumEnchantmentType.armor);
+ this.setName("fbs.sanity");
+ }
+
+ @Override
+ public boolean canApply(ItemStack p_92089_1_) {
+ if(p_92089_1_.getItem() instanceof ItemStaff) return true;
+ return this.type.canEnchantItem(p_92089_1_.getItem());
+ }
+
+ @Override
+ public int getMinEnchantability(int p_77321_1_) {
+ return 3 + (p_77321_1_ - 1) * 6;
+ }
+
+ @Override
+ public int getMaxEnchantability(int p_77317_1_) {
+ return this.getMinEnchantability(p_77317_1_) + 6;
+ }
+
+ @Override
+ public int getMaxLevel()
+ {
+ return 4;
+ }
+
+ public static int getSum(EntityPlayer ep){
+ int sum=0;
+
+ for(ItemStack armor : ep.inventory.armorInventory){
+ if(armor==null) continue;
+ sum+=EnchantmentHelper.getEnchantmentLevel(ItemCore.eIdSanity, armor);
+ }
+ if(ep.getCurrentEquippedItem()!=null){
+ sum+=EnchantmentHelper.getEnchantmentLevel(ItemCore.eIdSanity, ep.getCurrentEquippedItem());
+ }
+
+ return sum;
+ }
+}
diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.class b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.class Binary files differnew file mode 100644 index 0000000..a64a8b9 --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.class diff --git a/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.java b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.java new file mode 100644 index 0000000..83b3f4d --- /dev/null +++ b/src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.java @@ -0,0 +1,47 @@ +package jp.plusplus.fbs.item.enchant;
+
+import jp.plusplus.fbs.item.ItemCore;
+import jp.plusplus.fbs.item.ItemStaff;
+import net.minecraft.enchantment.Enchantment;
+import net.minecraft.enchantment.EnchantmentHelper;
+import net.minecraft.enchantment.EnumEnchantmentType;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.item.ItemStack;
+
+/**
+ * Created by nori on 2016/03/17.
+ */
+public class EnchantmentWealth extends Enchantment {
+ public EnchantmentWealth(int id, int weight) {
+ super(id, weight, EnumEnchantmentType.weapon);
+ this.setName("fbs.wealth");
+ }
+
+ @Override
+ public int getMinEnchantability(int p_77321_1_)
+ {
+ return 15 + (p_77321_1_ - 1) * 9;
+ }
+
+ @Override
+ public int getMaxEnchantability(int p_77317_1_)
+ {
+ return super.getMinEnchantability(p_77317_1_) + 50;
+ }
+
+ @Override
+ public int getMaxLevel()
+ {
+ return 3;
+ }
+
+ public static int getSum(EntityPlayer ep){
+ int sum=0;
+
+ if(ep.getCurrentEquippedItem()!=null){
+ sum+=EnchantmentHelper.getEnchantmentLevel(ItemCore.eIdWealth, ep.getCurrentEquippedItem());
+ }
+
+ return sum;
+ }
+}
|
