ItemContainerBlock class

Пакет: com.hypixel.hytale.server.core.modules.block.components

Файл: com/hypixel/hytale/server/core/modules/block/components/ItemContainerBlock.java

implements: Component<ChunkStore>

Поля (1)

МодификаторыТипИмя
final BuilderCodec<ItemContainerBlock> CODEC

Методы (5)

МодификаторыВозвратСигнатура
public short getCapacityshort getCapacity()
static ComponentType<ChunkStore, ItemContainerBlock> getComponentTypeComponentType<ChunkStore, ItemContainerBlock> getComponentType()
if if(this.itemContainer == null)
public void setDroplistvoid setDroplist(@Nullable String var1)
public void setItemContainervoid setItemContainer(@Nonnull SimpleItemContainer var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.modules.block.components;

class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.codec.validation.Validators;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.ItemDropList;
class="kw">import com.hypixel.hytale.server.core.entity.entities.player.windows.ContainerBlockWindow;
class="kw">import com.hypixel.hytale.server.core.inventory.container.SimpleItemContainer;
class="kw">import com.hypixel.hytale.server.core.modules.block.BlockModule;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.ChunkStore;
class="kw">import java.util.Map;
class="kw">import java.util.UUID;
class="kw">import java.util.concurrent.ConcurrentHashMap;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ItemContainerBlock class="kw">implements Component<ChunkStore> {
   class="kw">public class="kw">static class="kw">final BuilderCodec<ItemContainerBlock> CODEC = BuilderCodec.builder(ItemContainerBlock.class, ItemContainerBlock::new)
      .appendInherited(
         new KeyedCodec<>("Droplist", Codec.STRING), (var0, var1) -> var0.droplist = var1, var0 -> var0.droplist, (var0, var1) -> var0.droplist = var1.droplist
      )
      .addValidator(ItemDropList.LENIENT_REFERENCE_VALIDATOR)
      .add()
      .appendInherited(
         new KeyedCodec<>("ItemContainer", SimpleItemContainer.CODEC),
         (var0, var1) -> var0.itemContainer = var1,
         var0 -> var0.itemContainer,
         (var0, var1) -> var0.itemContainer = var1.itemContainer.clone()
      )
      .add()
      .<Short>appendInherited(
         new KeyedCodec<>("Capacity", Codec.SHORT), (var0, var1) -> var0.capacity = var1, var0 -> var0.capacity, (var0, var1) -> var0.capacity = var1.capacity
      )
      .addValidator(Validators.greaterThan((short)0))
      .add()
      .build();
   class="kw">private class="kw">final class="kw">transient Map<UUID, ContainerBlockWindow> windows = new ConcurrentHashMap<>();
   @Nullable
   class="kw">protected String droplist;
   @Nullable
   class="kw">protected SimpleItemContainer itemContainer;
   class="kw">protected short capacity = 20;

   class="kw">public class="kw">static ComponentType<ChunkStore, ItemContainerBlock> getComponentType() {
      class="kw">return BlockModule.get().getItemContainerBlockComponentType();
   }

   class="kw">private ItemContainerBlock() {
   }

   class="kw">public ItemContainerBlock(ItemContainerBlock var1) {
      this.droplist = var1.droplist;
      this.itemContainer = var1.itemContainer != null ? var1.itemContainer.clone() : null;
      this.capacity = var1.capacity;
   }

   class="kw">public void setItemContainer(@Nonnull SimpleItemContainer var1) {
      this.itemContainer = var1;
   }

   @Nullable
   class="kw">public String getDroplist() {
      class="kw">return this.droplist;
   }

   class="kw">public void setDroplist(@Nullable String var1) {
      this.droplist = var1;
   }

   @Nonnull
   class="kw">public Map<UUID, ContainerBlockWindow> getWindows() {
      class="kw">return this.windows;
   }

   @Nonnull
   class="kw">public SimpleItemContainer getItemContainer() {
      if (this.itemContainer == null) {
         this.itemContainer = new SimpleItemContainer(this.capacity);
      }

      class="kw">return this.itemContainer;
   }

   class="kw">public short getCapacity() {
      class="kw">return this.capacity;
   }

   @Nullable
   @Override
   class="kw">public Component<ChunkStore> clone() {
      class="kw">return new ItemContainerBlock(this);
   }
}