const void AnimationTester::keyboardListener(KeyboardEvent& event){
	if (event.isCancelled()){
		return;
	}
	if (event.pressed()){
		switch (event.key()){
		case Keyboard::Escape:
			window->close();
			break;
		case Keyboard::S:
			if (manager->inputManager->isPressed(Keyboard::LControl)){
				save();
			}
			break;
		case Keyboard::F5:
			load();
			break;
		case Keyboard::P:
			if (d != NULL && event.first()){
				if (repeat){
					if (d->nextAnimation == "idle"){
						d->nextAnimation = "animation";
					}
					else{
						d->nextAnimation = "idle";
					}
					logger::info("State: " + d->nextAnimation);
				}
				else{
					d->currentAnimation = "animation";
					d->startTime = world->time();
				}
			}
			break;
		case Keyboard::R:
			if (!(repeat = !repeat)){
				d->nextAnimation = "idle";
			}
			logger::info("Repeating: " + string(repeat ? "yes" : "no"));
			break;
		case Keyboard::Add:
			if (a != NULL){
				if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){
					a->timing += sf::milliseconds(10);
				}
				else{
					a->timing += sf::milliseconds(1);
				}
				if (a->timing < milliseconds(1)){
					a->timing = milliseconds(1);
				}
				logger::info("Timing: " + to_string(a->timing.asMilliseconds()));
			}
			break;
		case Keyboard::Subtract:
			if (a != NULL){
				if (manager->inputManager->isPressed(sf::Keyboard::Key::LShift)){
					a->timing -= sf::milliseconds(10);
				}
				else{
					a->timing -= sf::milliseconds(1);
				}
				if (a->timing < milliseconds(1)){
					a->timing = milliseconds(1);
				}
				logger::info("Timing: " + to_string(a->timing.asMilliseconds()));
			}
			break;
		}
	}
}