jMonkeyEngine / jmonkeyengine

A complete 3-D game development suite written in Java.
http://jmonkeyengine.org
BSD 3-Clause "New" or "Revised" License
3.74k stars 1.12k forks source link

Add the ClipAction.getAnimClip() method and remove ClipAction.reset() method #2194

Closed capdevon closed 4 months ago

capdevon commented 4 months ago

Although the constructor of the ClipAction class requires an AnimClip, there is no getter method ClipAction.getAnimClip(). Could this be added please?

Here is a use case:

        StringBuilder sb = new StringBuilder();
        Action action = animComposer.getCurrentAction();

        if (action != null) {
            sb.append("ActionType=").append(action.getClass()).append('\n');
            sb.append("Length=").append(timeLength).append('\n');
            sb.append("Speed=").append(action.getSpeed()).append('\n');

            if (action instanceof ClipAction) {
                ClipAction ca = (ClipAction) action;

                try {
                    // Use reflection here because the ClipAction.getAnimClip() method does not exist. Why ???
                    AnimClip clip = (AnimClip) FieldUtils.readField(ca, "clip", true);
                    sb.append("ClipName=").append(clip.getName()).append('\n');
                    sb.append("Duration (sec)=").append(clip.getLength()).append('\n');
                    sb.append("Tracks=").append(clip.getTracks().length).append('\n');

                } catch (ReflectiveOperationException e) {
                    e.printStackTrace();
                }

                sb.append("TransitionLength=").append(ca.getTransitionLength()).append('\n');
                sb.append("MaxTransitionWeight=").append(ca.getMaxTransitionWeight()).append('\n');
                sb.append("Weight=").append(ca.getWeight()).append('\n');
                sb.append("TargetTransforms=").append(ca.getTargets().size()).append('\n');
            }
        }

https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/anim/tween/action/ClipAction.java#L13


Also could you remove the ClipAction.reset() method which does nothing?

https://github.com/jMonkeyEngine/jmonkeyengine/blob/master/jme3-core/src/main/java/com/jme3/anim/tween/action/ClipAction.java#L62

capdevon commented 4 months ago

completed in https://github.com/jMonkeyEngine/jmonkeyengine/pull/2195