package cn.liutils.loading.block;
import net.minecraft.block.Block;
import net.minecraft.block.Block.SoundType;
import cn.liutils.loading.Loader.ObjectNamespace;
public class DefaultRules {
public static class UnlocalizedName extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
String n = ns.getString("unlName");
if(n != null) block.setBlockName(n);
}
}
public static class Texture extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
String n = ns.getString("textureName");
if(n != null) block.setBlockTextureName(this.getNamespace(ns) + n);
}
}
public static class StepSound extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
SoundType ret = null;
//TODO: We need a internal mapping for this will FAIL on deobf env.
String s = ns.getString("soundType");
try {
ret = (SoundType) Block.class.getField("soundType" + s).get(null);
block.setStepSound(ret);
} catch(Exception e) {
e.printStackTrace();
}
}
}
public static class LightLevel extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
Float lightLevel = ns.getFloat("lightLevel");
if(lightLevel != null) {
block.setLightLevel(lightLevel);
}
}
}
public static class Hardness extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
Float hardness = ns.getFloat("hardness");
if(hardness != null) {
block.setHardness(hardness);
}
}
}
public static class HarvestLevel extends BlockLoadRule {
@Override
public void load(Block block, ObjectNamespace ns, String name)
throws Exception {
String harvType = ns.getString("harvestType");
Integer harvLevel = ns.getInt("harvestLevel");
if(harvType != null && harvLevel != null) {
block.setHarvestLevel(harvType, harvLevel);
}
}
}
}