entity spawning added
This commit is contained in:
@@ -1,10 +1,15 @@
|
||||
package zero1hd.polyjet.entity;
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import com.badlogic.gdx.Gdx;
|
||||
import com.badlogic.gdx.assets.AssetManager;
|
||||
import com.badlogic.gdx.graphics.Texture;
|
||||
import com.badlogic.gdx.scenes.scene2d.Stage;
|
||||
import com.badlogic.gdx.utils.Array;
|
||||
import com.badlogic.gdx.utils.Pool;
|
||||
|
||||
import zero1hd.polyjet.audio.map.EntitySpawnInfo;
|
||||
import zero1hd.polyjet.entity.ally.Laser;
|
||||
import zero1hd.polyjet.entity.enemies.Bar;
|
||||
import zero1hd.polyjet.entity.enemies.Flake;
|
||||
@@ -106,6 +111,61 @@ public class EntityController {
|
||||
}
|
||||
}
|
||||
|
||||
public Entity spawnEntity(Stage stage, EntitySpawnInfo entitySpawnInfo) {
|
||||
if (entitySpawnInfo != null) {
|
||||
float[] param = entitySpawnInfo.getParameters();
|
||||
Gdx.app.debug("Spawning Entity", entitySpawnInfo.toString() + " parameters: " + Arrays.toString(param));
|
||||
switch (entitySpawnInfo.getEntityType()) {
|
||||
case VOID_CIRCLE:
|
||||
VoidCircle voidCircle = voidCirclePool.obtain();
|
||||
voidCircle.init(param[0], param[1], param[2], param[3], param[4]);
|
||||
activeEnemies.add(voidCircle);
|
||||
stage.addActor(voidCircle);
|
||||
return voidCircle;
|
||||
case LASER:
|
||||
Laser laser = laserPool.obtain();
|
||||
laser.init(param[0], param[1], param[2]);
|
||||
activeAllies.add(laser);
|
||||
stage.addActor(laser);
|
||||
return laser;
|
||||
case PELLET:
|
||||
Pellet pellet = pelletPool.obtain();
|
||||
pellet.init(param[0], param[1], param[2], param[3]);
|
||||
activeEnemies.add(pellet);
|
||||
stage.addActor(pellet);
|
||||
return pellet;
|
||||
case SHARD:
|
||||
Shard shard = shardPool.obtain();
|
||||
shard.init(param[0], param[1], param[2], param[3], (int) param[4]);
|
||||
activeEnemies.add(shard);
|
||||
stage.addActor(shard);
|
||||
return shard;
|
||||
case BAR:
|
||||
Bar bar = barPool.obtain();
|
||||
bar.init(param[0], param[1]);
|
||||
activeEnemies.add(bar);
|
||||
stage.addActor(bar);
|
||||
return bar;
|
||||
case FLAKE:
|
||||
Flake flake = flakePool.obtain();
|
||||
Shard[] shards = new Shard[(int) param[0]];
|
||||
for (int i = 0; i < shards.length; i++) {
|
||||
shards[i] = (Shard) retrieveEntity(Entities.SHARD);
|
||||
shards[i].init(param[6], param[7], param[8], param[9], (int) param[10]);
|
||||
stage.addActor(shards[i]);
|
||||
}
|
||||
flake.init(param[1], param[2], param[3], param[4], param[5], shards);
|
||||
activeEnemies.add(flake);
|
||||
stage.addActor(flake);
|
||||
return flake;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public void free(Entity entity) {
|
||||
if (entity.getEntityType().isEnemy()) {
|
||||
activeEnemies.removeValue(entity, true);
|
||||
|
Reference in New Issue
Block a user