Java 类net.minecraftforge.common.util.Constants 实例源码

项目:Loot-Slash-Conquer    文件:CapabilityChunkLevel.java   
@SubscribeEvent
public static void onChunkLoad(ChunkDataEvent.Load event)
{
    World world = event.getWorld();
    ChunkPos chunkPos = event.getChunk().getPos();

    IChunkLevelHolder chunkLevelHolder = getChunkLevelHolder(world);
    ChunkLevel chunkLevel = new ChunkLevel(world, chunkPos, getAreaLevel(world, chunkPos));

    NBTTagCompound nbt = event.getData();

    if (nbt.hasKey(ID.toString(), Constants.NBT.TAG_INT))
    {
        NBTTagInt levelTag = (NBTTagInt) nbt.getTag(ID.toString());
        chunkLevel.deserializeNBT(levelTag);
    }

    chunkLevelHolder.setChunkLevel(null, chunkLevel);
}
项目:pnc-repressurized    文件:HackingImpl.java   
@Override
public void readNBT(Capability<IHacking> capability, IHacking instance, EnumFacing side, NBTBase nbt) {
    instance.getCurrentHacks().clear();
    NBTTagList tagList = ((NBTTagCompound) nbt).getTagList("hackables", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < tagList.tagCount(); i++) {
        String hackableId = tagList.getCompoundTagAt(i).getString("id");
        Class<? extends IHackableEntity> hackableClass = PneumaticHelmetRegistry.getInstance().stringToEntityHackables.get(hackableId);
        if (hackableClass != null) {
            try {
                instance.getCurrentHacks().add(hackableClass.newInstance());
            } catch (Exception e) {
                e.printStackTrace();
            }
        } else {
            Log.warning("hackable \"" + hackableId + "\" not found when constructing from NBT. Was it deleted?");
        }
    }
}
项目:pnc-repressurized    文件:PneumaticCraftUtils.java   
/**
 * Serialize some tank data onto an ItemStack.  Useful to preserve tile entity tank data when breaking
 * the block.
 *
 * @param tank the fluid tank
 * @param stack the itemstack to save to
 * @param tagName name of the tag in the itemstack's NBT to store the tank data
 */
public static void serializeTank(FluidTank tank, ItemStack stack, String tagName) {
    if (tank.getFluidAmount() > 0) {
        if (!stack.hasTagCompound()) {
            stack.setTagCompound(new NBTTagCompound());
        }
        NBTTagCompound tag = stack.getTagCompound();
        if (!tag.hasKey(SAVED_TANKS, Constants.NBT.TAG_COMPOUND)) {
            tag.setTag(SAVED_TANKS, new NBTTagCompound());
        }
        NBTTagCompound subTag = tag.getCompoundTag(SAVED_TANKS);
        NBTTagCompound tankTag = new NBTTagCompound();
        tank.writeToNBT(tankTag);
        subTag.setTag(tagName, tankTag);
    }
}
项目:ObsidianSuite    文件:PartGroups.java   
public void loadData(NBTTagCompound compound, ModelObj model) 
{   
    NBTTagList partList = compound.getTagList("Groups", 10);
    if (compound.hasKey("PartOrder", Constants.NBT.TAG_LIST))
        model.setPartOrderFromList(compound.getTagList("PartOrder", Constants.NBT.TAG_STRING));
    for (int i = 0; i < partList.tagCount(); i++)
    {
        NBTTagCompound partCompound = partList.getCompoundTagAt(i);
        PartObj part = model.getPartObjFromName(partCompound.getString("Name"));
        part.setDisplayName(partCompound.getString("DisplayName"));
        String group = partCompound.getString("Group");
        if(!groups.containsKey(group))
            addGroup(group);
        setPartGroup(group, part);
    }
}
项目:Metalworks    文件:TileBase.java   
public void readNBT(NBTTagCompound nbt, NBTType type) {
    if (type != NBTType.DROP) {
        NBTTagCompound caps = nbt.getCompoundTag("TileBaseCapabilities");
        for (EnumFacing side : EnumFacing.values()) {
            String name = side.toString().toLowerCase(Locale.ROOT);
            if (caps.hasKey(name, Constants.NBT.TAG_COMPOUND)) {
                this.readCapabilities(caps.getCompoundTag(name), side);
            }
        }
        if (caps.hasKey("default", Constants.NBT.TAG_COMPOUND)) {
            this.readCapabilities(caps.getCompoundTag("default"), null);
        }
    } else if (this.getEnergy(null) != null) {
        this.getEnergy(null).receiveEnergy(nbt.getInteger("Energy"), false);
    }
}
项目:MeeCreeps    文件:PortalTileEntity.java   
@Override
public void readFromNBT(NBTTagCompound compound) {
    super.readFromNBT(compound);
    timeout = compound.getInteger("timeout");
    portalSide = EnumFacing.VALUES[compound.getByte("portalSide")];
    BlockPos pos = BlockPos.fromLong(compound.getLong("pos"));
    int dim = compound.getInteger("dim");
    EnumFacing side = EnumFacing.VALUES[compound.getByte("side")];
    other = new TeleportDestination("", dim, pos, side);
    NBTTagList list = compound.getTagList("bl", Constants.NBT.TAG_COMPOUND);
    blackListed.clear();
    for (int i = 0 ; i < list.tagCount() ; i++) {
        NBTTagCompound tc = list.getCompoundTagAt(i);
        UUID uuid = new UUID(tc.getLong("m"), tc.getLong("l"));
        blackListed.add(uuid);
    }
}
项目:MeeCreeps    文件:ChopTreeActionWorker.java   
@Override
public void readFromNBT(NBTTagCompound tag) {
    NBTTagList list = tag.getTagList("blocks", Constants.NBT.TAG_LONG);
    blocks.clear();
    for (int i = 0; i < list.tagCount(); i++) {
        blocks.add(BlockPos.fromLong(((NBTTagLong) list.get(i)).getLong()));
    }
    list = tag.getTagList("leaves", Constants.NBT.TAG_COMPOUND);
    leavesToTick.clear();
    for (int i = 0; i < list.tagCount(); i++) {
        NBTTagCompound tc = list.getCompoundTagAt(i);
        BlockPos pos = BlockPos.fromLong(tc.getLong("p"));
        int counter = tc.getInteger("c");
        leavesToTick.put(pos, counter);
    }
}
项目:MeeCreeps    文件:PortalGunItem.java   
public static List<TeleportDestination> getDestinations(ItemStack stack) {
    List<TeleportDestination> destinations = new ArrayList<>();
    if (!stack.hasTagCompound()) {
        for (int i = 0; i < 8; i++) {
            destinations.add(null);
        }
    } else {
        NBTTagCompound tag = stack.getTagCompound();
        NBTTagList dests = tag.getTagList("dests", Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < 8; i++) {
            NBTTagCompound tc = i < dests.tagCount() ? dests.getCompoundTagAt(i) : null;
            if (tc != null && tc.hasKey("dim")) {
                destinations.add(new TeleportDestination(tc));
            } else {
                destinations.add(null);
            }
        }
    }
    return destinations;
}
项目:DankNull    文件:DankNullItemHandler.java   
@Override
public void deserializeNBT(NBTBase nbtIn) {
    if (nbtIn instanceof NBTTagCompound) {
        NBTTagCompound nbt = (NBTTagCompound) nbtIn;
        setSize(nbt.hasKey("Size", Constants.NBT.TAG_INT) ? nbt.getInteger("Size") : stacks.size());
        NBTTagList tagList = nbt.getTagList(getName(), Constants.NBT.TAG_COMPOUND);
        for (int i = 0; i < tagList.tagCount(); i++) {
            NBTTagCompound itemTags = tagList.getCompoundTagAt(i);
            int slot = itemTags.getInteger("Slot");

            if (slot >= 0 && slot < stacks.size()) {
                stacks.set(slot, new ItemStack(itemTags));
                stacks.get(slot).setCount(itemTags.getInteger("RealCount"));
            }
        }
        CapabilityItemHandler.ITEM_HANDLER_CAPABILITY.readNBT(this, null, tagList);
        onLoad();
    }
}
项目:ToolBelt    文件:ToolBeltInventory.java   
@Override
public ItemStack getStackInSlot(int slot)
{
    validateSlotIndex(slot);
    NBTTagList tagList = getTag().getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < tagList.tagCount(); i++)
    {
        NBTTagCompound itemTags = tagList.getCompoundTagAt(i);
        if (itemTags.getInteger("Slot") != slot)
            continue;

        return new ItemStack(itemTags);
    }

    return ItemStack.EMPTY;
}
项目:Never-Enough-Currency    文件:TileEntityDisplay.java   
@Override
public void readFromNBT(NBTTagCompound compound) {
    super.readFromNBT(compound);

    if (compound.getString("ownerUUID") != null) {
        ownerUUID = UUID.fromString(compound.getString("ownerUUID"));
    }

    shopControllerPos = new BlockPos(compound.getInteger("shopx"), compound.getInteger("shopy"), compound.getInteger("shopz"));

    NBTTagList items = compound.getTagList("ItemInventory", Constants.NBT.TAG_COMPOUND);

    for (int i = 0; i < items.tagCount(); ++i) {
        NBTTagCompound item = items.getCompoundTagAt(i);
        int slot = item.getInteger("Slot");

        if (slot >= 0 && slot < getSizeInventory()) {
            inventory.set(slot, new ItemStack(item));
        }
    }
}
项目:Never-Enough-Currency    文件:InventoryItem.java   
/**
 * A custom method to read our inventory from an ItemStack's NBT compound
 */
public void readFromNBT(NBTTagCompound compound) {
    if ("".equals(uniqueID)) {
        // try to read unique ID from NBT
        uniqueID = compound.getString("uniqueID");
        // if it's still "", assign a new one:
        if ("".equals(uniqueID)) {
            uniqueID = UUID.randomUUID().toString();
        }
    }

    NBTTagList items = compound.getTagList("ItemInventory", Constants.NBT.TAG_COMPOUND);

    for (int i = 0; i < items.tagCount(); ++i) {
        NBTTagCompound item = items.getCompoundTagAt(i);
        int slot = item.getInteger("Slot");

        if (slot >= 0 && slot < getSizeInventory()) {
            inventory.set(slot, new ItemStack(item));
        }
    }
}
项目:PurificatiMagicae    文件:BlockCodeStorage.java   
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
    TileEntity te = worldIn.getTileEntity(pos);
    if (te != null && te instanceof TileCodeStorage)
    {
        TileCodeStorage storage = (TileCodeStorage) te;
        //meta == 0 - lockable; meta == 1 - not lockable
        storage.setLockable(stack.getMetadata() == 0);
        boolean unloc = true;
        if (stack.hasTagCompound())
        {
            NBTTagCompound tag = stack.getTagCompound();
            if(tag.hasKey("data", Constants.NBT.TAG_COMPOUND))
            {
                storage.deserializeMin(tag.getCompoundTag("data"));
                unloc = false;
            }
        }
        if(unloc)
            storage.setUnlocked(true);
    }
}
项目:connor41-etfuturum2    文件:TileEntityNewBrewingStand.java   
@Override
public void readFromNBT(NBTTagCompound nbt) {
    super.readFromNBT(nbt);
    NBTTagList nbttaglist = nbt.getTagList("Items", 10);
    inventory = new ItemStack[getSizeInventory()];

    for (int i = 0; i < nbttaglist.tagCount(); i++) {
        NBTTagCompound nbt1 = nbttaglist.getCompoundTagAt(i);
        byte b0 = nbt1.getByte("Slot");

        if (b0 >= 0 && b0 < inventory.length)
            inventory[b0] = ItemStack.loadItemStackFromNBT(nbt1);
    }

    brewTime = nbt.getShort("BrewTime");

    if (nbt.hasKey("Fuel", Constants.NBT.TAG_SHORT)) {
        fuel = nbt.getShort("Fuel");
        if (fuel > 0)
            currentFuel = 30;
    } else {
        fuel = nbt.getInteger("Fuel");
        currentFuel = nbt.getInteger("CurrentFuel");
    }
}
项目:connor41-etfuturum2    文件:ServerEventHandler.java   
@SubscribeEvent
@SuppressWarnings("unchecked")
public void onWorldTick(TickEvent.ServerTickEvent event) {
    if (event.phase != TickEvent.Phase.END || event.side != Side.SERVER)
        return;

    if (EtFuturum.enablePlayerSkinOverlay)
        if (playerLoggedInCooldown != null)
            if (--playerLoggedInCooldown <= 0) {
                for (World world : MinecraftServer.getServer().worldServers)
                    for (EntityPlayer player : (List<EntityPlayer>) world.playerEntities) {
                        NBTTagCompound nbt = player.getEntityData();
                        if (nbt.hasKey(SetPlayerModelCommand.MODEL_KEY, Constants.NBT.TAG_BYTE)) {
                            boolean isAlex = nbt.getBoolean(SetPlayerModelCommand.MODEL_KEY);
                            EtFuturum.networkWrapper.sendToAll(new SetPlayerModelMessage(player, isAlex));
                        }
                    }
                playerLoggedInCooldown = null;
            }
}
项目:CustomWorldGen    文件:ForgeChunkManager.java   
/**
 * Allows dynamically loading world mods to test if there are chunk tickets in the world
 * Mods that add dynamically generated worlds (like Mystcraft) should call this method
 * to determine if the world should be loaded during server starting.
 *
 * @param chunkDir The chunk directory to test: should be equivalent to {@link WorldServer#getChunkSaveLocation()}
 * @return if there are tickets outstanding for this world or not
 */
public static boolean savedWorldHasForcedChunkTickets(File chunkDir)
{
    File chunkLoaderData = new File(chunkDir, "forcedchunks.dat");

    if (chunkLoaderData.exists() && chunkLoaderData.isFile())
    {
        ;
        try
        {
            NBTTagCompound forcedChunkData = CompressedStreamTools.read(chunkLoaderData);
            return forcedChunkData.getTagList("TicketList", Constants.NBT.TAG_COMPOUND).tagCount() > 0;
        }
        catch (IOException e)
        {
        }
    }
    return false;
}
项目:CustomWorldGen    文件:ItemStackHandler.java   
@Override
public void deserializeNBT(NBTTagCompound nbt)
{
    setSize(nbt.hasKey("Size", Constants.NBT.TAG_INT) ? nbt.getInteger("Size") : stacks.length);
    NBTTagList tagList = nbt.getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < tagList.tagCount(); i++)
    {
        NBTTagCompound itemTags = tagList.getCompoundTagAt(i);
        int slot = itemTags.getInteger("Slot");

        if (slot >= 0 && slot < stacks.length)
        {
            stacks[slot] = ItemStack.loadItemStackFromNBT(itemTags);
        }
    }
    onLoad();
}
项目:ExPetrum    文件:ExPChunk.java   
@Override
public void deserializeNBT(NBTTagCompound nbt)
{
    if (nbt.hasKey("oreID", Constants.NBT.TAG_BYTE))
    {
        this.dormantOre = EnumOre.values()[nbt.getByte("oreID")];
    }

    if (nbt.hasKey("oreAmount", Constants.NBT.TAG_FLOAT))
    {
        this.dormantOreAmount = nbt.getFloat("oreAmount");
    }

    if (nbt.hasKey("temperatureData", Constants.NBT.TAG_LIST))
    {
        this.temperatureData.clear();
        StreamSupport.stream(nbt.getTagList("temperatureData", Constants.NBT.TAG_COMPOUND).spliterator(), false).map(tag -> (NBTTagCompound)tag).forEach(tag -> this.temperatureData.put(BlockPos.fromLong(tag.getLong("key")), tag.getFloat("value")));
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load inventory data from NBT tag
 * @param inventory Target inventory
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
    if (tag == null || !Configurator.NATIVE_LOOT) {
        return;
    }
    Random random = new Random(seed);
    NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
        NBTTagCompound stackTag = items.getCompoundTagAt(i);
        String itemName = stackTag.getString("id").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        byte count = items.getCompoundTagAt(i).getByte("Count");
        int damage = items.getCompoundTagAt(i).getShort("Damage");
        int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
        slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
        if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
            inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load pot data from NBT tag
 * @param pot Target pot
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(TileEntityFlowerPot pot, NBTTagCompound tag, long seed) {
    if (tag == null) {
        return;
    }
    Random random = new Random(seed);
    if (tag.hasKey("Item", Constants.NBT.TAG_STRING)) {
        String itemName = tag.getString("Item").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(tag.getInteger("Item")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        if (item != null) {
            pot.setFlowerPotData(item.getItem(), tag.getInteger("Data"));
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load inventory data from NBT tag
 * @param inventory Target inventory
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
    if (tag == null || !Configurator.NATIVE_LOOT) {
        return;
    }
    Random random = new Random(seed);
    NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
        NBTTagCompound stackTag = items.getCompoundTagAt(i);
        String itemName = stackTag.getString("id").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        byte count = items.getCompoundTagAt(i).getByte("Count");
        int damage = items.getCompoundTagAt(i).getShort("Damage");
        int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
        slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
        if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
            inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load pot data from NBT tag
 * @param pot Target pot
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(TileEntityFlowerPot pot, NBTTagCompound tag, long seed) {
    if (tag == null) {
        return;
    }
    Random random = new Random(seed);
    if (tag.hasKey("Item", Constants.NBT.TAG_STRING)) {
        String itemName = tag.getString("Item").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(tag.getInteger("Item")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        if (item != null) {
            pot.setItemStack(new UItemStack(item, 1, tag.getInteger("Data")).getItemStack());
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load inventory data from NBT tag
 * @param inventory Target inventory
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
    if (tag == null || !Configurator.NATIVE_LOOT) {
        return;
    }
    Random random = new Random(seed);
    NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
        NBTTagCompound stackTag = items.getCompoundTagAt(i);
        String itemName = stackTag.getString("id").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        byte count = items.getCompoundTagAt(i).getByte("Count");
        int damage = items.getCompoundTagAt(i).getShort("Damage");
        int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
        slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
        if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
            inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load pot data from NBT tag
 * @param pot Target pot
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(TileEntityFlowerPot pot, NBTTagCompound tag, long seed) {
    if (tag == null) {
        return;
    }
    Random random = new Random(seed);
    if (tag.hasKey("Item", Constants.NBT.TAG_STRING)) {
        String itemName = tag.getString("Item").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(tag.getInteger("Item")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        if (item != null) {
            pot.func_145964_a(item.getItem(), tag.getInteger("Data"));
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load inventory data from NBT tag
 * @param inventory Target inventory
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(IInventory inventory, NBTTagCompound tag, long seed) {
    if (tag == null || !Configurator.NATIVE_LOOT) {
        return;
    }
    Random random = new Random(seed);
    NBTTagList items = tag.getTagList("Items", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < items.tagCount() && i < inventory.getSizeInventory(); ++i) {
        NBTTagCompound stackTag = items.getCompoundTagAt(i);
        String itemName = stackTag.getString("id").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(stackTag.getShort("id")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        byte count = items.getCompoundTagAt(i).getByte("Count");
        int damage = items.getCompoundTagAt(i).getShort("Damage");
        int slot = stackTag.hasKey("Slot", Constants.NBT.TAG_BYTE) ? stackTag.getByte("Slot") : i;
        slot = (slot < 0 || slot >= inventory.getSizeInventory()) ? i : slot;
        if (item != null && count > 0 && UItems.getPossibleMeta(item).contains(damage)) {
            inventory.setInventorySlotContents(slot, new UItemStack(item, count, damage).getItemStack());
        }
    }
}
项目:StructPro    文件:Tiles.java   
/**
 * Load pot data from NBT tag
 * @param pot Target pot
 * @param tag tag to load
 * @param seed Loading seed
 */
private static void load(TileEntityFlowerPot pot, NBTTagCompound tag, long seed) {
    if (tag == null) {
        return;
    }
    Random random = new Random(seed);
    if (tag.hasKey("Item", Constants.NBT.TAG_STRING)) {
        String itemName = tag.getString("Item").replaceAll(".*:", "");
        itemName = itemName.isEmpty() ? String.valueOf(tag.getInteger("Item")) : itemName;
        Pattern iPattern = Pattern.compile(Pattern.quote(itemName), Pattern.CASE_INSENSITIVE);
        UItem item = Utils.select(UItems.items.select(iPattern), random.nextLong());
        if (item != null) {
            pot.setItemStack(new UItemStack(item, 1, tag.getInteger("Data")).getItemStack());
        }
    }
}
项目:Possessed    文件:PossessivePlayer.java   
public void deserialize(NBTTagCompound compound, EntityPlayer player) {
    this.originalHealth = compound.getFloat("OriginalHealth");
    this.originalHunger = compound.getInteger("OriginalHunger");
    this.originalSaturation = compound.getFloat("OriginalSaturation");
    this.isPossessing = compound.getBoolean("IsPossessing");
    this.possessAnimation = compound.getInteger("PossessAnimation");
    this.originalX = compound.getDouble("OriginalX");
    this.originalY = compound.getDouble("OriginalY");
    this.originalZ = compound.getDouble("OriginalZ");
    NBTTagList originalInventoryTag = compound.getTagList("OriginalInventory", Constants.NBT.TAG_COMPOUND);
    this.originalInventory = new InventoryPlayer(player);
    this.originalInventory.readFromNBT(originalInventoryTag);
    this.originalInventoryContainer = new ContainerPlayer(this.originalInventory, !player.worldObj.isRemote, player);
    NBTTagList handlerList = compound.getTagList("Handlers", Constants.NBT.TAG_COMPOUND);
    for (int i = 0; i < handlerList.tagCount(); i++) {
        NBTTagCompound handlerTag = handlerList.getCompoundTagAt(i);
        try {
            EntityPossessHandler possessHandler = PossessHandler.getPossessHandler(new ResourceLocation(handlerTag.getString("Identifier")));
            possessHandler.deserialize(player, handlerTag);
        } catch (Exception e) {
            System.err.println("Failed to load possess handler: " + handlerTag + "! Skipping.");
            e.printStackTrace();
        }
    }
}
项目:CrystalMod    文件:NBTUtils.java   
/**
 * Get a compound tag by the given name <b>tagName</b> from the other compound tag <b>nbt</b>.
 * If one doesn't exist, then it will be created and added if <b>create</b> is true, otherwise null is returned.
 */
public static NBTTagCompound getCompoundTag(NBTTagCompound nbt, String tagName, boolean create)
{
    if (nbt == null)
    {
        return null;
    }

    if (create == false)
    {
        return nbt.hasKey(tagName, Constants.NBT.TAG_COMPOUND) == true ? nbt.getCompoundTag(tagName) : null;
    }

    // create = true

    if (nbt.hasKey(tagName, Constants.NBT.TAG_COMPOUND) == false)
    {
        nbt.setTag(tagName, new NBTTagCompound());
    }

    return nbt.getCompoundTag(tagName);
}
项目:CrystalMod    文件:WirelessChestManager.java   
@Override
public void readFromNBT(NBTTagCompound nbt)
{
    global.deserializeNBT(nbt);

    if (nbt.hasKey("Private", Constants.NBT.TAG_LIST))
    {
        NBTTagList list = nbt.getTagList("Private", Constants.NBT.TAG_COMPOUND);

        perPlayer.clear();

        for (int i = 0; i < list.tagCount(); ++i)
        {
            NBTTagCompound containerTag = list.getCompoundTagAt(i);
            UUID uuid = PlayerUtil.uuidFromNBT(containerTag);

            Container container = new Container();
            container.deserializeNBT(containerTag);

            perPlayer.put(uuid, container);
        }
    }
}
项目:CrystalMod    文件:WirelessChestManager.java   
@Override
public void deserializeNBT(NBTTagCompound nbt)
{
    NBTTagList nbtTagList = nbt.getTagList("Inventories", Constants.NBT.TAG_COMPOUND);

    inventories.clear();

    for (int i = 0; i < nbtTagList.tagCount(); ++i)
    {
        NBTTagCompound inventoryTag = nbtTagList.getCompoundTagAt(i);
        int code = inventoryTag.getInteger("Code");

        WirelessInventory inventory = new WirelessInventory(this);

        inventory.deserializeNBT(inventoryTag.getCompoundTag("Contents"));

        inventories.put(code, inventory);
    }
}
项目:CrystalMod    文件:WirelessChestManager.java   
void importNBT(NBTTagCompound nbt)
{
    NBTTagList nbtTagList = nbt.getTagList("Inventories", Constants.NBT.TAG_COMPOUND);

    for (int i = 0; i < nbtTagList.tagCount(); ++i)
    {
        NBTTagCompound inventoryTag = nbtTagList.getCompoundTagAt(i);
        int code = inventoryTag.getInteger("Code");

        if (!inventories.containsKey(code))
        {
            WirelessInventory inventory = new WirelessInventory(this);


            inventory.deserializeNBT(inventoryTag.getCompoundTag("Contents"));

            inventories.put(code, inventory);
        }
    }
}
项目:CrystalMod    文件:ItemPattern.java   
public static void addOutput(ItemStack pattern, ItemStack stack) {
    if (!pattern.hasTagCompound()) {
        pattern.setTagCompound(new NBTTagCompound());
    }

    NBTTagList outputs;
    if (!pattern.getTagCompound().hasKey(NBT_OUTPUTS)) {
        outputs = new NBTTagList();
    } else {
        outputs = pattern.getTagCompound().getTagList(NBT_OUTPUTS, Constants.NBT.TAG_COMPOUND);
    }

    outputs.appendTag(stack.serializeNBT());

    pattern.getTagCompound().setTag(NBT_OUTPUTS, outputs);
}
项目:CrystalMod    文件:ItemPattern.java   
public static NonNullList<ItemStack> getOutputs(ItemStack pattern) {
    if (!isProcessing(pattern)) {
        return NonNullList.create();
    }

    NonNullList<ItemStack> outputs = NonNullList.create();

    NBTTagList outputsTag = pattern.getTagCompound().getTagList(NBT_OUTPUTS, Constants.NBT.TAG_COMPOUND);

    for (int i = 0; i < outputsTag.tagCount(); ++i) {
        ItemStack stack = ItemStackTools.loadFromNBT(outputsTag.getCompoundTagAt(i));

        if (ItemStackTools.isValid(stack)) {
            outputs.add(stack);
        }
    }

    return outputs;
}
项目:CrystalMod    文件:CraftingProcessNormal.java   
@Override
public boolean readFromNBT(NBTTagCompound tag) {
     if(super.readFromNBT(tag)){
         if (tag.hasKey(NBT_TO_INSERT)) {
             NBTTagList toInsertList = tag.getTagList(NBT_TO_INSERT, Constants.NBT.TAG_COMPOUND);
             toInsert = NonNullList.withSize(toInsertList.tagCount(), ItemStackTools.getEmptyStack());
             for (int i = 0; i < toInsertList.tagCount(); ++i) {
                 ItemStack insertStack = ItemStackTools.loadFromNBT(toInsertList.getCompoundTagAt(i));
                 if (!ItemStackTools.isNullStack(insertStack)) {
                     toInsert.add(insertStack);
                 }
             }
         }
         return true;
     }
     return false;
 }
项目:CrystalMod    文件:AttachmentEStorageExport.java   
@Override
public void loadFromNBT(NBTTagCompound nbt){
    super.loadFromNBT(nbt);
    NBTTagList tagList = nbt.getTagList("Inventory", Constants.NBT.TAG_COMPOUND);

       for (int i = 0; i < tagList.tagCount(); i++) {
           int slot = tagList.getCompoundTagAt(i).getInteger("Slot");

           ItemStack stack = ItemStackTools.loadFromNBT(tagList.getCompoundTagAt(i));

           filters.insertItem(slot, stack, false);
       }
       if(nbt.hasKey("RedstoneMode")){
        rMode = RedstoneMode.values()[nbt.getInteger("RedstoneMode") % RedstoneMode.values().length];
       }else{
        rMode = RedstoneMode.ON;
       }
       if(nbt.hasKey("IOType")){
        ioType = AttachmentIOType.values()[nbt.getInteger("IOType") % AttachmentIOType.values().length];
       }else{
        ioType = AttachmentIOType.ITEM;
       }
   }
项目:CrystalMod    文件:EnderBufferManager.java   
@Override
public void readFromNBT(NBTTagCompound nbt)
{
    global.deserializeNBT(nbt);

    if (nbt.hasKey("Private", Constants.NBT.TAG_LIST))
    {
        NBTTagList list = nbt.getTagList("Private", Constants.NBT.TAG_COMPOUND);

        perPlayer.clear();

        for (int i = 0; i < list.tagCount(); ++i)
        {
            NBTTagCompound containerTag = list.getCompoundTagAt(i);
            UUID uuid = PlayerUtil.uuidFromNBT(containerTag);

            Container container = new Container();
            container.deserializeNBT(containerTag);

            perPlayer.put(uuid, container);
        }
    }
}
项目:CrystalMod    文件:EnderBufferManager.java   
@Override
public void deserializeNBT(NBTTagCompound nbt)
{
    NBTTagList nbtTagList = nbt.getTagList("Buffers", Constants.NBT.TAG_COMPOUND);

    inventories.clear();

    for (int i = 0; i < nbtTagList.tagCount(); ++i)
    {
        NBTTagCompound inventoryTag = nbtTagList.getCompoundTagAt(i);
        int j = inventoryTag.getInteger("BufferId");

        EnderBuffer inventory = new EnderBuffer(this);

        inventory.deserializeNBT(inventoryTag.getCompoundTag("BufferContents"));

        inventories.put(j, inventory);
    }
}
项目:CrystalMod    文件:EnderBufferManager.java   
void importNBT(NBTTagCompound nbt)
{
    NBTTagList nbtTagList = nbt.getTagList("Buffers", Constants.NBT.TAG_COMPOUND);

    for (int i = 0; i < nbtTagList.tagCount(); ++i)
    {
        NBTTagCompound inventoryTag = nbtTagList.getCompoundTagAt(i);
        int j = inventoryTag.getInteger("BufferId");

        if (!inventories.containsKey(j))
        {
            EnderBuffer inventory = new EnderBuffer(this);


            inventory.deserializeNBT(inventoryTag.getCompoundTag("BufferContents"));

            inventories.put(j, inventory);
        }
    }
}
项目:TRHS_Club_Mod_2016    文件:ForgeChunkManager.java   
/**
 * Allows dynamically loading world mods to test if there are chunk tickets in the world
 * Mods that add dynamically generated worlds (like Mystcraft) should call this method
 * to determine if the world should be loaded during server starting.
 *
 * @param chunkDir The chunk directory to test: should be equivalent to {@link WorldServer#getChunkSaveLocation()}
 * @return if there are tickets outstanding for this world or not
 */
public static boolean savedWorldHasForcedChunkTickets(File chunkDir)
{
    File chunkLoaderData = new File(chunkDir, "forcedchunks.dat");

    if (chunkLoaderData.exists() && chunkLoaderData.isFile())
    {
        ;
        try
        {
            NBTTagCompound forcedChunkData = CompressedStreamTools.func_74797_a(chunkLoaderData);
            return forcedChunkData.func_150295_c("TicketList", Constants.NBT.TAG_COMPOUND).func_74745_c() > 0;
        }
        catch (IOException e)
        {
        }
    }
    return false;
}
项目:Age-of-Kingdom    文件:PlayerAokIEEP.java   
@Override
public void loadNBTData(NBTTagCompound compound) {
    if(compound.hasKey(PROP_NAME, Constants.NBT.TAG_COMPOUND)) {
        NBTTagCompound tmp = compound.getCompoundTag(PROP_NAME);

        this.lordLevel = tmp.getInteger("LordLevel");
        this.landPos.loadNBTData(tmp);
        this.lordName = tmp.getString("LordName");
        this.aokName = tmp.getString("AokName");
        this.aokLevel = tmp.getInteger("AokLevel");
        NBTTagList list = (NBTTagList) tmp.getTag("Members");
        ArrayList<String> tmpList = new ArrayList<String>();
        for(int i = 0; i < list.tagCount(); ++i) {
                tmpList.add(list.getStringTagAt(i));
        }
        this.members = tmpList;
    }
}