diff options
| author | miozune <miozune@gmail.com> | 2022-07-13 05:27:30 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-07-12 21:27:30 +0100 |
| commit | 1e423d38361b740473bc5c0674821b2b5f77ffc0 (patch) | |
| tree | fc07a2a8e13a84d9ee575b29772bf742f90a62dc /src | |
| parent | 5c06d007a8fee37f493737d4f6e5af1a7df5727c (diff) | |
| download | GT5-Unofficial-1e423d38361b740473bc5c0674821b2b5f77ffc0.tar.gz GT5-Unofficial-1e423d38361b740473bc5c0674821b2b5f77ffc0.tar.bz2 GT5-Unofficial-1e423d38361b740473bc5c0674821b2b5f77ffc0.zip | |
Rework for Dimension Display (#19)
* Rework for Dimension Display
* side (again)
* :weary:
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); + } + return super.getItemStackDisplayName(stack); + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java deleted file mode 100644 index 76be6536e8..0000000000 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java +++ /dev/null @@ -1,111 +0,0 @@ -package pers.gwyog.gtneioreplugin.plugin.items; - -import cpw.mods.fml.common.Loader; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraftforge.common.util.Constants; -import pers.gwyog.gtneioreplugin.GTNEIOrePlugin; -import pers.gwyog.gtneioreplugin.util.DimensionHelper; - -public class ItemDimensionDisplay extends Item { - - private static final String TAG_DIMENSION = "dimension"; - private static final Map<String, ItemStack> items = new HashMap<>(); - - public ItemDimensionDisplay() { - setUnlocalizedName(GTNEIOrePlugin.MODID + ".itemDimensionDisplay"); - setCreativeTab(GTNEIOrePlugin.creativeTab); - } - - public static ItemStack getItem(String dimension) { - if (items.get(dimension) != null) { - return items.get(dimension).copy(); - } - return null; - } - - public static void setDimension(ItemStack stack, String dimension) { - NBTTagCompound nbt = new NBTTagCompound(); - nbt.setString(TAG_DIMENSION, dimension); - stack.setTagCompound(nbt); - } - - public static String getDimension(ItemStack stack) { - if (stack.hasTagCompound() && stack.getTagCompound().hasKey(TAG_DIMENSION, Constants.NBT.TAG_STRING)) { - return stack.getTagCompound().getString(TAG_DIMENSION); - } - 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 |
