Created
May 17, 2017 12:26
-
-
Save anonymous/1db0b20c50fe1e6dca557a48a29e23be to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package modmercenario.items.prueba; | |
import java.util.ArrayList; | |
import java.util.List; | |
import modmercenario.modmercenario; | |
import modmercenario.entidades.flechas.flechamercenaria; | |
import modmercenario.items.mmaf; | |
import modmercenario.items.mmarcos; | |
import modmercenario.items.mmhe; | |
import modmercenario.items.mmmateriales; | |
import modmercenario.items.mmprueba; | |
import modmercenario.poderes.capacidaddealmacenamiento; | |
import modmercenario.entidades.entidadprueba.EntitySphere; | |
import modmercenario.utilidades.ih; | |
import modmercenario.utilidades.objetoobjetivo; | |
import modmercenario.utilidades.util; | |
import net.minecraft.block.BlockLiquid; | |
import net.minecraft.block.material.Material; | |
import net.minecraft.block.state.IBlockState; | |
import net.minecraft.client.Minecraft; | |
import net.minecraft.client.gui.MapItemRenderer; | |
import net.minecraft.client.renderer.EntityRenderer; | |
import net.minecraft.client.renderer.ItemRenderer; | |
import net.minecraft.entity.Entity; | |
import net.minecraft.entity.EntityLivingBase; | |
import net.minecraft.entity.player.EntityPlayer; | |
import net.minecraft.entity.projectile.EntityArrow; | |
import net.minecraft.entity.projectile.EntitySnowball; | |
import net.minecraft.init.Blocks; | |
import net.minecraft.init.Items; | |
import net.minecraft.init.SoundEvents; | |
import net.minecraft.inventory.EntityEquipmentSlot; | |
import net.minecraft.item.EnumAction; | |
import net.minecraft.item.Item; | |
import net.minecraft.item.ItemArrow; | |
import net.minecraft.item.ItemStack; | |
import net.minecraft.nbt.NBTBase; | |
import net.minecraft.nbt.NBTTagCompound; | |
import net.minecraft.stats.StatList; | |
import net.minecraft.util.ActionResult; | |
import net.minecraft.util.EnumActionResult; | |
import net.minecraft.util.EnumFacing; | |
import net.minecraft.util.EnumHand; | |
import net.minecraft.util.NonNullList; | |
import net.minecraft.util.SoundCategory; | |
import net.minecraft.util.math.BlockPos; | |
import net.minecraft.util.math.RayTraceResult; | |
import net.minecraft.util.text.TextComponentTranslation; | |
import net.minecraft.world.World; | |
import net.minecraftforge.common.capabilities.Capability; | |
import net.minecraftforge.common.capabilities.ICapabilityProvider; | |
import net.minecraftforge.common.capabilities.ICapabilitySerializable; | |
import net.minecraftforge.fml.common.registry.GameRegistry; | |
import net.minecraftforge.fml.relauncher.Side; | |
import net.minecraftforge.fml.relauncher.SideOnly; | |
import net.minecraftforge.items.CapabilityItemHandler; | |
import net.minecraftforge.items.ItemStackHandler; | |
public class pruebacosas01 extends Item { | |
private String name = "materialGenerico"; | |
/** Number of ticks to run while 'EnumAction'ing until result. */ | |
public final int itemUseDuration; | |
public pruebacosas01(String name){ | |
this.name = name; | |
this.setRegistryName(name); | |
GameRegistry.register(this); | |
setUnlocalizedName(modmercenario.MODID + "_" + name); | |
this.setCreativeTab(modmercenario.materiales); | |
this.setHasSubtypes(false); | |
this.setMaxDamage(0); | |
this.maxStackSize = 1; | |
this.itemUseDuration = 30; | |
} | |
@SideOnly(Side.CLIENT) | |
public boolean isFull3D() | |
{ | |
return true; | |
} | |
//############################################################################################# | |
/** | |
* Called each tick as long the item is on a player inventory. Uses by maps to check if is on a player hand and | |
* update it's contents. | |
*/ | |
public void onUpdate(ItemStack stack, World worldIn, Entity entityIn, int itemSlot, boolean isSelected) | |
{ | |
if (!worldIn.isRemote ){ | |
/* | |
if ( (worldIn.getWorldTime() % 10) == 0 ){ | |
int conteo = util.getInttag(stack, "conteo"); | |
conteo ++; | |
util.setInttag(stack, "conteo", conteo); | |
} | |
*/ | |
} | |
} | |
//############################################################################################# | |
@Override | |
public boolean onEntitySwing(EntityLivingBase shootingEntity, ItemStack stack) { | |
ArrayList<ItemStack> chestInventory = util.leerInventarioItem(stack); | |
util.mostrarInventario( chestInventory ); | |
return true; | |
} | |
//############################################################################################# | |
public ActionResult<ItemStack> onItemRightClick(World worldIn, EntityPlayer playerIn, EnumHand handIn) | |
{ | |
ItemStack itemstack = playerIn.getHeldItem(handIn); | |
playerIn.setActiveHand(handIn); | |
//int redstone = util.getInttag(itemstack, "redstone"); | |
//util.setInttag(itemstack, "redstone", redstone); | |
//How the heck i get the value from the capability ?? | |
int redstone = capabilitywhath?? | |
System.out.print("redstone="+redstone); | |
if( redstone < 1 ){ | |
capabilitywhath??.setRedstonetoneto(1100); | |
} | |
return new ActionResult(EnumActionResult.SUCCESS, itemstack); | |
} | |
//################################################################### | |
/** | |
* Called when the player finishes using this Item (E.g. finishes eating.). Not called when the player stops using | |
* the Item before the action is complete. | |
*/ | |
public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityLivingBase entityLiving) | |
{ | |
// stack.shrink(1); | |
if (entityLiving instanceof EntityPlayer) | |
{ | |
//((EntityPlayer) entityLiving).sendStatusMessage(new TextComponentTranslation("onItemUseFinish " , new Object[0]), true); | |
} | |
return stack; | |
} | |
//################################################################### | |
/** | |
* How long it takes to use or consume an item | |
*/ | |
public int getMaxItemUseDuration(ItemStack stack) | |
{ | |
return 40; | |
} | |
//################################################################### | |
/** | |
* returns the action that specifies what animation to play when the items is being used | |
*/ | |
public EnumAction getItemUseAction(ItemStack stack) | |
{ | |
return EnumAction.BOW; | |
} | |
//################################################################### | |
/** | |
* Called when the player stops using an Item (stops holding the right mouse button). | |
*/ | |
public void onPlayerStoppedUsing(ItemStack stack, World worldIn, EntityLivingBase entityLiving, int timeLeft) | |
{ | |
if ( !worldIn.isRemote && entityLiving instanceof EntityPlayer){ | |
EntityPlayer player = (EntityPlayer)entityLiving; | |
} | |
} | |
/* | |
//################################################################### | |
public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) | |
{ | |
return oldStack.equals(newStack); //!ItemStack.areItemStacksEqual(oldStack, newStack); | |
} | |
//################################################################### | |
*/ | |
@Override | |
public ICapabilityProvider initCapabilities(ItemStack item, NBTTagCompound nbt) | |
{ | |
System.out.println("ICapabilityProvider initCapabilities()"); | |
//if( item.getItem() instanceof this ) | |
{ | |
return new capacidaddealmacenamiento(); | |
} | |
//return null; | |
} | |
// #########################################################################3 | |
@Override | |
@SideOnly(Side.CLIENT) | |
public void addInformation(ItemStack stack, EntityPlayer playerIn, List list, boolean aBoolean) { | |
; | |
String lore = "int conteo = "+util.getInttag(stack, "conteo"); | |
list.add(lore); | |
} | |
// #########################################################################3 | |
} | |
public class ExampleProvider implements ICapabilityProvider, ICapabilitySerializable { | |
@Override | |
public NBTBase serializeNBT() | |
{ | |
//Retrieve data here | |
return null; | |
} | |
@Override | |
public void deserializeNBT(NBTBase nbt) | |
{ | |
//Do your saving here | |
} | |
@Override | |
public boolean hasCapability(Capability<?> capability, EnumFacing facing) | |
{ | |
if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) | |
{ | |
return true; | |
} | |
return false; | |
} | |
@Override | |
public <T> T getCapability(Capability<T> capability, EnumFacing facing) | |
{ | |
if(capability == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) | |
{ | |
return (T) new ItemStackHandler(2/**the amount of slots you want*/); | |
//This is the default implementation by forge, but you'll likely want to make your own by overriding. | |
} | |
return null; | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment