}
return null;
}
try {
Block proxy;
switch(use) {
case None:
proxy = (Block) enc.create(); break;
case Id:
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id}); break;
case IdAndStep:
{
boolean field2;
if (parent instanceof BlockStepAbstract) {
field2 = ((Boolean)getField(BlockStepAbstract.class, parent, "a")).booleanValue();
} else if (parent instanceof BlockFurnace) {
field2 = ((Boolean)getField(parent, "b")).booleanValue();
} else if (parent instanceof BlockRedstoneTorch) {
field2 = ((Boolean)getField(parent, "isOn")).booleanValue();
} else if (parent instanceof BlockDiodeAbstract) {
field2 = ((Boolean)getField(BlockDiodeAbstract.class, parent, "a")).booleanValue();
} else {
field2 = ((Boolean)getField(parent, "a")).booleanValue();
}
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, field2});
}
break;
case IdAndMaterial:
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, parent.material}); break;
case IdAndTexture:
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, (Integer)getField(parent, "a")}); break;
case IdTextureAndMaterial:
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, parent.material}); break;
case IdMaterialAndFlag:
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, parent.material, false}); break;
case IdAndName:
{
String name = (String) getField(parent, "a");
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, name});
}
break;
case IdNameAndMaterial:
{
String name = (String) getField(parent, "a");
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, name, parent.material});
}
break;
case IdNameMaterialAndDrop:
{
String name = (String) getField(BlockPressurePlateAbstract.class, parent, "a");
int field4 = (Integer) getField(parent, "a");
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, name, parent.material, field4});
}
break;
case IdBlockAndOther:
{
Block field2 = ((Block)getField(parent, "b"));
int field3 = ((Integer)getField(parent, "c"));
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, field2, field3});
}
break;
case IdMaterialAndDrop:
{
int field3 = ((Integer)getField(parent, "b"));
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, parent.material, field3});
}
break;
case SignBlock:
{
Class field2 = ((Class)getField(parent, "a"));
boolean field3 = ((Boolean)getField(parent, "b"));
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, field2, field3});
}
break;
case IdTextureAndTicks:
{
boolean field3;
if (parent instanceof BlockMinecartTrack || parent instanceof BlockRedstoneOre || parent instanceof BlockButtonAbstract || parent instanceof BlockPumpkin) {
field3 = ((Boolean)getField(parent, "a")).booleanValue();
} else {
field3 = ((Boolean)getField(parent, "isTicking")).booleanValue();
}
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, field3});
}
break;
case PressurePlate:
{
EnumMobType field3 = ((EnumMobType)getField(parent, "a"));
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, field3, parent.material});
}
break;
case HugeMushroom:
{
int field4 = ((Integer)getField(parent, "a"));
proxy = (Block) enc.create(use.constructor, new Object[] {parent.id, parent.material, field4});
}
break;
case BlockStem:
{
Block field2;
if (parent instanceof BlockStem) {
field2 = ((Block)getField(parent, "blockFruit"));
} else {
field2 = Block.COBBLESTONE;
}