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

package com.hypixel.hytale.assetstore;

import javax.annotation.Nonnull;

public class AssetUpdateQuery
{
    public static final AssetUpdateQuery DEFAULT;
    public static final AssetUpdateQuery DEFAULT_NO_REBUILD;
    private final boolean disableAssetCompare;
    private final RebuildCache rebuildCache;
    
    public AssetUpdateQuery(final boolean disableAssetCompare, final RebuildCache rebuildCache) {
        this.disableAssetCompare = disableAssetCompare;
        this.rebuildCache = rebuildCache;
    }
    
    public AssetUpdateQuery(final RebuildCache rebuildCache) {
        this(AssetStore.DISABLE_ASSET_COMPARE, rebuildCache);
    }
    
    public boolean isDisableAssetCompare() {
        return this.disableAssetCompare;
    }
    
    @Nonnull
    public RebuildCache getRebuildCache() {
        return this.rebuildCache;
    }
    
    @Nonnull
    @Override
    public String toString() {
        return "AssetUpdateQuery{rebuildCache=" + String.valueOf(this.rebuildCache);
    }
    
    static {
        DEFAULT = new AssetUpdateQuery(RebuildCache.DEFAULT);
        DEFAULT_NO_REBUILD = new AssetUpdateQuery(RebuildCache.NO_REBUILD);
    }
    
    public static class RebuildCache
    {
        public static final RebuildCache DEFAULT;
        public static final RebuildCache NO_REBUILD;
        private final boolean blockTextures;
        private final boolean models;
        private final boolean modelTextures;
        private final boolean mapGeometry;
        private final boolean itemIcons;
        private final boolean commonAssetsRebuild;
        
        public RebuildCache(final boolean blockTextures, final boolean models, final boolean modelTextures, final boolean mapGeometry, final boolean itemIcons, final boolean commonAssetsRebuild) {
            this.blockTextures = blockTextures;
            this.models = models;
            this.modelTextures = modelTextures;
            this.mapGeometry = mapGeometry;
            this.itemIcons = itemIcons;
            this.commonAssetsRebuild = commonAssetsRebuild;
        }
        
        public boolean isBlockTextures() {
            return this.blockTextures;
        }
        
        public boolean isModels() {
            return this.models;
        }
        
        public boolean isModelTextures() {
            return this.modelTextures;
        }
        
        public boolean isMapGeometry() {
            return this.mapGeometry;
        }
        
        public boolean isItemIcons() {
            return this.itemIcons;
        }
        
        public boolean isCommonAssetsRebuild() {
            return this.commonAssetsRebuild;
        }
        
        @Nonnull
        public RebuildCacheBuilder toBuilder() {
            return new RebuildCacheBuilder(this.blockTextures, this.models, this.modelTextures, this.mapGeometry, this.itemIcons, this.commonAssetsRebuild);
        }
        
        @Nonnull
        public static RebuildCacheBuilder builder() {
            return new RebuildCacheBuilder();
        }
        
        @Nonnull
        @Override
        public String toString() {
            return "RebuildCache{blockTextures=" + this.blockTextures + ", models=" + this.models + ", modelTextures=" + this.modelTextures + ", mapGeometry=" + this.mapGeometry + ", icons=" + this.itemIcons + ", commonAssetsRebuild=" + this.commonAssetsRebuild;
        }
        
        static {
            DEFAULT = new RebuildCache(true, true, true, true, true, true);
            NO_REBUILD = new RebuildCache(false, false, false, false, false, false);
        }
    }
    
    public static class RebuildCacheBuilder
    {
        private boolean blockTextures;
        private boolean models;
        private boolean modelTextures;
        private boolean mapGeometry;
        private boolean itemIcons;
        private boolean commonAssetsRebuild;
        
        RebuildCacheBuilder() {
        }
        
        RebuildCacheBuilder(final boolean blockTextures, final boolean models, final boolean modelTextures, final boolean mapGeometry, final boolean itemIcons, final boolean commonAssetsRebuild) {
            this.blockTextures = blockTextures;
            this.models = models;
            this.modelTextures = modelTextures;
            this.mapGeometry = mapGeometry;
            this.itemIcons = itemIcons;
            this.commonAssetsRebuild = commonAssetsRebuild;
        }
        
        public void setBlockTextures(final boolean blockTextures) {
            this.blockTextures = blockTextures;
        }
        
        public void setModels(final boolean models) {
            this.models = models;
        }
        
        public void setModelTextures(final boolean modelTextures) {
            this.modelTextures = modelTextures;
        }
        
        public void setMapGeometry(final boolean mapGeometry) {
            this.mapGeometry = mapGeometry;
        }
        
        public void setItemIcons(final boolean itemIcons) {
            this.itemIcons = itemIcons;
        }
        
        public void setCommonAssetsRebuild(final boolean commonAssetsRebuild) {
            this.commonAssetsRebuild = commonAssetsRebuild;
        }
        
        @Nonnull
        public RebuildCache build() {
            return new RebuildCache(this.blockTextures, this.models, this.modelTextures, this.mapGeometry, this.itemIcons, this.commonAssetsRebuild);
        }
        
        @Nonnull
        @Override
        public String toString() {
            return "RebuildCache{blockTextures=" + this.blockTextures + ", models=" + this.models + ", modelTextures=" + this.modelTextures + ", mapGeometry=" + this.mapGeometry + ", icons=" + this.itemIcons + ", commonAssetsRebuild=" + this.commonAssetsRebuild;
        }
    }
}
