fix: Entity.java

This commit is contained in:
Laureηt 2021-04-22 14:20:17 +02:00
parent 20315c3ee2
commit a4ed374a4c
2 changed files with 62 additions and 141 deletions

View file

@ -1,187 +1,108 @@
package sagittarius.model; package sagittarius.model;
import java.awt.Color; import java.awt.Color;
import com.badlogic.gdx.math.Vector;
import com.badlogic.gdx.math.Vector2;
public abstract class Entity { public abstract class Entity {
// Attributs. // ---------- ATTRIBUTEs ----------
/** Angle associé à l'entité. */
protected float angle; protected float angle;
/** Masse de l'entité. */
protected float mass; protected float mass;
/** Couleur de l'entité. */
protected Color color; protected Color color;
/** Position de l'entité. */
protected Vector2 position; protected Vector2 position;
// ---------- CONSTRUCTORs ----------
/** Creates an {@link #Entity}.
* @param angle angle associated to the {@link #Entity}.
// Constructeur. * @param mass mass of the {@link #Entity}.
* @param color color of the {@link #Entity}.
/** Créer une entité. * @param position position of the {@link #Entity}.
* @param vangle angle associé à l'entité
* @param vmass masse de l'entité
* @param vcolor couleur de l'entité
* @param vposition position de l'entité
*/ */
public Planet(float vangle, float vmass, Color vcolor, Vector2 vposition) { public Entity(float angle, float mass, Color color, Vector2 position) {
this.angle = vangle; this.angle = angle;
this.mass = vmass; this.mass = mass;
this.color = vcolor; this.color = color;
this.position.setX() = vposition.getX(); this.position = position.cpy();
this.position.setY() = vposition.getY();
} }
// ---------- GETTERs ----------
/**
* @return angle associated to the {@link #Entity}.
// Méthodes.
/** Méthode abstraite. */
protected abstract String getInfo();
/** Obtenir l'angle associé à l'entité.
* @return angle associé à l'entité
*/ */
public float getAngle() { public float getAngle() {
return this.angle; return this.angle;
} }
/**
/** Obtenir la masse de l'entité. * @return mass of the {@link #Entity}.
* @return masse de l'entité
*/ */
public float getMass() { public float getMass() {
return this.mass; return this.mass;
} }
/**
* @return color of the {@link #Entity}.
/** Obtenir la couleur de l'entité.
* @return couleur de l'entité
*/ */
public Color getColor() { public Color getColor() {
return this.color; return this.color;
} }
/**
* @return position of the {@link #Entity}.
/** Obtenir la position de l'entité.
* @return position de l'entité
*/ */
public Color getPosition() { public Vector2 getPosition() {
this.position.getX(); return this.position.cpy();
this.position.getY();
} }
// ---------- SETTERs ----------
/**
* Sets the angle associated to the {@link #Entity}.
/** Changer l'angle associé à l'entité. *
* @param vangle angle associé à l'entité * @param angle new angle.
*/ */
public void setAngle(float vangle) { public void setAngle(float angle) {
this.angle = vangle; this.angle = angle;
} }
/**
* Sets the mass of the {@link #Entity}.
/** Changer la masse de l'entité. *
* @param vcolor couleur de la planète * @param mass new mass.
*/ */
public void setMass(float vmass) { public void setMass(float mass) {
assert (vmass > 0); this.mass = mass;
this.mass = vmass;
} }
/**
* Sets the color of the {@link #Entity}.
/** Changer la couleur de l'entité. *
* @param vcolor couleur de l'entité * @param color new color.
*/ */
public void setColor(Color vcolor) { public void setColor(Color color) {
assert (vcouleur != null); this.color = color;
this.color = vcolor;
} }
/**
/** Changer la position de l'entité. * Sets the Position of the {@link #Entity}.
* @param vposition position de l'entité *
* @param position new position.
*/ */
public void setPosition(Vector2 vposition) { public void setPosition(Vector2 position) {
this.position.setX() = vposition.getX(); this.position = position.cpy();
this.position.setY() = vposition.getY();
} }
// ---------- METHODs ----------
/**
* @return String containing informations about the {@link #Entity}
*/
protected abstract String getInfo();
/***
public void draw(Batch batch, float parentAlpha) {
super.draw(batch, parentAlpha);
if (getDebug()) {
fontDebug(batch, getInfo(), getX(), getY());
}
}
/** Dessine les lignes de bord de cette entité si {@link #getDebug()} est vraie. */
/* public void drawDebug (ShapeRenderer shapes) {
drawDebugBounds(shapes);
}
/** Dessine un rectangle pour les limites de l'entité si {@link #getDebug()} est vraie. */
/* protected void drawDebugBounds (ShapeRenderer shapes) {
if (!debug) return;
shapes.set(ShapeType.Line);
if (stage != null) {
shapes.setColor(stage.getDebugColor());
shapes.rect(x, y, originX, originY, width, height, scaleX, scaleY, rotation);
}
}
/** Met à jour l'entité en fonction du temps. Called each frame by {@link Stage#act(float)}.
* <p>
* The default implementation calls {@link Action#act(float)} on each action and removes actions that are complete.
* @param delta Time in seconds since the last frame. */
/* public void act (float delta) {
Array<Action> actions = this.actions;
if (actions.size == 0) return;
if (stage != null && stage.getActionsRequestRendering()) Gdx.graphics.requestRendering();
try {
for (int i = 0; i < actions.size; i++) {
Action action = actions.get(i);
if (action.act(delta) && i < actions.size) {
Action current = actions.get(i);
int actionIndex = current == action ? i : actions.indexOf(action, true);
if (actionIndex != -1) {
actions.removeIndex(actionIndex);
action.setActor(null);
i--;
}
}
}
} catch (RuntimeException ex) {
String context = toString();
throw new RuntimeException("Actor: " + context.substring(0, Math.min(context.length(), 128)), ex);
}
}
*/
} }