private void updateEvents() { ArrayList<Object> del = new ArrayList<Object>(); synchronized (WorldController.events) { for (Object event : WorldController.events) { // Add Player if (event instanceof AddCharacter) { AddCharacter msg = (AddCharacter) event; CharacterObject newPlayer; if (msg.character.type == 1) { newPlayer = new TouriCharacterObject(msg.character.x, msg.character.y); } else { newPlayer = new KannibaleCharacterObject(msg.character.x, msg.character.y); } newPlayer.setNick(msg.character.nick); objs.addObject(msg.character.id, newPlayer); // System.out.println("New Character #"+msg.character.id); del.add(event); continue; } if (event instanceof AssignCharacter) { AssignCharacter msg = (AssignCharacter) event; CharacterObject playerObj; if (msg.type == 1) { Vector2 vec = getRandomPosition(); playerObj = new TouriCharacterObject(vec.x, vec.y); } else { Vector2 vec = getRandomPosition(); playerObj = new KannibaleCharacterObject(vec.x, vec.y); } playerObj.setNick(game.nickname); objs.addObject(msg.id, playerObj); controller.setPlayerObj(playerObj); // System.out.println("Set owen Character"); del.add(event); continue; } // Update Player if (event instanceof UpdateCharacter) { UpdateCharacter msg = (UpdateCharacter) event; CharacterObject player = (CharacterObject) objs.getObject(msg.id); if (player != null) { player.currentPosition = new Vector2(msg.x, msg.y); player.direction = Direction.values()[msg.direction]; player.idle = msg.idle; } del.add(event); continue; } // Remove Player if (event instanceof RemoveCharacter) { RemoveCharacter msg = (RemoveCharacter) event; CharacterObject player = (CharacterObject) objs.getObject(msg.id); if (player != null) { objs.removeObject(player); // System.out.println("Remove Player #"+msg.id); } del.add(event); continue; } // HitCharacter if (event instanceof HitCharacter) { HitCharacter msg = (HitCharacter) event; CharacterObject player = (CharacterObject) objs.getObject(msg.id); if (player != null) { // System.out.println("Player HIT "+msg.id); } del.add(event); continue; } // Dead Character if (event instanceof DeadCharacter) { DeadCharacter msg = (DeadCharacter) event; CharacterObject player = (CharacterObject) objs.getObject(msg.id); if (player != null) { player.isDead = true; } del.add(event); continue; } // Checkpoint Checked if (event instanceof CheckpointCheck) { CheckpointCheck msg = (CheckpointCheck) event; for (GameObject obj : objs.getObjects()) { if (obj instanceof CheckpointGameObject) { CheckpointGameObject cObj = (CheckpointGameObject) obj; if (cObj.checkpointID == obj.id) { cObj.checked = true; } } } } } } for (Object event : del) { WorldController.events.remove(event); } }