everytime I try to delete or create some bodies I get this error log here :
I delete / Create my bodies so :
Delete :
@Override
public void onDead() {
super.onDead();
/*
attackTimer.cancel();
attackTimer.purge();
resetTimer.cancel();
resetTimer.purge();
*/
if(!game.hostServer && ! gameScreen.launcher.network.client.isConnected()){
boolean spawned = false;
while(!spawned){
int rdmChance = ThreadLocalRandom.current().nextInt(-2, 1 + 1);
switch (rdmChance) {
default :
spawned = true;
break;
case 1:
HealthTank spawnedTank = new HealthTank(gameScreen, entityBody.getPosition());
gameScreen.items.add(spawnedTank);
spawned = true;
break;
}
}
}
if(!gameScreen.lightManager.world.isLocked() && entityBody.getUserData() != null && entityBody != null ){
entityBody.setUserData(null);
activated = false;
gameScreen.lightManager.world.destroyBody(entityBody);
}
removeNetworkEntity();
}
Create :
public void randomizeSpawning(){
int enemyCounter = 0;
while(enemyCounter < enemyCount){
int x = ThreadLocalRandom.current().nextInt(0, 49 + 1);
int y = ThreadLocalRandom.current().nextInt(0, 49 + 1);
if(game.grid[y][x] == 1 && SteeringUtils.distanz(new Vector2(x, y), new Vector2(gameScreen.playerEntity.getPosition().x, gameScreen.playerEntity.getPosition().y)) > 500){
if(!gameScreen.lightManager.world.isLocked()){
Body body = gameScreen.createCircleBody(new Vector2(x*Box2dVars.UNIT,y*Box2dVars.UNIT), 20, 0);
EnemyEntity entity = new EnemyEntity(gameScreen, body);
entity.setUpBehaviors(gameScreen.playerEntity);
gameScreen.enemyEntityList.add(entity);
PacketMPMob mob = new PacketMPMob();
mob.listId = enemyCounter;
mob.id = gameScreen.launcher.network.client.getID();
mob.position = new Vector2(entity.getPosition().x * Box2dVars.UNIT, entity.getPosition().y * Box2dVars.UNIT);
mob.state = entity.getState();
mob.isAlive = true;
gameScreen.launcher.mobsList.add(enemyCounter, mob);
PacketAddMob addMob = new PacketAddMob();
addMob.id = gameScreen.launcher.network.client.getID();
addMob.listId = enemyCounter;
addMob.position = new Vector2(entity.getPosition().x * Box2dVars.UNIT, entity.getPosition().y * Box2dVars.UNIT);
System.err.println("POSITIONS : "+new Vector2(entity.getPosition().x * Box2dVars.UNIT, entity.getPosition().y * Box2dVars.UNIT));
gameScreen.launcher.network.client.sendTCP(addMob);
enemyCounter++;
}
}
}
}
What am I doing wrong? I check if the world is locked and if than I'll create :/
--Push--
Still no solution, also i just found out that this only appears, when i destroy a body and right after that spawn a new one