CannonShooter/core/src/de/samdev/cannonshooter/entities/Cannon.java

97 lines
2.3 KiB
Java

package de.samdev.cannonshooter.entities;
import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.Input.Keys;
import de.samdev.absgdx.framework.entities.Entity;
import de.samdev.absgdx.framework.entities.colliosiondetection.CollisionGeometryOwner;
import de.samdev.absgdx.framework.entities.colliosiondetection.geometries.CollisionGeometry;
import de.samdev.absgdx.framework.layer.GameLayer;
import de.samdev.cannonshooter.Textures;
import de.samdev.cannonshooter.ZLayers;
import de.samdev.cannonshooter.teams.Team;
public class Cannon extends Entity {
public Team team;
private CannonBarrel barrel;
private CannonHearth hearth;
public float power; // 1 = active | 0 = neutral
public Cannon(float x, float y, Team t) {
super(Textures.cannon_body, 2, 2);
setPosition(x, y);
setZLayer(ZLayers.LAYER_CANNON_BODY);
team = t;
power = (t.isNeutral) ? 0 : 1;
}
@Override
public void onLayerAdd(GameLayer layer) {
barrel = new CannonBarrel(this);
hearth = new CannonHearth(this);
layer.addEntity(barrel);
layer.addEntity(hearth);
}
@Override
public void beforeUpdate(float delta) {
if (owner.owner.settings.debugEnabled.get())
{
if (isMouseOverEntity() && Gdx.input.isKeyPressed(Keys.DOWN) && ! team.isNeutral)
{
power = Math.max(0, power - 0.01f);
}
if (isMouseOverEntity() && Gdx.input.isKeyPressed(Keys.UP) && ! team.isNeutral)
{
power = Math.min(1, power + 0.01f);
}
}
if (isMouseOverEntity() && Gdx.input.justTouched())
{
barrel.startDrag();
}
}
public void setTeam(Team newteam) {
team = newteam;
}
@Override
public void onActiveCollide(CollisionGeometryOwner passiveCollider, CollisionGeometry myGeo, CollisionGeometry otherGeo) {
//
}
@Override
public void onPassiveCollide(CollisionGeometryOwner activeCollider, CollisionGeometry myGeo, CollisionGeometry otherGeo) {
//
}
@Override
public void onActiveMovementCollide(CollisionGeometryOwner passiveCollider, CollisionGeometry myGeo, CollisionGeometry otherGeo) {
//
}
@Override
public void onPassiveMovementCollide(CollisionGeometryOwner activeCollider, CollisionGeometry myGeo, CollisionGeometry otherGeo) {
//
}
@Override
public boolean canCollideWith(CollisionGeometryOwner other) {
return false;
}
@Override
public boolean canMoveCollideWith(CollisionGeometryOwner other) {
return false;
}
}