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))
)
);
}
}