ScriptedBrushAsset class

Пакет: com.hypixel.hytale.builtin.buildertools.scriptedbrushes

Файл: com/hypixel/hytale/builtin/buildertools/scriptedbrushes/ScriptedBrushAsset.java

implements: JsonAssetWithMap<String, DefaultAssetMap<String, ScriptedBrushAsset>>

Поля (10)

МодификаторыТипИмя
ASSET_MAP
final AssetBuilderCodec<String, ScriptedBrushAsset> CODEC
brushToItemCache
brushToItemCache
Map var0
Map var1
var1
Object2ObjectOpenHashMap var1
BuilderTool var4
ScriptedBrushAsset var5

Методы (9)

МодификаторыВозвратСигнатура
for for(BrushOperation var3 : this.operations)
if if(var1 != null)
if if(ASSET_MAP == null)
if if(var1 == null)
if if(var3 instanceof LoadOperationsFromAssetOperation var4)
if if(var5 != null)
if if(var7 instanceof GlobalBrushOperation)
static void invalidateBrushToItemCachevoid invalidateBrushToItemCache()
public void loadIntoExecutorvoid loadIntoExecutor(@Nonnull BrushConfigCommandExecutor var1)

Исходный код

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

class="kw">import com.hypixel.hytale.assetstore.AssetExtraInfo;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.codec.AssetBuilderCodec;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.JsonAssetWithMap;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.sequential.saveandload.LoadOperationsFromAssetOperation;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.BrushOperation;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.GlobalBrushOperation;
class="kw">import com.hypixel.hytale.builtin.buildertools.scriptedbrushes.operations.system.SequenceBrushOperation;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.codecs.array.ArrayCodec;
class="kw">import com.hypixel.hytale.server.core.asset.type.buildertool.config.BuilderTool;
class="kw">import com.hypixel.hytale.server.core.asset.type.item.config.Item;
class="kw">import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
class="kw">import it.unimi.dsi.fastutil.objects.ObjectArrayList;
class="kw">import java.util.Collections;
class="kw">import java.util.List;
class="kw">import java.util.Locale;
class="kw">import java.util.Map;
class="kw">import java.util.Map.Entry;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;

class="kw">public class ScriptedBrushAsset class="kw">implements JsonAssetWithMap<String, DefaultAssetMap<String, ScriptedBrushAsset>> {
   class="kw">public class="kw">static class="kw">final AssetBuilderCodec<String, ScriptedBrushAsset> CODEC = ((AssetBuilderCodec.Builder)AssetBuilderCodec.builder(
            ScriptedBrushAsset.class,
            ScriptedBrushAsset::new,
            Codec.STRING,
            (var0, var1) -> var0.id = var1,
            var0 -> var0.id,
            (var0, var1) -> var0.data = var1,
            var0 -> var0.data
         )
         .append(new KeyedCodec<>("Operations", new ArrayCodec<>(BrushOperation.OPERATION_CODEC, BrushOperation[]::new)), (var0, var1) -> {
            var0.operations = new ObjectArrayList();
            if (var1 != null) {
               Collections.addAll(var0.operations, var1);
            }
         }, var0 -> var0.operations != null ? var0.operations.toArray(new BrushOperation[0]) : new BrushOperation[0])
         .documentation("The list of brush operations to execute sequentially")
         .add()
         .documentation("A scripted brush asset containing multiple brush operations that will be executed sequentially"))
      .build();
   class="kw">private class="kw">static DefaultAssetMap<String, ScriptedBrushAsset> ASSET_MAP;
   class="kw">public class="kw">static class="kw">final String DEFAULT_EDITOR_TOOL_ID = "EditorTool_ScriptedBrushTemplate";
   @Nullable
   class="kw">private class="kw">static class="kw">volatile Map<String, String> brushToItemCache;
   class="kw">protected AssetExtraInfo.Data data;
   class="kw">protected String id;
   class="kw">protected List<BrushOperation> operations = new ObjectArrayList();

   @Nonnull
   class="kw">public class="kw">static DefaultAssetMap<String, ScriptedBrushAsset> getAssetMap() {
      if (ASSET_MAP == null) {
         ASSET_MAP = (DefaultAssetMap<String, ScriptedBrushAsset>)AssetRegistry.getAssetStore(ScriptedBrushAsset.class).getAssetMap();
      }

      class="kw">return ASSET_MAP;
   }

   @Nullable
   class="kw">public class="kw">static ScriptedBrushAsset get(@Nonnull String var0) {
      class="kw">return getAssetMap().getAsset(var0);
   }

   @Nullable
   class="kw">public class="kw">static String getEditorToolItemId(@Nonnull String var0) {
      Map var1 = brushToItemCache;
      if (var1 == null) {
         var1 = rebuildBrushToItemCache();
      }

      class="kw">return var1.get(var0);
   }

   @Nonnull
   class="kw">static Map<String, String> rebuildBrushToItemCache() {
      Map var0 = Item.getAssetMap().getAssetMap();
      Object2ObjectOpenHashMap var1 = new Object2ObjectOpenHashMap(var0.size() / 4);

      for (Entry var3 : var0.entrySet()) {
         BuilderTool var4 = var3.getValue().getBuilderTool();
         if (var4 != null && var4.getBrushConfigurationCommand() != null && !var4.getBrushConfigurationCommand().isEmpty()) {
            var1.put(var4.getBrushConfigurationCommand(), var3.getKey());
         }
      }

      brushToItemCache = var1;
      class="kw">return var1;
   }

   class="kw">public class="kw">static void invalidateBrushToItemCache() {
      brushToItemCache = null;
   }

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

   @Nonnull
   class="kw">public String getId() {
      class="kw">return this.id;
   }

   @Nonnull
   class="kw">public List<BrushOperation> getOperations() {
      class="kw">return this.operations;
   }

   class="kw">public void loadIntoExecutor(@Nonnull BrushConfigCommandExecutor var1) {
      var1.getSequentialOperations().clear();
      var1.getGlobalOperations().clear();

      for (BrushOperation var3 : this.operations) {
         if (var3 class="kw">instanceof LoadOperationsFromAssetOperation var4) {
            ScriptedBrushAsset var5 = get(var4.getAssetId());
            if (var5 != null) {
               for (BrushOperation var7 : var5.getOperations()) {
                  if (var7 class="kw">instanceof GlobalBrushOperation) {
                     var1.getGlobalOperations().put(var7.getName().toLowerCase(Locale.ROOT), (GlobalBrushOperation)var7);
                  } else if (var7 class="kw">instanceof SequenceBrushOperation) {
                     var1.getSequentialOperations().add((SequenceBrushOperation)var7);
                  }
               }
            }
         } else if (var3 class="kw">instanceof GlobalBrushOperation) {
            var1.getGlobalOperations().put(var3.getName().toLowerCase(Locale.ROOT), (GlobalBrushOperation)var3);
         } else if (var3 class="kw">instanceof SequenceBrushOperation) {
            var1.getSequentialOperations().add((SequenceBrushOperation)var3);
         }
      }
   }
}