package com.captstudios.games.tafl.core.utils;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.scenes.scene2d.utils.TextureRegionDrawable;
public class DoubleTextureDrawable extends TextureRegionDrawable {
TextureRegion inner;
public DoubleTextureDrawable(TextureRegion region, TextureRegion inner) {
super(region);
setInnerRegion(inner);
}
@Override
public void draw(Batch batch, float x, float y, float width, float height) {
super.draw(batch, x, y, width, height);
float innerWidth = inner.getRegionWidth() * width / getMinWidth();
float innerHeight = inner.getRegionHeight() * height / getMinHeight();
if (inner.getRegionWidth() / getMinWidth() > 0.9) {
innerWidth *= 0.9f;
innerHeight *= 0.9f;
}
float innerX = x + (width - innerWidth) / 2;
float innerY = y + (height - innerHeight) / 2;
batch.draw(inner, innerX, innerY, innerWidth, innerHeight);
}
@Override
public void draw(Batch batch, float x, float y, float originX, float originY, float width, float height, float scaleX,
float scaleY, float rotation) {
super.draw(batch, x, y, originX, originY, width, height, scaleX, scaleY, rotation);
float innerWidth = inner.getRegionWidth() * width / getMinWidth();
float innerHeight = inner.getRegionHeight() * height / getMinHeight();
float innerX = x;
float innerY = y;
batch.draw(inner, innerX, innerY, originX, originY, innerWidth, innerHeight, scaleX, scaleY, rotation);
}
public void setInnerRegion(TextureRegion inner) {
this.inner = inner;
}
public TextureRegion getInnerRegion() {
return inner;
}
}