ec562b62ea
Also changes like all packages inb4 "jared changes a package name in ModTweaker2 breaking compatability with everything" drama tweet.
159 lines
3.5 KiB
Java
159 lines
3.5 KiB
Java
package modtweaker2.mods.chisel;
|
|
|
|
import static modtweaker2.helpers.InputHelper.toStack;
|
|
|
|
import java.util.Collections;
|
|
import java.util.Comparator;
|
|
import java.util.List;
|
|
|
|
import minetweaker.api.item.IItemStack;
|
|
import net.minecraft.block.Block;
|
|
|
|
import com.cricketcraft.chisel.api.carving.CarvingUtils;
|
|
import com.cricketcraft.chisel.api.carving.ICarvingGroup;
|
|
import com.cricketcraft.chisel.api.carving.ICarvingVariation;
|
|
import com.google.common.collect.Lists;
|
|
|
|
public class ChiselHelper {
|
|
|
|
public static ICarvingGroup getGroup(String name)
|
|
{
|
|
return CarvingUtils.getChiselRegistry().getGroup(name);
|
|
}
|
|
|
|
public static ICarvingGroup getGroup(IItemStack stack)
|
|
{
|
|
return CarvingUtils.getChiselRegistry().getGroup(Block.getBlockFromItem(toStack(stack).getItem()), stack.getDamage());
|
|
}
|
|
|
|
public static ICarvingVariation getVariation(IItemStack stack)
|
|
{
|
|
ICarvingGroup g = getGroup(stack);
|
|
if (g != null) {
|
|
for (ICarvingVariation v : g.getVariations()) {
|
|
if (v.getBlock() == Block.getBlockFromItem(toStack(stack).getItem()) && v.getBlockMeta() == stack.getDamage()) {
|
|
return v;
|
|
}
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public static ICarvingVariation makeVariation(IItemStack stack)
|
|
{
|
|
return new CarvingVariation(Block.getBlockFromItem(toStack(stack).getItem()), stack.getDamage());
|
|
}
|
|
|
|
public static ICarvingGroup makeGroup(String name)
|
|
{
|
|
return new CarvingGroup(name);
|
|
}
|
|
|
|
public static boolean groupContainsVariation(ICarvingGroup group, ICarvingVariation variation)
|
|
{
|
|
for(ICarvingVariation otherVariation : group.getVariations())
|
|
{
|
|
if(otherVariation.getBlock()==variation.getBlock() && otherVariation.getBlockMeta()==variation.getBlockMeta())
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
static class CarvingVariation implements ICarvingVariation
|
|
{
|
|
Block block;
|
|
int meta;
|
|
|
|
public CarvingVariation(Block block, int meta)
|
|
{
|
|
this.block=block;
|
|
this.meta=meta;
|
|
}
|
|
|
|
@Override
|
|
public Block getBlock() {
|
|
return block;
|
|
}
|
|
|
|
@Override
|
|
public int getBlockMeta() {
|
|
return meta;
|
|
}
|
|
|
|
@Override
|
|
public int getItemMeta() {
|
|
return meta;
|
|
}
|
|
|
|
@Override
|
|
public int getOrder() {
|
|
return 99;
|
|
}
|
|
}
|
|
|
|
static class CarvingGroup implements ICarvingGroup
|
|
{
|
|
private String name;
|
|
private String sound;
|
|
private String oreName;
|
|
|
|
private List<ICarvingVariation> variations = Lists.newArrayList();
|
|
|
|
public CarvingGroup(String name) {
|
|
this.name = name;
|
|
}
|
|
|
|
public List<ICarvingVariation> getVariations() {
|
|
return Lists.newArrayList(variations);
|
|
}
|
|
|
|
@Override
|
|
public void addVariation(ICarvingVariation variation) {
|
|
variations.add(variation);
|
|
Collections.sort(variations, new Comparator<ICarvingVariation>() {
|
|
|
|
@Override
|
|
public int compare(ICarvingVariation o1, ICarvingVariation o2) {
|
|
return CarvingUtils.compare(o1, o2);
|
|
}
|
|
});
|
|
}
|
|
|
|
@Override
|
|
public boolean removeVariation(ICarvingVariation variation) {
|
|
ICarvingVariation toRemove = null;
|
|
for (ICarvingVariation v : variations) {
|
|
if (v.getBlock() == variation.getBlock() && v.getBlockMeta() == variation.getBlockMeta()) {
|
|
toRemove = v;
|
|
}
|
|
}
|
|
return toRemove == null ? false : variations.remove(toRemove);
|
|
}
|
|
|
|
@Override
|
|
public String getName() {
|
|
return name;
|
|
}
|
|
|
|
@Override
|
|
public String getSound() {
|
|
return sound;
|
|
}
|
|
|
|
@Override
|
|
public void setSound(String sound) {
|
|
this.sound = sound;
|
|
}
|
|
|
|
@Override
|
|
public String getOreName() {
|
|
return oreName;
|
|
}
|
|
|
|
@Override
|
|
public void setOreName(String oreName) {
|
|
this.oreName = oreName;
|
|
}
|
|
}
|
|
}
|