Search in sources :

Example 1 with SkeletonData

use of com.esotericsoftware.spine.SkeletonData in project bladecoder-adventure-engine by bladecoder.

the class SpineRenderer method retrieveSource.

private void retrieveSource(String source, String atlas) {
    EngineLogger.debug("Retrieving: " + source);
    SkeletonCacheEntry entry = (SkeletonCacheEntry) sourceCache.get(source);
    if (entry == null || entry.refCounter < 1) {
        loadSource(source, atlas);
        EngineAssetManager.getInstance().finishLoading();
        entry = (SkeletonCacheEntry) sourceCache.get(source);
    }
    if (entry.skeleton == null) {
        SkeletonData skeletonData = EngineAssetManager.getInstance().get(getFileName(source), SkeletonData.class);
        entry.skeleton = new Skeleton(skeletonData);
        // Defines
        AnimationStateData stateData = new AnimationStateData(skeletonData);
        // mixing
        // between
        // animations.
        stateData.setDefaultMix(0f);
        entry.animation = new AnimationState(stateData);
        entry.animation.addListener(animationListener);
    }
}
Also used : AnimationState(com.esotericsoftware.spine.AnimationState) Skeleton(com.esotericsoftware.spine.Skeleton) AnimationStateData(com.esotericsoftware.spine.AnimationStateData) SkeletonData(com.esotericsoftware.spine.SkeletonData)

Example 2 with SkeletonData

use of com.esotericsoftware.spine.SkeletonData in project bladecoder-adventure-engine by bladecoder.

the class SpineRenderer method setSkin.

public void setSkin(String skin) {
    // set the skin if the current source is loaded
    if (currentSource != null && currentSource.refCounter > 0) {
        SkeletonCacheEntry sce = (SkeletonCacheEntry) currentSource;
        EngineLogger.debug("Setting Spine skin: " + skin);
        if (skin != null) {
            SkeletonData skeletonData = sce.skeleton.getData();
            if (skin.indexOf(',') == -1 || skeletonData.findSkin(skin) != null) {
                sce.skeleton.setSkin(skin);
            } else {
                // we can combine several skins separated by ','
                String[] skins = skin.split(",");
                Skin combinedSkin = new Skin(skin);
                for (String sk : skins) {
                    // Get the source skins.
                    Skin singleSkin = skeletonData.findSkin(sk.trim());
                    combinedSkin.addSkin(singleSkin);
                }
                // Set and apply the Skin to the skeleton.
                sce.skeleton.setSkin(combinedSkin);
            }
        } else {
            sce.skeleton.setSkin((Skin) null);
        }
    // sce.skeleton.setSlotsToSetupPose();
    }
    this.skin = skin;
}
Also used : Skin(com.esotericsoftware.spine.Skin) SkeletonData(com.esotericsoftware.spine.SkeletonData)

Example 3 with SkeletonData

use of com.esotericsoftware.spine.SkeletonData in project HyperLap2D by rednblackgames.

the class ResourcesManager method getSpineDrawable.

public SpineDrawable getSpineDrawable(String name) {
    if (spineDrawableCache.get(name) == null) {
        SpineDataObject spineDataObject = (SpineDataObject) tiledPlugin.getAPI().getSceneLoader().getRm().getExternalItemType(SpineItemType.SPINE_TYPE, name);
        SkeletonData skeletonData = spineDataObject.skeletonData;
        Skeleton skeleton = new Skeleton(skeletonData);
        spineDrawableCache.put(name, new SpineDrawable(skeleton, skeletonRenderer));
    }
    return spineDrawableCache.get(name);
}
Also used : SpineDrawable(games.rednblack.editor.plugin.tiled.view.SpineDrawable) Skeleton(com.esotericsoftware.spine.Skeleton) SkeletonData(com.esotericsoftware.spine.SkeletonData) SpineDataObject(games.rednblack.h2d.extension.spine.SpineDataObject)

Example 4 with SkeletonData

use of com.esotericsoftware.spine.SkeletonData in project HyperLap2D by rednblackgames.

the class SpineDrawStrategy method updateTile.

@Override
public void updateTile(int entity) {
    if (!checkValidTile(entity))
        return;
    SpineComponent spineComponent = ComponentRetriever.get(entity, SpineComponent.class, tiledPlugin.getAPI().getEngine());
    if (!spineComponent.animationName.equals(tiledPlugin.getSelectedTileName())) {
        replaceSpineCommandBuilder.begin(entity);
        String animName = tiledPlugin.getSelectedTileName();
        replaceSpineCommandBuilder.setAnimationName(animName);
        SpineDataObject spineDataObject = (SpineDataObject) tiledPlugin.getAPI().getSceneLoader().getRm().getExternalItemType(SpineItemType.SPINE_TYPE, animName);
        replaceSpineCommandBuilder.setSkeletonJson(spineDataObject.skeletonJson);
        SkeletonData skeletonData = spineDataObject.skeletonData;
        replaceSpineCommandBuilder.setSkeleton(new Skeleton(skeletonData));
        replaceSpineCommandBuilder.execute(tiledPlugin.facade);
    }
}
Also used : Skeleton(com.esotericsoftware.spine.Skeleton) SpineComponent(games.rednblack.h2d.extension.spine.SpineComponent) SkeletonData(com.esotericsoftware.spine.SkeletonData) SpineDataObject(games.rednblack.h2d.extension.spine.SpineDataObject)

Aggregations

SkeletonData (com.esotericsoftware.spine.SkeletonData)4 Skeleton (com.esotericsoftware.spine.Skeleton)3 SpineDataObject (games.rednblack.h2d.extension.spine.SpineDataObject)2 AnimationState (com.esotericsoftware.spine.AnimationState)1 AnimationStateData (com.esotericsoftware.spine.AnimationStateData)1 Skin (com.esotericsoftware.spine.Skin)1 SpineDrawable (games.rednblack.editor.plugin.tiled.view.SpineDrawable)1 SpineComponent (games.rednblack.h2d.extension.spine.SpineComponent)1