diff options
| author | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
|---|---|---|
| committer | bculkin2442 <bjculkin@mix.wvu.edu> | 2018-05-24 15:53:20 -0400 |
| commit | 3eb8c7a8fca3f22475d53e30f0b90a6737f313fa (patch) | |
| tree | 1c0afbcb6712408fb791849969f9766dcdeb5868 /YWD/src/main/java/fyresmodjam/items | |
Initial commit
Diffstat (limited to 'YWD/src/main/java/fyresmodjam/items')
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemCrystal.java | 118 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemMysteryMushroom.java | 166 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemMysteryPotion.java | 303 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemObsidianSceptre.java | 60 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemPillar.java | 130 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemScroll.java | 142 | ||||
| -rwxr-xr-x | YWD/src/main/java/fyresmodjam/items/ItemTrap.java | 207 |
7 files changed, 1126 insertions, 0 deletions
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemCrystal.java b/YWD/src/main/java/fyresmodjam/items/ItemCrystal.java new file mode 100755 index 0000000..ee4a6e8 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemCrystal.java @@ -0,0 +1,118 @@ +package fyresmodjam.items;
+
+import java.awt.Color;
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+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.ItemBlock;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class ItemCrystal extends ItemBlock {
+
+ public IIcon texture;
+
+ public static String[] names = new String[] {
+ "Shining", "Void", "Firey"
+ };
+ public static String[] particleNames = new String[] {
+ "spell", "portal", "flame"
+ };
+ public static Color[] colors = new Color[] {
+ new Color(255, 255, 173), new Color(33, 0, 73),
+ new Color(255, 55, 0)
+ };
+
+ public ItemCrystal() {
+ super(ModjamMod.crystal);
+ hasSubtypes = true;
+ setMaxStackSize(1);
+ }
+
+ @Override
+ public void getSubItems(Item id, CreativeTabs creativeTab,
+ List list) {
+ for (int i = 0; i < names.length; i++) {
+ list.add(new ItemStack(id, 1, i));
+ }
+ }
+
+ public String getItemDisplayName(ItemStack itemStack) {
+ return names[itemStack.getItemDamage() % names.length]
+ + " Crystal";
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister) {
+ texture = iconRegister
+ .registerIcon("fyresmodjam:crystal_item");
+ itemIcon = texture;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack itemStack, int i) {
+ return colors[itemStack.getItemDamage() % colors.length]
+ .getRGB();
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getSpriteNumber() {
+ return 1;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1) {
+ return itemIcon;
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack par1ItemStack,
+ World par2World, EntityPlayer par3EntityPlayer) {
+
+ // int value =
+ // (!par3EntityPlayer.getEntityData().hasKey("equippedCrystal")
+ // ||
+ // par3EntityPlayer.getEntityData().getInteger("equippedCrystal")
+ // != par1ItemStack.getItemDamage()) ?
+ // par1ItemStack.getItemDamage() : -1;
+
+ /*
+ * if(par2World.isRemote) {
+ * PacketDispatcher.sendPacketToServer(PacketHandler.
+ * newPacket( PacketHandler.UPDATE_STAT, new Object[]
+ * {"equippedCrystal", "int",
+ * par1ItemStack.getItemDamage()})); } else {
+ * PacketDispatcher.sendPacketToPlayer(PacketHandler.
+ * newPacket( PacketHandler.UPDATE_STAT, new Object[]
+ * {"equippedCrystal", "int",
+ * par1ItemStack.getItemDamage()}), (Player)
+ * par3EntityPlayer); }
+ */
+
+ /*
+ * if(par2World.isRemote) {
+ * par3EntityPlayer.openGui(ModjamMod.instance, 1,
+ * par2World, (int) par3EntityPlayer.posX, (int)
+ * par3EntityPlayer.posY, (int) par3EntityPlayer.posZ); }
+ */
+
+ return par1ItemStack;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public CreativeTabs getCreativeTab() {
+ return CreativeTabs.tabMaterials;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemMysteryMushroom.java b/YWD/src/main/java/fyresmodjam/items/ItemMysteryMushroom.java new file mode 100755 index 0000000..f38d488 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemMysteryMushroom.java @@ -0,0 +1,166 @@ +package fyresmodjam.items;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.handlers.NewPacketHandler;
+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.util.IIcon;
+import net.minecraft.world.World;
+
+public class ItemMysteryMushroom extends Item {
+
+ public IIcon overlay, icon;
+
+ public ItemMysteryMushroom() {
+ super();
+ setHasSubtypes(true);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ icon = par1IconRegister
+ .registerIcon("fyresmodjam:mushroom");
+ overlay = par1IconRegister.registerIcon(
+ "fyresmodjam:mushroom_overlay");
+ itemIcon = icon;
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs,
+ List par3List) {
+ for (int i = 0; i < 13; i++) {
+ par3List.add(new ItemStack(par1, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public int getColorFromItemStack(ItemStack par1ItemStack,
+ int par2) {
+ return NewPacketHandler.mushroomColors[par1ItemStack
+ .getItemDamage() % 13][par2 % 2];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean requiresMultipleRenderPasses() {
+ return true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamageForRenderPass(int par1, int par2) {
+ return par2 > 0 ? overlay : icon;
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack par1ItemStack,
+ EntityPlayer par2EntityPlayer, World par3World,
+ int par4, int par5, int par6, int par7, float par8,
+ float par9, float par10) {
+ Block i1 = par3World.getBlock(par4, par5, par6);
+
+ if (i1 == Blocks.snow && (par3World.getBlockMetadata(par4,
+ par5, par6) & 7) < 1) {
+ par7 = 1;
+ } else if (i1 != Blocks.vine && i1 != Blocks.tallgrass
+ && i1 != Blocks.deadbush
+ && (i1 == null || !i1.isReplaceable(
+ par3World, par4, par5,
+ par6))) {
+ if (par7 == 0) {
+ --par5;
+ }
+
+ if (par7 == 1) {
+ ++par5;
+ }
+
+ if (par7 == 2) {
+ --par6;
+ }
+
+ if (par7 == 3) {
+ ++par6;
+ }
+
+ if (par7 == 4) {
+ --par4;
+ }
+
+ if (par7 == 5) {
+ ++par4;
+ }
+ }
+
+ if (par1ItemStack.stackSize == 0) {
+ return false;
+ } else if (!par2EntityPlayer.canPlayerEdit(par4, par5,
+ par6, par7, par1ItemStack)) {
+ return false;
+ } else if (par5 == 255 && ModjamMod.mysteryMushroomBlock
+ .getMaterial().isSolid()) {
+ return false;
+ } else if (par3World.canPlaceEntityOnSide(
+ ModjamMod.mysteryMushroomBlock, par4, par5,
+ par6, false, par7, par2EntityPlayer,
+ par1ItemStack)) {
+
+ Block block = ModjamMod.mysteryMushroomBlock;
+ int j1 = par1ItemStack.getItemDamage();
+ int k1 = ModjamMod.mysteryMushroomBlock
+ .onBlockPlaced(par3World, par4,
+ par5, par6, par7,
+ par8, par9, par10,
+ j1);
+
+ if (onItemUseFirst(par1ItemStack, par2EntityPlayer,
+ par3World, par4, par5, par6, par7,
+ par8, par9, par10, k1)) {
+ par3World.playSoundEffect(par4 + 0.5F,
+ par5 + 0.5F, par6 + 0.5F,
+ block.stepSound.func_150496_b(),
+ (block.stepSound.getVolume()
+ + 1.0F)
+ / 2.0F,
+ block.stepSound.getPitch()
+ * 0.8F);
+ --par1ItemStack.stackSize;
+ }
+
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public boolean onItemUseFirst(ItemStack stack, EntityPlayer player,
+ World world, int x, int y, int z, int side,
+ float hitX, float hitY, float hitZ, int metadata) {
+ if (!world.setBlock(x, y, z,
+ ModjamMod.mysteryMushroomBlock, metadata,
+ 3)) {
+ return false;
+ }
+
+ if (world.getBlock(x, y,
+ z) == ModjamMod.mysteryMushroomBlock) {
+ ModjamMod.mysteryMushroomBlock.onBlockPlacedBy(
+ world, x, y, z, player, stack);
+ ModjamMod.mysteryMushroomBlock.onPostBlockPlaced(
+ world, x, y, z, metadata);
+ }
+
+ return true;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemMysteryPotion.java b/YWD/src/main/java/fyresmodjam/items/ItemMysteryPotion.java new file mode 100755 index 0000000..8df424e --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemMysteryPotion.java @@ -0,0 +1,303 @@ +package fyresmodjam.items;
+
+import java.util.List;
+
+import cpw.mods.fml.common.FMLCommonHandler;
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.entities.EntityMysteryPotion;
+import fyresmodjam.handlers.CommonTickHandler;
+import fyresmodjam.handlers.NewPacketHandler;
+import net.minecraft.client.Minecraft;
+import net.minecraft.client.renderer.texture.IIconRegister;
+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.potion.Potion;
+import net.minecraft.potion.PotionEffect;
+import net.minecraft.util.IIcon;
+import net.minecraft.util.StatCollector;
+import net.minecraft.world.World;
+
+public class ItemMysteryPotion extends Item {
+
+ public IIcon[] icons = null;
+
+ public ItemMysteryPotion() {
+ super();
+ setHasSubtypes(true);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ icons = new IIcon[26];
+
+ for (int i = 0; i < 13; i++) {
+ icons[i] = par1IconRegister.registerIcon(
+ "fyresmodjam:mysteryPotion_"
+ + (i + 1));
+ icons[i + 13] = par1IconRegister.registerIcon(
+ "fyresmodjam:mysteryPotionThrowable_"
+ + (i + 1));
+ }
+
+ itemIcon = icons[0];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1) {
+ return icons[par1 % 26];
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs,
+ List par3List) {
+ for (int i = 0; i < 13; i++) {
+ par3List.add(new ItemStack(par1, 1, i));
+ }
+ for (int i = 0; i < 13; i++) {
+ par3List.add(new ItemStack(par1, 1, i + 13));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public String getItemStackDisplayName(ItemStack par1ItemStack) {
+ int damage = par1ItemStack.getItemDamage() % 13;
+ String name = "Mystery Potion #" + (damage + 1);
+
+ if (damage < 12) {
+ if (Minecraft.getMinecraft().thePlayer != null
+ && Minecraft.getMinecraft().thePlayer
+ .getEntityData()
+ .hasKey("PotionKnowledge")) {
+ if (Minecraft.getMinecraft().thePlayer
+ .getEntityData()
+ .getIntArray("PotionKnowledge")[damage] != -1) {
+ Potion potion = Potion.potionTypes[NewPacketHandler.potionValues[damage]];
+ name = StatCollector
+ .translateToLocal(
+ potion.getName())
+ + " Potion";
+
+ if (!potion.isInstant()) {
+ int time = NewPacketHandler.potionDurations[damage];
+ name += " (" + time
+ + " seconds)";
+ }
+ }
+ }
+ } else if (damage >= 12) {
+ name = "Wildcard Potion";
+ }
+
+ if (FMLCommonHandler.instance().getSide() == Side.CLIENT
+ && hasBlessing("Alchemist")) {
+ name = "\u00A7k" + name;
+ }
+
+ return name;
+ }
+
+ @Override
+ public EnumAction getItemUseAction(ItemStack par1ItemStack) {
+ return par1ItemStack.getItemDamage() < 13
+ ? EnumAction.drink
+ : super.getItemUseAction(par1ItemStack);
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack par1ItemStack,
+ World par2World, EntityPlayer par3EntityPlayer) {
+ if (par1ItemStack.getItemDamage() < 13) {
+ par3EntityPlayer.setItemInUse(par1ItemStack,
+ getMaxItemUseDuration(
+ par1ItemStack));
+ } else {
+ if (!par3EntityPlayer.capabilities.isCreativeMode) {
+ par1ItemStack.stackSize--;
+ }
+ par2World.playSoundAtEntity(par3EntityPlayer,
+ "random.bow", 0.5F,
+ 0.4F / (itemRand.nextFloat() * 0.4F
+ + 0.8F));
+
+ if (!par2World.isRemote) {
+ int value = 0;
+
+ if (par1ItemStack.getItemDamage()
+ % 13 >= 12) {
+ value = ModjamMod.r.nextInt(
+ Potion.potionTypes.length);
+ while (Potion.potionTypes[value] == null) {
+ value = ModjamMod.r
+ .nextInt(Potion.potionTypes.length);
+ }
+ } else {
+ value = CommonTickHandler.worldData.potionValues[par1ItemStack
+ .getItemDamage()
+ % 13];
+ }
+
+ par2World.spawnEntityInWorld(
+ new EntityMysteryPotion(
+ par2World,
+ par3EntityPlayer,
+ par1ItemStack));
+ }
+ }
+
+ return par1ItemStack;
+ }
+
+ @Override
+ public int getMaxItemUseDuration(ItemStack par1ItemStack) {
+ return par1ItemStack.getItemDamage() < 13 ? 32
+ : super.getMaxItemUseDuration(
+ par1ItemStack);
+ }
+
+ @Override
+ public ItemStack onEaten(ItemStack par1ItemStack, World par2World,
+ EntityPlayer par3EntityPlayer) {
+ if (!par3EntityPlayer.capabilities.isCreativeMode) {
+ --par1ItemStack.stackSize;
+ }
+
+ int damage = par1ItemStack.getItemDamage() % 13;
+
+ if (!BlessingUtils.hasBlessing(par3EntityPlayer,
+ "BlessingAlchemist") && damage < 12) {
+ if (!par2World.isRemote) {
+
+ int value = CommonTickHandler.worldData.potionValues[damage];
+
+ if (!Potion.potionTypes[value]
+ .isInstant()) {
+ par3EntityPlayer.addPotionEffect(
+ new PotionEffect(
+ value,
+ CommonTickHandler.worldData.potionDurations[damage]
+ * 20,
+ 1,
+ false));
+ } else {
+ Potion.potionTypes[value]
+ .affectEntity(par3EntityPlayer,
+ par3EntityPlayer,
+ 1,
+ 1);
+ }
+
+ if (!par3EntityPlayer.getEntityData()
+ .hasKey("PotionKnowledge")) {
+ par3EntityPlayer.getEntityData()
+ .setIntArray("PotionKnowledge",
+ new int[] {
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1,
+ -1
+ });
+ }
+
+ if (par3EntityPlayer.getEntityData()
+ .getIntArray("PotionKnowledge")[damage] == -1) {
+ par3EntityPlayer.getEntityData()
+ .getIntArray("PotionKnowledge")[damage] = 1;
+
+ NewPacketHandler.UPDATE_POTION_KNOWLEDGE
+ .sendToPlayer(par3EntityPlayer,
+ par3EntityPlayer.getEntityData()
+ .getIntArray("PotionKnowledge"));
+
+ Potion potion = Potion.potionTypes[CommonTickHandler.worldData.potionValues[damage]];
+ String name = StatCollector
+ .translateToLocal(
+ potion.getName())
+ + " Potion";
+
+ if (!potion.isInstant()) {
+ int time = CommonTickHandler.worldData.potionDurations[damage];
+ name += " (" + time
+ + " seconds)";
+ }
+
+ NewPacketHandler.SEND_MESSAGE
+ .sendToPlayer(par3EntityPlayer,
+ "\u00A7oYou learnt Mystery Potion #"
+ + (damage + 1)
+ + " was a "
+ + name
+ + "!");
+ }
+ }
+
+ } else if (!par2World.isRemote) {
+ int value = ModjamMod.r.nextInt(
+ Potion.potionTypes.length);
+ while (Potion.potionTypes[value] == null) {
+ value = ModjamMod.r.nextInt(
+ Potion.potionTypes.length);
+ }
+ int time = 5 + ModjamMod.r.nextInt(26);
+
+ if (!Potion.potionTypes[value].isInstant()) {
+ par3EntityPlayer.addPotionEffect(
+ new PotionEffect(value,
+ time * 20,
+ 1, false));
+ } else {
+ Potion.potionTypes[value].affectEntity(
+ par3EntityPlayer,
+ par3EntityPlayer, 1, 1);
+ }
+
+ Potion potion = Potion.potionTypes[value];
+ String name = StatCollector.translateToLocal(
+ potion.getName()) + " Potion";
+
+ if (!potion.isInstant()) {
+ name += " (" + time + " seconds)";
+ }
+
+ NewPacketHandler.SEND_MESSAGE.sendToPlayer(
+ par3EntityPlayer,
+ "\u00A7oYou drank a " + name
+ + ".");
+ }
+
+ return par1ItemStack;
+ }
+
+ @SideOnly(Side.CLIENT)
+ public boolean hasBlessing(String bless) {
+ return (Minecraft.getMinecraft().thePlayer != null
+ && BlessingUtils.hasBlessing(Minecraft
+ .getMinecraft().thePlayer,
+ bless));
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack par1ItemStack,
+ EntityPlayer par2EntityPlayer, World par3World,
+ int par4, int par5, int par6, int par7, float par8,
+ float par9, float par10) {
+ return false;
+ }
+
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemObsidianSceptre.java b/YWD/src/main/java/fyresmodjam/items/ItemObsidianSceptre.java new file mode 100755 index 0000000..f1c179e --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemObsidianSceptre.java @@ -0,0 +1,60 @@ +package fyresmodjam.items;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+
+public class ItemObsidianSceptre extends Item {
+
+ public IIcon icon, icon2;
+
+ public ItemObsidianSceptre() {
+ super();
+ hasSubtypes = true;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ icon = par1IconRegister.registerIcon(
+ "fyresmodjam:unenchantedSceptre");
+ icon2 = par1IconRegister.registerIcon(
+ "fyresmodjam:enchantedSceptre");
+ itemIcon = icon;
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs,
+ List par3List) {
+ for (int i = 0; i < 2; i++) {
+ par3List.add(new ItemStack(par1, 1, i));
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public String getItemStackDisplayName(ItemStack par1ItemStack) {
+ return (par1ItemStack.getItemDamage() == 0 ? ""
+ : "Infused ")
+ + super.getItemStackDisplayName(
+ par1ItemStack);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1) {
+ return par1 == 0 ? icon : icon2;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public boolean hasEffect(ItemStack par1ItemStack) {
+ return par1ItemStack.getItemDamage() > 0;
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemPillar.java b/YWD/src/main/java/fyresmodjam/items/ItemPillar.java new file mode 100755 index 0000000..3f47f15 --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemPillar.java @@ -0,0 +1,130 @@ +package fyresmodjam.items;
+
+import java.util.List;
+import java.util.Map;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blessings.Blessing;
+import fyresmodjam.blessings.BlessingUtils;
+import fyresmodjam.misc.ConfigData;
+import fyresmodjam.tileentities.TileEntityPillar;
+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.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.world.World;
+
+public class ItemPillar extends Item {
+ public ItemPillar() {
+ super();
+ maxStackSize = 1;
+ setCreativeTab(CreativeTabs.tabBlock);
+ hasSubtypes = true;
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs,
+ List par3List) {
+ if (ConfigData.showAllPillarsInCreative) {
+ for (Blessing bless : BlessingUtils.playerBlessings
+ .values()) {
+ par3List.add(new ItemStack(par1, 1,
+ bless.ordinal));
+ }
+ } else {
+ super.getSubItems(par1, par2CreativeTabs,
+ par3List);
+ }
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ itemIcon = par1IconRegister
+ .registerIcon("fyresmodjam:itemPillar");
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public String getItemStackDisplayName(ItemStack par1ItemStack) {
+ String blessingName = "Unknown";
+
+ for (Blessing bless : BlessingUtils.playerBlessings
+ .values()) {
+ if (bless.ordinal == par1ItemStack.getItemDamage()
+ - 1) {
+ blessingName = bless.customName();
+ }
+ }
+
+ String blessing = " ( " + blessingName + ")";
+
+ return super.getItemStackDisplayName(par1ItemStack)
+ + (par1ItemStack.getItemDamage() == 0 ? ""
+ : blessing);
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack par1ItemStack,
+ EntityPlayer par2EntityPlayer, World par3World,
+ int par4, int par5, int par6, int par7, float par8,
+ float par9, float par10) {
+ Block block = ModjamMod.blockPillar;
+
+ if (par7 == 0) {
+ par5 -= 2;
+ }
+ if (par7 == 1 && !par3World.getBlock(par4, par5, par6)
+ .isReplaceable(par3World, par4, par5,
+ par6)) {
+ ++par5;
+ }
+ if (par7 == 2) {
+ --par6;
+ }
+ if (par7 == 3) {
+ ++par6;
+ }
+ if (par7 == 4) {
+ --par4;
+ }
+ if (par7 == 5) {
+ ++par4;
+ }
+
+ if (!block.canPlaceBlockAt(par3World, par4, par5, par6)) {
+ return false;
+ } else {
+ par3World.setBlock(par4, par5, par6, block);
+ par3World.setBlockMetadataWithNotify(par4, par5,
+ par6, 0, 0);
+
+ par3World.setBlock(par4, par5 + 1, par6, block);
+ par3World.setBlockMetadataWithNotify(par4,
+ par5 + 1, par6, 1, 0);
+
+ if (par1ItemStack.getItemDamage() != 0) {
+ for (Map.Entry<String, Blessing> bless : BlessingUtils.playerBlessings
+ .entrySet()) {
+ if (bless.getValue().ordinal == par1ItemStack
+ .getItemDamage()
+ - 1) {
+ ((TileEntityPillar) par3World
+ .getTileEntity(par4,
+ par5,
+ par6)).blessing = bless
+ .getKey();
+ }
+ }
+ }
+
+ --par1ItemStack.stackSize;
+
+ return true;
+ }
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemScroll.java b/YWD/src/main/java/fyresmodjam/items/ItemScroll.java new file mode 100755 index 0000000..5b1046d --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemScroll.java @@ -0,0 +1,142 @@ +package fyresmodjam.items;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+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.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.nbt.NBTTagList;
+import net.minecraft.nbt.NBTTagString;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class ItemScroll extends Item {
+
+ public static String[][] scrollText = new String[][] {
+ {
+ "Unkown Adventurer",
+ "Codex #1: Adventurer's Log",
+ "This morning I fell out of the sky. I am unsure of where I am, or for what purpose, but I've begun construction of a small shelter for the time being.",
+ "I've now spent days scouting the nearby area with no luck. Still alone, I'm made my decision to set out further.",
+ "I've discovered an ancient stronghold. Writtings of end times cover the walls. What could it mean? Who built this place? Why was it here? And I have an unsettling feeling that I'm being watched..."
+ }, {
+ "Village Elder",
+ "Codex #2: An Elders Warning",
+ "For thousands of years, we have lived peacefully. As stories of the distant past began to fade in time, the elders became tasked with remembering. I now join their ranks, but still I see there are those who choose to forget.",
+ "The lines between worlds begin to blur once again. In the deepest caverns, we can see in to their world, and theirs in to ours. The end returns, yet no other will listen. It's clear I must find the crystal alone."
+ }, {
+ "Pigman Warrior",
+ "Codex #3: The Warriors Spirit",
+ "We fight through the fires of this realm, thinking as one. It is the only way to survive this wretched landscape. Hurt one and the horde will know.",
+ "Strangers enter our realm through even stranger portals. They seek the crystal which bonds our world. We refuse, we fight, but many die. Our numbers begin dwindle, but the crystal will stay ours.",
+ "We can see the void seeping through the cracks of our realm, reanimating the dead. Empty husks of our fallen push back the intruders. But they too are affected by the void's forces."
+ }, {
+ "Enderman Urchin",
+ "Codex #4: From the Shadows",
+ "The darkness shall consume all, below each of the worlds it boils. We now wait for our time to return, watching through the cracks of space and time. Us children of the Ender will reclaim what was once ours."
+ } /*
+ * , {"Author", "Codex #5" , "Words"}
+ */
+ };
+
+ public IIcon texture;
+
+ public ItemScroll() {
+ super();
+ hasSubtypes = true;
+ maxStackSize = 1;
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister iconRegister) {
+ texture = iconRegister.registerIcon("fyresmodjam:scroll");
+ itemIcon = texture;
+ }
+
+ @Override
+ public void onUpdate(ItemStack stack, World world, Entity entity,
+ int par1, boolean b) {
+ if (!world.isRemote) {
+ if (!stack.hasTagCompound()) {
+ stack.stackTagCompound = new NBTTagCompound();
+ }
+
+ if (!stack.getTagCompound().hasKey("initialized")
+ || !stack.getTagCompound()
+ .getBoolean("initialized")) {
+ stack.getTagCompound().setBoolean(
+ "initialized", true);
+
+ ItemStack book = new ItemStack(
+ Items.written_book, 1, 0);
+
+ NBTTagList pages = new NBTTagList();
+
+ for (int i = 2; i < scrollText[stack
+ .getItemDamage()
+ % scrollText.length].length; i++) {
+ pages.appendTag(new NBTTagString(
+ scrollText[stack.getItemDamage()
+ % scrollText.length][i]));
+ }
+
+ book.setTagInfo("pages", pages);
+ book.setTagInfo("author", new NBTTagString(
+ scrollText[stack.getItemDamage()
+ % scrollText.length][0]));
+ book.setTagInfo("title", new NBTTagString(
+ scrollText[stack.getItemDamage()
+ % scrollText.length][1]));
+
+ NBTTagCompound bookTag = new NBTTagCompound();
+ book.writeToNBT(bookTag);
+ stack.setTagInfo("book", bookTag);
+ }
+ }
+ }
+
+ @Override
+ public void getSubItems(Item id, CreativeTabs creativeTab,
+ List list) {
+ for (int i = 0; i < scrollText.length; i++) {
+ list.add(new ItemStack(id, 1, i));
+ }
+ }
+
+ @Override
+ public ItemStack onItemRightClick(ItemStack par1ItemStack,
+ World par2World, EntityPlayer par3EntityPlayer) {
+ NBTTagCompound bookTag = par1ItemStack.getTagCompound()
+ .getCompoundTag("book");
+ if (bookTag != null) {
+ par3EntityPlayer.displayGUIBook(ItemStack
+ .loadItemStackFromNBT(bookTag));
+ }
+ return par1ItemStack;
+ }
+
+ @Override
+ public String getItemStackDisplayName(ItemStack par1ItemStack) {
+ return scrollText[par1ItemStack.getItemDamage()
+ % scrollText.length][1];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void addInformation(ItemStack par1ItemStack,
+ EntityPlayer par2EntityPlayer, List par3List,
+ boolean par4) {
+ par3List.add(EnumChatFormatting.GRAY
+ + scrollText[par1ItemStack.getItemDamage()
+ % scrollText.length][0]);
+ }
+}
diff --git a/YWD/src/main/java/fyresmodjam/items/ItemTrap.java b/YWD/src/main/java/fyresmodjam/items/ItemTrap.java new file mode 100755 index 0000000..8cf856e --- /dev/null +++ b/YWD/src/main/java/fyresmodjam/items/ItemTrap.java @@ -0,0 +1,207 @@ +package fyresmodjam.items;
+
+import java.util.List;
+
+import cpw.mods.fml.relauncher.Side;
+import cpw.mods.fml.relauncher.SideOnly;
+import fyresmodjam.ModjamMod;
+import fyresmodjam.blocks.BlockTrap;
+import fyresmodjam.misc.BehaviorDispenseTrap;
+import net.minecraft.block.Block;
+import net.minecraft.block.BlockDispenser;
+import net.minecraft.client.renderer.texture.IIconRegister;
+import net.minecraft.creativetab.CreativeTabs;
+import net.minecraft.dispenser.IBehaviorDispenseItem;
+import net.minecraft.entity.Entity;
+import net.minecraft.entity.player.EntityPlayer;
+import net.minecraft.init.Blocks;
+import net.minecraft.item.Item;
+import net.minecraft.item.ItemStack;
+import net.minecraft.util.IIcon;
+import net.minecraft.world.World;
+
+public class ItemTrap extends Item {
+
+ private static final IBehaviorDispenseItem dispenseTrap = new BehaviorDispenseTrap();
+
+ public IIcon[] icons;
+ public static String[] iconLocations = new String[] {
+ "fyresmodjam:itemTrap", "fyresmodjam:trap2",
+ "fyresmodjam:trap3"
+ };
+
+ public ItemTrap() {
+ super();
+ setHasSubtypes(true);
+ BlockDispenser.dispenseBehaviorRegistry.putObject(this,
+ dispenseTrap);
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public void registerIcons(IIconRegister par1IconRegister) {
+ icons = new IIcon[iconLocations.length];
+ for (int i = 0; i < iconLocations.length; i++) {
+ icons[i] = par1IconRegister
+ .registerIcon(iconLocations[i]);
+ }
+
+ itemIcon = icons[0];
+ }
+
+ @Override
+ public void getSubItems(Item par1, CreativeTabs par2CreativeTabs,
+ List par3List) {
+ for (int i = 0; i < BlockTrap.trapTypes; i++) {
+ par3List.add(new ItemStack(par1, 1, i));
+ }
+ }
+
+ public static String[] names = {
+ "Spike Trap", "Flame Trap", "Smoke Trap"
+ };
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public String getItemStackDisplayName(ItemStack par1ItemStack) {
+ return names[par1ItemStack.getItemDamage()
+ % BlockTrap.trapTypes];
+ }
+
+ @Override
+ @SideOnly(Side.CLIENT)
+ public IIcon getIconFromDamage(int par1) {
+ return icons[par1 % BlockTrap.trapTypes];
+ }
+
+ @Override
+ public boolean onItemUse(ItemStack par1ItemStack,
+ EntityPlayer par2EntityPlayer, World par3World,
+ int par4, int par5, int par6, int par7, float par8,
+ float par9, float par10) {
+ Block i1 = par3World.getBlock(par4, par5, par6);
+
+ if (i1 == Blocks.snow && (par3World.getBlockMetadata(par4,
+ par5, par6) & 7) < 1) {
+ par7 = 1;
+ } else if (i1 != Blocks.vine && i1 != Blocks.tallgrass
+ && i1 != Blocks.deadbush
+ && (i1 == null || !i1.isReplaceable(
+ par3World, par4, par5,
+ par6))) {
+ if (par7 == 0) {
+ --par5;
+ }
+ if (par7 == 1) {
+ ++par5;
+ }
+ if (par7 == 2) {
+ --par6;
+ }
+ if (par7 == 3) {
+ ++par6;
+ }
+ if (par7 == 4) {
+ --par4;
+ }
+ if (par7 == 5) {
+ ++par4;
+ }
+ }
+
+ if (par1ItemStack.stackSize == 0) {
+ return false;
+ } else if (!par2EntityPlayer.canPlayerEdit(par4, par5,
+ par6, par7, par1ItemStack)) {
+ return false;
+ } else if (par5 == 255 && ModjamMod.blockTrap.getMaterial()
+ .isSolid()) {
+ return false;
+ } else if (par3World.canPlaceEntityOnSide(
+ ModjamMod.blockTrap, par4, par5, par6,
+ false, par7, par2EntityPlayer,
+ par1ItemStack)) {
+ Block block = ModjamMod.blockTrap;
+ int j1 = getMetadata(
+ par1ItemStack.getItemDamage());
+ int k1 = ModjamMod.blockTrap.onBlockPlaced(
+ par3World, par4, par5, par6, par7,
+ par8, par9, par10, j1);
+
+ if (placeBlockAt(par1ItemStack, par2EntityPlayer,
+ par3World, par4, par5, par6, par7,
+ par8, par9, par10, k1)) {
+ par3World.playSoundEffect(par4 + 0.5F,
+ par5 + 0.5F, par6 + 0.5F,
+ block.stepSound.func_150496_b(),
+ (block.stepSound.getVolume()
+ + 1.0F)
+ / 2.0F,
+ block.stepSound.getPitch()
+ * 0.8F);
+ --par1ItemStack.stackSize;
+ }
+
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ @SideOnly(Side.CLIENT)
+ public boolean canPlaceItemBlockOnSide(World par1World, int par2,
+ int par3, int par4, int par5,
+ EntityPlayer par6EntityPlayer,
+ ItemStack par7ItemStack) {
+ Block i1 = par1World.getBlock(par2, par3, par4);
+
+ if (i1 == Blocks.snow) {
+ par5 = 1;
+ } else if (i1 != Blocks.vine && i1 != Blocks.tallgrass
+ && i1 != Blocks.deadbush
+ && (i1 == null || !i1.isReplaceable(
+ par1World, par2, par3,
+ par4))) {
+ if (par5 == 0) {
+ --par3;
+ }
+ if (par5 == 1) {
+ ++par3;
+ }
+ if (par5 == 2) {
+ --par4;
+ }
+ if (par5 == 3) {
+ ++par4;
+ }
+ if (par5 == 4) {
+ --par2;
+ }
+ if (par5 == 5) {
+ ++par2;
+ }
+ }
+
+ return par1World.canPlaceEntityOnSide(ModjamMod.blockTrap,
+ par2, par3, par4, false, par5,
+ (Entity) null, par7ItemStack);
+ }
+
+ 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) {
+ if (!world.setBlock(x, y, z, ModjamMod.blockTrap, metadata,
+ 3)) {
+ return false;
+ }
+
+ if (world.getBlock(x, y, z) == ModjamMod.blockTrap) {
+ ModjamMod.blockTrap.onBlockPlacedBy(world, x, y, z,
+ player, stack);
+ ModjamMod.blockTrap.onPostBlockPlaced(world, x, y,
+ z, metadata);
+ }
+
+ return true;
+ }
+}
|
