2014-02-01 23:29:07 +01:00
|
|
|
package appeng.core;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.lang.reflect.Field;
|
|
|
|
import java.util.regex.Matcher;
|
|
|
|
import java.util.regex.Pattern;
|
|
|
|
|
|
|
|
import net.minecraft.block.Block;
|
2014-02-09 06:08:27 +01:00
|
|
|
import net.minecraftforge.common.config.Configuration;
|
2014-02-01 23:29:07 +01:00
|
|
|
import cpw.mods.fml.common.registry.GameRegistry;
|
|
|
|
import cpw.mods.fml.common.registry.GameRegistry.UniqueIdentifier;
|
|
|
|
|
2014-02-09 06:08:27 +01:00
|
|
|
public class FacadeConfig extends Configuration
|
2014-02-01 23:29:07 +01:00
|
|
|
{
|
|
|
|
|
|
|
|
public static FacadeConfig instance;
|
|
|
|
Pattern replacementPattern;
|
|
|
|
|
2014-02-11 06:50:05 +01:00
|
|
|
public FacadeConfig(String path) {
|
|
|
|
super( new File( path + "Facades.cfg" ) );
|
2014-02-01 23:29:07 +01:00
|
|
|
replacementPattern = Pattern.compile( "[^a-zA-Z0-9]" );
|
|
|
|
}
|
|
|
|
|
2014-03-15 07:58:21 +01:00
|
|
|
public boolean checkEnabled(Block id, int metadata, boolean automatic)
|
2014-02-01 23:29:07 +01:00
|
|
|
{
|
2014-02-09 02:34:52 +01:00
|
|
|
if ( id == null )
|
2014-02-01 23:29:07 +01:00
|
|
|
return false;
|
|
|
|
|
|
|
|
UniqueIdentifier blk = GameRegistry.findUniqueIdentifierFor( id );
|
|
|
|
if ( blk == null )
|
|
|
|
{
|
|
|
|
for (Field f : Block.class.getFields())
|
|
|
|
{
|
|
|
|
try
|
|
|
|
{
|
|
|
|
if ( f.get( Block.class ) == id )
|
2014-03-15 07:58:21 +01:00
|
|
|
return get( "minecraft", f.getName() + (metadata == 0 ? "" : "." + metadata), automatic ).getBoolean( automatic );
|
2014-02-01 23:29:07 +01:00
|
|
|
}
|
|
|
|
catch (Throwable e)
|
|
|
|
{
|
|
|
|
// :P
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
Matcher mod = replacementPattern.matcher( blk.modId );
|
|
|
|
Matcher name = replacementPattern.matcher( blk.name );
|
2014-03-15 07:58:21 +01:00
|
|
|
return get( mod.replaceAll( "" ), name.replaceAll( "" ) + (metadata == 0 ? "" : "." + metadata), automatic ).getBoolean( automatic );
|
2014-02-01 23:29:07 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|