// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.universe.world.connectedblocks;

import javax.annotation.Nullable;
import com.hypixel.hytale.assetstore.map.BlockTypeAssetMap;
import java.util.Optional;
import com.hypixel.hytale.server.core.asset.type.blocktype.config.BlockType;
import com.hypixel.hytale.math.vector.Vector3i;
import com.hypixel.hytale.server.core.universe.world.World;
import com.hypixel.hytale.codec.lookup.CodecMapCodec;

public abstract class ConnectedBlockRuleSet
{
    public static final CodecMapCodec<ConnectedBlockRuleSet> CODEC;
    
    public abstract boolean onlyUpdateOnPlacement();
    
    public abstract Optional<ConnectedBlocksUtil.ConnectedBlockResult> getConnectedBlockType(final World p0, final Vector3i p1, final BlockType p2, final int p3, final Vector3i p4, final boolean p5);
    
    public void updateCachedBlockTypes(final BlockType blockType, final BlockTypeAssetMap<String, BlockType> assetMap) {
    }
    
    @Nullable
    public com.hypixel.hytale.protocol.ConnectedBlockRuleSet toPacket(final BlockTypeAssetMap<String, BlockType> assetMap) {
        return null;
    }
    
    static {
        CODEC = new CodecMapCodec<ConnectedBlockRuleSet>("Type");
    }
}
