perromercenary00
Members-
Posts
849 -
Joined
-
Last visited
-
Days Won
5
Everything posted by perromercenary00
-
maeby silly question some keylistener from java could do the job, but it alredy exist, could get the things whit ease a have done a custome item is a stick i wanna this stick behave based on the mouse clicks, rigth click is the easy just a onItemRightClick() and is done this morning i wass plundering on the minecraft code lookin for something suitable in the sword class and the stick and i found in the pickaxe func_150897_b that method work only when i hit some block whit mi custome item but i need something to work even when aiming nothing public boolean func_150897_b(Block p_150897_1_) { System.out.println("### func_150897_b"); return true; } i think the methods exist in minecraft but have unexpecific names like func_xxxx do you know this methods ??
-
way to store custome data from custome blocks ?.
perromercenary00 replied to perromercenary00's topic in Modder Support
little confused but block are objets and lists are objets the original trouble is how to save the block object . lets say that a make no just one but 5 list ArrayList<Integer> x = new ArrayList<Integer>(); ArrayList<Integer> y = new ArrayList<Integer>(); ArrayList<Integer> z = new ArrayList<Integer>(); ArrayList<Block> bloke = new ArrayList<Block>(); ArrayList<Integer> meta = new ArrayList<Integer>(); well the coordinates an meta are Integers not trouble whith that but blocke is an object i cant't write that to a txt file but i must convert it toString() and it returns something like and return that to string to block objetc later on the read the list Method toString() = mercenary00.mercenarymod.blocks.MetaBlockeMercenario@4a31c294 getLocalizedName() = tile.modmercenario_metablockemercenario.name getUnlocalizedName() = tile.modmercenario_metablockemercenario that was the reason i discard the block object and for i chose to work only the block id's it shall save me from a major crash when some custom block from other mod get caugth in the list Block.getIdFromBlock(blk) = 179 == no troubles NBTtags just save strings it gona be a pain it shall need to done a method to get the Array list and make it a whole String separated by colons for later write it to a txt or an NBT the list Could have easily 200 blocks String ListadeBlockes = "x0, y0, z0, id0, meta0 ,x1, y1, z1, id1, meta1, x2, y2, z2, id2, meta2"; then another method must read this line chopit and organizate it again in a ArrayList<Integer> Unless tee worldSave could save objects thats woulbe very nice -
i have i wiss to create a folder to store the config files of my mod but im a penguin user soo i know very well the re is a diferent file system whith a diferent route for every diferent operate system soo if a i create the mine white file carpeta = new file("~/.minecraft/config/mercenaryMods/esteModEspecifico"); file carpeta = new file("%appdata%.minecraft\config\mercenaryMods\esteModEspecifico"); // not know where on mak it will only work on linux and for eclipse propourses i get complicated to test. but i have the impresion that there is alredy a class in minecraft for this and a class to read and write txt files dont know how is called is rigth? or better begin hard coding mi thing.
-
way to store custome data from custome blocks ?.
perromercenary00 replied to perromercenary00's topic in Modder Support
well wath i need to do ? i have a litle structure of a type of custom blocks and i store all the coordenadas an types of blocks in a ArrayList <Integer> someting like ArrayList <Integer> l=new ArrayList <Integer>(); //l0 ,l1 ,l2 ,l3 ,l4 ,l5 ,l6 ,l7 , 8l ,l9 ,l10 ,l11,l12,l13,l14 x0, y0, z0, id0, meta0 ,x1, y1, z1, id1, meta1, x2, y2, z2, id2, meta2; on rigth click over any of the blocks the code must search the list of blocks and move all the blocks to another coordinates and return then again afther 10s is abridge that have a time to be cross like i have in mind soo a need to store this list idoo research on WorldData i get this https://github.com/perromercenary00/perro-codigo-/issues/1 but idont understend how do you do to create tag ArrayList and store mi data -
way to store custome data from custome blocks ?.
perromercenary00 replied to perromercenary00's topic in Modder Support
you leve me a lot of code to read can you be a little more especific ? -
good days i been working in something more or less complicated. i need a way to store a list of blocks coordinates and store this list in a spefic block way of i could get the list from the block using something like public static ArrayList<Integer> getListFromThisBlock(int x,int y,int z){ } and the data dont qet loss wen minecraft close nbt data look not able to fulfuill mi desires. i was tinking in create a class to read and write data in a text file inside mi mods folder but soon i remember the shiti it is to do something like that whith java ------------------ sooo ¿there is a way to use sql internali in minecraft to create a custom database in mi mods folder for mi blocks way it could be automatic ported and usable when i close mi mod to redistribut it on the web whiout causing a major mess?
-
sometingh like hasbeen done before [redacted - please use proper links to the mods, not scam sites like 9minecraft] in my head i have a vision of how to doid but you need to make code to detec the biome bounds and borders and create the wall
-
The cake is a lie, Nop This time the Cake knows the true in the cake class i found like diesieben says using world.getBlockMetadata(x,y,z); to get the meta direct here a video the block is the one whith oak texture there is some weirdiness whit the icons in hotbar they start to change but for now i dont care now is more easy to get done the rest of the code im gona do dat in a few days. public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { int l = world.getBlockMetadata(x,y,z); System.out.println("//################# ################ meta2="+l); if (l==0){ this.setBlockBounds(0F,0.5F,0F, 1.0F,1.0F,1.0F);}//cara 0 else if (l==1){ this.setBlockBounds(0F,0F,0F, 1.0F,0.5F,1.0F);}//cara 1 else if (l==2){ this.setBlockBounds(0F,0F,0.5F, 1.0F,1.0F,1.0F);}//cara 2 else if (l==3){ this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,0.5F);}//cara 3 else if (l==4){ this.setBlockBounds(0.5F,0F,0F,1.0F,1.0F,1.0F);}//cara 4 else if (l==5){ this.setBlockBounds(0.0F,0F,0F,0.5F,1.0F,1.0F);}//cara 5 else { this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,1.0F);}//full blocke } // all the code for the block package mercenary00.mercenarymod.blocks; import java.util.List; import mercenary00.mercenarymod.items.ItemBlockMultiBlock; import mercenary00.mercenarymod.Mercenary; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack; import net.minecraft.util.AxisAlignedBB; import net.minecraft.util.IIcon; import net.minecraft.util.MathHelper; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import mercenary00.mercenarymod.utilidades.util; import mercenary00.mercenarymod.blocks.puertaMercenaria; //################################################################################################################ public class puertaMercenaria extends Block{ private int maxMeta = 6; IIcon[] icons = new IIcon[36]; private final String name = "puertamercenaria"; //################################################################################################################ public puertaMercenaria() { super(Material.rock); setBlockName(Mercenary.MODID + "_" + name); // setCreativeTab(CreativeTabs.tabBlock); this.setHardness(4.0F); this.setResistance(6.0F); this.setStepSound(soundTypeWood); GameRegistry.registerBlock(this, ItemBlockMultiBlock.class, name); }//fin del contructor //################################################################################################################ @Override public void registerBlockIcons(IIconRegister iconRegister) { for(int ic = 0; ic < icons.length; ic++) { icons[ic] = iconRegister.registerIcon(Mercenary.MODID + ":"+"puertas/" + name + ic); } } //################################################################################################################ @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { int tex=(meta*6)+(side); if (tex < icons.length ){return icons[tex];} else{return icons[0];} } // fin de IIcon getIcon //################################################################################################################ @Override public int damageDropped(int meta) { return meta; } //################################################################################################################ @SuppressWarnings({ "unchecked", "rawtypes" }) @Override public void getSubBlocks(Item item, CreativeTabs creativeTabs, List list) { for(int i = 0; i < maxMeta; i++){ list.add(new ItemStack(item, 1, i)); } } //################################################################################################################ //@Override public int getMetadata(int meta) { return meta; } //################################################################################################################ public boolean isOpaqueCube() { return false; } //################################################################################################################ /** * If this block doesn't render as an ordinary block it will return False (examples: signs, buttons, stairs, etc) */ public boolean renderAsNormalBlock() { return false; } //################################################################################################################ public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase steve, ItemStack p_149689_6_){ int meta=util.meta(world, steve); System.out.println("util.meta(world, steve)="+meta); world.setBlock(x, y, z, modBlocks.puertaMercenaria , meta, 4); } //################################################################################################################ public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) { int l = world.getBlockMetadata(x,y,z); System.out.println("//################# ################ meta2="+l); if (l==0){ this.setBlockBounds(0F,0.5F,0F, 1.0F,1.0F,1.0F);}//cara 0 else if (l==1){ this.setBlockBounds(0F,0F,0F, 1.0F,0.5F,1.0F);}//cara 1 else if (l==2){ this.setBlockBounds(0F,0F,0.5F, 1.0F,1.0F,1.0F);}//cara 2 else if (l==3){ this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,0.5F);}//cara 3 else if (l==4){ this.setBlockBounds(0.5F,0F,0F,1.0F,1.0F,1.0F);}//cara 4 else if (l==5){ this.setBlockBounds(0.0F,0F,0F,0.5F,1.0F,1.0F);}//cara 5 else { this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,1.0F);}//full blocke } //################################################################################################################ }
-
ñaaa i been triying before the public void setBlockBoundsBasedOnState(IBlockAccess p_149719_1_, int p_149719_2_, int p_149719_3_, int p_149719_4_) the trouble whit tath metod is, well there is no metadata data in the parameters entry so a have to generated or take it from other method like public IIcon getIcon(int side, int meta) { but hass the same trouble like when i put it in getIcon i must put this if else metada bounds cicle in the method who generates the metadata data and that is //############################################################## public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase steve, ItemStack p_149689_6_){ int meta=util.meta(world, steve); System.out.println("util.meta(world, steve)="+meta); //x if (meta==5){this.setBlockBounds(0.0F,0F,0F,0.5F,1.0F,1.0F);}//cara 5 if (meta==4){this.setBlockBounds(0.5F,0F,0F,1.0F,1.0F,1.0F);}//cara 4 //y if (meta==1){this.setBlockBounds(0F,0F,0F, 1.0F,0.5F,1.0F);}//cara 1 if (meta==0){this.setBlockBounds(0F,0.5F,0F, 1.0F,1.0F,1.0F);}//cara 0 //z if (meta==2){this.setBlockBounds(0F,0F,0.5F, 1.0F,1.0F,1.0F);}//cara 2 if (meta==3){this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,0.5F);}//cara 3 world.setBlock(x, y, z, modBlocks.puertaMercenaria , meta, 4); } //############################################################## and Nop it dont fix the issue when i put a block in the world all the metablocks change bounds ending exactly the same actualy i think this dont gona work I'll gonna end up creating 6 different metablocks each with a different setbounds and a very long piece of code to define their behavior
-
Good days I'm new to modding and I been experimenting with meta blocks I have this Metablock with 6 subBlocks and want each subBlock to have different Bounds. so far and done so is to place the bounds in the constructor creating a public variable with the metadata then defines the bounds whit a if else chain, works but the limits of the subBlocks get mixed and change wen i put a new block on the world. then i place the bounds if else in public iicon getIcon (int side, int meta) using the meta value for the icons i get the same trouble that whith the contructor. copy the method from the Block wall.class and put there the if else meta ending whith the same results //################################################################## @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { Meta=meta; //System.out.println("Block bounds meta="+Meta); // x y z x y z //this.setBlockBounds(0F,0F,0F,1.0F,1.0F,1.0F); //full block if (Meta==0){this.setBlockBounds(0F,0F,0F, 1.0F,0.5F,1.0F);} if (Meta==1){this.setBlockBounds(0F,0.5F,0F, 1.0F,1.0F,1.0F);} if (Meta==2){this.setBlockBounds(0F,0F,0.5F, 1.0F,1.0F,1.0F);} if (Meta==3){this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,0.5F);} if (Meta==4){this.setBlockBounds(0.5F,0F,0F,1.0F,1.0F,1.0F);} if (Meta==5){this.setBlockBounds(0F,0.5F,0F,0.5F,1.0F,1.0F);} if (Meta >5){this.setBlockBounds(0F,0F,0F,1.0F,1.0F,1.0F);} //System.out.println("side="+side+" meta="+meta); int tex=(meta*6)+(side); //System.out.println("side="+side+" meta="+meta+" tex="+tex); if (tex < icons.length ){return icons[tex];} else{return icons[0];} } // fin de IIcon getIcon //################################################################## public void setBlockBoundsBasedOnState (IBlockAccess p_149719_1_, p_149719_2_ int, int p_149719_3_, int p_149719_4_){ //System.out.println("Block bounds meta="+Meta); // x y z x y z //this.setBlockBounds(0F,0F,0F,1.0F,1.0F,1.0F); //full block if (Meta==0){this.setBlockBounds(0F,0F,0F, 1.0F,0.5F,1.0F);} if (Meta==1){this.setBlockBounds(0F,0.5F,0F, 1.0F,1.0F,1.0F);} if (Meta==2){this.setBlockBounds(0F,0F,0.5F, 1.0F,1.0F,1.0F);} if (Meta==3){this.setBlockBounds(0F,0F,0F, 1.0F,1.0F,0.5F);} if (Meta==4){this.setBlockBounds(0.5F,0F,0F,1.0F,1.0F,1.0F);} if (Meta==5){this.setBlockBounds(0F,0.5F,0F,0.5F,1.0F,1.0F);} if (Meta >5){this.setBlockBounds(0F,0F,0F,1.0F,1.0F,1.0F);} } //##################################################################
-
[1.7.10]Testing which way the player is looking
perromercenary00 replied to ryancpexpert's topic in Modder Support
i solve this making something complicated meta return 0 when looking up meta return 1 when looking down meta return 2 when looking south meta return 3 when looking north meta return 4 when looking east meta return 5 when looking west meta return 6 when error first get the block xyz coordinates sum steve xyz coordinates and whit results set face of block steve is looking at mi methods starts like //block class public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase steve, ItemStack p_149689_6_){ int meta=util.meta(world, steve); System.out.println("util.meta(world, steve)="+meta); } //################################################## //class util public static int meta(World world, EntityLivingBase steve){ // Position de steve , pocision del blocke ArrayList<Integer> lia = new ArrayList<Integer>(); ArrayList<Integer> lib = new ArrayList<Integer>(); lia.clear(); lib.clear(); lib=util.coordenadaDeBlockeEnFocol(world, 10); lia.add((int) steve.posX); lia.add((int) steve.posY); lia.add((int) steve.posZ); int x=lib.get(0)-lia.get(0); int y=lib.get(1)-lia.get(1)-1; int z=lib.get(2)-lia.get(2); System.out.println("x="+x+" y="+y+" z="+z); if ((x>0)&&(z<0)){return 4;}//return 10;} if ((x<0)&&(z<0)){return 3;}//return 9;} if ((x<0)&&(z>0)){return 5;}//return 8;} if ((x>0)&&(z>0)){return 2;}//return 7;} if ((x<0)&&(z==0)){return 5;} if ((x>0)&&(z==0)){return 4;} if ((x==0)&&(z<0)){return 3;} if ((x==0)&&(z>0)){return 2;} if ((y<0)){return 1;} if ((y>0)){return 0;} return 6; } //################################################## public static ArrayList<Integer> coordenadaDeBlockeEnFocol(World world,int distancia){ //System.out.println("###coordenadaDeBlockeEnFocoL"); ArrayList<Integer> lin =new ArrayList<Integer>(); // x y z //lin.add(0);lin.add(0);lin.add(0); MovingObjectPosition mop = Minecraft.getMinecraft().renderViewEntity.rayTrace(distancia, 1.0F); //System.out.println("###mop="+mop); if(mop != null) { int blockHitSide = mop.sideHit; Block blockLookingAt = world.getBlock(mop.blockX, mop.blockY, mop.blockZ) ; int fx=(int)mop.blockX; int fy=(int)mop.blockY; int fz=(int)mop.blockZ; // System.out.println("fx="+fx+" fy="+fy+" fz="+fz); lin.add(0,fx); lin.add(1,fy); lin.add(2,fz); } // // int x=lin.get(0); // int y=lin.get(1); // int z=lin.get(2); // if (world.isAirBlock(x,y,z)) {System.out.println(">>>>>### el blocke x="+x+" y="+y+" z="+z+" es aire");} // System.out.println("x="+lin.get(0)+" y="+lin.get(1)+" z="+lin.get(2)); return lin; } // -
i dont get this I been creating a 6 blocks Metablock using the guide from orange http://www.orangetutorial.com/metadata-blocks/#sthash.gsgIqbPj.dpbs and I followed all the steps in the guide. all blocks are in the creative block tab each block with their textures correctly located meta 0 transparent block meta 1 brown block meta 2 red block meta 3 orange block meta 4 yellow block meta 5 green block but when I put any of these meta blocks becomes the transparent block 0 whit all the sides correctly located and i dunnat know why. the other thing I want to know is how to set meta blocks in the world with the method world.setBlock (x, y, z, modBlocks.MetaBlockeMercenario); // create meta 0 at the given xyz world.setBlock (x, y, z, modBlocks.MetaBlockeMercenario: 2); // error world.setBlock (x, y, z, modBlocks.MetaBlockeMercenario / 2); // error world.setBlock (x, y, z, modBlocks.MetaBlockeMercenario \ 2); // error very tankfull.
-
I just realized in which consist the problem when one uses the method onItemRightClick() validates several times runs several times interleaving the worlds first remote then the local remote again and again the local performance obsessed me as I wrote the code so that it will only accept a cycle by sending the coordinates and the parameters only once so sending only the first world the remote world that is always first, ignoring the local world. change the code to just send the variables only when the world is local and only do it once until the coordinates change now looks like this if ((coor1)&&(coor2)&&(!world.isRemote)){ util.romper(world,util.circulo( coordenadas1,coordenadas2)); } there in a one more cuestion but it goes in another treat
-
public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer steve){ // System.out.println("### presss"); conteo++; System.out.println("is "+conteo+" times onItemRightClick is execute"); System.out.println("world.isRemote="+world.isRemote); return p_77659_1_; } //stoudout [20:52:32] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 1 times onItemRightClick is execute [20:52:32] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=true [20:52:32] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 2 times onItemRightClick is execute [20:52:32] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=false [20:52:32] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 3 times onItemRightClick is execute [20:52:32] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=true [20:52:32] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 4 times onItemRightClick is execute [20:52:32] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=false [20:52:33] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 5 times onItemRightClick is execute [20:52:33] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=true [20:52:33] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 6 times onItemRightClick is execute [20:52:33] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=false [20:52:39] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 7 times onItemRightClick is execute [20:52:39] [Client thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=true [20:52:39] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:89]: is 8 times onItemRightClick is execute [20:52:39] [server thread/INFO] [sTDOUT]: [mercenary00.mercenarymod.items.varaMercenaria00:onItemRightClick:90]: world.isRemote=false
-
i use the bow code as base to make this, cut paste i edit wat i need soo the code for varita mercenaria is a few post up. basicli im using the method public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer steve){ } // i get this from the bow class varamercenaria00 exist just to get two blocks coordenates i name it coordenadas1=firstclick coordenadas2=secundclick coordenadas0 is just a cache for the input from util.coordenadaDeBlockeEnFocol(world, 10); when there is two diferent coordenates loaded in coordenadas1 and coordenas2 it run util.romper(world,util.circulo( coordenadas1,coordenadas2)); and set to zero coordenadas1 and coordenas2 the magic is in util.circulo( coordenadas1,coordenadas2) who define all the block in a cilinder volumen and returit like a list of coordenates then util.romper take the world data and break all the blocks in the list late i the nigth i gona reduce the exit of system.out soo the importantings could be seen in the eclipse stoudout the trouble whith eclipse, it have a limit to the output so i can grab all the exit,
-
SO i made little video showing this think the think jeopardizing is this [16:59:49] [Client thread/INFO] [sTDOUT] [16:59:49] [Client thread/INFO] [sTDOUT] [16:59:49] [server thread/INFO] [sTDOUT] [16:59:49] [server thread/INFO] [sTDOUT]: Client thread | Server thread wen i destroy whit the block is make a cycle on client and then a cycle on server but why this is not happening with the wand
-
public static int conteo=0; public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer steve){ // System.out.println("### presss"); conteo++; System.out.println("is "+conteo+" times onItemRightClick is execute"); System.out.println("world.isRemote="+world.isRemote); coordenadas0=util.coordenadaDeBlockeEnFocol(world, 10); // util.MostrarLista(coordenadas0); it gets weirder here : 16:00:10] Player962 joined the game [16:00:20] items.varaMercenaria00:onItemRightClick:79]: is 1 times onItemRightClick is execute [16:00:20] items.varaMercenaria00:onItemRightClick:80]: world.isRemote=true [16:00:20] items.varaMercenaria00:onItemRightClick:79]: is 2 times onItemRightClick is execute [16:00:20] items.varaMercenaria00:onItemRightClick:80]: world.isRemote=false [16:00:21] items.varaMercenaria00:onItemRightClick:79]: is 3 times onItemRightClick is execute [16:00:21] items.varaMercenaria00:onItemRightClick:80]: world.isRemote=true [16:00:21] items.varaMercenaria00:onItemRightClick:107]: Tengo dos coordenadas distintas [16:00:21] .utilidades.util:romper:174]: #### romper [16:00:21] .utilidades.util:romper:191]: #### world.isRemote=true [16:00:21] .utilidades.util:romper:191]: #### world.isRemote=true _________________________________________________________________________ the world is remote true an then false an again is true in the romper part is always true anyway on item rigth click is giving my this remote world and dont think this is a bug this code was copy from the item.bow class _________________________________________________________________________ soo i made a little xperiment create a block that on click it breaks the floor under and make the world check think [server thread/INFO] [sTDOUT]: onBlockClicked:46]: se ejecuto onBlockClicked [16:47:33] [server thread/INFO] [sTDOUT]:onBlockClicked:50]: #### world.isRemote=false [16:47:33] [server thread/INFO] [sTDOUT]l:romper:174]: #### romper [16:47:33] [Client thread/INFO] [sTDOUT]:: se ejecuto onBlockClicked [16:47:33] [Client thread/INFO] [sTDOUT]:onBlockClicked:49]: #### world.isRemote=true [Client thread/INFO] [sTDOUT]:: se ejecuto onBlockActivated [16:47:49] [Client thread/INFO] : #### world.isRemote=true [16:47:49] [Client thread/INFO] #### romper [16:47:49] [Client thread/INFO] : #### world.isRemote=true [16:47:49] [Client thread/INFO: #### world.isRemote=true [server thread/INFO] [sTDOUT]:: se ejecuto onBlockActivated [16:47:49] [server thread/INFO] [sTDOUT]: #### world.isRemote=false [16:47:49] [server thread/INFO] [sTDOUT]:: #### romper
-
strange it is what is the version of java runing , cos you have 1.7 and 1.8 intalled at same time open a cmd promp and write in java -version enter and repost what you have
-
very confused whit this is the world is provided by the method onItemRightClick anyway this are the two principal class of this item and a video showing how works //############ package mercenary00.mercenarymod.items; import java.io.IOException; import net.minecraft.init.Items; import mercenary00.mercenarymod.utilidades.cfg; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import mercenary00.mercenarymod.Mercenary; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; 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.Item; import net.minecraft.util.IChatComponent; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowNockEvent; import mercenary00.mercenarymod.utilidades.util; 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.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.event.entity.player.ArrowNockEvent; import java.util.ArrayList; public class varaMercenaria00 extends Item{ public static String name="varamercenaria00"; public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"}; @SideOnly(Side.CLIENT) private IIcon[] iconArray; private static final String __OBFID = "CL_00001777"; public static ArrayList<Integer> coordenadas0 = new ArrayList<Integer>(); public static ArrayList<Integer> coordenadas1 = new ArrayList<Integer>(); public static ArrayList<Integer> coordenadas2 = new ArrayList<Integer>(); public static boolean coor1=false; public static boolean coor2=false; //############################################################################################# public varaMercenaria00() { setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerItem(this, name); setCreativeTab(CreativeTabs.tabTools); setTextureName(Mercenary.MODID + ":" + name); this.maxStackSize = 1; this.setMaxDamage(500); this.setCreativeTab(CreativeTabs.tabCombat); } //############################################################################################# //############################################################################################# public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer steve){ // System.out.println("### presss"); coordenadas0=util.coordenadaDeBlockeEnFocol(world, 10); // util.MostrarLista(coordenadas0); if (util.compararListas(coordenadas2,coordenadas0)==false){ //ignorar click if (coor1){ // System.out.println("coor1 true"); if ((coor2==false)&&(util.compararListas(coordenadas0,coordenadas1)==false)){ coordenadas2=coordenadas0;coor2=true; } }else{ // System.out.println("coor1 false"); coordenadas1=coordenadas0;coor1=true; } if ((coor1)&&(coor2)){ System.out.println("Tengo dos coordenadas distintas"); util.MostrarLista(coordenadas1); util.MostrarLista(coordenadas2); coor1=false; coor2=false; //util.romper(world, util.Cuadrado(0, coordenadas1,coordenadas2)); util.romper(world,util.circulo( coordenadas1,coordenadas2)); } } //ignorar click return p_77659_1_; } }//fin de la classe //########################################################################## //########################################################################## //########################################################################## //########################################################################## //########################################################################## //########################################################################## //########################################################################## //########################################################################## //########################################################################## package mercenary00.mercenarymod.utilidades; import net.minecraft.init.Blocks; import java.io.IOException; import java.util.ArrayList; import java.util.List; import net.minecraft.init.Items; import mercenary00.mercenarymod.utilidades.cfg; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import mercenary00.mercenarymod.Mercenary; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; 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.Item; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowNockEvent; import mercenary00.mercenarymod.utilidades.util; public class util{ //################################################################################################################# //#### devuelve las coordenadas del blocke al que esta mirando steve public static ArrayList<Integer> coordenadaDeBlockeEnFocol(World world,int distancia){ //System.out.println("###coordenadaDeBlockeEnFocoL"); ArrayList<Integer> lin =new ArrayList<Integer>(); // x y z //lin.add(0);lin.add(0);lin.add(0); MovingObjectPosition mop = Minecraft.getMinecraft().renderViewEntity.rayTrace(distancia, 1.0F); //System.out.println("###mop="+mop); if(mop != null) { int blockHitSide = mop.sideHit; Block blockLookingAt = world.getBlock(mop.blockX, mop.blockY, mop.blockZ) ; int fx=(int)mop.blockX; int fy=(int)mop.blockY; int fz=(int)mop.blockZ; // System.out.println("fx="+fx+" fy="+fy+" fz="+fz); lin.add(0,fx); lin.add(1,fy); lin.add(2,fz); } // // int x=lin.get(0); // int y=lin.get(1); // int z=lin.get(2); // if (world.isAirBlock(x,y,z)) {System.out.println(">>>>>### el blocke x="+x+" y="+y+" z="+z+" es aire");} // System.out.println("x="+lin.get(0)+" y="+lin.get(1)+" z="+lin.get(2)); return lin; // } //################################################################################################################# //### devuelve la id 0 del blocke en las coordenadas public static int IDdelBlockeEn(World world, List<Integer> lin){ //int x=lin.get(0); //int y=lin.get(1); //int z=lin.get(3); Block blck = world.getBlock(lin.get(0),lin.get(1),lin.get(2)); int iblck=Block.getIdFromBlock(blck); return iblck; } //################################################################################################################# public static boolean compararListas(List<Integer> lia, List<Integer> lib){ // System.out.println("compararVectores"); int la=lia.size(),lb=lib.size();int count=0; if (la==lb){ // System.out.println("A y B miden lo mismo la="+la+" lb="+lb); for (int c=0; c < la ;c++){ // System.out.println("c="+c); int a=lia.get©,b=lib.get©; if (a==b){ count++; ;} // System.out.println("count="+count+" a="+a+" y b="+b); } } // System.out.println("count="+count+" la="+la+" lb="+lb); if ((count==la)&&(la==lb)){ return true; }else{ return false; } } //################################################################################################################# public static List<Integer> minmax(List<Integer> lia, List<Integer> lib){ System.out.println("#### \nMetodo minmax"); ArrayList<Integer> orga =new ArrayList<Integer>(); for (int or=0; or<6 ; or++ ) { orga.add(0); } int count=0; int liasize=lia.size(),libsize=lib.size(); System.out.println("x="+lia.get(0)+" y="+lia.get(1)+" z="+lia.get(2)); System.out.println("x="+lib.get(0)+" y="+lib.get(1)+" z="+lib.get(2)); System.out.println(""); if (liasize==libsize){ // System.out.println("los dos vectores miden lo mismo "); for (int c=0;c<3;c++){ int a=lia.get©; int b=lib.get©; if ( a <= b ){ orga.set( c , a ) ;} if ( a >= b ){ orga.set((c+3) , a);} if ( b <= a ){ orga.set( c , b ) ;} if ( b >= a ){ orga.set((c+3) , b);} } } return orga; } //################################################################################################################# public static void romper(World world,List<Integer> lis){ System.out.println("#### romper"); int llist=lis.size(); //longitud de la lista System.out.println("#### llist="+llist); for (int conteo=0; conteo < llist;conteo=conteo+3){ int x=lis.get(conteo),y=lis.get(conteo+1),z=lis.get(conteo+2); //Block blck = world.getBlock(x,y,z); //blck.dropBlockAsItem(world, x,y,z, 1, 1); //world.setBlock(x,y,z, Blocks.air); world.func_147480_a(x,y,z, true); if (world.isRemote){ System.out.println("#### world.isRemote=true ");} else { System.out.println("#### world.isRemote=false");} System.out.println("#### x="+x+" y="+y+" z="+z); System.out.println("#### conteo="+conteo); } } //################################################################################################################# public static ArrayList<Integer> Cuadrado(int modo,List<Integer> lia, List<Integer> lib){ ArrayList<Integer> li = new ArrayList<Integer>(); ArrayList<Integer> lo = new ArrayList<Integer>(); ArrayList<Integer> orga = new ArrayList<Integer>(); //System.out.println("antes de organizar"); //System.out.println("min x="+min[0]+" y="+min[1]+" z="+min[2]); //System.out.println("max x="+max[0]+" y="+max[1]+" z="+max[2]); orga=(ArrayList<Integer>) minmax(lia , lib); ///por si acaso organizar min y maximos System.out.println("despues de organizar"); System.out.println("min x="+orga.get(0)+" y="+orga.get(1)+" z="+orga.get(2)); System.out.println("max x="+orga.get(3)+" y="+orga.get(4)+" z="+orga.get(5)); //############################################# int xmin=orga.get(0), ymin=orga.get(1), zmin=orga.get(2); int xmax=orga.get(3), ymax=orga.get(4), zmax=orga.get(5); for(int u=zmin;u<=zmax;u++){ for(int o=ymin;o<=ymax;o++){ for(int i=xmin;i<=xmax;i++){ li.add(i); li.add(o); li.add(u); }}} //############################################# /* try { Thread.sleep (10000); } catch (Exception e) { // Mensaje en caso de que falle } */ return li; } public static void MostrarLista(List<Integer> in){ int lilong=in.size(); for (int lins=0 ; lins < lilong ; lins=lins+3){ int x=in.get(lins),y=in.get(lins+1),z=in.get(lins+2); System.out.println(lins+" > x="+x+" y="+y+" z="+z); ;} } //################################################################################################################# public static ArrayList<Integer> circulo(List<Integer> lia, List<Integer> lib){ ArrayList<Integer> li = new ArrayList<Integer>(); ArrayList<Integer> lo = new ArrayList<Integer>(); ArrayList<Integer> orga = new ArrayList<Integer>(); li.clear(); lo.clear(); orga.clear(); double xc=lia.get(0), yc=lia.get(1), zc=lia.get(2); double xr=lib.get(0), yr=lib.get(1), zr=lib.get(2); double radio= Math.sqrt(Math.pow((xc-xr),2)+Math.pow((zc-zr),2)); int radiu=(int)radio; int longitud=(int)(yc-yr); if (longitud < 0){longitud=-longitud ;} System.out.println("Radio="+radio+"\nLongitud="+longitud); //z2+x2=r2 System.out.println("cargar li"); for (int y=0 ; y<= longitud ; y++ ){ for (int x=(-radiu);x <= radiu ;x++){ double dz=Math.sqrt( Math.pow(radio,2)-Math.pow(x,2) ); //System.out.println("x="+x+" y="+y+" z="+dz); //li.add(x);li.add(y);li.add((int)dz); int zmax=(int)dz; int zmin=(int) -dz; for (int relleno=zmin; relleno <= zmax ; relleno++){ li.add(x);li.add(y);li.add(relleno); ;} //li.add(x);li.add(y);li.add((int) -dz); } } //util.MostrarLista(li); int lisize=li.size(); System.out.println("cargar lo lisize="+lisize); for (int lis=0 ; lis < lisize ; lis=lis+3){ System.out.println("lis="+lis); lo.add( (int) (xc+li.get(lis))); lo.add( (int) (yc+li.get(lis+1))); lo.add( (int) (zc+li.get(lis+2))); } return lo; } }//fin de la classe
-
ñaaa //codigo public static void romper(World world,List<Integer> lis){ System.out.println("#### romper"); int llist=lis.size(); //longitud de la lista System.out.println("#### llist="+llist); for (int conteo=0; conteo < llist;conteo=conteo+3){ int x=lis.get(conteo),y=lis.get(conteo+1),z=lis.get(conteo+2); //Block blck = world.getBlock(x,y,z); //blck.dropBlockAsItem(world, x,y,z, 1, 1); //world.setBlock(x,y,z, Blocks.air); world.func_147480_a(x,y,z, true); //####### aqui esta la flag \/ \/ \/ if (world.isRemote){ System.out.println("#### world.isRemote=true ");} else { System.out.println("#### world.isRemote=false");} //####### aqui esta la flag /\ /\ /\ System.out.println("#### x="+x+" y="+y+" z="+z); System.out.println("#### conteo="+conteo); } } //codigo #### romper [12:43:28] [Client thread/INFO] [sTDOUT]: #### llist=12 [12:43:28] [Client thread/INFO] [sTDOUT]: #### world.isRemote=true [12:43:28] [Client thread/INFO] [sTDOUT]: #### x=221 y=77 z=342 by this code im working on a remote world?? remenber from other guides something about a class proxiserver and proxiclient is that related whith error.this
-
i been cleaning up mi code and converting the arrays[] to ArrayList<Integer> and just figure out what happened but the problem is that when i hold the rigthclick it sends like tenthousand orders to break this specific block soo after testing it whit the ArrayList system world.func_147480_a(x,y,z, true); works breaking the block and droping in just one step blck.dropBlockAsItem(world, x,y,z, 0, 0); works make the block drops whitout destroy and world.setBlock(x,y,z, Blocks.air); delete the block as well but i see this before in others mods the blocks are destroy and drops item but still there, if try to jump in the hole i get stuck, and if i close the game and reload the world the blocks come back like nothing happend ?is nesesary to cast some kind of sorcery to get the world to save the change in the chunks ¿
-
jejejeje is half way but i must question again public ItemStack onItemRightClick(ItemStack p_77659_1_, World world, EntityPlayer p_77659_3_){ int[] coordenadas = util.coordenadaDeBlockeEnFoco(world, 10); Block blck = world.getBlock(coordenadas[0],coordenadas[1],coordenadas[2]); blck.dropBlockAsItem(world, coordenadas[0],coordenadas[1],coordenadas[2], 0, 0); } thismake the block drop but dont destroy the block, is bad declarated or is mandatory to set the block to air whith world.setBlock(x,y,z, Block.air);
-
goood days i know this looks noob question but i get stuck here i wanna break some blocks wuith a custom item, but idont realize how to declare this weel i been doing some research and fin this world.destroyBlock(x,y,z, true); but not work in 1.710 in some forum they say thath deprecated but there is still a world.func_147480_a(x, y,z, true); but still not work and inthe world class i found world.destroyBlockInWorldPartially(int,int,int,int,int); but i dont get how to use this and the examples well the re is no examples. and donot know the order of the int's is not clear i been triying Block blck = world.getBlock(x, y, z); int idblock=Block.getIdFromBlock(blck); int idplayer=p_77659_3_.getEntityId(); world.destroyBlockInWorldPartially(idplayer,x,y,z,-1); not work world.destroyBlockInWorldPartially(idblock,x,y,z,-1); not work ñaaaaaaaaa sooo howdo you do to destroy a block in the given coordinates xyz droping what its drops.??
-
good days bad english advertishment i have like two days triying to figure this. a have a vara and i wand to charge this vara after shot ind a want it to change their look on the charge process so i take the bow for starting point , the bow change skin on charge using skins named bow__standby.png, bow_pulling_0.png, bow_pulling_1.png, bow_pulling_2.png soo i create mi textures for mi vara in mi textures folder modmercenario/textures/items/ varamercenaria00_pulling_0.png varamercenaria00_pulling_1.png varamercenaria00_pulling_2.png varamercenaria00_standby.png but minecraft refuses to load mi textures and insist in search in minecraft textures folder 06:47:15] [Client thread/ERROR]: Using missing texture, unable to load minecraft:textures/items/varamercenaria00_pulling_0.png it mus be something like modmercenario:textures/items/varamercenaria00_pulling_0.png where is mi wrong doing ?? the code of mi vara //############################################################################## package mercenary00.mercenarymod.items; import java.io.IOException; import net.minecraft.init.Items; import mercenary00.mercenarymod.utilidades.cfg; import net.minecraft.item.EnumAction; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import mercenary00.mercenarymod.Mercenary; import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import net.minecraft.block.Block; 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.Item; import net.minecraft.util.IChatComponent; import net.minecraft.util.IIcon; import net.minecraft.util.MovingObjectPosition; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowNockEvent; import mercenary00.mercenarymod.utilidades.util; 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.enchantment.Enchantment; import net.minecraft.enchantment.EnchantmentHelper; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.projectile.EntityArrow; import net.minecraft.init.Items; import net.minecraft.util.IIcon; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.ArrowLooseEvent; import net.minecraftforge.event.entity.player.ArrowNockEvent; public class varaMercenaria00 extends Item{ public static String name="varamercenaria00"; public static final String[] bowPullIconNameArray = new String[] {"pulling_0", "pulling_1", "pulling_2"}; @SideOnly(Side.CLIENT) private IIcon[] iconArray; private static final String __OBFID = "CL_00001777"; //############################################################################################# public varaMercenaria00() { setUnlocalizedName(Mercenary.MODID + "_" + name); GameRegistry.registerItem(this, name); setCreativeTab(CreativeTabs.tabTools); // setTextureName(Mercenary.MODID + ":" + name); this.maxStackSize = 1; this.setMaxDamage(500); this.setCreativeTab(CreativeTabs.tabCombat); } //############################################################################################# //############################################################################################# public void onPlayerStoppedUsing(ItemStack p_77615_1_, World p_77615_2_, EntityPlayer p_77615_3_, int p_77615_4_) { int j = this.getMaxItemUseDuration(p_77615_1_) - p_77615_4_; ArrowLooseEvent event = new ArrowLooseEvent(p_77615_3_, p_77615_1_, j); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return; } j = event.charge; boolean flag = p_77615_3_.capabilities.isCreativeMode || EnchantmentHelper.getEnchantmentLevel(Enchantment.infinity.effectId, p_77615_1_) > 0; if (flag || p_77615_3_.inventory.hasItem(Items.arrow)) { float f = (float)j / 20.0F; f = (f * f + f * 2.0F) / 3.0F; if ((double)f < 0.1D) { return; } if (f > 1.0F) { f = 1.0F; } EntityArrow entityarrow = new EntityArrow(p_77615_2_, p_77615_3_, f * 2.0F); if (f == 1.0F) { entityarrow.setIsCritical(true); } int k = EnchantmentHelper.getEnchantmentLevel(Enchantment.power.effectId, p_77615_1_); if (k > 0) { entityarrow.setDamage(entityarrow.getDamage() + (double)k * 0.5D + 0.5D); } int l = EnchantmentHelper.getEnchantmentLevel(Enchantment.punch.effectId, p_77615_1_); if (l > 0) { entityarrow.setKnockbackStrength(l); } if (EnchantmentHelper.getEnchantmentLevel(Enchantment.flame.effectId, p_77615_1_) > 0) { entityarrow.setFire(100); } p_77615_1_.damageItem(1, p_77615_3_); p_77615_2_.playSoundAtEntity(p_77615_3_, "random.bow", 1.0F, 1.0F / (itemRand.nextFloat() * 0.4F + 1.2F) + f * 0.5F); if (flag) { entityarrow.canBePickedUp = 2; } else { p_77615_3_.inventory.consumeInventoryItem(Items.arrow); } if (!p_77615_2_.isRemote) { p_77615_2_.spawnEntityInWorld(entityarrow); } } } public ItemStack onEaten(ItemStack p_77654_1_, World p_77654_2_, EntityPlayer p_77654_3_) { return p_77654_1_; } /** * How long it takes to use or consume an item */ public int getMaxItemUseDuration(ItemStack p_77626_1_) { return 72000; } /** * returns the action that specifies what animation to play when the items is being used */ public EnumAction getItemUseAction(ItemStack p_77661_1_) { return EnumAction.bow; } /** * Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer */ public ItemStack onItemRightClick(ItemStack p_77659_1_, World p_77659_2_, EntityPlayer p_77659_3_) { ArrowNockEvent event = new ArrowNockEvent(p_77659_3_, p_77659_1_); MinecraftForge.EVENT_BUS.post(event); if (event.isCanceled()) { return event.result; } if (p_77659_3_.capabilities.isCreativeMode || p_77659_3_.inventory.hasItem(Items.arrow)) { p_77659_3_.setItemInUse(p_77659_1_, this.getMaxItemUseDuration(p_77659_1_)); } return p_77659_1_; } /** * Return the enchantability factor of the item, most of the time is based on material. */ public int getItemEnchantability() { return 1; } @SideOnly(Side.CLIENT) public void registerIcons(IIconRegister p_94581_1_) { System.out.println("###### registerIcons"+this.getIconString()); //this.itemIcon = p_94581_1_.registerIcon(this.getIconString() + "_standby"); this.itemIcon = p_94581_1_.registerIcon("varamercenaria00" + "_standby"); this.iconArray = new IIcon[bowPullIconNameArray.length]; for (int i = 0; i < this.iconArray.length; ++i) { //this.iconArray = p_94581_1_.registerIcon(this.getIconString() + "_" + bowPullIconNameArray); this.iconArray = p_94581_1_.registerIcon("varamercenaria00" + "_" + bowPullIconNameArray); System.out.println("###### "+"varamercenaria00" + "_" + bowPullIconNameArray); } } /** * used to cycle through icons based on their used duration, i.e. for the bow */ @SideOnly(Side.CLIENT) public IIcon getItemIconForUseDuration(int p_94599_1_) { System.out.println("###### getItemIconForUseDuration"+ p_94599_1_ ); return this.iconArray[p_94599_1_]; } } //##############################################################################