HyCodeYourTale
classpublicPriority 3

ReferenceSlotMapper

com.hypixel.hytale.server.npc.asset.builder.ReferenceSlotMapper

extends SlotMapper

2

Methods

2

Public Methods

1

Fields

2

Constructors

Constructors

public
ReferenceSlotMapper(Supplier<T> slotSupplier)
public
ReferenceSlotMapper(Supplier<T> slotSupplier, boolean trackNames)

Methods

Public Methods (2)

public
T getReference(String name)
public
List<T> getReferenceList()

Fields

Private/Package Fields (1)

privateSupplier<T> slotSupplier

Inheritance

Parent
Current
Interface
Child

Use mouse wheel to zoom, drag to pan. Click nodes to navigate.

Source Code

package com.hypixel.hytale.server.npc.asset.builder;

import it.unimi.dsi.fastutil.objects.ObjectArrayList;
import java.util.List;
import java.util.function.Supplier;

public class ReferenceSlotMapper<T> extends SlotMapper {
   private final List<T> list = new ObjectArrayList();
   private final Supplier<T> slotSupplier;

   public ReferenceSlotMapper(Supplier<T> slotSupplier) {
      this.slotSupplier = slotSupplier;
   }

   public ReferenceSlotMapper(Supplier<T> slotSupplier, boolean trackNames) {
      super(trackNames);
      this.slotSupplier = slotSupplier;
   }

   public T getReference(String name) {
      int slot = this.getSlot(name);
      if (slot < this.list.size()) {
         return this.list.get(slot);
      } else {
         T object = this.slotSupplier.get();
         this.list.add(object);
         return object;
      }
   }

   public List<T> getReferenceList() {
      return this.list;
   }
}