com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequencePreference.java Source code

Java tutorial

Introduction

Here is the source code for com.sidereal.dolphinoes.behaviors.renderer.spritesequence.SpriteSequencePreference.java

Source

/*******************************************************************************
 * Copyright 2015 See AUTHORS file.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 ******************************************************************************/

package com.sidereal.dolphinoes.behaviors.renderer.spritesequence;

import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.math.Vector2;

/** Settings related to a list of sprites to draw in a
 * {@link SpriteSequenceDrawer} by calling
 * {@link SpriteSequenceDrawer#addPreferences(String, SpriteOrderSettings)}
 * 
 * @author Claudiu Bele */
public class SpriteSequencePreference {

    // region fields

    private float timePerAnimation;
    private Vector2 size;
    private Vector2 positionOffset;
    private boolean placeAtStart;
    private boolean placeAtEnd;
    private boolean flipX;
    private boolean flipY;
    private Color tintColor;
    private float transparency;

    // endregion fields

    // region constructors

    public SpriteSequencePreference() {

        this.timePerAnimation = 1;
        this.size = new Vector2(100, 100);
        this.positionOffset = new Vector2(100, 100);
        this.placeAtEnd = false;
        this.placeAtStart = false;
        this.transparency = 1;
        this.tintColor = Color.WHITE.cpy();
    }

    // endregion constructors

    // region methods

    // region builders
    public SpriteSequencePreference setTimePerAnimation(float value) {

        // we don't want it to be 0 so as to not divide by 0 when calculating
        // new sprite index value
        this.timePerAnimation = Math.max(0.01f, value);
        return this;
    }

    /** Sets the size to the one given by the parameters as well as the position
     * offset to minus half the width and minus half the height, to center the
     * object around {@link #MISSING()}.
     * 
     * @param width
     * @param height
     * @return */
    public SpriteSequencePreference setSizeAndCenter(float width, float height) {

        this.size.set(width, height);
        this.positionOffset.set(-width / 2f, -height / 2f);
        return this;
    }

    public SpriteSequencePreference setSize(float width, float height) {

        this.size.set(width, height);
        return this;
    }

    public SpriteSequencePreference setPositionOffset(float x, float y) {

        this.positionOffset.set(x, y);
        return this;
    }

    public SpriteSequencePreference setFlipX(boolean value) {

        this.flipX = value;
        return this;
    }

    public SpriteSequencePreference setFlipY(boolean value) {

        this.flipY = value;
        return this;
    }

    public SpriteSequencePreference setPlaceAtEnd(boolean value) {

        this.placeAtEnd = value;
        return this;
    }

    public SpriteSequencePreference setPlaceAtStart(boolean value) {

        this.placeAtStart = value;
        return this;
    }

    public SpriteSequencePreference setTintColor(Color tintColor) {

        this.tintColor = tintColor;
        return this;
    }

    public SpriteSequencePreference setTransparency(float transparency) {

        this.transparency = transparency;
        return this;
    }

    // endregion

    // region getters
    public float getTimePerAnimation() {

        return this.timePerAnimation;
    }

    public Vector2 getSize() {

        return size;
    }

    public Vector2 getPositionOffset() {

        return positionOffset;
    }

    public boolean isPlaceAtStart() {

        return placeAtStart;
    }

    public boolean isPlaceAtEnd() {

        return placeAtEnd;
    }

    public boolean isFlipX() {

        return flipX;
    }

    public boolean isFlipY() {

        return flipY;
    }

    public Color getTintColor() {

        return tintColor;
    }

    public float getTransparency() {

        return transparency;
    }
    // endregion

    // endregion methods

}