Skip to content

Instantly share code, notes, and snippets.

Created May 17, 2017 12:26
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/1db0b20c50fe1e6dca557a48a29e23be to your computer and use it in GitHub Desktop.
Save anonymous/1db0b20c50fe1e6dca557a48a29e23be to your computer and use it in GitHub Desktop.
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