Search in sources :

Example 11 with LanternEntity

use of org.lanternpowered.server.entity.LanternEntity in project LanternServer by LanternPowered.

the class ClientContainerRegistryModule method registerDefaults.

@Override
public void registerDefaults() {
    register("minecraft", "chest", inventory -> {
        final int rows = inventory.getInventoryProperty(InventoryCapacity.class).map(capacity -> (int) Math.ceil(capacity.getValue().doubleValue() / 9.0)).orElse(1);
        return new ChestClientContainer(rows);
    });
    register("minecraft", "furnace", inventory -> new FurnaceClientContainer());
    register("minecraft", "dispenser", inventory -> new DispenserClientContainer());
    register("minecraft", "crafting_table", inventory -> new CraftingTableClientContainer());
    register("minecraft", "brewing_stand", inventory -> new BrewingStandClientContainer());
    register("minecraft", "hopper", inventory -> new HopperClientContainer());
    register("minecraft", "beacon", inventory -> new BeaconClientContainer());
    register("minecraft", "enchanting_table", inventory -> new EnchantmentTableClientContainer());
    register("minecraft", "anvil", inventory -> new AnvilClientContainer());
    register("minecraft", "villager", inventory -> new TradingClientContainer());
    register("minecraft", "horse", inventory -> {
        int capacity = inventory.capacity();
        capacity -= 2;
        capacity = (int) Math.ceil((float) capacity / 3);
        int entityId = -1;
        if (inventory instanceof CarriedInventory) {
            final Carrier carrier = ((CarriedInventory<Carrier>) inventory).getCarrier().orElse(null);
            if (carrier instanceof Entity) {
                final LanternEntity entity = (LanternEntity) carrier;
                entityId = entity.getWorld().getEntityProtocolManager().getProtocolId(entity);
            }
        }
        if (entityId == -1) {
            throw new IllegalStateException("Invalid carrier entity to create a container.");
        }
        // TODO: Dummy entity support?
        return new EntityEquipmentClientContainer(capacity, entityId);
    });
    register("minecraft", "shulker_box", inventory -> new ShulkerBoxClientContainer());
}
Also used : ChestClientContainer(org.lanternpowered.server.inventory.client.ChestClientContainer) TradingClientContainer(org.lanternpowered.server.inventory.client.TradingClientContainer) EnchantmentTableClientContainer(org.lanternpowered.server.inventory.client.EnchantmentTableClientContainer) LanternEntity(org.lanternpowered.server.entity.LanternEntity) ClientContainerType(org.lanternpowered.server.inventory.client.ClientContainerType) GuiId(org.spongepowered.api.item.inventory.property.GuiId) CraftingTableClientContainer(org.lanternpowered.server.inventory.client.CraftingTableClientContainer) Carrier(org.spongepowered.api.item.inventory.Carrier) Entity(org.spongepowered.api.entity.Entity) Function(java.util.function.Function) DispenserClientContainer(org.lanternpowered.server.inventory.client.DispenserClientContainer) InventoryCapacity(org.spongepowered.api.item.inventory.property.InventoryCapacity) AnvilClientContainer(org.lanternpowered.server.inventory.client.AnvilClientContainer) FurnaceClientContainer(org.lanternpowered.server.inventory.client.FurnaceClientContainer) EntityEquipmentClientContainer(org.lanternpowered.server.inventory.client.EntityEquipmentClientContainer) PluginCatalogRegistryModule(org.lanternpowered.server.game.registry.PluginCatalogRegistryModule) BrewingStandClientContainer(org.lanternpowered.server.inventory.client.BrewingStandClientContainer) GuiIds(org.spongepowered.api.item.inventory.property.GuiIds) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) ClientContainer(org.lanternpowered.server.inventory.client.ClientContainer) HopperClientContainer(org.lanternpowered.server.inventory.client.HopperClientContainer) ShulkerBoxClientContainer(org.lanternpowered.server.inventory.client.ShulkerBoxClientContainer) AbstractInventory(org.lanternpowered.server.inventory.AbstractInventory) BeaconClientContainer(org.lanternpowered.server.inventory.client.BeaconClientContainer) LanternEntity(org.lanternpowered.server.entity.LanternEntity) Entity(org.spongepowered.api.entity.Entity) DispenserClientContainer(org.lanternpowered.server.inventory.client.DispenserClientContainer) CarriedInventory(org.spongepowered.api.item.inventory.type.CarriedInventory) TradingClientContainer(org.lanternpowered.server.inventory.client.TradingClientContainer) FurnaceClientContainer(org.lanternpowered.server.inventory.client.FurnaceClientContainer) BrewingStandClientContainer(org.lanternpowered.server.inventory.client.BrewingStandClientContainer) ShulkerBoxClientContainer(org.lanternpowered.server.inventory.client.ShulkerBoxClientContainer) ChestClientContainer(org.lanternpowered.server.inventory.client.ChestClientContainer) CraftingTableClientContainer(org.lanternpowered.server.inventory.client.CraftingTableClientContainer) EntityEquipmentClientContainer(org.lanternpowered.server.inventory.client.EntityEquipmentClientContainer) AnvilClientContainer(org.lanternpowered.server.inventory.client.AnvilClientContainer) EnchantmentTableClientContainer(org.lanternpowered.server.inventory.client.EnchantmentTableClientContainer) BeaconClientContainer(org.lanternpowered.server.inventory.client.BeaconClientContainer) HopperClientContainer(org.lanternpowered.server.inventory.client.HopperClientContainer) Carrier(org.spongepowered.api.item.inventory.Carrier) LanternEntity(org.lanternpowered.server.entity.LanternEntity)

Example 12 with LanternEntity

use of org.lanternpowered.server.entity.LanternEntity in project LanternServer by LanternPowered.

the class SoftBufferExtentViewDownsize method getEntities.

@Override
public Collection<Entity> getEntities() {
    final Collection<Entity> entities = this.extent.getEntities();
    for (Iterator<Entity> iterator = entities.iterator(); iterator.hasNext(); ) {
        final Entity entity = iterator.next();
        final Vector3d pos = ((LanternEntity) entity).getPosition();
        if (!VecHelper.inBounds(pos.getX(), pos.getY(), pos.getZ(), this.blockMin, this.blockMax)) {
            iterator.remove();
        }
    }
    return entities;
}
Also used : LanternEntity(org.lanternpowered.server.entity.LanternEntity) TileEntity(org.spongepowered.api.block.tileentity.TileEntity) Entity(org.spongepowered.api.entity.Entity) Vector3d(com.flowpowered.math.vector.Vector3d) LanternEntity(org.lanternpowered.server.entity.LanternEntity)

Aggregations

LanternEntity (org.lanternpowered.server.entity.LanternEntity)12 LanternChunk (org.lanternpowered.server.world.chunk.LanternChunk)4 Vector3i (com.flowpowered.math.vector.Vector3i)3 LanternEntityType (org.lanternpowered.server.entity.LanternEntityType)3 InvalidDataException (org.spongepowered.api.data.persistence.InvalidDataException)3 Entity (org.spongepowered.api.entity.Entity)3 Vector3d (com.flowpowered.math.vector.Vector3d)2 Short2ObjectMap (it.unimi.dsi.fastutil.shorts.Short2ObjectMap)2 Short2ObjectOpenHashMap (it.unimi.dsi.fastutil.shorts.Short2ObjectOpenHashMap)2 DataInputStream (java.io.DataInputStream)2 ArrayList (java.util.ArrayList)2 Nullable (javax.annotation.Nullable)2 LanternTileEntity (org.lanternpowered.server.block.tile.LanternTileEntity)2 IdentifiableObjectStore (org.lanternpowered.server.data.io.store.IdentifiableObjectStore)2 ObjectStore (org.lanternpowered.server.data.io.store.ObjectStore)2 NbtDataContainerInputStream (org.lanternpowered.server.data.persistence.nbt.NbtDataContainerInputStream)2 DataView (org.spongepowered.api.data.DataView)2 Inject (com.google.inject.Inject)1 Singleton (com.google.inject.Singleton)1 Named (com.google.inject.name.Named)1