System class

Пакет: com.hypixel.hytale.component.system

Файл: com/hypixel/hytale/component/system/System.java

implements: ISystem<ECS_TYPE>

Поля (2)

МодификаторыТипИмя
ComponentType var5
ResourceType var5

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.component.system;

class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.component.Component;
class="kw">import com.hypixel.hytale.component.ComponentRegistration;
class="kw">import com.hypixel.hytale.component.ComponentType;
class="kw">import com.hypixel.hytale.component.Resource;
class="kw">import com.hypixel.hytale.component.ResourceRegistration;
class="kw">import com.hypixel.hytale.component.ResourceType;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectList;
class="kw">import java.util.List;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class="kw">abstract class System<ECS_TYPE> class="kw">implements ISystem<ECS_TYPE> {
   @Nonnull
   class="kw">private class="kw">final ObjectList<ComponentRegistration<ECS_TYPE, ?>> componentRegistrations = new ObjectArrayList();
   @Nonnull
   class="kw">private class="kw">final ObjectList<ResourceRegistration<ECS_TYPE, ?>> resourceRegistrations = new ObjectArrayList();

   class="kw">public System() {
   }

   @Nonnull
   class="kw">protected <T class="kw">extends Component<ECS_TYPE>> ComponentType<ECS_TYPE, T> registerComponent(@Nonnull Class<? super T> var1, @Nonnull Supplier<T> var2) {
      class="kw">return this.registerComponent(var1, null, null, var2);
   }

   @Nonnull
   class="kw">protected <T class="kw">extends Component<ECS_TYPE>> ComponentType<ECS_TYPE, T> registerComponent(
      @Nonnull Class<? super T> var1, @Nonnull String var2, @Nonnull BuilderCodec<T> var3
   ) {
      class="kw">return this.registerComponent(var1, var2, var3, var3::getDefaultValue);
   }

   @Nonnull
   class="kw">protected <T class="kw">extends Component<ECS_TYPE>> ComponentType<ECS_TYPE, T> registerComponent(
      @Nonnull Class<? super T> var1, @Nullable String var2, @Nullable BuilderCodec<T> var3, @Nonnull Supplier<T> var4
   ) {
      ComponentType var5 = new ComponentType<>();
      this.componentRegistrations.add(new ComponentRegistration<>(var1, var2, var3, var4, var5));
      class="kw">return var5;
   }

   @Nonnull
   class="kw">public <T class="kw">extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE, T> registerResource(@Nonnull Class<? super T> var1, @Nonnull Supplier<T> var2) {
      class="kw">return this.registerResource(var1, null, null, var2);
   }

   @Nonnull
   class="kw">public <T class="kw">extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE, T> registerResource(
      @Nonnull Class<? super T> var1, @Nonnull String var2, @Nonnull BuilderCodec<T> var3
   ) {
      class="kw">return this.registerResource(var1, var2, var3, var3::getDefaultValue);
   }

   @Nonnull
   class="kw">private <T class="kw">extends Resource<ECS_TYPE>> ResourceType<ECS_TYPE, T> registerResource(
      @Nonnull Class<? super T> var1, @Nullable String var2, @Nullable BuilderCodec<T> var3, @Nonnull Supplier<T> var4
   ) {
      ResourceType var5 = new ResourceType<>();
      this.resourceRegistrations.add(new ResourceRegistration<>(var1, var2, var3, var4, var5));
      class="kw">return var5;
   }

   @Nonnull
   class="kw">public List<ComponentRegistration<ECS_TYPE, ?>> getComponentRegistrations() {
      class="kw">return this.componentRegistrations;
   }

   @Nonnull
   class="kw">public List<ResourceRegistration<ECS_TYPE, ?>> getResourceRegistrations() {
      class="kw">return this.resourceRegistrations;
   }
}