public static boolean canItemAcceptSockets(ItemStack stack) { Item item = stack.getItem(); if (item == PhysisItems.socketable) { return false; } if (item instanceof ItemBlock || item instanceof ItemReed || item instanceof ItemBed || item instanceof ItemFood || item instanceof ItemPotion || item instanceof ItemMinecart || item instanceof ItemBoat || item instanceof ItemEnchantedBook || item instanceof ItemWritableBook || item instanceof ItemBucket || item instanceof ItemBucketMilk || item instanceof ItemDoor) { return false; } if (item.getItemStackLimit(stack) > 1) { return false; } if (item.hasContainerItem(stack)){ ItemStack container = item.getContainerItem(stack); if (container != null && container.getItem() instanceof ItemBucket) { return false; } } if (item.getUnlocalizedName(stack).toLowerCase().contains("bucket")) { return false; } return true; }
public ParticleItem(World world, double xCoordIn, double yCoordIn, double zCoordIn, double motionXIn, double motionYIn, double motionZIn, float par14, boolean disableMoving, ItemStack stack) { super(world, xCoordIn, yCoordIn, zCoordIn, motionXIn, motionYIn, motionZIn, par14, disableMoving); this.setParticleTexture(Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getParticleIcon(stack.getItem(), stack.getMetadata())); if(stack.getItem() instanceof ItemBlock) this.setParticleTexture(Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(((ItemBlock)stack.getItem()).getBlock().getStateFromMeta(stack.getMetadata()))); if(stack.getItem() instanceof UniversalBucket) if(new Random().nextBoolean()) this.setParticleTexture(Minecraft.getMinecraft().getBlockRendererDispatcher().getBlockModelShapes().getTexture(((UniversalBucket)stack.getItem()).getFluid(stack).getFluid().getBlock().getDefaultState())); else this.setParticleTexture(Minecraft.getMinecraft().getRenderItem().getItemModelMesher().getParticleIcon(Items.BUCKET)); if(stack.getItem() instanceof ItemBed) { fxLayer = 3; setLocation(new ResourceLocation("textures/entity/bed/" + EnumDyeColor.byMetadata(stack.getMetadata()).getName() + ".png")); return; } List<BakedQuad> quadList = Minecraft.getMinecraft().getRenderItem().getItemModelWithOverrides(stack, world, Minecraft.getMinecraft().player).getQuads((IBlockState)null, (EnumFacing)null, 0L); int i = 0; boolean flag = !stack.isEmpty(); boolean flag2 = false; ArrayList<Integer> colors = new ArrayList<Integer>(); for (int j = quadList.size(); i < j; ++i) { BakedQuad bakedquad = quadList.get(i); int k = -1; if (flag && bakedquad.hasTintIndex()) { flag2 = true; k = Minecraft.getMinecraft().getItemColors().colorMultiplier(stack, bakedquad.getTintIndex()); if (EntityRenderer.anaglyphEnable) k = TextureUtil.anaglyphColor(k); k = k | -16777216; colors.add(k); } } if(flag2) { int color = colors.get(new Random().nextInt(colors.size())); this.particleRed = ((color >> 16) & 0xFF) * 255; this.particleGreen = ((color >> 8) & 0xFF) * 255; this.particleBlue = ((color >> 0) & 0xFF) * 255; } }