ModelPlugin class

Пакет: com.hypixel.hytale.builtin.model

Файл: com/hypixel/hytale/builtin/model/ModelPlugin.java

extends: JavaPlugin

Поля (5)

МодификаторыТипИмя
Map var2
ModelComponent var5
Model var6
ModelAsset var7
Model var8

Методы (4)

МодификаторыВозвратСигнатура
private void checkForModelUpdatevoid checkForModelUpdate(@Nonnull Map<String, ModelAsset> var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4)
if if(var7 != null)
abstract super super(var1)
private void updateModelAssetsvoid updateModelAssets(@Nonnull LoadedAssetsEvent<String, ModelAsset, DefaultAssetMap<String, ModelAsset>> var1)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.event.LoadedAssetsEvent;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.builtin.model.commands.ModelCommand;
class="kw">import com.hypixel.hytale.component.ArchetypeChunk;
class="kw">import com.hypixel.hytale.component.CommandBuffer;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.Model;
class="kw">import com.hypixel.hytale.server.core.asset.type.model.config.ModelAsset;
class="kw">import com.hypixel.hytale.server.core.modules.entity.component.ModelComponent;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPlugin;
class="kw">import com.hypixel.hytale.server.core.plugin.JavaPluginInit;
class="kw">import com.hypixel.hytale.server.core.universe.Universe;
class="kw">import com.hypixel.hytale.server.core.universe.world.storage.EntityStore;
class="kw">import java.util.Map;
class="kw">import javax.annotation.Nonnull;

class="kw">public class ModelPlugin class="kw">extends JavaPlugin {
   class="kw">public ModelPlugin(@Nonnull JavaPluginInit var1) {
      super(var1);
   }

   @Override
   class="kw">protected void setup() {
      this.getCommandRegistry().registerCommand(new ModelCommand());
      this.getEventRegistry().register(LoadedAssetsEvent.class, ModelAsset.class, this::updateModelAssets);
   }

   class="kw">private void checkForModelUpdate(
      @Nonnull Map<String, ModelAsset> var1, int var2, @Nonnull ArchetypeChunk<EntityStore> var3, @Nonnull CommandBuffer<EntityStore> var4
   ) {
      ModelComponent var5 = var3.getComponent(var2, ModelComponent.getComponentType());
      Model var6 = var5.getModel();
      ModelAsset var7 = var1.get(var6.getModelAssetId());
      if (var7 != null) {
         Model var8 = Model.createScaledModel(var7, var6.getScale(), var6.getRandomAttachmentIds());
         var4.putComponent(var3.getReferenceTo(var2), ModelComponent.getComponentType(), new ModelComponent(var8));
      }
   }

   class="kw">private void updateModelAssets(@Nonnull LoadedAssetsEvent<String, ModelAsset, DefaultAssetMap<String, ModelAsset>> var1) {
      Map var2 = var1.getLoadedAssets();
      Universe.get()
         .getWorlds()
         .forEach(
            (var2x, var3) -> var3.execute(
               () -> var3.getEntityStore()
                  .getStore()
                  .forEachEntityParallel(ModelComponent.getComponentType(), (var2xx, var3x, var4) -> this.checkForModelUpdate(var2, var2xx, var3x, var4))
            )
         );
   }
}