Search in sources :

Example 6 with ClientPacketsProcessor

use of io.xol.chunkstories.api.client.net.ClientPacketsProcessor in project chunkstories-api by Hugobros3.

the class PacketDecal method process.

@Override
public void process(PacketSender sender, DataInputStream in, PacketReceptionContext processor) throws IOException, PacketProcessingException {
    decalName = in.readUTF();
    Vector3d position = new Vector3d();
    position.x = (in.readDouble());
    position.y = (in.readDouble());
    position.z = (in.readDouble());
    Vector3d orientation = new Vector3d();
    orientation.x = (in.readDouble());
    orientation.y = (in.readDouble());
    orientation.z = (in.readDouble());
    Vector3d size = new Vector3d();
    size.x = (in.readDouble());
    size.y = (in.readDouble());
    size.z = (in.readDouble());
    if (processor instanceof ClientPacketsProcessor) {
        ClientPacketsProcessor cpp = (ClientPacketsProcessor) processor;
        cpp.getContext().getDecalsManager().drawDecal(position, orientation, size, decalName);
    }
}
Also used : ClientPacketsProcessor(io.xol.chunkstories.api.client.net.ClientPacketsProcessor) Vector3d(org.joml.Vector3d)

Example 7 with ClientPacketsProcessor

use of io.xol.chunkstories.api.client.net.ClientPacketsProcessor in project chunkstories-api by Hugobros3.

the class PacketEntity method process.

public void process(PacketSender sender, DataInputStream in, PacketReceptionContext processor) throws IOException, UnknownComponentException {
    long entityUUID = in.readLong();
    short entityTypeID = in.readShort();
    if (entityTypeID == -1)
        return;
    World world = processor.getWorld();
    if (world == null)
        return;
    Entity entity = world.getEntityByUUID(entityUUID);
    boolean addToWorld = false;
    // Create an entity if the servers tells you to do so
    if (entity == null) {
        if (world instanceof WorldMaster && sender instanceof RemotePlayer) {
            ((Player) sender).sendMessage("You are sending packets to the server about a removed entity. Ignoring those.");
            return;
        } else {
            entity = processor.getWorld().getContentTranslator().getEntityForId(entityTypeID).create(// This is technically wrong
            new Location(world, 0, 0, 0));
            entity.setUUID(entityUUID);
            addToWorld = true;
        }
    }
    int componentId = in.readInt();
    // Loop throught all components
    while (componentId != 0) {
        try {
            entity.getComponents().tryPullComponentInStream(componentId, sender, in);
        } catch (UnknownComponentException e) {
            processor.logger().warn(e.getMessage());
        }
        componentId = in.readInt();
    }
    // Add to world if it was missing and we didn't receive the despawn flag
    if (addToWorld && entity.exists()) {
        // Only the WorldMaster is allowed to spawn new entities in the world
        if (processor instanceof ClientPacketsProcessor)
            processor.getWorld().addEntity(entity);
    }
}
Also used : Entity(io.xol.chunkstories.api.entity.Entity) Player(io.xol.chunkstories.api.player.Player) RemotePlayer(io.xol.chunkstories.api.server.RemotePlayer) ClientPacketsProcessor(io.xol.chunkstories.api.client.net.ClientPacketsProcessor) RemotePlayer(io.xol.chunkstories.api.server.RemotePlayer) UnknownComponentException(io.xol.chunkstories.api.exceptions.UnknownComponentException) World(io.xol.chunkstories.api.world.World) PacketWorld(io.xol.chunkstories.api.net.PacketWorld) WorldMaster(io.xol.chunkstories.api.world.WorldMaster) Location(io.xol.chunkstories.api.Location)

Aggregations

ClientPacketsProcessor (io.xol.chunkstories.api.client.net.ClientPacketsProcessor)7 Vector3d (org.joml.Vector3d)5 Location (io.xol.chunkstories.api.Location)1 Entity (io.xol.chunkstories.api.entity.Entity)1 EntityControllable (io.xol.chunkstories.api.entity.interfaces.EntityControllable)1 EntityWithVelocity (io.xol.chunkstories.api.entity.interfaces.EntityWithVelocity)1 UnknownComponentException (io.xol.chunkstories.api.exceptions.UnknownComponentException)1 WorldException (io.xol.chunkstories.api.exceptions.world.WorldException)1 PacketWorld (io.xol.chunkstories.api.net.PacketWorld)1 Player (io.xol.chunkstories.api.player.Player)1 RemotePlayer (io.xol.chunkstories.api.server.RemotePlayer)1 SoundSource (io.xol.chunkstories.api.sound.SoundSource)1 Mode (io.xol.chunkstories.api.sound.SoundSource.Mode)1 Voxel (io.xol.chunkstories.api.voxel.Voxel)1 World (io.xol.chunkstories.api.world.World)1 WorldMaster (io.xol.chunkstories.api.world.WorldMaster)1 ChunkCell (io.xol.chunkstories.api.world.chunk.Chunk.ChunkCell)1 Vector3dc (org.joml.Vector3dc)1