diff options
Diffstat (limited to 'src')
115 files changed, 150 insertions, 235 deletions
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java index 928fe07bd5..55a8680555 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java @@ -11,8 +11,7 @@ import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import pers.gwyog.gtneioreplugin.plugin.items.ModItems; -import pers.gwyog.gtneioreplugin.plugin.renderer.ItemDimensionDisplayRenderer; +import pers.gwyog.gtneioreplugin.plugin.block.ModBlocks; import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper; import pers.gwyog.gtneioreplugin.util.GuiRecipeHelper; @@ -75,10 +74,7 @@ public class GTNEIOrePlugin { @EventHandler public void init(FMLInitializationEvent event) { - ModItems.init(); - if (event.getSide() == Side.CLIENT) { - new ItemDimensionDisplayRenderer(); - } + ModBlocks.init(); } @EventHandler diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java new file mode 100644 index 0000000000..5ef2cb04a9 --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/BlockDimensionDisplay.java @@ -0,0 +1,48 @@ +package pers.gwyog.gtneioreplugin.plugin.block; + +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.util.EnumFacing; +import net.minecraft.util.IIcon; + +public class BlockDimensionDisplay extends Block { + + private final String dimension; + private IIcon iconTop; + private IIcon iconRight; + private IIcon iconLeft; + + public BlockDimensionDisplay(String dimension) { + super(Material.rock); + this.dimension = dimension; + } + + @Override + public IIcon getIcon(int side, int meta) { + EnumFacing direction = EnumFacing.getFront(side); + switch (direction) { + case NORTH: + case SOUTH: + return iconRight; + case WEST: + case EAST: + return iconLeft; + case UP: + case DOWN: + default: + return iconTop; + } + } + + @Override + public void registerBlockIcons(IIconRegister iconRegister) { + this.iconTop = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_top"); + this.iconRight = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_right"); + this.iconLeft = iconRegister.registerIcon("gtneioreplugin:" + dimension + "_left"); + } + + public String getDimension() { + return dimension; + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java new file mode 100644 index 0000000000..fce0a0883e --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/block/ModBlocks.java @@ -0,0 +1,25 @@ +package pers.gwyog.gtneioreplugin.plugin.block; + +import cpw.mods.fml.common.registry.GameRegistry; +import java.util.HashMap; +import java.util.Map; +import net.minecraft.block.Block; +import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay; +import pers.gwyog.gtneioreplugin.util.DimensionHelper; + +public class ModBlocks { + + public static final Map<String, Block> blocks = new HashMap<>(); + + public static void init() { + for (String dimension : DimensionHelper.DimNameDisplayed) { + Block block = new BlockDimensionDisplay(dimension); + GameRegistry.registerBlock(block, ItemDimensionDisplay.class, "blockDimensionDisplay_" + dimension); + blocks.put(dimension, block); + } + } + + public static Block getBlock(String dimension) { + return blocks.get(dimension); + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java index 0955409d58..bf24ee186e 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java @@ -9,7 +9,7 @@ import java.util.Comparator; import java.util.List; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; -import pers.gwyog.gtneioreplugin.plugin.items.ItemDimensionDisplay; +import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay; import pers.gwyog.gtneioreplugin.util.DimensionHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper.OreSmallWrapper; diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java index 67da9bab02..cafb69a8f6 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java @@ -11,7 +11,7 @@ import java.util.Comparator; import java.util.List; import net.minecraft.client.resources.I18n; import net.minecraft.item.ItemStack; -import pers.gwyog.gtneioreplugin.plugin.items.ItemDimensionDisplay; +import pers.gwyog.gtneioreplugin.plugin.item.ItemDimensionDisplay; import pers.gwyog.gtneioreplugin.util.DimensionHelper; import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper; import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper.OreLayerWrapper; diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java new file mode 100644 index 0000000000..7584cf405c --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/item/ItemDimensionDisplay.java @@ -0,0 +1,58 @@ +package pers.gwyog.gtneioreplugin.plugin.item; + +import cpw.mods.fml.common.FMLCommonHandler; +import cpw.mods.fml.relauncher.Side; +import java.util.Objects; +import net.minecraft.block.Block; +import net.minecraft.item.ItemBlock; +import net.minecraft.item.ItemStack; +import net.minecraftforge.client.MinecraftForgeClient; +import pers.gwyog.gtneioreplugin.GTNEIOrePlugin; +import pers.gwyog.gtneioreplugin.plugin.block.BlockDimensionDisplay; +import pers.gwyog.gtneioreplugin.plugin.block.ModBlocks; +import pers.gwyog.gtneioreplugin.plugin.renderer.ItemDimensionDisplayRenderer; +import pers.gwyog.gtneioreplugin.util.DimensionHelper; + +public class ItemDimensionDisplay extends ItemBlock { + + public ItemDimensionDisplay(Block block) { + super(block); + setCreativeTab(GTNEIOrePlugin.creativeTab); + + if (FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT) { + MinecraftForgeClient.registerItemRenderer(this, new ItemDimensionDisplayRenderer()); + } + } + + public static ItemStack getItem(String dimension) { + Block block = ModBlocks.getBlock(dimension); + if (block != null) { + return new ItemStack(block); + } + return null; + } + + public static String getDimension(ItemStack stack) { + if (stack.getItem() instanceof ItemDimensionDisplay) { + return ((BlockDimensionDisplay) Block.getBlockFromItem(stack.getItem())).getDimension(); + } + return null; + } + + public static boolean isDimensionEqual(ItemStack stack1, ItemStack stack2) { + if (!(stack1.getItem() instanceof ItemDimensionDisplay) + || !(stack2.getItem() instanceof ItemDimensionDisplay)) { + return false; + } + return Objects.equals(getDimension(stack1), getDimension(stack2)); + } + + @Override + public String getItemStackDisplayName(ItemStack stack) { + String dimension = getDimension(stack); + if (dimension != null) { + return DimensionHelper.convertCondensedStringToToolTip(dimension).get(0); |
