public static NBTTagLong toNative(LongTag tag) { return new NBTTagLong(tag.getValue()); }
public static LongTag fromNative(NBTTagLong other) { return new LongTag(other.getLong()); }
@Override public EnumActionResult onItemUse(EntityPlayer playerIn, World worldIn, BlockPos pos, EnumHand hand, EnumFacing facing, float hitX, float hitY, float hitZ) { ItemStack stack = playerIn.getHeldItem(hand); TileEntity tileEntity = worldIn.getTileEntity(pos); if (tileEntity instanceof IMatterNetworkConnection) { BlockPos connectionPosition = tileEntity.getPos(); if (!stack.hasTagCompound()) { stack.setTagCompound(new NBTTagCompound()); } boolean hasPos = false; NBTTagList list = stack.getTagCompound().getTagList(IMatterNetworkFilter.CONNECTIONS_TAG, Constants.NBT.TAG_LONG); for (int i = 0; i < list.tagCount(); i++) { BlockPos p = BlockPos.fromLong(((NBTTagLong) list.get(i)).getLong()); if (p.equals(connectionPosition)) { hasPos = true; list.removeTag(i); break; } } if (!hasPos) { list.appendTag(new NBTTagLong(pos.toLong())); } stack.getTagCompound().setTag(IMatterNetworkFilter.CONNECTIONS_TAG, list); return EnumActionResult.SUCCESS; } return EnumActionResult.FAIL; }
return new Result(cache, cache.hashCode());
@Override public NBTBase parseValue(Object value) { return new NBTTagLong((Long) value); } },
protected void tickClient(ItemStack stack, EntityPlayer player) { if(!Botania.proxy.isTheClientPlayer(player)) return; NBTTagList blocks = ItemNBTHelper.getList(stack, TAG_BLOCK_POSITIONS, Constants.NBT.TAG_LONG, false); Botania.proxy.setWispFXDepthTest(false); for(int i = 0; i < blocks.tagCount(); i++) { BlockPos pos = BlockPos.fromLong(((NBTTagLong) blocks.get(i)).getLong()); float m = 0.02F; Botania.proxy.wispFX(pos.getX() + (float) Math.random(), pos.getY() + (float) Math.random(), pos.getZ() + (float) Math.random(), (float) Math.random(), (float) Math.random(), (float) Math.random(), 0.15F + 0.05F * (float) Math.random(), m * (float) (Math.random() - 0.5), m * (float) (Math.random() - 0.5), m * (float) (Math.random() - 0.5)); } int[] entities = ItemNBTHelper.getIntArray(stack, TAG_ENTITY_POSITIONS); for(int i : entities) { Entity e = player.world.getEntityByID(i); if(e != null && Math.random() < 0.6) { Botania.proxy.setWispFXDepthTest(Math.random() < 0.6); Botania.proxy.wispFX(e.posX + (float) (Math.random() * 0.5 - 0.25) * 0.45F, e.posY + e.height, e.posZ + (float) (Math.random() * 0.5 - 0.25) * 0.45F, (float) Math.random(), (float) Math.random(), (float) Math.random(), 0.15F + 0.05F * (float) Math.random(), -0.05F - 0.03F * (float) Math.random()); } } Botania.proxy.setWispFXDepthTest(true); }
@Override public NBTTagLong serialize(Long object) { if (object == null) return new NBTTagLong(0); return new NBTTagLong(object); }
public static NBTTagLong toCachedLong(NBTTagLong original) { long i = original.getLong(); return i >= LOW && i <= HIGH ? NUM_CACHE[(int) (i - LOW)].longValue : original; }
public static NBTTagLong getLong(long i) { return i >= LOW && i <= HIGH ? NUM_CACHE[(int) (i - LOW)].longValue : new NBTTagLong(i); }
@Override public Long deserialize(World world, NBTTagLong object) { return object.getLong(); } }
@Override public NBTBase writeValue(Long value) { if(value == null) { return new NBTTagLong(this.getDefault()); } return new NBTTagLong(value); } }
@Override public Object parseTag(NBTBase tag) { return ((NBTTagLong) tag).getLong(); }
@Override public NBTTagLong serialize(BlockPos object) { if (object == null) return new NBTTagLong(-1L); return new NBTTagLong(object.toLong()); }
@Override public BlockPos deserialize(World world, NBTTagLong object) { return BlockPos.fromLong(object.getLong()); } }
private static NBTTagLong getLongTagFor(Json.JsonValue value) { return new NBTTagLong(value.getIntegerValue()); }
@Override public BlockSet deserialize(World world, NBTTagList object) { Set<BlockPos> poses = new HashSet<>(); for (NBTBase base : object) { if (base instanceof NBTTagLong) { poses.add(BlockPos.fromLong(((NBTTagLong) base).getLong())); } } return new BlockSet(poses); } }
@Override public NBTBase parseValue(Object value) { long[] valueLongArray = (long[]) value; NBTTagList list = new NBTTagList(); for (long aValueLongArray : valueLongArray) { list.appendTag(new NBTTagLong(aValueLongArray)); } return list; } },
@Override public Object parseTag(NBTBase tag) { NBTTagList longList = (NBTTagList) tag; long[] longArray = new long[longList.tagCount()]; for (int i = 0; i < longArray.length; i++) { longArray[i] = ((NBTTagLong) longList.get(i)).getLong(); } return longArray; }
@Override public NBTBase parseValue(Object value) { Long[] valueLongArray = (Long[]) value; NBTTagList list = new NBTTagList(); for (Long aValueLongArray : valueLongArray) { list.appendTag(new NBTTagLong(aValueLongArray)); } return list; } },
@Override public Object parseTag(NBTBase tag) { NBTTagList longList = (NBTTagList) tag; Long[] longArray = new Long[longList.tagCount()]; for (int i = 0; i < longArray.length; i++) { longArray[i] = ((NBTTagLong) longList.get(i)).getLong(); } return longArray; }