package com.prupe.mcpatcher.ctm;
import com.prupe.mcpatcher.TileLoader;
import com.prupe.mcpatcher.WeightedIndex;
import java.util.Properties;
import net.minecraft.src.Block;
import net.minecraft.src.IBlockAccess;
import net.minecraft.src.Icon;
import net.minecraft.src.ResourceLocation;
final class TileOverrideImpl$Random1 extends TileOverride {
private final int symmetry;
private final WeightedIndex chooser;
TileOverrideImpl$Random1(ResourceLocation filePrefix, Properties properties, TileLoader tileLoader) {
super(filePrefix, properties, tileLoader);
String sym = properties.getProperty("symmetry", "none");
if (sym.equals("all")) {
this.symmetry = 6;
} else if (sym.equals("opposite")) {
this.symmetry = 2;
} else {
this.symmetry = 1;
}
this.chooser = WeightedIndex.create(this.getNumberOfTiles(), properties.getProperty("weights", ""));
if (this.chooser == null) {
this.error("invalid weights", new Object[0]);
}
}
String getMethod() {
return "random";
}
Icon getTileImpl(IBlockAccess blockAccess, Block block, Icon origIcon, int i, int j, int k, int face) {
if (face < 0) {
face = 0;
}
long hash = WeightedIndex.hash128To64(i, j, k, this.reorient(face) / this.symmetry);
int index = this.chooser.choose(hash);
return this.icons[index];
}
Icon getTileImpl(Block block, Icon origIcon, int face, int metadata) {
return this.icons[0];
}
}