Search in sources :

Example 1 with ChestClientContainer

use of org.lanternpowered.server.inventory.client.ChestClientContainer 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)

Aggregations

Function (java.util.function.Function)1 LanternEntity (org.lanternpowered.server.entity.LanternEntity)1 PluginCatalogRegistryModule (org.lanternpowered.server.game.registry.PluginCatalogRegistryModule)1 AbstractInventory (org.lanternpowered.server.inventory.AbstractInventory)1 AnvilClientContainer (org.lanternpowered.server.inventory.client.AnvilClientContainer)1 BeaconClientContainer (org.lanternpowered.server.inventory.client.BeaconClientContainer)1 BrewingStandClientContainer (org.lanternpowered.server.inventory.client.BrewingStandClientContainer)1 ChestClientContainer (org.lanternpowered.server.inventory.client.ChestClientContainer)1 ClientContainer (org.lanternpowered.server.inventory.client.ClientContainer)1 ClientContainerType (org.lanternpowered.server.inventory.client.ClientContainerType)1 CraftingTableClientContainer (org.lanternpowered.server.inventory.client.CraftingTableClientContainer)1 DispenserClientContainer (org.lanternpowered.server.inventory.client.DispenserClientContainer)1 EnchantmentTableClientContainer (org.lanternpowered.server.inventory.client.EnchantmentTableClientContainer)1 EntityEquipmentClientContainer (org.lanternpowered.server.inventory.client.EntityEquipmentClientContainer)1 FurnaceClientContainer (org.lanternpowered.server.inventory.client.FurnaceClientContainer)1 HopperClientContainer (org.lanternpowered.server.inventory.client.HopperClientContainer)1 ShulkerBoxClientContainer (org.lanternpowered.server.inventory.client.ShulkerBoxClientContainer)1 TradingClientContainer (org.lanternpowered.server.inventory.client.TradingClientContainer)1 Entity (org.spongepowered.api.entity.Entity)1 Carrier (org.spongepowered.api.item.inventory.Carrier)1