package com.fdangelo.circleworld.universeview.objects;
import com.badlogic.gdx.graphics.g2d.Batch;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.graphics.g2d.TextureRegion;
import com.badlogic.gdx.utils.ShortArray;
import com.fdangelo.circleworld.GameLogic;
import com.fdangelo.circleworld.GameLogicState;
import com.fdangelo.circleworld.universeview.UniverseView;
public class ShipView extends UniverseObjectView {
private final ShipViewInput input;
private final TextureRegion sprite;
public ShipView() {
input = new ShipViewInput(this);
sprite = GameLogic.getInstace().assetManager.get("atlas/ships.atlas", TextureAtlas.class).findRegion("Battleship");
}
@Override
public void act(final float delta) {
super.act(delta);
input.Update(delta);
}
@Override
public void draw(final Batch batch, final float parentAlpha) {
batch.draw(sprite, getX() - getWidth() * 0.5f, getY() - getHeight() * 0.5f, getWidth() * 0.5f, getHeight() * 0.5f, getWidth(), getHeight(),
getScaleX(), getScaleY(), -getRotation() + 90.0f); // ,
// getUniverseObject().getSizeX(),
// getUniverseObject().getSizeY());
}
/*
* public override void OnDrawGizmos () { float sizeY = 1.0f; float sizeX =
* 1.0f; Gizmos.color = Color.red; Gizmos.DrawLine(transform.position,
* transform.position + transform.up * sizeY); Gizmos.color = Color.blue;
* Gizmos.DrawLine(transform.position - transform.right * sizeX * 0.5f,
* transform.position + transform.right * sizeX * 0.5f); }
*/
private ShortArray closeThings;
@Override
public void onUniverseObjectUpdated(final float deltaTime) {
super.onUniverseObjectUpdated(deltaTime);
if (GameLogic.getInstace().getState() == GameLogicState.PlayingShip) {
closeThings = universeView.getUniverse().findClosestRenderedThings(universeObject.getPositionX(), universeObject.getPositionY(), 100.0f,
closeThings);
for (int i = 0; i < closeThings.size && i < UniverseView.MAX_ACTIVE_PLANET_VIEWS; i++) {
universeView.getPlanetView(closeThings.get(i));
}
}
}
}