From 70c1354a4a96698758a88c032866288f79de6f5a Mon Sep 17 00:00:00 2001 From: Benjamin Culkin Date: Sat, 24 Aug 2024 08:16:37 -0400 Subject: Initial commit --- .../jp/plusplus/fbs/item/ItemAlchemyCauldron.class | Bin 0 -> 2740 bytes .../jp/plusplus/fbs/item/ItemAlchemyCauldron.java | 55 ++++ .../jp/plusplus/fbs/item/ItemAlchemyTable.class | Bin 0 -> 2140 bytes .../jp/plusplus/fbs/item/ItemAlchemyTable.java | 48 ++++ .../jp/plusplus/fbs/item/ItemArmorInfinity.class | Bin 0 -> 3334 bytes .../jp/plusplus/fbs/item/ItemArmorInfinity.java | 65 +++++ src/main/java/jp/plusplus/fbs/item/ItemBase.class | Bin 0 -> 1913 bytes src/main/java/jp/plusplus/fbs/item/ItemBase.java | 38 +++ .../java/jp/plusplus/fbs/item/ItemBasket.class | Bin 0 -> 2197 bytes src/main/java/jp/plusplus/fbs/item/ItemBasket.java | 42 +++ .../java/jp/plusplus/fbs/item/ItemBlockBase.class | Bin 0 -> 1740 bytes .../java/jp/plusplus/fbs/item/ItemBlockBase.java | 36 +++ .../java/jp/plusplus/fbs/item/ItemBlockMeta.class | Bin 0 -> 1456 bytes .../java/jp/plusplus/fbs/item/ItemBlockMeta.java | 41 +++ .../java/jp/plusplus/fbs/item/ItemBookBroken.class | Bin 0 -> 2417 bytes .../java/jp/plusplus/fbs/item/ItemBookBroken.java | 56 ++++ .../jp/plusplus/fbs/item/ItemBookNoDecoded$1.class | Bin 0 -> 1699 bytes .../jp/plusplus/fbs/item/ItemBookNoDecoded.class | Bin 0 -> 9485 bytes .../jp/plusplus/fbs/item/ItemBookNoDecoded.java | 189 +++++++++++++ .../jp/plusplus/fbs/item/ItemBookSorcery.class | Bin 0 -> 10854 bytes .../java/jp/plusplus/fbs/item/ItemBookSorcery.java | 251 +++++++++++++++++ .../java/jp/plusplus/fbs/item/ItemBookWhite.class | Bin 0 -> 3514 bytes .../java/jp/plusplus/fbs/item/ItemBookWhite.java | 54 ++++ .../java/jp/plusplus/fbs/item/ItemBookmark.class | Bin 0 -> 2860 bytes .../java/jp/plusplus/fbs/item/ItemBookmark.java | 140 ++++++++++ .../java/jp/plusplus/fbs/item/ItemButterfly.class | Bin 0 -> 7310 bytes .../java/jp/plusplus/fbs/item/ItemButterfly.java | 278 +++++++++++++++++++ src/main/java/jp/plusplus/fbs/item/ItemCharm.class | Bin 0 -> 3686 bytes src/main/java/jp/plusplus/fbs/item/ItemCharm.java | 92 +++++++ src/main/java/jp/plusplus/fbs/item/ItemCloak.class | Bin 0 -> 1966 bytes src/main/java/jp/plusplus/fbs/item/ItemCloak.java | 33 +++ src/main/java/jp/plusplus/fbs/item/ItemCore.class | Bin 0 -> 10019 bytes src/main/java/jp/plusplus/fbs/item/ItemCore.java | 301 +++++++++++++++++++++ .../jp/plusplus/fbs/item/ItemEnchantScroll.class | Bin 0 -> 1414 bytes .../jp/plusplus/fbs/item/ItemEnchantScroll.java | 38 +++ .../java/jp/plusplus/fbs/item/ItemFoldingFan.class | Bin 0 -> 2519 bytes .../java/jp/plusplus/fbs/item/ItemFoldingFan.java | 45 +++ .../jp/plusplus/fbs/item/ItemFortuneCookie.class | Bin 0 -> 2581 bytes .../jp/plusplus/fbs/item/ItemFortuneCookie.java | 51 ++++ src/main/java/jp/plusplus/fbs/item/ItemGem.class | Bin 0 -> 3105 bytes src/main/java/jp/plusplus/fbs/item/ItemGem.java | 69 +++++ .../java/jp/plusplus/fbs/item/ItemLavender.class | Bin 0 -> 1842 bytes .../java/jp/plusplus/fbs/item/ItemLavender.java | 37 +++ .../jp/plusplus/fbs/item/ItemLuckyDagger.class | Bin 0 -> 3032 bytes .../java/jp/plusplus/fbs/item/ItemLuckyDagger.java | 51 ++++ .../java/jp/plusplus/fbs/item/ItemMPCoin.class | Bin 0 -> 3117 bytes src/main/java/jp/plusplus/fbs/item/ItemMPCoin.java | 68 +++++ .../java/jp/plusplus/fbs/item/ItemMagicCore.class | Bin 0 -> 1298 bytes .../java/jp/plusplus/fbs/item/ItemMagicCore.java | 28 ++ .../java/jp/plusplus/fbs/item/ItemMonocle.class | Bin 0 -> 4682 bytes .../java/jp/plusplus/fbs/item/ItemMonocle.java | 80 ++++++ src/main/java/jp/plusplus/fbs/item/ItemNet.class | Bin 0 -> 3022 bytes src/main/java/jp/plusplus/fbs/item/ItemNet.java | 56 ++++ .../java/jp/plusplus/fbs/item/ItemOldBook.class | Bin 0 -> 3749 bytes .../java/jp/plusplus/fbs/item/ItemOldBook.java | 66 +++++ src/main/java/jp/plusplus/fbs/item/ItemOre.class | Bin 0 -> 1416 bytes src/main/java/jp/plusplus/fbs/item/ItemOre.java | 31 +++ .../java/jp/plusplus/fbs/item/ItemPlaceable.class | Bin 0 -> 5318 bytes .../java/jp/plusplus/fbs/item/ItemPlaceable.java | 135 +++++++++ .../jp/plusplus/fbs/item/ItemPotionOblivion.class | Bin 0 -> 4457 bytes .../jp/plusplus/fbs/item/ItemPotionOblivion.java | 92 +++++++ .../jp/plusplus/fbs/item/ItemPotionSanity.class | Bin 0 -> 2123 bytes .../jp/plusplus/fbs/item/ItemPotionSanity.java | 50 ++++ .../jp/plusplus/fbs/item/ItemSeedRedLily.class | Bin 0 -> 2564 bytes .../java/jp/plusplus/fbs/item/ItemSeedRedLily.java | 57 ++++ .../java/jp/plusplus/fbs/item/ItemShovel.class | Bin 0 -> 2487 bytes src/main/java/jp/plusplus/fbs/item/ItemShovel.java | 45 +++ src/main/java/jp/plusplus/fbs/item/ItemStaff.class | Bin 0 -> 7754 bytes src/main/java/jp/plusplus/fbs/item/ItemStaff.java | 152 +++++++++++ .../jp/plusplus/fbs/item/ItemStoneSpirit.class | Bin 0 -> 961 bytes .../java/jp/plusplus/fbs/item/ItemStoneSpirit.java | 23 ++ .../fbs/item/enchant/EnchantmentCleverness.class | Bin 0 -> 2301 bytes .../fbs/item/enchant/EnchantmentCleverness.java | 55 ++++ .../item/enchant/EnchantmentSanityProtect.class | Bin 0 -> 2290 bytes .../fbs/item/enchant/EnchantmentSanityProtect.java | 55 ++++ .../fbs/item/enchant/EnchantmentWealth.class | Bin 0 -> 1540 bytes .../fbs/item/enchant/EnchantmentWealth.java | 47 ++++ 77 files changed, 3050 insertions(+) create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBase.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBase.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBasket.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBasket.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBlockBase.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBlockBase.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookBroken.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookBroken.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded$1.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookWhite.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookWhite.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookmark.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemBookmark.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemButterfly.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemButterfly.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCharm.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCharm.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCloak.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCloak.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCore.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemCore.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemEnchantScroll.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemFoldingFan.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemFortuneCookie.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemGem.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemGem.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemLavender.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemLavender.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemLuckyDagger.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMPCoin.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMPCoin.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMagicCore.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMagicCore.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMonocle.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemMonocle.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemNet.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemNet.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemOldBook.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemOldBook.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemOre.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemOre.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPlaceable.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPlaceable.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemShovel.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemShovel.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemStaff.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemStaff.java create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.class create mode 100644 src/main/java/jp/plusplus/fbs/item/ItemStoneSpirit.java create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.class create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentCleverness.java create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.class create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentSanityProtect.java create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.class create mode 100644 src/main/java/jp/plusplus/fbs/item/enchant/EnchantmentWealth.java (limited to 'src/main/java/jp/plusplus/fbs/item') diff --git a/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class new file mode 100644 index 0000000..34b39f3 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyCauldron.class differ 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 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 new file mode 100644 index 0000000..ee26cfb Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemAlchemyTable.class differ 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 new file mode 100644 index 0000000..8cb260b Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemArmorInfinity.class differ 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 new file mode 100644 index 0000000..f81a79e Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBase.class differ 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 new file mode 100644 index 0000000..e659172 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBasket.class differ 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 new file mode 100644 index 0000000..ac7ca97 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBlockBase.class differ 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 new file mode 100644 index 0000000..a0a0142 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBlockMeta.class differ 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 new file mode 100644 index 0000000..ce7e4b0 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookBroken.class differ 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 new file mode 100644 index 0000000..3a8f357 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded$1.class differ diff --git a/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class new file mode 100644 index 0000000..5e955b0 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookNoDecoded.class differ 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[] books=Registry.GetBooks(); + Arrays.sort(books, new Comparator>() { + @Override + public int compare(Map.Entry o1, Map.Entry o2) { + return o1.getValue().lv-o2.getValue().lv; + } + }); + + for(int i=0;i 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 new file mode 100644 index 0000000..17e7a3c Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookSorcery.class differ 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 books = new LinkedList(); + 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 new file mode 100644 index 0000000..0632932 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookWhite.class differ 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 list=new ArrayList(); + Map.Entry[] books=Registry.GetBooks(); + + //魔導書の抽出 + for(Map.Entry 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 new file mode 100644 index 0000000..31f872a Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemBookmark.class differ 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 new file mode 100644 index 0000000..184b549 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemButterfly.class differ 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"+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 new file mode 100644 index 0000000..b748ee8 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemGem.class differ 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 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 new file mode 100644 index 0000000..5d6c916 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemMagicCore.class differ 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 new file mode 100644 index 0000000..a02e8a1 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemMonocle.class differ 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=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=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 new file mode 100644 index 0000000..ff90c51 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemPotionOblivion.class differ 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 new file mode 100644 index 0000000..269687b Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemPotionSanity.class differ 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 new file mode 100644 index 0000000..d9fc7f2 Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemSeedRedLily.class differ 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 new file mode 100644 index 0000000..6073a2c Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemShovel.class differ 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 new file mode 100644 index 0000000..ba07f2d Binary files /dev/null and b/src/main/java/jp/plusplus/fbs/item/ItemStaff.class differ 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 books=new LinkedList(); + 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