PageRenderTime 61ms CodeModel.GetById 33ms RepoModel.GetById 1ms app.codeStats 0ms

/1.10.2/src/main/java/moarvents/MoarVents.java

https://bitbucket.org/qwertz19281/moarvents
Java | 259 lines | 198 code | 23 blank | 38 comment | 14 complexity | 0700db6620547975bdd51b5dd455f828 MD5 | raw file
  1. package moarvents;
  2. import net.minecraftforge.fml.common.Mod;
  3. import net.minecraftforge.fml.common.Mod.EventHandler;
  4. import net.minecraftforge.fml.common.event.FMLInitializationEvent;
  5. import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
  6. import net.minecraftforge.fml.common.registry.ForgeRegistries;
  7. import net.minecraftforge.fml.common.registry.GameRegistry;
  8. import java.util.Calendar;
  9. import java.util.Random;
  10. import java.util.logging.Logger;
  11. import ic2.api.item.IC2Items;
  12. import ic2.api.reactor.IReactor;
  13. import ic2.api.reactor.IReactorChamber;
  14. import ic2.core.block.reactor.tileentity.TileEntityReactorAccessHatch;
  15. import ic2.core.item.type.CraftingItemType;
  16. import ic2.core.ref.ItemName;
  17. import net.minecraft.block.material.Material;
  18. import net.minecraft.creativetab.CreativeTabs;
  19. import net.minecraft.init.Blocks;
  20. import net.minecraft.init.Items;
  21. import net.minecraft.item.Item;
  22. import net.minecraft.item.ItemBlock;
  23. import net.minecraft.item.ItemStack;
  24. import net.minecraft.tileentity.TileEntity;
  25. import net.minecraft.util.EnumFacing;
  26. import net.minecraft.util.ResourceLocation;
  27. import net.minecraft.util.SoundEvent;
  28. import net.minecraft.util.math.BlockPos;
  29. import net.minecraft.world.IBlockAccess;
  30. import net.minecraftforge.common.config.Configuration;
  31. import net.minecraftforge.oredict.ShapedOreRecipe;
  32. @Mod(
  33. modid = "moarvents",
  34. name = "MoarVents",
  35. version = "beta1.2.5.2",
  36. updateJSON = "https://bitbucket.org/qwertz19281/moarvents/raw/master/update_info.json"
  37. )
  38. public class MoarVents
  39. {
  40. public static CRETAB ctab=null;
  41. static class CRETAB extends CreativeTabs {
  42. public CRETAB(String lable) {
  43. super(lable);
  44. }
  45. Item tabitem;
  46. public Item getTabIconItem()
  47. {
  48. return tabitem;
  49. }
  50. }
  51. //public static int lcnt = 9;
  52. //public static boolean selfSave = false;
  53. //public static boolean createEmitHeat = true;
  54. //public static boolean advLog = true;
  55. //public static Random rnd = new Random();
  56. public static BlockShaft shaft=null;
  57. public static BlockHeatConducter cndctr=null;
  58. public static BlockRHB rhb=null;
  59. public static BlockThermo thermo=null;
  60. public static BlockRdsw rdsw=null;
  61. public static BlockHEQ heq=null;
  62. public static TexBlock bconn=null;
  63. //public static BlockMaxKabel maxkabel=null;
  64. public static Item5x5Vent va=null;
  65. public static ItemFreezer vaB=null;
  66. public static TexItem[] mems=null;
  67. public static ItemOWHR owhr=null;public static ItemOWHD owhd=null;public static ItemOWHL owhl=null;public static ItemOWHU owhu=null;
  68. public static ItemColdBuffer coldt=null;
  69. public static ItemHotBuffer hott=null;
  70. public static ItemFireExtinguisher fireex=null;
  71. public static boolean foolDay=false;
  72. @EventHandler
  73. public void preload(FMLPreInitializationEvent event){
  74. ctab=new CRETAB("moarvents");
  75. }
  76. @EventHandler
  77. public void load(FMLInitializationEvent event)
  78. {
  79. try{
  80. Calendar calendar = Calendar.getInstance();
  81. if (calendar.get(calendar.MONTH) == 3 && calendar.get(calendar.DAY_OF_MONTH) == 1) {
  82. foolDay=true;
  83. }
  84. calendar=null;
  85. if(foolDay){
  86. try{
  87. throw new ClassNotFoundException("qwertz19281.moarvents.AprilFool");
  88. }catch(ClassNotFoundException ex){
  89. ex.printStackTrace();
  90. }
  91. }
  92. }catch(Exception ex){}
  93. System.out.println("MoarVents: Init Objects");
  94. /*for (ItemName name : ItemName.values) {
  95. System.out.println(name.name());
  96. }*/
  97. ctab.tabitem=new TexItem().setUnlocalizedNameB("mv_ctab_tex_item").setTextureName();
  98. shaft=new BlockShaft();
  99. cndctr=new BlockHeatConducter(Material.ROCK);
  100. rhb=new BlockRHB(Material.ROCK);
  101. thermo=new BlockThermo(Material.ROCK);
  102. rdsw=new BlockRdsw(Material.ROCK);
  103. heq=new BlockHEQ(Material.ROCK);
  104. bconn=(TexBlock) new TexBlock(Material.ROCK).setUnlocalizedName("bconn").setRegistryName("bconn").setCreativeTab(ctab);
  105. //maxkabel=new BlockMaxKabel(Material.cloth);
  106. va=new Item5x5Vent();
  107. vaB=new ItemFreezer();
  108. mems=new TexItem[]{(TexItem)
  109. (new TexItem()).setUnlocalizedNameB("heatbuffer").setCreativeTab(CreativeTabs.MISC),
  110. (TexItem) (new TexItem()).setUnlocalizedNameB("membrancomp").setCreativeTab(CreativeTabs.MISC),
  111. (TexItem) (new TexItem()).setUnlocalizedNameB("membranliqheat").setCreativeTab(CreativeTabs.MISC),
  112. (TexItem) (new TexItem()).setUnlocalizedNameB("membrantemp").setCreativeTab(CreativeTabs.MISC)};
  113. owhr=new ItemOWHR();
  114. owhd=new ItemOWHD();
  115. owhl=new ItemOWHL();
  116. owhu=new ItemOWHU();
  117. coldt=new ItemColdBuffer();
  118. hott=new ItemHotBuffer();
  119. fireex=new ItemFireExtinguisher();
  120. System.out.println("MoarVents: Register Objects");
  121. ForgeRegistries.ITEMS.register(ctab.tabitem);
  122. ////LanguageRegistry.addName(ctab.tabitem, "Useless CreativeTab Placeholder");
  123. int bc;
  124. //va.setCreativeTab(ctab);
  125. //vaB.setCreativeTab(ctab);
  126. for (bc=0;bc<mems.length;bc++) {
  127. mems[bc].setCreativeTab(ctab);
  128. }
  129. ForgeRegistries.ITEMS.register(va);
  130. ForgeRegistries.ITEMS.register(vaB);
  131. ForgeRegistries.ITEMS.register(mems[0]);
  132. ForgeRegistries.ITEMS.register(mems[1]);
  133. ForgeRegistries.ITEMS.register(mems[2]);
  134. ForgeRegistries.ITEMS.register(mems[3]);
  135. ForgeRegistries.ITEMS.register(owhr);
  136. ForgeRegistries.ITEMS.register(owhd);
  137. ForgeRegistries.ITEMS.register(owhl);
  138. ForgeRegistries.ITEMS.register(owhu);
  139. ForgeRegistries.ITEMS.register(coldt);
  140. ForgeRegistries.ITEMS.register(hott);
  141. ForgeRegistries.ITEMS.register(fireex);
  142. ForgeRegistries.BLOCKS.registerAll(cndctr,rhb,shaft,thermo,rdsw,heq,bconn);
  143. ForgeRegistries.ITEMS.registerAll(
  144. new ItemBlock(cndctr).setRegistryName("hc").setCreativeTab(ctab),
  145. new ItemBlock(rhb).setRegistryName("rhb").setCreativeTab(ctab),
  146. new ItemBlock(shaft).setRegistryName("shaft").setCreativeTab(ctab),
  147. new ItemBlock(thermo).setRegistryName("thermo").setCreativeTab(ctab),
  148. new ItemBlock(rdsw).setRegistryName("rdsw").setCreativeTab(ctab),
  149. new ItemBlock(heq).setRegistryName("heq").setCreativeTab(ctab),
  150. new ItemBlock(bconn).setRegistryName("bconn").setCreativeTab(ctab)
  151. );
  152. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(mems[0], 4), new Object[] {Boolean.valueOf(false), new Object[]{"mwm", "wdw", "mwm", 'm', Items.IRON_INGOT, 'w', Items.WATER_BUCKET, 'd', "dustCopper"}}));
  153. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(mems[1], 4), new Object[] {Boolean.valueOf(false), new Object[]{"m ", " m ", " rm", 'm', Items.IRON_INGOT, 'r', "itemRubber"}}));
  154. GameRegistry.addShapedRecipe(new ItemStack(mems[2], 4), new Object[] {"msm", " m ", " ", 'm', Items.IRON_INGOT, 's', Blocks.SPONGE});
  155. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(mems[2], 4), new Object[] {Boolean.valueOf(false), new Object[]{"msm", " s ", " m ", 'm', Items.IRON_INGOT, 's', "dustStone"}}));
  156. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(mems[3], 4), new Object[] {Boolean.valueOf(false), new Object[]{"mrm", " w ", " ", 'm', Items.IRON_INGOT, 'w', Items.WATER_BUCKET, 'r', "itemRubber"}}));
  157. GameRegistry.addShapedRecipe(new ItemStack(va, 4), new Object[] {"i i", "cb ", "ifi", 'i', Items.IRON_INGOT, 'b', mems[0], 'c', mems[1], 'f', mems[2]});
  158. GameRegistry.addShapedRecipe(new ItemStack(vaB, 4), new Object[] {"ihi", " bc", "i i", 'i', Items.IRON_INGOT, 'h', mems[3], 'c', mems[1], 'b', mems[0]});
  159. //LanguageRegistry.addName(mems[0], "Vent Heat Buffer");
  160. //LanguageRegistry.addName(mems[1], "Component Membran");
  161. //LanguageRegistry.addName(mems[2], "Dissipation Membran");
  162. //LanguageRegistry.addName(mems[3], "CoreTemp cooling membran");
  163. TileEntity.addMapping(TileEntityShaft.class, "mv_shaft");
  164. TileEntity.addMapping(TileEntityHeatConducter.class, "mv_hc");
  165. TileEntity.addMapping(TileEntityRHB.class, "mv_rhb");
  166. TileEntity.addMapping(TileEntityThermo.class, "mv_thermo");
  167. //TileEntity.addMapping(TEMaxKabel.class, "mv_maxkabel");
  168. //GameRegistry.registerBlock(cndctr, "mv_hc");
  169. //LanguageRegistry.addName(cndctr, "Heat Conducter (VERY BUGGY!!!! DONT BUILD CIRCLES!!! (STACKOVERFLOW))");
  170. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(cndctr, 1), new Object[] {Boolean.valueOf(false), new Object[]{"ccc", "sss", "ccc", 'c', "ingotCopper", 's', "ingotSilver"}}));
  171. //GameRegistry.registerBlock(rhb, "mv_rhb");
  172. //LanguageRegistry.addName(rhb, "Reactor Heat Bridge");
  173. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(rhb, 1), new Object[] {Boolean.valueOf(false), new Object[]{"ccc", "msm", "ccc", 'm', mems[1], 'c', "ingotCopper", 's', "ingotSilver"}}));
  174. //GameRegistry.registerBlock(shaft, "mv_shaft");
  175. //LanguageRegistry.addName(shaft, "Kinetic Shaft");
  176. GameRegistry.addShapedRecipe(new ItemStack(shaft, 8), new Object[] {" h ", "sss", " h ", 'h', Blocks.STONE, 's', ItemName.crafting.getItemStack(CraftingItemType.iron_shaft)});
  177. //GameRegistry.registerBlock(thermo, "mv_thermo");
  178. GameRegistry.addShapedRecipe(new ItemStack(thermo, 4), new Object[] {"iii", "iri", "ibi", 'i', Items.IRON_INGOT, 'r', Items.REDSTONE, 'b', mems[1]});
  179. //GameRegistry.registerBlock(maxkabel, "maxkabel");
  180. ////LanguageRegistry.instance().addStringLocalization("tile.maxkabel", "de_DE", "MAX KABEL");
  181. ////LanguageRegistry.addName(maxkabel, "MAX CABLE");
  182. //GameRegistry.addShapedRecipe(new ItemStack(maxkabel, 8), new Object[] {" a", " ", " ", 'a', mems[1]});
  183. /*GameRegistry.register((ItemBlock) new ItemBlock(cndctr).setRegistryName("mv_hc"));
  184. GameRegistry.register((ItemBlock) new ItemBlock(rhb).setRegistryName("mv_rhb"));
  185. GameRegistry.register((ItemBlock) new ItemBlock(shaft).setRegistryName("mv_shaft"));*/
  186. GameRegistry.addShapedRecipe(new ItemStack(owhr, 2), new Object[] {" ", " nc", " ", 'c', mems[1], 'n', Items.GOLD_NUGGET});
  187. GameRegistry.addShapedRecipe(new ItemStack(owhr, 1), new Object[] {"o", 'o', owhu});
  188. GameRegistry.addShapedRecipe(new ItemStack(owhd, 1), new Object[] {"o", 'o', owhr});
  189. GameRegistry.addShapedRecipe(new ItemStack(owhl, 1), new Object[] {"o", 'o', owhd});
  190. GameRegistry.addShapedRecipe(new ItemStack(owhu, 1), new Object[] {"o", 'o', owhl});
  191. //LanguageRegistry.addName(owhr, "One Way Heat (R)");
  192. //LanguageRegistry.addName(owhd, "One Way Heat (D)");
  193. //LanguageRegistry.addName(owhl, "One Way Heat (L)");
  194. //LanguageRegistry.addName(owhu, "One Way Heat (U)");
  195. GameRegistry.addShapedRecipe(new ItemStack(coldt, 4), new Object[] {"mmm", "mim", "mmm", 'm', mems[0], 'i', Items.IRON_INGOT});
  196. //LanguageRegistry.addName(coldt, "Heat Storage");
  197. //LanguageRegistry.addName(hott, "Heat Storage (Hot)");
  198. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(bconn, 4), new Object[] {Boolean.valueOf(false), new Object[]{"cmc", "mcm", "cmc", 'c', "blockCopper", 'm', mems[1]}}));
  199. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(heq, 1), new Object[] {Boolean.valueOf(false), new Object[]{"ccc", "vmv", "ccc", 'c', "blockCopper", 'v', mems[1], 'm', IC2Items.getItem("reactor_heat_vent")}}));
  200. GameRegistry.addRecipe(new ShapedOreRecipe(new ItemStack(rdsw, 1), new Object[] {Boolean.valueOf(false), new Object[]{"ihi", "imi", " c ", 'c', "circuitBasic", 'i', Items.IRON_INGOT, 'h', Blocks.HOPPER, 'm', ItemName.crafting.getItemStack(CraftingItemType.electric_motor)}}));
  201. va.setTextureName();
  202. vaB.setTextureName();
  203. for(int i=0;i<4;i++) {
  204. mems[i].setTextureName();
  205. }
  206. owhr.setTextureName();
  207. owhd.setTextureName();
  208. owhl.setTextureName();
  209. owhu.setTextureName();
  210. coldt.setTextureName();
  211. hott.setTextureName();
  212. fireex.setTextureName();
  213. cndctr.registerBlockTexture();
  214. rhb.registerBlockTexture();
  215. shaft.registerBlockTexture();
  216. thermo.registerBlockTexture();
  217. rdsw.registerBlockTexture();
  218. heq.registerBlockTexture();
  219. bconn.registerBlockTexture();
  220. }
  221. public static SoundEvent sre=new SoundEvent(new ResourceLocation("moarvents","fireex"));
  222. public static IReactor searchForInterface(IBlockAccess w,BlockPos pos,EnumFacing todir){
  223. TileEntity te=w.getTileEntity(pos);
  224. if(te instanceof IReactor){return (IReactor)te;}
  225. else if(te instanceof IReactorChamber)
  226. {return (IReactor)((IReactorChamber)te).getReactorInstance();}
  227. else if(te instanceof TileEntityReactorAccessHatch)
  228. {return (IReactor)((TileEntityReactorAccessHatch)te).getReactorInstance();}// (sic!)
  229. if(w.getBlockState(pos).getBlock()==bconn) {return searchForInterface(w,pos.add(todir.getDirectionVec()),todir);}
  230. return null;
  231. }
  232. public static TileEntity getTE(IBlockAccess w,BlockPos pos,EnumFacing todir){
  233. if(w.getBlockState(pos).getBlock()==bconn) {return getTE(w,pos.add(todir.getDirectionVec()),todir);}
  234. return w.getTileEntity(pos);
  235. }
  236. }