package com.hypixel.hytale.builtin.hytalegenerator;
import com.hypixel.hytale.builtin.hytalegenerator.material.Material;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Nonnull;
public class BlockMask {
private MaterialSet skippedBlocks = new MaterialSet();
private MaterialSet defaultMask = new MaterialSet();
private final List<MaterialSet> sourceBlocks = new ArrayList(0);
private final List<MaterialSet> destinationBlocks = new ArrayList(0);
public BlockMask() {
}
public boolean canPlace(@Nonnull Material material) {
return !this.skippedBlocks.test(material);
}
public boolean canPlace(int materialHash) {
return !this.skippedBlocks.test(materialHash);
}
public boolean canReplace(Material source, Material destination) {
return this.canReplace(source.hashMaterialIds(), destination.hashMaterialIds());
}
public boolean canReplace(int sourceHash, int destinationHash) {
for(int i = 0; i < this.sourceBlocks.size(); ++i) {
if (((MaterialSet)this.sourceBlocks.get(i)).test(sourceHash)) {
return ((MaterialSet)this.destinationBlocks.get(i)).test(destinationHash);
}
}
return !this.defaultMask.test(destinationHash);
}
public void setSkippedBlocks(@Nonnull MaterialSet materialSet) {
this.skippedBlocks = materialSet;
}
public void putBlockMaskEntry(@Nonnull MaterialSet source, @Nonnull MaterialSet destination) {
this.sourceBlocks.add(source);
this.destinationBlocks.add(destination);
}
public void setDefaultMask(@Nonnull MaterialSet materialSet) {
this.defaultMask = materialSet;
}
}