package rescuecore2.messages.components;
import static rescuecore2.misc.EncodingTools.readEntity;
import static rescuecore2.misc.EncodingTools.writeEntity;
import rescuecore2.messages.AbstractMessageComponent;
import rescuecore2.worldmodel.Entity;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.IOException;
/**
An Entity component to a message.
*/
public class EntityComponent extends AbstractMessageComponent {
private Entity entity;
/**
Construct an EntityComponent with no content.
@param name The name of the component.
*/
public EntityComponent(String name) {
super(name);
entity = null;
}
/**
Construct an EntityComponent with a specific entity value.
@param name The name of the component.
@param entity The value of this component.
*/
public EntityComponent(String name, Entity entity) {
super(name);
this.entity = entity;
}
/**
Get the entity.
@return The entity.
*/
public Entity getEntity() {
return entity;
}
/**
Set the entity.
@param e The new entity.
*/
public void setEntity(Entity e) {
entity = e;
}
@Override
public void write(OutputStream out) throws IOException {
writeEntity(entity, out);
}
@Override
public void read(InputStream in) throws IOException {
entity = readEntity(in);
}
@Override
public String toString() {
return getName() + " = " + entity.toString();
}
}