diff --git a/src/main/java/com/cricketcraft/chisel/api/ChiselTabs.java b/src/main/java/com/cricketcraft/chisel/api/ChiselTabs.java new file mode 100644 index 00000000..0f83f398 --- /dev/null +++ b/src/main/java/com/cricketcraft/chisel/api/ChiselTabs.java @@ -0,0 +1,71 @@ +package com.cricketcraft.chisel.api; + +import team.chisel.Features; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import team.chisel.init.ChiselBlocks; +import team.chisel.init.ChiselItems; + +public class ChiselTabs { + + public static class CustomCreativeTab extends CreativeTabs { + + private boolean search; + + private ItemStack stack; + + public CustomCreativeTab(String label, boolean searchbar) { + super(label); + this.search = searchbar; + } + + @Override + public Item getTabIconItem() { + return stack.getItem(); + } + + public void setTabIconItemStack(ItemStack stack) { + this.stack = stack; + } + + @Override + public ItemStack getIconItemStack() { + return stack; + } + + @Override + @SideOnly(Side.CLIENT) + public String getBackgroundImageName() { + + return search ? "item_search.png" : super.getBackgroundImageName(); + } + + @Override + public int getSearchbarWidth() { + + return 89; + } + + @Override + public boolean hasSearchBar() { + + return search; + } + } + + + public static final CustomCreativeTab tabChisel = new CustomCreativeTab("tabChisel", false); + public static final CustomCreativeTab tabStoneChiselBlocks = new CustomCreativeTab("tabStoneChiselBlocks", true); + public static final CustomCreativeTab tabWoodChiselBlocks = new CustomCreativeTab("tabWoodChiselBlocks", true); + public static final CustomCreativeTab tabMetalChiselBlocks = new CustomCreativeTab("tabMetalChiselBlocks", true); + public static final CustomCreativeTab tabOtherChiselBlocks = new CustomCreativeTab("tabOtherChiselBlocks", true); + public static final CustomCreativeTab tabModdedChiselBlocks = new CustomCreativeTab("tabModdedChiselBlocks", true); + public static final CustomCreativeTab tabStairChiselBlocks = new CustomCreativeTab("tabStairChiselBlocks", true); + + +} diff --git a/src/main/java/team/chisel/Chisel.java b/src/main/java/team/chisel/Chisel.java index 0e840135..a6a460c5 100644 --- a/src/main/java/team/chisel/Chisel.java +++ b/src/main/java/team/chisel/Chisel.java @@ -22,7 +22,8 @@ import team.chisel.compat.fmp.FMPCompat; import team.chisel.config.Configurations; import team.chisel.entity.EntityChiselSnowman; import team.chisel.init.ChiselBlocks; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; +import team.chisel.init.TabsInit; import team.chisel.item.ItemCarvable; import team.chisel.item.chisel.ChiselController; import team.chisel.network.ChiselGuiHandler; @@ -128,7 +129,7 @@ public class Chisel { Configurations.config.load(); Configurations.refreshConfig(); - ChiselTabs.preInit(); + TabsInit.preInit(); Features.preInit(); Statistics.init(); PacketHandler.init(); @@ -175,7 +176,7 @@ public class Chisel { @EventHandler public void postInit(FMLPostInitializationEvent event) { - ChiselTabs.postInit(); + TabsInit.postInit(); Compatibility.init(event); } diff --git a/src/main/java/team/chisel/Features.java b/src/main/java/team/chisel/Features.java index e10d778c..5f1eb249 100644 --- a/src/main/java/team/chisel/Features.java +++ b/src/main/java/team/chisel/Features.java @@ -18,7 +18,7 @@ import team.chisel.entity.EntityCloudInABottle; import team.chisel.entity.EntitySmashingRock; import team.chisel.init.ChiselBlocks; import team.chisel.init.ChiselItems; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import team.chisel.item.ItemBallOMoss; import team.chisel.item.ItemBlockPresent; import team.chisel.item.ItemCarvable; diff --git a/src/main/java/team/chisel/block/BlockCarvable.java b/src/main/java/team/chisel/block/BlockCarvable.java index dd2a7df9..20da6f46 100644 --- a/src/main/java/team/chisel/block/BlockCarvable.java +++ b/src/main/java/team/chisel/block/BlockCarvable.java @@ -8,7 +8,7 @@ import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.api.rendering.ClientUtils; import team.chisel.Chisel; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/team/chisel/block/BlockCarvableBeacon.java b/src/main/java/team/chisel/block/BlockCarvableBeacon.java index b0ee3f4d..5cd61dc9 100644 --- a/src/main/java/team/chisel/block/BlockCarvableBeacon.java +++ b/src/main/java/team/chisel/block/BlockCarvableBeacon.java @@ -5,7 +5,7 @@ import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; import team.chisel.block.tileentity.TileEntityCarvableBeacon; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.BlockBeacon; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; diff --git a/src/main/java/team/chisel/block/BlockCarvableGlass.java b/src/main/java/team/chisel/block/BlockCarvableGlass.java index ced2665a..cc411a8d 100644 --- a/src/main/java/team/chisel/block/BlockCarvableGlass.java +++ b/src/main/java/team/chisel/block/BlockCarvableGlass.java @@ -7,7 +7,7 @@ import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.api.rendering.ClientUtils; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.BlockGlass; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/team/chisel/block/BlockCarvablePane.java b/src/main/java/team/chisel/block/BlockCarvablePane.java index e4e9f63c..2494d3fa 100644 --- a/src/main/java/team/chisel/block/BlockCarvablePane.java +++ b/src/main/java/team/chisel/block/BlockCarvablePane.java @@ -7,7 +7,7 @@ import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; import team.chisel.client.render.RendererCTMPane; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.BlockPane; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/team/chisel/block/BlockCarvableSand.java b/src/main/java/team/chisel/block/BlockCarvableSand.java index 4968828b..5bf33cbb 100644 --- a/src/main/java/team/chisel/block/BlockCarvableSand.java +++ b/src/main/java/team/chisel/block/BlockCarvableSand.java @@ -8,7 +8,7 @@ import com.cricketcraft.chisel.api.carving.IVariationInfo; import com.cricketcraft.chisel.api.rendering.ClientUtils; import team.chisel.Chisel; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.Block; import net.minecraft.block.BlockSand; import net.minecraft.client.renderer.texture.IIconRegister; diff --git a/src/main/java/team/chisel/block/BlockCarvableTorch.java b/src/main/java/team/chisel/block/BlockCarvableTorch.java index 1e3ac285..7f1b441c 100644 --- a/src/main/java/team/chisel/block/BlockCarvableTorch.java +++ b/src/main/java/team/chisel/block/BlockCarvableTorch.java @@ -7,7 +7,7 @@ import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; import team.chisel.Chisel; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import net.minecraft.block.BlockTorch; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.world.IBlockAccess; diff --git a/src/main/java/team/chisel/block/CarvableStairsMaker.java b/src/main/java/team/chisel/block/CarvableStairsMaker.java index 43006219..570f7197 100644 --- a/src/main/java/team/chisel/block/CarvableStairsMaker.java +++ b/src/main/java/team/chisel/block/CarvableStairsMaker.java @@ -3,7 +3,7 @@ package team.chisel.block; import com.cricketcraft.chisel.api.carving.CarvableHelper; import com.cricketcraft.chisel.api.carving.IVariationInfo; -import team.chisel.init.ChiselTabs; +import com.cricketcraft.chisel.api.ChiselTabs; import team.chisel.item.ItemCarvable; import net.minecraft.block.Block; import net.minecraft.item.ItemStack; diff --git a/src/main/java/team/chisel/init/ChiselTabs.java b/src/main/java/team/chisel/init/ChiselTabs.java deleted file mode 100644 index 1ae29836..00000000 --- a/src/main/java/team/chisel/init/ChiselTabs.java +++ /dev/null @@ -1,114 +0,0 @@ -package team.chisel.init; - -import team.chisel.Features; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.init.Blocks; -import net.minecraft.init.Items; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import cpw.mods.fml.relauncher.Side; -import cpw.mods.fml.relauncher.SideOnly; - -public class ChiselTabs { - - private static class CustomCreativeTab extends CreativeTabs { - - private boolean search; - - private ItemStack stack; - - public CustomCreativeTab(String label, boolean searchbar) { - super(label); - this.search = searchbar; - } - - @Override - public Item getTabIconItem() { - return stack.getItem(); - } - - public void setTabIconItemStack(ItemStack stack) { - this.stack = stack; - } - - @Override - public ItemStack getIconItemStack() { - return stack; - } - - @Override - @SideOnly(Side.CLIENT) - public String getBackgroundImageName() { - - return search ? "item_search.png" : super.getBackgroundImageName(); - } - - @Override - public int getSearchbarWidth() { - - return 89; - } - - @Override - public boolean hasSearchBar() { - - return search; - } - } - - private static boolean atLeastOneModIsLoaded = false; - - public static final CustomCreativeTab tabChisel = new CustomCreativeTab("tabChisel", false); - public static final CustomCreativeTab tabStoneChiselBlocks = new CustomCreativeTab("tabStoneChiselBlocks", true); - public static final CustomCreativeTab tabWoodChiselBlocks = new CustomCreativeTab("tabWoodChiselBlocks", true); - public static final CustomCreativeTab tabMetalChiselBlocks = new CustomCreativeTab("tabMetalChiselBlocks", true); - public static final CustomCreativeTab tabOtherChiselBlocks = new CustomCreativeTab("tabOtherChiselBlocks", true); - public static final CustomCreativeTab tabModdedChiselBlocks = new CustomCreativeTab("tabModdedChiselBlocks", true); - public static final CustomCreativeTab tabStairChiselBlocks = new CustomCreativeTab("tabStairChiselBlocks", true); - - // this serves mostly just to load the static initializers - public static void preInit() { - atLeastOneModIsLoaded = Features.oneModdedFeatureLoaded(); - } - - public static void postInit() { - - if (Features.CHISEL.enabled()) - tabChisel.setTabIconItemStack(new ItemStack(ChiselItems.chisel)); - else - tabChisel.setTabIconItemStack(new ItemStack(Items.stick)); - if (Features.HOLYSTONE.enabled()) - tabStoneChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.holystone)); - else - tabStoneChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.stonebrick)); - if (Features.WOOD.enabled()) - tabWoodChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.planks[0], 1, 1)); - else - tabWoodChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.planks)); - if (Features.TECHNICAL.enabled()) - tabMetalChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.technical)); - else - tabMetalChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.iron_block)); - if (Features.JACKOLANTERN.enabled()) - tabOtherChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.jackolantern[0])); - else - tabOtherChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.lit_pumpkin)); - if (Features.ICE_STAIRS.enabled()) - tabStairChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.iceStairs[0])); - else - tabStairChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.nether_brick_stairs)); - - if (atLeastOneModIsLoaded) { - if (Features.ARCANE.enabled()) { - tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.arcane)); - } else if (Features.BLOOD_RUNE.enabled()) { - tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.bloodRune)); - } else { - if (ChiselBlocks.voidstone != null) - tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.voidstone)); - else - tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.obsidian)); - } - } - } -} diff --git a/src/main/java/team/chisel/init/TabsInit.java b/src/main/java/team/chisel/init/TabsInit.java new file mode 100644 index 00000000..956eb76c --- /dev/null +++ b/src/main/java/team/chisel/init/TabsInit.java @@ -0,0 +1,58 @@ +package team.chisel.init; + +import com.cricketcraft.chisel.api.ChiselTabs; +import net.minecraft.init.Blocks; +import net.minecraft.init.Items; +import net.minecraft.item.ItemStack; +import team.chisel.Features; + +public class TabsInit { + + private static boolean atLeastOneModIsLoaded = false; + + // this serves mostly just to load the static initializers + public static void preInit() { + atLeastOneModIsLoaded = Features.oneModdedFeatureLoaded(); + } + + public static void postInit() { + + if (Features.CHISEL.enabled()) + ChiselTabs.tabChisel.setTabIconItemStack(new ItemStack(ChiselItems.chisel)); + else + ChiselTabs.tabChisel.setTabIconItemStack(new ItemStack(Items.stick)); + if (Features.HOLYSTONE.enabled()) + ChiselTabs.tabStoneChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.holystone)); + else + ChiselTabs.tabStoneChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.stonebrick)); + if (Features.WOOD.enabled()) + ChiselTabs.tabWoodChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.planks[0], 1, 1)); + else + ChiselTabs.tabWoodChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.planks)); + if (Features.TECHNICAL.enabled()) + ChiselTabs.tabMetalChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.technical)); + else + ChiselTabs.tabMetalChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.iron_block)); + if (Features.JACKOLANTERN.enabled()) + ChiselTabs.tabOtherChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.jackolantern[0])); + else + ChiselTabs.tabOtherChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.lit_pumpkin)); + if (Features.ICE_STAIRS.enabled()) + ChiselTabs.tabStairChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.iceStairs[0])); + else + ChiselTabs.tabStairChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.nether_brick_stairs)); + + if (atLeastOneModIsLoaded) { + if (Features.ARCANE.enabled()) { + ChiselTabs.tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.arcane)); + } else if (Features.BLOOD_RUNE.enabled()) { + ChiselTabs.tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.bloodRune)); + } else { + if (ChiselBlocks.voidstone != null) + ChiselTabs.tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(ChiselBlocks.voidstone)); + else + ChiselTabs.tabModdedChiselBlocks.setTabIconItemStack(new ItemStack(Blocks.obsidian)); + } + } + } +}