Facade Creative Tab and Config.

This commit is contained in:
AlgorithmX2 2014-02-01 16:24:13 -06:00
parent ee99dce791
commit fbcee6ca12
4 changed files with 73 additions and 12 deletions

View file

@ -112,10 +112,12 @@ public class AppEng
AELog.info( "Starting ( PreInit )" ); AELog.info( "Starting ( PreInit )" );
Configuration.instance = new Configuration( event.getModConfigurationDirectory() ); Configuration.instance = new Configuration( event.getModConfigurationDirectory() );
FacadeConfig.instance = new FacadeConfig( event.getModConfigurationDirectory() );
if ( Platform.isClient() ) if ( Platform.isClient() )
{ {
CreativeTab.init(); CreativeTab.init();
CreativeTabFacade.init();
CommonHelper.proxy.init(); CommonHelper.proxy.init();
} }

View file

@ -13,6 +13,8 @@ import appeng.core.AELog;
import appeng.core.CommonHelper; import appeng.core.CommonHelper;
import appeng.core.Configuration; import appeng.core.Configuration;
import appeng.core.CreativeTab; import appeng.core.CreativeTab;
import appeng.core.CreativeTabFacade;
import appeng.items.parts.ItemFacade;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.common.registry.GameRegistry;
@ -74,9 +76,13 @@ public class AEFeatureHandler implements AEItemDefinition
String name = getName( i.getClass(), subname ); String name = getName( i.getClass(), subname );
i.setTextureName( "appliedenergistics2:" + name ); i.setTextureName( "appliedenergistics2:" + name );
i.setCreativeTab( CreativeTab.instance );
i.setUnlocalizedName( /* "item." */"appliedenergistics2." + name ); i.setUnlocalizedName( /* "item." */"appliedenergistics2." + name );
if ( i instanceof ItemFacade )
i.setCreativeTab( CreativeTabFacade.instance );
else
i.setCreativeTab( CreativeTab.instance );
GameRegistry.registerItem( i, "item." + name ); GameRegistry.registerItem( i, "item." + name );
AELog.localization( "item", i.getUnlocalizedName() ); AELog.localization( "item", i.getUnlocalizedName() );
} }

View file

@ -8,6 +8,7 @@ import net.minecraft.block.Block;
import net.minecraft.block.BlockGlass; import net.minecraft.block.BlockGlass;
import net.minecraft.creativetab.CreativeTabs; import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -16,6 +17,7 @@ import net.minecraftforge.common.ForgeDirection;
import appeng.api.AEApi; import appeng.api.AEApi;
import appeng.block.solids.OreQuartz; import appeng.block.solids.OreQuartz;
import appeng.client.render.BusRenderer; import appeng.client.render.BusRenderer;
import appeng.core.FacadeConfig;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.facade.FacadePart; import appeng.facade.FacadePart;
import appeng.facade.IFacadeItem; import appeng.facade.IFacadeItem;
@ -59,6 +61,14 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem
List<ItemStack> subTypes = null; List<ItemStack> subTypes = null;
public ItemStack getCreativeTabIcon()
{
calculateSubTypes();
if ( subTypes.isEmpty() )
return new ItemStack( Item.cake );
return subTypes.get( 0 );
}
@Override @Override
public void getSubItems(int number, CreativeTabs tab, List list) public void getSubItems(int number, CreativeTabs tab, List list)
{ {
@ -89,9 +99,12 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem
if ( subTypes == null ) if ( subTypes == null )
{ {
subTypes = new ArrayList(); subTypes = new ArrayList();
for (Block b : Block.blocksList) for (int id = 0; id < Block.blocksList.length; id++)
{ {
if ( b != null && (b.isOpaqueCube() && !b.getTickRandomly() && !(b instanceof OreQuartz)) || b instanceof BlockGlass ) Block b = Block.blocksList[id];
if ( b != null
&& FacadeConfig.instance.checkEnabled( b, b.isOpaqueCube() && !b.getTickRandomly() && !(b instanceof OreQuartz)
|| b instanceof BlockGlass ) )
{ {
try try
{ {
@ -116,7 +129,11 @@ public class ItemFacade extends AEBaseItem implements IFacadeItem
} }
} }
} }
if ( FacadeConfig.instance.hasChanged() )
FacadeConfig.instance.save();
} }
} }
@Override @Override

View file

@ -111,6 +111,31 @@ public class Platform
private static HashMap<String, String> modIDToName; private static HashMap<String, String> modIDToName;
private static HashMap<Integer, String> itemTomodID; private static HashMap<Integer, String> itemTomodID;
private static HashMap<Integer, String> itemNames;
public static String getBlockName(Block id)
{
populateModInfo();
String out = itemNames.get( id.blockID );
if ( out == null )
return "Unknown";
return out;
}
public static String getItemName(Item id)
{
populateModInfo();
String out = itemNames.get( id.itemID );
if ( out == null )
return "Unknown";
return out;
}
public static String getMod(String modID) public static String getMod(String modID)
{ {
@ -125,10 +150,23 @@ public class Platform
} }
public static String getMod(ItemStack is) public static String getMod(ItemStack is)
{
populateModInfo();
String out = itemTomodID.get( is.itemID );
if ( out == null )
return "Unknown";
return out;
}
private static void populateModInfo()
{ {
if ( itemTomodID == null ) if ( itemTomodID == null )
{ {
itemTomodID = new HashMap<Integer, String>(); itemTomodID = new HashMap<Integer, String>();
itemNames = new HashMap<Integer, String>();
ImmutableTable<String, String, Integer> modObjectTable; ImmutableTable<String, String, Integer> modObjectTable;
for (Field f : Block.class.getDeclaredFields()) for (Field f : Block.class.getDeclaredFields())
@ -138,6 +176,7 @@ public class Platform
Object o = f.get( Block.class ); Object o = f.get( Block.class );
if ( o instanceof Block ) if ( o instanceof Block )
{ {
itemNames.put( ((Block) o).blockID, f.getName() );
itemTomodID.put( ((Block) o).blockID, "minecraft" ); itemTomodID.put( ((Block) o).blockID, "minecraft" );
} }
} }
@ -154,10 +193,14 @@ public class Platform
f.setAccessible( false ); f.setAccessible( false );
ImmutableMap<String, Map<String, Integer>> fish = modObjectTable.rowMap(); ImmutableMap<String, Map<String, Integer>> fish = modObjectTable.rowMap();
for (Map<String, Integer> g : fish.values()) for (String MODID : fish.keySet())
{ {
Map<String, Integer> g = fish.get( MODID );
for (String key : g.keySet()) for (String key : g.keySet())
itemTomodID.put( g.get( key ), key ); {
itemNames.put( g.get( key ), key );
itemTomodID.put( g.get( key ), MODID );
}
} }
} }
catch (Throwable t) catch (Throwable t)
@ -165,12 +208,6 @@ public class Platform
} }
} }
String out = itemTomodID.get( is.itemID );
if ( out == null )
return "Unknown";
return out;
} }
public static ForgeDirection crossProduct(ForgeDirection forward, ForgeDirection up) public static ForgeDirection crossProduct(ForgeDirection forward, ForgeDirection up)
@ -1472,5 +1509,4 @@ public class Platform
return !gs.hasPermission( playerID, SecurityPermissions.BUILD ); return !gs.hasPermission( playerID, SecurityPermissions.BUILD );
} }
} }