package com.jenjinstudios.world.client.message; import com.jenjinstudios.core.io.Message; import com.jenjinstudios.world.WorldObject; import com.jenjinstudios.world.client.WorldClient; import com.jenjinstudios.world.math.Vector2D; /** * Process an ActorVisibleMessage. * * @author Caleb Brinkman */ @SuppressWarnings("WeakerAccess") public class ExecutableObjectVisibleMessage extends WorldClientExecutableMessage { /** The newly visible actor. */ WorldObject newlyVisible; /** * Construct an ExecutableMessage with the given Message. * * @param client The client invoking this message. * @param message The Message. */ public ExecutableObjectVisibleMessage(WorldClient client, Message message) { super(client, message); } @Override public void runDelayed() { getConnection().getWorld().getWorldObjects().set(newlyVisible.getId(), newlyVisible); } @Override public void runImmediate() { Message message = getMessage(); String name = (String) message.getArgument("name"); int id = (int) message.getArgument("id"); int resourceID = (int) message.getArgument("resourceID"); double xCoordinate = (double) message.getArgument("xCoordinate"); double yCoordinate = (double) message.getArgument("yCoordinate"); Vector2D vector2D = new Vector2D(xCoordinate, yCoordinate); newlyVisible = new WorldObject(name); newlyVisible.setId(id); newlyVisible.setResourceID(resourceID); newlyVisible.setVector2D(vector2D); } }