package com.jenjinstudios.demo.server.message;
import com.jenjinstudios.core.io.Message;
import com.jenjinstudios.demo.server.Bullet;
import com.jenjinstudios.world.Actor;
import com.jenjinstudios.world.World;
import com.jenjinstudios.world.server.WorldClientHandler;
import com.jenjinstudios.world.server.WorldServer;
import com.jenjinstudios.world.server.message.WorldExecutableMessage;
/**
* @author Caleb Brinkman
*/
public class ExecutableFireRequest extends WorldExecutableMessage
{
/**
* Construct a new ExecutableMessage. Must be implemented by subclasses.
* @param handler The handler using this ExecutableMessage.
* @param message The message.
*/
public ExecutableFireRequest(WorldClientHandler handler, Message message) {
super(handler, message);
}
/** Run the synced portion of this message. */
@Override
public void runDelayed() {
World world = ((WorldServer) getClientHandler().getServer()).getWorld();
Actor player = getClientHandler().getPlayer();
Bullet bullet = new Bullet(player);
world.getWorldObjects().add(bullet);
}
/** Run asynchronous portion of this message. */
@Override
public void runImmediate() {
}
}