diff options
Diffstat (limited to 'src')
16 files changed, 462 insertions, 63 deletions
diff --git a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java index 3c0eb00eb4..928fe07bd5 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/GTNEIOrePlugin.java @@ -2,11 +2,17 @@ package pers.gwyog.gtneioreplugin; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; +import cpw.mods.fml.common.event.FMLInitializationEvent; import cpw.mods.fml.common.event.FMLLoadCompleteEvent; import cpw.mods.fml.common.event.FMLPreInitializationEvent; +import cpw.mods.fml.common.registry.GameRegistry; import cpw.mods.fml.relauncher.Side; +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.util.GT5OreLayerHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper; import pers.gwyog.gtneioreplugin.util.GuiRecipeHelper; @@ -26,6 +32,13 @@ public class GTNEIOrePlugin { public static String CSVnameSmall; public static boolean toolTips = true; public static int maxTooltipLines = 11; + public static final CreativeTabs creativeTab = new CreativeTabs(MODID) { + @Override + public Item getTabIconItem() { + return GameRegistry.makeItemStack("gregtech:gt.blockores", 386, 1, null) + .getItem(); + } + }; @Mod.Instance(MODID) public static GTNEIOrePlugin instance; @@ -61,6 +74,14 @@ public class GTNEIOrePlugin { } @EventHandler + public void init(FMLInitializationEvent event) { + ModItems.init(); + if (event.getSide() == Side.CLIENT) { + new ItemDimensionDisplayRenderer(); + } + } + + @EventHandler public void onLoadComplete(FMLLoadCompleteEvent event) { if (event.getSide() == Side.CLIENT) { new GT5OreLayerHelper(); diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java index bdcccebe7a..6abc3ea96c 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5Base.java @@ -1,20 +1,15 @@ package pers.gwyog.gtneioreplugin.plugin.gregtech5; -import static pers.gwyog.gtneioreplugin.GTNEIOrePlugin.toolTips; - import codechicken.lib.gui.GuiDraw; -import codechicken.nei.guihook.GuiContainerManager; import codechicken.nei.recipe.GuiRecipe; import gregtech.api.GregTech_API; import gregtech.api.enums.Materials; import gregtech.api.util.GT_LanguageManager; import java.awt.Point; import java.awt.Rectangle; -import java.util.List; import net.minecraft.client.resources.I18n; import net.minecraft.util.EnumChatFormatting; import pers.gwyog.gtneioreplugin.plugin.PluginBase; -import pers.gwyog.gtneioreplugin.util.DimensionHelper; import pers.gwyog.gtneioreplugin.util.GuiRecipeHelper; public abstract class PluginGT5Base extends PluginBase { @@ -52,30 +47,6 @@ public abstract class PluginGT5Base extends PluginBase { } /** - * Add lines to the current tooltip if appropriate - * - * @param gui An instance of the currentscreen - * @param currenttip The current tooltip, will contain item name and info - * @param recipe The recipe index being handled - * @return The modified tooltip. DO NOT return null - */ - @Override - public List<String> handleTooltip(GuiRecipe gui, List<String> currenttip, int recipe) { - if (toolTips && GuiContainerManager.shouldShowTooltip(gui) && currenttip.size() == 0) { - String dimNames = getDimensionNames(recipe); - Rectangle dimRect = getDimensionNamesRect(gui, recipe, dimNames); - Point mousePos = GuiDraw.getMousePosition(); - - if (dimRect.contains(mousePos.x, mousePos.y)) { - List<String> dims = DimensionHelper.convertCondensedStringToToolTip(dimNames); - currenttip.addAll(dims); - } - } - - return super.handleTooltip(gui, currenttip, recipe); - } - - /** * The dimension names for a given recipe index * * @param recipe The recipe index being handled @@ -117,20 +88,6 @@ public abstract class PluginGT5Base extends PluginBase { */ protected void drawDimNames(String dimNames) { GuiDraw.drawString(I18n.format("gtnop.gui.nei.worldNames") + ": ", 2, 100, 0x404040, false); - - if (dimNames.length() > 36) { - GuiDraw.drawString(I18n.format("") + dimNames.substring(0, 36), 2, 110, 0x404040, false); - if (dimNames.length() > 70) { - GuiDraw.drawString(I18n.format("") + dimNames.substring(36, 70), 2, 120, 0x404040, false); - GuiDraw.drawString( - I18n.format("") + dimNames.substring(70, dimNames.length() - 1), 2, 130, 0x404040, false); - } else { - GuiDraw.drawString( - I18n.format("") + dimNames.substring(36, dimNames.length() - 1), 2, 120, 0x404040, false); - } - } else { - GuiDraw.drawString(I18n.format("") + dimNames.substring(0, dimNames.length() - 1), 2, 110, 0x404040, false); - } } /** 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 38f668f05e..0955409d58 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5SmallOreStat.java @@ -4,9 +4,13 @@ import codechicken.nei.PositionedStack; import gregtech.api.enums.OrePrefixes; import gregtech.api.util.GT_OreDictUnificator; import java.util.ArrayList; +import java.util.Arrays; +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.util.DimensionHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper; import pers.gwyog.gtneioreplugin.util.GT5OreSmallHelper.OreSmallWrapper; @@ -66,6 +70,20 @@ public class PluginGT5SmallOreStat extends PluginGT5Base { } else super.loadCraftingRecipes(stack); } + @Override + public void loadUsageRecipes(ItemStack stack) { + String dimension = ItemDimensionDisplay.getDimension(stack); + if (dimension == null) { + return; + } + + for (OreSmallWrapper oreVein : GT5OreSmallHelper.mapOreSmallWrapper.values()) { + if (Arrays.asList(getDimNameArrayFromVeinName(oreVein.oreGenName)).contains(dimension)) { + addSmallOre(oreVein, 7); + } + } + } + private void loadSmallOre(short oreMeta, int maximumIndex) { OreSmallWrapper smallOre = getSmallOre(oreMeta); if (smallOre != null) { @@ -120,11 +138,20 @@ public class PluginGT5SmallOreStat extends PluginGT5Base { return GT5OreSmallHelper.bufferedDims.get(oreSmall); } + private String[] getDimNameArrayFromVeinName(String veinName) { + OreSmallWrapper oreSmall = GT5OreSmallHelper.mapOreSmallWrapper.get(veinName); + String[] dims = DimensionHelper.parseDimNames(GT5OreSmallHelper.bufferedDims.get(oreSmall)); + Arrays.sort(dims, Comparator.comparingInt(s -> Arrays.asList(DimensionHelper.DimNameDisplayed) + .indexOf(s))); + return dims; + } + public class CachedOreSmallRecipe extends CachedRecipe { public String oreGenName; public PositionedStack positionedStackOreSmall; public PositionedStack positionedStackMaterialDust; public List<PositionedStack> positionedDropStackList; + private final List<PositionedStack> dimensionDisplayItems = new ArrayList<>(); public CachedOreSmallRecipe( String oreGenName, @@ -141,21 +168,46 @@ public class PluginGT5SmallOreStat extends PluginGT5Base { positionedDropStackList.add(new PositionedStack( stackDrop, 43 + 20 * (i % 4), 79 + 16 * ((i++) / 4) + getRestrictBiomeOffset())); this.positionedDropStackList = positionedDropStackList; + setDimensionDisplayItems(); + } + + private void setDimensionDisplayItems() { + int x = 2; + int y = 110; + int count = 0; + int itemsPerLine = 9; + int itemSize = 18; + for (String dim : getDimNameArrayFromVeinName(this.oreGenName)) { + ItemStack item = ItemDimensionDisplay.getItem(dim); + if (item != null) { + int xPos = x + itemSize * (count % itemsPerLine); + int yPos = y + itemSize * (count / itemsPerLine); + dimensionDisplayItems.add(new PositionedStack(item, xPos, yPos, false)); + count++; + } + } } @Override public List<PositionedStack> getIngredients() { - positionedStackOreSmall.setPermutationToRender((cycleticks / 20) % positionedStackOreSmall.items.length); - positionedStackMaterialDust.setPermutationToRender( - (cycleticks / 20) % positionedStackMaterialDust.items.length); - positionedDropStackList.add(positionedStackOreSmall); - positionedDropStackList.add(positionedStackMaterialDust); - return positionedDropStackList; + return dimensionDisplayItems; } @Override public PositionedStack getResult() { return null; } + + @Override + public List<PositionedStack> getOtherStacks() { + List<PositionedStack> outputs = new ArrayList<>(); + positionedStackOreSmall.setPermutationToRender((cycleticks / 20) % positionedStackOreSmall.items.length); + positionedStackMaterialDust.setPermutationToRender( + (cycleticks / 20) % positionedStackMaterialDust.items.length); + outputs.add(positionedStackOreSmall); + outputs.add(positionedStackMaterialDust); + outputs.addAll(positionedDropStackList); + return outputs; + } } } 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 dc559db34a..67da9bab02 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/gregtech5/PluginGT5VeinStat.java @@ -5,10 +5,14 @@ import static pers.gwyog.gtneioreplugin.util.OreVeinLayer.*; import codechicken.nei.PositionedStack; import cpw.mods.fml.common.Loader; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collection; +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.util.DimensionHelper; import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper; import pers.gwyog.gtneioreplugin.util.GT5OreLayerHelper.OreLayerWrapper; @@ -38,6 +42,20 @@ public class PluginGT5VeinStat extends PluginGT5Base { } } + @Override + public void loadUsageRecipes(ItemStack stack) { + String dimension = ItemDimensionDisplay.getDimension(stack); + if (dimension == null) { + return; + } + + for (OreLayerWrapper oreVein : getAllVeins()) { + if (Arrays.asList(getDimNameArrayFromVeinName(oreVein.veinName)).contains(dimension)) { + addVeinWithLayers(oreVein, getMaximumMaterialIndex((short) (stack.getItemDamage() % 1000), false)); + } + } + } + private void addVeinWithLayers(OreLayerWrapper oreVein, int maximumMaterialIndex) { this.arecipes.add(new CachedVeinStatRecipe( oreVein.veinName, @@ -123,12 +141,21 @@ public class PluginGT5VeinStat extends PluginGT5Base { return GT5OreLayerHelper.bufferedDims.get(oreLayer); } + private String[] getDimNameArrayFromVeinName(String veinName) { + OreLayerWrapper oreLayer = GT5OreLayerHelper.mapOreLayerWrapper.get(veinName); + String[] dims = DimensionHelper.parseDimNames(GT5OreLayerHelper.bufferedDims.get(oreLayer)); + Arrays.sort(dims, Comparator.comparingInt(s -> Arrays.asList(DimensionHelper.DimNameDisplayed) + .indexOf(s))); + return dims; + } + public class CachedVeinStatRecipe extends CachedRecipe { public String veinName; public PositionedStack positionedStackPrimary; public PositionedStack positionedStackSecondary; public PositionedStack positionedStackBetween; public PositionedStack positionedStackSporadic; + private final List<PositionedStack> dimensionDisplayItems = new ArrayList<>(); public CachedVeinStatRecipe( String veinName, @@ -141,25 +168,48 @@ public class PluginGT5VeinStat extends PluginGT5Base { positionedStackSecondary = new PositionedStack(stackListSecondary, 22, 0); positionedStackBetween = new PositionedStack(stackListBetween, 42, 0); positionedStackSporadic = new PositionedStack(stackListSporadic, 62, 0); + setDimensionDisplayItems(); + } + + private void setDimensionDisplayItems() { + int x = 2; + int y = 110; + int count = 0; + int itemsPerLine = 9; + int itemSize = 18; + for (String dim : getDimNameArrayFromVeinName(this.veinName)) { + ItemStack item = ItemDimensionDisplay.getItem(dim); + if (item != null) { + int xPos = x + itemSize * (count % itemsPerLine); + int yPos = y + itemSize * (count / itemsPerLine); + dimensionDisplayItems.add(new PositionedStack(item, xPos, yPos, false)); + count++; + } + } } @Override public List<PositionedStack> getIngredients() { - List<PositionedStack> ingredientsList = new ArrayList<>(); - positionedStackPrimary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); - positionedStackSecondary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); - positionedStackBetween.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); - positionedStackSporadic.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); - ingredientsList.add(positionedStackPrimary); - ingredientsList.add(positionedStackSecondary); - ingredientsList.add(positionedStackBetween); - ingredientsList.add(positionedStackSporadic); - return ingredientsList; + return dimensionDisplayItems; } @Override public PositionedStack getResult() { return null; } + + @Override + public List<PositionedStack> getOtherStacks() { + List<PositionedStack> outputs = new ArrayList<>(); + positionedStackPrimary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); + positionedStackSecondary.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); + positionedStackBetween.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); + positionedStackSporadic.setPermutationToRender((cycleticks / 20) % positionedStackPrimary.items.length); + outputs.add(positionedStackPrimary); + outputs.add(positionedStackSecondary); + outputs.add(positionedStackBetween); + outputs.add(positionedStackSporadic); + return outputs; + } } } diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java new file mode 100644 index 0000000000..76be6536e8 --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ItemDimensionDisplay.java @@ -0,0 +1,111 @@ +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.convertCondensedStringToToolTip(dimension).get(0); + } + return super.getItemStackDisplayName(stack); + } + + @Override + public Item setTextureName(String p_111206_1_) { + return super.setTextureName(p_111206_1_); + } + + @SuppressWarnings("unchecked") + @Override + public void getSubItems(Item item, CreativeTabs creativeTabs, List itemList) { + for (ItemStack stack : items.values()) { + itemList.add(stack.copy()); + } + } + + public static void loadItems() { + String[] vanilla_gt = new String[] {"Ow", "Ne", "TF", "EN", "VA", "EA"}; + for (String dimension : vanilla_gt) { + ItemStack stack = new ItemStack(ModItems.itemDimensionDisplay); + setDimension(stack, dimension); + items.put(dimension, stack); + } + String[] gc = new String[] {"Mo", "Ma", "As"}; + if (Loader.isModLoaded("GalacticraftCore")) { + for (String dimension : gc) { + ItemStack stack = new ItemStack(ModItems.itemDimensionDisplay); + setDimension(stack, dimension); + items.put(dimension, stack); + } + } + String[] gs = new String[] { + "De", "Ph", "Ca", "Ce", "Eu", "Ga", "Io", "Me", "Ve", "En", "Mi", "Ob", "Ti", "Pr", "Tr", "Ha", "KB", "MM", + "Pl", "BC", "BE", "BF", "CB", "TE", "VB" + }; + if (Loader.isModLoaded("GalaxySpace")) { + for (String dimension : gs) { + ItemStack stack = new ItemStack(ModItems.itemDimensionDisplay); + setDimension(stack, dimension); + items.put(dimension, stack); + } + } + String[] xu = new String[] {"DD"}; + if (Loader.isModLoaded("ExtraUtilities")) { + for (String dimension : xu) { + ItemStack stack = new ItemStack(ModItems.itemDimensionDisplay); + setDimension(stack, dimension); + items.put(dimension, stack); + } + } + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ModItems.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ModItems.java new file mode 100644 index 0000000000..1a519c4548 --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/items/ModItems.java @@ -0,0 +1,15 @@ +package pers.gwyog.gtneioreplugin.plugin.items; + +import cpw.mods.fml.common.registry.GameRegistry; +import net.minecraft.item.Item; +import pers.gwyog.gtneioreplugin.GTNEIOrePlugin; + +public class ModItems { + + public static Item itemDimensionDisplay = new ItemDimensionDisplay(); + + public static void init() { + GameRegistry.registerItem(itemDimensionDisplay, "itemDimensionDisplay", GTNEIOrePlugin.MODID); + ItemDimensionDisplay.loadItems(); + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java b/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java new file mode 100644 index 0000000000..d85a3764d3 --- /dev/null +++ b/src/main/java/pers/gwyog/gtneioreplugin/plugin/renderer/ItemDimensionDisplayRenderer.java @@ -0,0 +1,181 @@ +package pers.gwyog.gtneioreplugin.plugin.renderer; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.FontRenderer; +import net.minecraft.client.renderer.Tessellator; +import net.minecraft.item.ItemStack; +import net.minecraft.util.ResourceLocation; +import net.minecraftforge.client.IItemRenderer; +import net.minecraftforge.client.MinecraftForgeClient; +import org.lwjgl.opengl.GL11; +import pers.gwyog.gtneioreplugin.GTNEIOrePlugin; +import pers.gwyog.gtneioreplugin.plugin.items.ItemDimensionDisplay; +import pers.gwyog.gtneioreplugin.plugin.items.ModItems; + +public class ItemDimensionDisplayRenderer implements IItemRenderer { + + public ItemDimensionDisplayRenderer() { + MinecraftForgeClient.registerItemRenderer(ModItems.itemDimensionDisplay, this); + } + + @Override + public boolean handleRenderType(ItemStack item, ItemRenderType type) { + return true; + } + + @Override + public boolean shouldUseRenderHelper(ItemRenderType type, ItemStack item, ItemRendererHelper helper) { + return false; + } + + @Override + public void renderItem(ItemRenderType type, ItemStack item, Object... data) { + String dimension = ItemDimensionDisplay.getDimension(item); + if (dimension == null) { + return; + } + + GL11.glEnable(GL11.GL_BLEND); + GL11.glEnable(GL11.GL_ALPHA_TEST); + + Minecraft.getMinecraft().renderEngine.bindTexture(getResourceLocation(dimension)); + + Tessellator tess = Tessellator.instance; + tess.startDrawingQuads(); + tess.addVertexWithUV(0, 16, 0, 0, 1); + tess.addVertexWithUV(16, 16, 0, 1, 1); + tess.addVertexWithUV(16, 0, 0, 1, 0); + tess.addVertexWithUV(0, 0, 0, 0, 0); + tess.draw(); + + GL11.glDisable(GL11.GL_BLEND); + + String prefix = getPrefix(dimension); + if (!prefix.isEmpty()) { + FontRenderer fontRender = Minecraft.getMinecraft().fontRenderer; + float smallTextScale = fontRender.getUnicodeFlag() ? 3F / 4F : 1F / 2F; + GL11.glScalef(smallTextScale, smallTextScale, 1.0f); + + fontRender.drawString(prefix, 0, (int) (16 / smallTextScale) - fontRender.FONT_HEIGHT + 1, 0xFFFFFF, true); + } + + GL11.glDisable(GL11.GL_ALPHA_TEST); + } + + private ResourceLocation getResourceLocation(String dimension) { + switch (dimension) { + case "Ow": + case "Ne": + case "TF": + case "EN": + case "VA": + case "EA": + return new ResourceLocation( + GTNEIOrePlugin.MODID, String.format("textures/items/dimensionDisplay/%s.png", dimension)); + case "Mo": + return new ResourceLocation("galacticraftcore:textures/gui/celestialbodies/moon.png"); + case "De": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/deimos.png"); + case "Ma": + return new ResourceLocation("galacticraftcore:textures/gui/celestialbodies/mars.png"); + case "Ph": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/phobos.png"); + case "As": + return new ResourceLocation("galacticraftcore:textures/gui/celestialbodies/asteroid.png"); + case "Ca": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/callisto.png"); + case "Ce": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/ceres.png"); + case "Eu": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/europa.png"); + case "Ga": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/ganymede.png"); + case "Io": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/io.png"); + case "Me": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/mercury.png"); + case "Ve": + return new ResourceLocation("galacticraftcore:textures/gui/celestialbodies/venus.png"); + case "En": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/enceladus.png"); + case "Mi": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/miranda.png"); + case "Ob": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/oberon.png"); + case "Ti": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/titan.png"); + case "Pr": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/proteus.png"); + case "Tr": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/triton.png"); + case "Ha": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/haumea.png"); + case "KB": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/kuiperbelt.png"); + case "MM": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/makemake.png"); + case "Pl": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/pluto.png"); + case "BC": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/barnards/Barnarda2.png"); + case "BE": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/barnards/Barnarda4.png"); + case "BF": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/barnards/Barnarda5.png"); + case "CB": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/aCentauri/CentauriBb.png"); + case "TE": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/tceti/TCetiE.png"); + case "DD": + return new ResourceLocation("extrautils:textures/blocks/dark_portal.png"); + case "VB": + return new ResourceLocation("galaxyspace:textures/gui/celestialbodies/vega/Vega1.png"); + default: + return new ResourceLocation(GTNEIOrePlugin.MODID, "textures/items/dimensionDisplay/_unknown.png"); + } + } + + private static String getPrefix(String dimName) { + switch (dimName) { + case "Mo": + return "T1"; + case "De": + case "Ma": + case "Ph": + return "T2"; + case "As": + case "Ca": + case "Ce": + case "Eu": + case "Ga": + return "T3"; + case "Io": + case "Me": + case "Ve": + return "T4"; + case "En": + case "Mi": + case "Ob": + case "Ti": + return "T5"; + case "Pr": + case "Tr": + return "T6"; + case "Ha": + case "KB": + case "MM": + case "Pl": + return "T7"; + case "BC": + case "BE": + case "BF": + case "CB": + case "TE": + case "DD": + case "VB": + return "T8"; + default: + return ""; + } + } +} diff --git a/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java index 16be409b61..ac4ceb6f95 100644 --- a/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java +++ b/src/main/java/pers/gwyog/gtneioreplugin/util/DimensionHelper.java @@ -108,11 +108,9 @@ public class DimensionHelper { private static final HashMap<String, List<String>> tooltipBuffer = new HashMap<>(); private static List<String> computeString(String line) { - String[] dims = line.split(","); + String[] dims = parseDimNames(line); for (int j = 0; j < dims.length; j++) { String s = dims[j]; - s = s.replaceAll(",", ""); - s = s.trim(); for (int i = 0; i < DimNameDisplayed.length; i++) { if (s.equals(DimNameDisplayed[i])) { String k = DimName[i] @@ -182,6 +180,17 @@ public class DimensionHelper { return Arrays.asList(dims); } + public static String[] parseDimNames(String line) { + String[] dims = line.split(","); + for (int j = 0; j < dims.length; j++) { + String s = dims[j]; + s = s.replaceAll(",", ""); + s = s.trim(); + dims[j] = s; + } + return dims; + } + public static List<String> convertCondensedStringToToolTip(String line) { return tooltipBuffer.computeIfAbsent(line, (String tmp) -> computeString(line)); } diff --git a/src/main/resources/assets/gtneioreplugin/lang/en_US.lang b/src/main/resources/assets/gtneioreplugin/lang/en_US.lang index ec8c8a9681..dd65efe1ff 100644 --- a/src/main/resources/assets/gtneioreplugin/lang/en_US.lang +++ b/src/main/resources/assets/gtneioreplugin/lang/en_US.lang @@ -83,4 +83,7 @@ gtnop.ore.null.name=None # vein types gtnop.ore.vein.name=Vein gtnop.ore.asteroid.name=Asteriod -gtnop.ore.custom.name=Custom
\ No newline at end of file +gtnop.ore.custom.name=Custom + +# items +itemGroup.gtneioreplugin=GT NEI Ore Plugin diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png Binary files differnew file mode 100644 index 0000000000..e286109098 --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EA.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png Binary files differnew file mode 100644 index 0000000000..eb8ad3262f --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/EN.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png Binary files differnew file mode 100644 index 0000000000..664709d6da --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ne.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png Binary files differnew file mode 100644 index 0000000000..95f73b28fe --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/Ow.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png Binary files differnew file mode 100644 index 0000000000..bf804874d3 --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/TF.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png Binary files differnew file mode 100644 index 0000000000..83774cb6f1 --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/VA.png diff --git a/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png Binary files differnew file mode 100644 index 0000000000..89bb66bc8e --- /dev/null +++ b/src/main/resources/assets/gtneioreplugin/textures/items/dimensionDisplay/_unknown.png |