ConnectedBlocksModule class
Пакет: com.hypixel.hytale.server.core.universe.world.connectedblocks
Файл: com/hypixel/hytale/server/core/universe/world/connectedblocks/ConnectedBlocksModule.java
extends: JavaPlugin
Поля (3)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
PluginManifest |
MANIFEST |
|
|
instance |
|
ConnectedBlockRuleSet |
var3 |
Методы (4)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
static |
ConnectedBlocksModule |
getConnectedBlocksModule get() |
|
|
if if(var3 != null) |
static |
void |
onBlockTypesChangedvoid onBlockTypesChanged(@Nonnull LoadedAssetsEvent<String, BlockType, BlockTypeAssetMap<String, BlockType>> var0) |
abstract |
|
super super(var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.server.core.universe.world.connectedblocks;
class="kw">import com.hypixel.hytale.assetstore.AssetRegistry;
class="kw">import com.hypixel.hytale.assetstore.event.LoadedAssetsEvent;
class="kw">import com.hypixel.hytale.assetstore.map.BlockTypeAssetMap;
class="kw">import com.hypixel.hytale.assetstore.map.DefaultAssetMap;
class="kw">import com.hypixel.hytale.common.plugin.PluginManifest;
class="kw">import com.hypixel.hytale.server.core.asset.HytaleAssetStore;
class="kw">import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
class="kw">import com.hypixel.hytale.server.core.asset.type.tagpattern.config.TagPattern;
class="kw">import com.hypixel.hytale.server.core.modules.entity.EntityModule;
class="kw">import com.hypixel.hytale.server.core.modules.interaction.InteractionModule;
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.world.connectedblocks.builtin.RoofConnectedBlockRuleSet;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.builtin.StairConnectedBlockRuleSet;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.ConnectedBlockRuleSetPacketGenerator;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.PatternedConnectedBlockRuleSet;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.PatternedConnectedBlockRuleSetAsset;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockAndRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockFaceTagRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockNotRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockOrRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.rule.ConnectedBlockShapeRule;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.shape.ConnectedBlockBlockTypeShape;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.shape.ConnectedBlockShapeConfig;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.shape.ConnectedBlockTagShape;
class="kw">import com.hypixel.hytale.server.core.universe.world.connectedblocks.config.shape.ConnectedBlockTemplatedShape;
class="kw">import javax.annotation.Nonnull;
class="kw">public class ConnectedBlocksModule class="kw">extends JavaPlugin {
class="kw">public class="kw">static class="kw">final PluginManifest MANIFEST = PluginManifest.corePlugin(ConnectedBlocksModule.class)
.depends(EntityModule.class)
.depends(InteractionModule.class)
.build();
class="kw">private class="kw">static ConnectedBlocksModule instance;
class="kw">public class="kw">static ConnectedBlocksModule get() {
class="kw">return instance;
}
class="kw">public ConnectedBlocksModule(@Nonnull JavaPluginInit var1) {
super(var1);
instance = this;
}
@Override
class="kw">protected void setup() {
AssetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
PatternedConnectedBlockRuleSetAsset.class, new DefaultAssetMap()
)
.setPath("Item/ConnectedBlockRuleSets"))
.setKeyFunction(PatternedConnectedBlockRuleSetAsset::getId))
.setCodec(PatternedConnectedBlockRuleSetAsset.CODEC))
.setPacketGenerator(new ConnectedBlockRuleSetPacketGenerator())
.loadsAfter(TagPattern.class))
.loadsBefore(BlockType.class))
.build()
);
AssetRegistry.register(
((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)((HytaleAssetStore.Builder)HytaleAssetStore.builder(
CustomConnectedBlockTemplateAsset.class, new DefaultAssetMap()
)
.setPath("Item/CustomConnectedBlockTemplates"))
.setKeyFunction(CustomConnectedBlockTemplateAsset::getId))
.setCodec(CustomConnectedBlockTemplateAsset.CODEC))
.build()
);
this.getEventRegistry().register(LoadedAssetsEvent.class, BlockType.class, ConnectedBlocksModule::onBlockTypesChanged);
CustomTemplateConnectedBlockPattern.CODEC.register("Custom", CustomConnectedBlockPattern.class, CustomConnectedBlockPattern.CODEC);
ConnectedBlockRuleSet.CODEC.register("CustomTemplate", CustomTemplateConnectedBlockRuleSet.class, CustomTemplateConnectedBlockRuleSet.CODEC);
ConnectedBlockRuleSet.CODEC.register("Patterned", PatternedConnectedBlockRuleSet.class, PatternedConnectedBlockRuleSet.CODEC);
ConnectedBlockRuleSet.CODEC.register("Stair", StairConnectedBlockRuleSet.class, StairConnectedBlockRuleSet.CODEC);
ConnectedBlockRuleSet.CODEC.register("Roof", RoofConnectedBlockRuleSet.class, RoofConnectedBlockRuleSet.CODEC);
ConnectedBlockShapeConfig.CODEC.register("TagPattern", ConnectedBlockTagShape.class, ConnectedBlockTagShape.CODEC);
ConnectedBlockShapeConfig.CODEC.register("Templated", ConnectedBlockTemplatedShape.class, ConnectedBlockTemplatedShape.CODEC);
ConnectedBlockShapeConfig.CODEC.register("Block", ConnectedBlockBlockTypeShape.class, ConnectedBlockBlockTypeShape.CODEC);
ConnectedBlockRule.CODEC.register("FaceTag", ConnectedBlockFaceTagRule.class, ConnectedBlockFaceTagRule.CODEC);
ConnectedBlockRule.CODEC.register("Not", ConnectedBlockNotRule.class, ConnectedBlockNotRule.CODEC);
ConnectedBlockRule.CODEC.register("And", ConnectedBlockAndRule.class, ConnectedBlockAndRule.CODEC);
ConnectedBlockRule.CODEC.register("Or", ConnectedBlockOrRule.class, ConnectedBlockOrRule.CODEC);
ConnectedBlockRule.CODEC.register("Shape", ConnectedBlockShapeRule.class, ConnectedBlockShapeRule.CODEC);
}
class="kw">private class="kw">static void onBlockTypesChanged(@Nonnull LoadedAssetsEvent<String, BlockType, BlockTypeAssetMap<String, BlockType>> var0) {
for (BlockType var2 : var0.getLoadedAssets().values()) {
ConnectedBlockRuleSet var3 = var2.getConnectedBlockRuleSet();
if (var3 != null) {
var3.updateCachedBlockTypes(var2, (BlockTypeAssetMap<String, BlockType>)var0.getAssetMap());
}
}
}
}