Added waila support for crates

This commit is contained in:
Robert S 2014-04-26 12:21:58 -04:00
parent 679c1f88dc
commit 3c2f73a27b
5 changed files with 228 additions and 112 deletions

View file

@ -1,21 +1,5 @@
package resonantinduction.archaic; package resonantinduction.archaic;
import calclavia.lib.content.ContentRegistry;
import calclavia.lib.network.PacketAnnotation;
import calclavia.lib.network.PacketHandler;
import calclavia.lib.prefab.item.ItemBlockMetadata;
import calclavia.lib.recipe.UniversalRecipe;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
import net.minecraft.block.Block; import net.minecraft.block.Block;
import net.minecraft.item.Item; import net.minecraft.item.Item;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -41,128 +25,148 @@ import resonantinduction.archaic.process.BlockCastingMold;
import resonantinduction.archaic.process.BlockMillstone; import resonantinduction.archaic.process.BlockMillstone;
import resonantinduction.archaic.process.TileCastingMold; import resonantinduction.archaic.process.TileCastingMold;
import resonantinduction.archaic.process.TileMillstone; import resonantinduction.archaic.process.TileMillstone;
import resonantinduction.archaic.waila.Waila;
import resonantinduction.core.Reference; import resonantinduction.core.Reference;
import resonantinduction.core.ResonantInduction; import resonantinduction.core.ResonantInduction;
import resonantinduction.core.Settings; import resonantinduction.core.Settings;
import resonantinduction.core.TabRI; import resonantinduction.core.TabRI;
import resonantinduction.core.prefab.imprint.ItemImprint; import resonantinduction.core.prefab.imprint.ItemImprint;
import resonantinduction.core.resource.ItemHandCrank; import resonantinduction.core.resource.ItemHandCrank;
import calclavia.lib.content.ContentRegistry;
import calclavia.lib.modproxy.ProxyHandler;
import calclavia.lib.network.PacketAnnotation;
import calclavia.lib.network.PacketHandler;
import calclavia.lib.prefab.item.ItemBlockMetadata;
import calclavia.lib.recipe.UniversalRecipe;
import cpw.mods.fml.common.Mod;
import cpw.mods.fml.common.Mod.EventHandler;
import cpw.mods.fml.common.Mod.Instance;
import cpw.mods.fml.common.ModMetadata;
import cpw.mods.fml.common.SidedProxy;
import cpw.mods.fml.common.event.FMLInitializationEvent;
import cpw.mods.fml.common.event.FMLPostInitializationEvent;
import cpw.mods.fml.common.event.FMLPreInitializationEvent;
import cpw.mods.fml.common.network.NetworkMod;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.common.registry.GameRegistry;
/** /** Resonant Induction Archaic Module
* Resonant Induction Archaic Module
* *
* @author DarkCow, Calclavia * @author DarkCow, Calclavia */
*/
@Mod(modid = Archaic.ID, name = Archaic.NAME, version = Reference.VERSION, dependencies = "required-after:" + ResonantInduction.ID) @Mod(modid = Archaic.ID, name = Archaic.NAME, version = Reference.VERSION, dependencies = "required-after:" + ResonantInduction.ID)
@NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class) @NetworkMod(channels = Reference.CHANNEL, clientSideRequired = true, serverSideRequired = false, packetHandler = PacketHandler.class)
public class Archaic public class Archaic
{ {
/** /** Mod Information */
* Mod Information public static final String ID = "ResonantInduction|Archaic";
*/ public static final String NAME = Reference.NAME + " Archaic";
public static final String ID = "ResonantInduction|Archaic"; public static final ContentRegistry contentRegistry = new ContentRegistry(Settings.CONFIGURATION, Settings.idManager, ID).setPrefix(Reference.PREFIX).setTab(TabRI.DEFAULT);
public static final String NAME = Reference.NAME + " Archaic"; @Instance(ID)
public static final ContentRegistry contentRegistry = new ContentRegistry(Settings.CONFIGURATION, Settings.idManager, ID).setPrefix(Reference.PREFIX).setTab(TabRI.DEFAULT); public static Archaic INSTANCE;
@Instance(ID) @SidedProxy(clientSide = "resonantinduction.archaic.ClientProxy", serverSide = "resonantinduction.archaic.CommonProxy")
public static Archaic INSTANCE; public static CommonProxy proxy;
@SidedProxy(clientSide = "resonantinduction.archaic.ClientProxy", serverSide = "resonantinduction.archaic.CommonProxy") @Mod.Metadata(ID)
public static CommonProxy proxy; public static ModMetadata metadata;
@Mod.Metadata(ID) public static Block blockEngineeringTable;
public static ModMetadata metadata; public static Block blockCrate;
public static Block blockEngineeringTable; public static Block blockImprinter;
public static Block blockCrate; public static Block blockTurntable;
public static Block blockImprinter; public static Block blockFirebox;
public static Block blockTurntable; public static Block blockHotPlate;
public static Block blockFirebox; public static Block blockMillstone;
public static Block blockHotPlate; public static Block blockCast;
public static Block blockMillstone; public static Item itemImprint;
public static Block blockCast;
public static Item itemImprint;
// Machine and Processing // Machine and Processing
public static Item itemHammer; public static Item itemHammer;
public static Item itemHandCrank; public static Item itemHandCrank;
public static Block blockFilter; public static Block blockFilter;
// Fluid // Fluid
public static Block blockGrate; public static Block blockGrate;
public static Block blockGutter; public static Block blockGutter;
public static Block blockTank; public static Block blockTank;
@EventHandler public ProxyHandler modproxies;
public void preInit(FMLPreInitializationEvent evt)
{
NetworkRegistry.instance().registerGuiHandler(this, proxy);
Settings.CONFIGURATION.load();
blockEngineeringTable = contentRegistry.newBlock(TileEngineeringTable.class);
blockCrate = contentRegistry.createBlock(BlockCrate.class, ItemBlockCrate.class, TileCrate.class);
blockImprinter = contentRegistry.createTile(BlockImprinter.class, TileImprinter.class);
blockTurntable = contentRegistry.newBlock(TileTurntable.class);
blockFirebox = contentRegistry.createBlock(BlockFirebox.class, ItemBlockMetadata.class, TileFirebox.class);
blockHotPlate = contentRegistry.createTile(BlockHotPlate.class, TileHotPlate.class);
blockMillstone = contentRegistry.createTile(BlockMillstone.class, TileMillstone.class);
blockCast = contentRegistry.createTile(BlockCastingMold.class, TileCastingMold.class);
blockGutter = contentRegistry.newBlock(TileGutter.class);
blockGrate = contentRegistry.newBlock(TileGrate.class);
blockFilter = contentRegistry.newBlock(TileFilter.class);
blockTank = contentRegistry.newBlock(TileTank.class);
itemHandCrank = contentRegistry.createItem(ItemHandCrank.class); @EventHandler
itemImprint = contentRegistry.createItem(ItemImprint.class); public void preInit(FMLPreInitializationEvent evt)
itemHammer = contentRegistry.createItem(ItemHammer.class); {
modproxies = new ProxyHandler();
NetworkRegistry.instance().registerGuiHandler(this, proxy);
Settings.CONFIGURATION.load();
blockEngineeringTable = contentRegistry.newBlock(TileEngineeringTable.class);
blockCrate = contentRegistry.createBlock(BlockCrate.class, ItemBlockCrate.class, TileCrate.class);
blockImprinter = contentRegistry.createTile(BlockImprinter.class, TileImprinter.class);
blockTurntable = contentRegistry.newBlock(TileTurntable.class);
blockFirebox = contentRegistry.createBlock(BlockFirebox.class, ItemBlockMetadata.class, TileFirebox.class);
blockHotPlate = contentRegistry.createTile(BlockHotPlate.class, TileHotPlate.class);
blockMillstone = contentRegistry.createTile(BlockMillstone.class, TileMillstone.class);
blockCast = contentRegistry.createTile(BlockCastingMold.class, TileCastingMold.class);
blockGutter = contentRegistry.newBlock(TileGutter.class);
blockGrate = contentRegistry.newBlock(TileGrate.class);
blockFilter = contentRegistry.newBlock(TileFilter.class);
blockTank = contentRegistry.newBlock(TileTank.class);
proxy.preInit(); itemHandCrank = contentRegistry.createItem(ItemHandCrank.class);
Settings.CONFIGURATION.save(); itemImprint = contentRegistry.createItem(ItemImprint.class);
itemHammer = contentRegistry.createItem(ItemHammer.class);
PacketAnnotation.register(TileFirebox.class); modproxies.applyModule(Waila.class, true);
PacketAnnotation.register(TileFilter.class); Settings.CONFIGURATION.save();
proxy.preInit();
}
@EventHandler PacketAnnotation.register(TileFirebox.class);
public void init(FMLInitializationEvent evt) PacketAnnotation.register(TileFilter.class);
{ proxy.preInit();
Settings.setModMetadata(metadata, ID, NAME, ResonantInduction.ID); modproxies.preInit();
proxy.init(); }
}
@EventHandler @EventHandler
public void postInit(FMLPostInitializationEvent evt) public void init(FMLInitializationEvent evt)
{ {
TabRI.ITEMSTACK = new ItemStack(blockEngineeringTable); Settings.setModMetadata(metadata, ID, NAME, ResonantInduction.ID);
if(OreDictionary.getOres("cobblestone") == null) proxy.init();
{ modproxies.init();
OreDictionary.registerOre("cobblestone", Block.cobblestone); }
}
if(OreDictionary.getOres("stickWood") == null) @EventHandler
public void postInit(FMLPostInitializationEvent evt)
{
TabRI.ITEMSTACK = new ItemStack(blockEngineeringTable);
if (OreDictionary.getOres("cobblestone") == null)
{
OreDictionary.registerOre("cobblestone", Block.cobblestone);
}
if (OreDictionary.getOres("stickWood") == null)
{ {
OreDictionary.registerOre("stickWood", Item.stick); OreDictionary.registerOre("stickWood", Item.stick);
} }
// Add recipes // Add recipes
GameRegistry.addRecipe(new ShapedOreRecipe(blockEngineeringTable, "P", "C", 'P', Block.pressurePlatePlanks, 'C', Block.workbench)); GameRegistry.addRecipe(new ShapedOreRecipe(blockEngineeringTable, "P", "C", 'P', Block.pressurePlatePlanks, 'C', Block.workbench));
GameRegistry.addRecipe(new ShapedOreRecipe(blockFilter, "B", "P", "B", 'B', Block.fenceIron, 'P', Item.paper)); GameRegistry.addRecipe(new ShapedOreRecipe(blockFilter, "B", "P", "B", 'B', Block.fenceIron, 'P', Item.paper));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 0), "WWW", "WSW", "WWW", 'S', "stickWood", 'W', "logWood")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 0), "WWW", "WSW", "WWW", 'S', "stickWood", 'W', "logWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 1), "WWW", "WSW", "WWW", 'S', new ItemStack(blockCrate, 1, 0), 'W', "ingotIron")); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 1), "WWW", "WSW", "WWW", 'S', new ItemStack(blockCrate, 1, 0), 'W', "ingotIron"));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 2), "WWW", "WSW", "WWW", 'S', new ItemStack(blockCrate, 1, 1), 'W', UniversalRecipe.PRIMARY_METAL.get())); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockCrate, 1, 2), "WWW", "WSW", "WWW", 'S', new ItemStack(blockCrate, 1, 1), 'W', UniversalRecipe.PRIMARY_METAL.get()));
GameRegistry.addRecipe(new ShapedOreRecipe(blockFirebox, "III", "SFS", "SSS", 'I', Item.ingotIron, 'F', Block.furnaceIdle, 'S', Block.stone)); GameRegistry.addRecipe(new ShapedOreRecipe(blockFirebox, "III", "SFS", "SSS", 'I', Item.ingotIron, 'F', Block.furnaceIdle, 'S', Block.stone));
GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockFirebox, 1, 1), "III", "SFS", "SSS", 'I', UniversalRecipe.PRIMARY_METAL.get(), 'F', new ItemStack(blockFirebox, 1, 0), 'S', UniversalRecipe.WIRE.get())); GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(blockFirebox, 1, 1), "III", "SFS", "SSS", 'I', UniversalRecipe.PRIMARY_METAL.get(), 'F', new ItemStack(blockFirebox, 1, 0), 'S', UniversalRecipe.WIRE.get()));
GameRegistry.addRecipe(new ShapedOreRecipe(blockImprinter, "SSS", "W W", "PPP", 'S', Block.stone, 'P', Block.pistonBase, 'W', "logWood")); GameRegistry.addRecipe(new ShapedOreRecipe(blockImprinter, "SSS", "W W", "PPP", 'S', Block.stone, 'P', Block.pistonBase, 'W', "logWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(blockTurntable, "SSS", "PGP", "WWW", 'S', Block.stone, 'G', Item.redstone, 'P', Block.pistonBase, 'W', "logWood")); GameRegistry.addRecipe(new ShapedOreRecipe(blockTurntable, "SSS", "PGP", "WWW", 'S', Block.stone, 'G', Item.redstone, 'P', Block.pistonBase, 'W', "logWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(blockCast, "I I", "IBI", "III", 'S', Item.ingotIron, 'B', Block.fenceIron)); GameRegistry.addRecipe(new ShapedOreRecipe(blockCast, "I I", "IBI", "III", 'S', Item.ingotIron, 'B', Block.fenceIron));
GameRegistry.addRecipe(new ShapedOreRecipe(blockGutter, "S S", "I I", "III", 'S', Item.stick, 'I', "cobblestone")); GameRegistry.addRecipe(new ShapedOreRecipe(blockGutter, "S S", "I I", "III", 'S', Item.stick, 'I', "cobblestone"));
GameRegistry.addRecipe(new ShapedOreRecipe(blockGrate, "WBW", "B B", "WBW", 'B', Block.fenceIron, 'W', "plankWood")); GameRegistry.addRecipe(new ShapedOreRecipe(blockGrate, "WBW", "B B", "WBW", 'B', Block.fenceIron, 'W', "plankWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(blockHotPlate, "SSS", "III", 'I', Item.ingotIron, 'S', Block.stone)); GameRegistry.addRecipe(new ShapedOreRecipe(blockHotPlate, "SSS", "III", 'I', Item.ingotIron, 'S', Block.stone));
GameRegistry.addRecipe(new ShapedOreRecipe(blockMillstone, "SPS", "SAS", "SSS", 'P', Block.pistonBase, 'A', Item.pickaxeStone, 'S', Block.stone)); GameRegistry.addRecipe(new ShapedOreRecipe(blockMillstone, "SPS", "SAS", "SSS", 'P', Block.pistonBase, 'A', Item.pickaxeStone, 'S', Block.stone));
GameRegistry.addRecipe(new ShapedOreRecipe(blockTank, "GGG", "GSG", "GGG", 'G', Block.glass, 'S', Item.ingotIron)); GameRegistry.addRecipe(new ShapedOreRecipe(blockTank, "GGG", "GSG", "GGG", 'G', Block.glass, 'S', Item.ingotIron));
GameRegistry.addRecipe(new ShapedOreRecipe(itemHandCrank, "S ", "SSS", " S", 'S', "stickWood")); GameRegistry.addRecipe(new ShapedOreRecipe(itemHandCrank, "S ", "SSS", " S", 'S', "stickWood"));
GameRegistry.addRecipe(new ShapedOreRecipe(itemImprint, "PPP", "PIP", "PPP", 'P', Item.paper, 'I', new ItemStack(Item.dyePowder, 0))); GameRegistry.addRecipe(new ShapedOreRecipe(itemImprint, "PPP", "PIP", "PPP", 'P', Item.paper, 'I', new ItemStack(Item.dyePowder, 0)));
GameRegistry.addRecipe(new ShapedOreRecipe(itemHammer, "CC ", "CS ", " S", 'C', "cobblestone", 'S', "stickWood")); GameRegistry.addRecipe(new ShapedOreRecipe(itemHammer, "CC ", "CS ", " S", 'C', "cobblestone", 'S', "stickWood"));
proxy.postInit(); proxy.postInit();
} modproxies.postInit();
}
} }

View file

@ -0,0 +1,36 @@
package resonantinduction.archaic.waila;
import calclavia.lib.modproxy.ICompatProxy;
import calclavia.lib.utility.Mods;
import cpw.mods.fml.common.event.FMLInterModComms;
/**
* @since 21/03/14
* @author tgame14
*/
public class Waila implements ICompatProxy
{
@Override
public void preInit ()
{
// nothing
}
@Override
public void init ()
{
FMLInterModComms.sendMessage(Mods.WAILA(), "register", "resonantinduction.archaic.waila.WailaRegistrar.wailaCallBack");
}
@Override
public void postInit ()
{
// nothing
}
@Override
public String modId ()
{
return Mods.WAILA();
}
}

View file

@ -0,0 +1,57 @@
package resonantinduction.archaic.waila;
import java.util.List;
import mcp.mobius.waila.api.IWailaConfigHandler;
import mcp.mobius.waila.api.IWailaDataAccessor;
import mcp.mobius.waila.api.IWailaDataProvider;
import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity;
import resonantinduction.archaic.crate.TileCrate;
import calclavia.lib.utility.LanguageUtility;
/** Waila support for crates
*
* @author Darkguardsman */
public class WailaCrate implements IWailaDataProvider
{
@Override
public List<String> getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config)
{
TileEntity tile = accessor.getTileEntity();
if (tile instanceof TileCrate)
{
ItemStack stored = ((TileCrate) tile).getSampleStack();
int cap = ((TileCrate) tile).getSlotCount() * 64;
if (stored != null)
{
currenttip.add(LanguageUtility.getLocal("info.waila.crate.stack") + stored.getDisplayName());
currenttip.add(LanguageUtility.getLocal("info.waila.crate.stored") + stored.stackSize + " / " + cap);
}
else
{
currenttip.add(LanguageUtility.getLocal("info.waila.crate.empty"));
}
}
return currenttip;
}
@Override
public List<String> getWailaHead(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config)
{
return currenttip;
}
@Override
public ItemStack getWailaStack(IWailaDataAccessor accessor, IWailaConfigHandler config)
{
return null;
}
@Override
public List<String> getWailaTail(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config)
{
return currenttip;
}
}

View file

@ -0,0 +1,12 @@
package resonantinduction.archaic.waila;
import mcp.mobius.waila.api.IWailaRegistrar;
import resonantinduction.archaic.crate.TileCrate;
public class WailaRegistrar
{
public static void wailaCallBack(IWailaRegistrar registrar)
{
registrar.registerBodyProvider(new WailaCrate(), TileCrate.class);
}
}

View file

@ -31,6 +31,7 @@ import resonantinduction.electrical.wire.EnumWireMaterial;
import resonantinduction.electrical.wire.ItemWire; import resonantinduction.electrical.wire.ItemWire;
import resonantinduction.quantum.gate.ItemQuantumGlyph; import resonantinduction.quantum.gate.ItemQuantumGlyph;
import calclavia.lib.content.ContentRegistry; import calclavia.lib.content.ContentRegistry;
import calclavia.lib.modproxy.ProxyHandler;
import calclavia.lib.network.PacketHandler; import calclavia.lib.network.PacketHandler;
import calclavia.lib.recipe.UniversalRecipe; import calclavia.lib.recipe.UniversalRecipe;
import cpw.mods.fml.common.Loader; import cpw.mods.fml.common.Loader;
@ -98,9 +99,12 @@ public class Electrical
public static Block blockQuantumGate; public static Block blockQuantumGate;
public static Item itemQuantumGlyph; public static Item itemQuantumGlyph;
public ProxyHandler modproxies;
@EventHandler @EventHandler
public void preInit(FMLPreInitializationEvent evt) public void preInit(FMLPreInitializationEvent evt)
{ {
modproxies = new ProxyHandler();
NetworkRegistry.instance().registerGuiHandler(this, proxy); NetworkRegistry.instance().registerGuiHandler(this, proxy);
Settings.CONFIGURATION.load(); Settings.CONFIGURATION.load();
@ -149,6 +153,7 @@ public class Electrical
} }
proxy.preInit(); proxy.preInit();
modproxies.preInit();
} }
@EventHandler @EventHandler
@ -157,6 +162,7 @@ public class Electrical
Settings.setModMetadata(metadata, ID, NAME, ResonantInduction.ID); Settings.setModMetadata(metadata, ID, NAME, ResonantInduction.ID);
MultipartElectrical.INSTANCE = new MultipartElectrical(); MultipartElectrical.INSTANCE = new MultipartElectrical();
proxy.init(); proxy.init();
modproxies.init();
} }
@EventHandler @EventHandler
@ -225,5 +231,6 @@ public class Electrical
} }
proxy.postInit(); proxy.postInit();
modproxies.postInit();
} }
} }