PlayerLogic.java

package io.github.some_example_name;

public class PlayerLogic {

    public enum Frame {
        FRONT,
        BACK,
        SIDE
    }

    public static class FrameState {
        public final Frame frame;
        public final boolean flipX;

        public FrameState(Frame frame, boolean flipX) {
            this.frame = frame;
            this.flipX = flipX;
        }
    }

    public static FrameState decideFrame(Player.Direction direction) {
        switch (direction) {
            case UP:
                return new FrameState(Frame.BACK, false);
            case DOWN:
                return new FrameState(Frame.FRONT, false);
            case LEFT:
                return new FrameState(Frame.SIDE, false);
            case RIGHT:
                return new FrameState(Frame.SIDE, true);
            case NORTHEAST:
                return new FrameState(Frame.BACK, true);
            case NORTHWEST:
                return new FrameState(Frame.BACK, false);
            case SOUTHEAST:
                return new FrameState(Frame.FRONT, true);
            case SOUTHWEST:
                return new FrameState(Frame.FRONT, false);
            default:
                return new FrameState(Frame.FRONT, false);
        }
    }
}