Example usage for com.badlogic.gdx.utils DataInput DataInput

List of usage examples for com.badlogic.gdx.utils DataInput DataInput

Introduction

In this page you can find the example usage for com.badlogic.gdx.utils DataInput DataInput.

Prototype

public DataInput(InputStream in) 

Source Link

Usage

From source file:com.company.minery.utils.spine.SkeletonBinary.java

License:Open Source License

public SkeletonData readSkeletonData(FileHandle file) {
    if (file == null)
        throw new IllegalArgumentException("file cannot be null.");

    float scale = this.scale;

    SkeletonData skeletonData = new SkeletonData();
    skeletonData.name = file.nameWithoutExtension();

    DataInput input = new DataInput(file.read(512));
    try {//from   w w w .  j  av a2s  . co  m
        skeletonData.hash = input.readString();
        if (skeletonData.hash.isEmpty())
            skeletonData.hash = null;
        skeletonData.version = input.readString();
        if (skeletonData.version.isEmpty())
            skeletonData.version = null;
        skeletonData.width = input.readFloat();
        skeletonData.height = input.readFloat();

        boolean nonessential = input.readBoolean();

        if (nonessential) {
            skeletonData.imagesPath = input.readString();
            if (skeletonData.imagesPath.isEmpty())
                skeletonData.imagesPath = null;
        }

        // Bones.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            String name = input.readString();
            BoneData parent = null;
            int parentIndex = input.readInt(true) - 1;
            if (parentIndex != -1)
                parent = skeletonData.bones.get(parentIndex);
            BoneData boneData = new BoneData(name, parent);
            boneData.x = input.readFloat() * scale;
            boneData.y = input.readFloat() * scale;
            boneData.scaleX = input.readFloat();
            boneData.scaleY = input.readFloat();
            boneData.rotation = input.readFloat();
            boneData.length = input.readFloat() * scale;
            boneData.flipX = input.readBoolean();
            boneData.flipY = input.readBoolean();
            boneData.inheritScale = input.readBoolean();
            boneData.inheritRotation = input.readBoolean();
            if (nonessential)
                Color.rgba8888ToColor(boneData.color, input.readInt());
            skeletonData.bones.add(boneData);
        }

        // IK constraints.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            IkConstraintData ikConstraintData = new IkConstraintData(input.readString());
            for (int ii = 0, nn = input.readInt(true); ii < nn; ii++)
                ikConstraintData.bones.add(skeletonData.bones.get(input.readInt(true)));
            ikConstraintData.target = skeletonData.bones.get(input.readInt(true));
            ikConstraintData.mix = input.readFloat();
            ikConstraintData.bendDirection = input.readByte();
            skeletonData.ikConstraints.add(ikConstraintData);
        }

        // Slots.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            String slotName = input.readString();
            BoneData boneData = skeletonData.bones.get(input.readInt(true));
            SlotData slotData = new SlotData(slotName, boneData);
            Color.rgba8888ToColor(slotData.color, input.readInt());
            slotData.attachmentName = input.readString();
            slotData.additiveBlending = input.readBoolean();
            skeletonData.slots.add(slotData);
        }

        // Default skin.
        Skin defaultSkin = readSkin(input, "default", nonessential);
        if (defaultSkin != null) {
            skeletonData.defaultSkin = defaultSkin;
            skeletonData.skins.add(defaultSkin);
        }

        // Skins.
        for (int i = 0, n = input.readInt(true); i < n; i++)
            skeletonData.skins.add(readSkin(input, input.readString(), nonessential));

        // Events.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            EventData eventData = new EventData(input.readString());
            eventData.intValue = input.readInt(false);
            eventData.floatValue = input.readFloat();
            eventData.stringValue = input.readString();
            skeletonData.events.add(eventData);
        }

        // Animations.
        for (int i = 0, n = input.readInt(true); i < n; i++)
            readAnimation(input.readString(), input, skeletonData);

    } catch (IOException ex) {
        throw new SerializationException("Error reading skeleton file.", ex);
    } finally {
        try {
            input.close();
        } catch (IOException ignored) {
        }
    }

    skeletonData.bones.shrink();
    skeletonData.slots.shrink();
    skeletonData.skins.shrink();
    return skeletonData;
}

From source file:spine.SkeletonBinary.java

License:Open Source License

public SkeletonData readSkeletonData(FileHandle file) {
    if (file == null)
        throw new IllegalArgumentException("file cannot be null.");

    float scale = this.scale;

    SkeletonData skeletonData = new SkeletonData();
    skeletonData.name = file.nameWithoutExtension();

    DataInput input = new DataInput(file.read(512));
    try {/*from   w w w.  ja v  a2 s  .c o  m*/
        skeletonData.hash = input.readString();
        if (skeletonData.hash.isEmpty())
            skeletonData.hash = null;
        skeletonData.version = input.readString();
        if (skeletonData.version.isEmpty())
            skeletonData.version = null;
        skeletonData.width = input.readFloat();
        skeletonData.height = input.readFloat();

        boolean nonessential = input.readBoolean();

        if (nonessential) {
            skeletonData.imagesPath = input.readString();
            if (skeletonData.imagesPath.isEmpty())
                skeletonData.imagesPath = null;
        }

        // Bones.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            String name = input.readString();
            BoneData parent = null;
            int parentIndex = input.readInt(true) - 1;
            if (parentIndex != -1)
                parent = skeletonData.bones.get(parentIndex);
            BoneData boneData = new BoneData(name, parent);
            boneData.x = input.readFloat() * scale;
            boneData.y = input.readFloat() * scale;
            boneData.scaleX = input.readFloat();
            boneData.scaleY = input.readFloat();
            boneData.rotation = input.readFloat();
            boneData.length = input.readFloat() * scale;
            boneData.inheritScale = input.readBoolean();
            boneData.inheritRotation = input.readBoolean();
            if (nonessential)
                Color.rgba8888ToColor(boneData.color, input.readInt());
            skeletonData.bones.add(boneData);
        }

        // IK constraints.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            IkConstraintData ikConstraintData = new IkConstraintData(input.readString());
            for (int ii = 0, nn = input.readInt(true); ii < nn; ii++)
                ikConstraintData.bones.add(skeletonData.bones.get(input.readInt(true)));
            ikConstraintData.target = skeletonData.bones.get(input.readInt(true));
            ikConstraintData.mix = input.readFloat();
            ikConstraintData.bendDirection = input.readByte();
            skeletonData.ikConstraints.add(ikConstraintData);
        }

        // Slots.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            String slotName = input.readString();
            BoneData boneData = skeletonData.bones.get(input.readInt(true));
            SlotData slotData = new SlotData(slotName, boneData);
            Color.rgba8888ToColor(slotData.color, input.readInt());
            slotData.attachmentName = input.readString();
            slotData.blendMode = BlendMode.values[input.readInt(true)];
            skeletonData.slots.add(slotData);
        }

        // Default skin.
        Skin defaultSkin = readSkin(input, "default", nonessential);
        if (defaultSkin != null) {
            skeletonData.defaultSkin = defaultSkin;
            skeletonData.skins.add(defaultSkin);
        }

        // Skins.
        for (int i = 0, n = input.readInt(true); i < n; i++)
            skeletonData.skins.add(readSkin(input, input.readString(), nonessential));

        // Events.
        for (int i = 0, n = input.readInt(true); i < n; i++) {
            EventData eventData = new EventData(input.readString());
            eventData.intValue = input.readInt(false);
            eventData.floatValue = input.readFloat();
            eventData.stringValue = input.readString();
            skeletonData.events.add(eventData);
        }

        // Animations.
        for (int i = 0, n = input.readInt(true); i < n; i++)
            readAnimation(input.readString(), input, skeletonData);

    } catch (IOException ex) {
        throw new SerializationException("Error reading skeleton file.", ex);
    } finally {
        try {
            input.close();
        } catch (IOException ignored) {
        }
    }

    skeletonData.bones.shrink();
    skeletonData.slots.shrink();
    skeletonData.skins.shrink();
    skeletonData.events.shrink();
    skeletonData.animations.shrink();
    skeletonData.ikConstraints.shrink();
    return skeletonData;
}