Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

m_pro_m

Members
  • Joined

  • Last visited

Everything posted by m_pro_m

  1. Anyone, please?
  2. Hey guys, I am trying to create a GUI with a scrolling list. Inside that, I want to display "achievements". Problem is, they are somehow out of position.. Screenshots: http://pho.to/9doT0 (second one is fullscreen) My code: GuiAchievements.java import cpw.mods.fml.client.GuiScrollingList; import eu.mprom.gm.achievements.GMAchievements; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.FontRenderer; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import org.lwjgl.input.Mouse; import org.lwjgl.opengl.GL11; import java.util.ArrayList; public class GuiAchievements extends GuiScreen{ protected int guiWidth = 256; protected int guiHeight = 200; private ArrayList<String> achievements; private GuiSlotAchievement achievementsList; private EntityPlayer player; public GuiAchievements(EntityPlayer player) { this.player = player; achievements = new ArrayList<String>(); for(int i=0; i<10; i++) { achievements.add("Achv " + i); } } @Override public void initGui() { super.initGui(); int guiX = (width - guiWidth) / 2; int guiY = (height - guiHeight) / 2; this.buttonList.add( new GuiButton(1, guiX + 9, guiY + 148, 50, 15, "Close")); this.achievementsList=new GuiSlotAchievement(this, achievements); this.achievementsList.registerScrollButtons(this.buttonList, 7, ; } @Override protected void keyTyped(char p_73869_1_, int p_73869_2_) { player.closeScreen(); } @Override protected void actionPerformed(GuiButton button) { if (button.enabled) { switch (button.id) { case 1: this.player.closeScreen(); return; } } super.actionPerformed(button); } @Override public void drawScreen(int x, int y, float ticks) { super.drawScreen(x, y, ticks); GL11.glColor4f(1, 1, 1, 1); drawDefaultBackground(); int guiX = (width - guiWidth) / 2; int guiY = (height - guiHeight) / 2; mc.renderEngine.bindTexture(new ResourceLocation(GMAchievements.MOD_ID, "textures/gui/achievements.png")); drawTexturedModalRect(guiX, guiY, 0, 0, 256, 200); //drawTexturedModalRect(guiX + 18, guiY + 18, 0, 200, 200, 30); this.achievementsList.drawScreen(x, y, ticks); } Minecraft getMinecraftInstance() { /** Reference to the Minecraft object. */ return mc; } FontRenderer getFontRenderer() { /** The FontRenderer used by GuiScreen */ return fontRendererObj; } } GuiSlotAchievement.java import cpw.mods.fml.client.GuiScrollingList; import eu.mprom.gm.achievements.GMAchievements; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.util.ResourceLocation; import org.lwjgl.opengl.GL11; import java.util.ArrayList; public class GuiSlotAchievement extends GuiScrollingList { private ArrayList<String> achievements; private GuiAchievements parent; public GuiSlotAchievement(GuiAchievements parent, ArrayList<String> achievements) { super( parent.getMinecraftInstance(), 240, 140, (parent.height - parent.guiHeight) / 2 + 8, (parent.height - parent.guiHeight) / 2 + 190, (parent.width - parent.guiWidth) / 2 + 7, 50 ); this.func_27259_a(true, -22); this.parent = parent; this.achievements = achievements; } @Override protected int getSize() { return achievements.size(); } @Override protected void elementClicked(int index, boolean doubleClick) { } @Override protected boolean isSelected(int index) { return false; } @Override protected void drawBackground() { //this.parent.drawDefaultBackground(); } /* @Override protected int getContentHeight() { return this.getSize() * 30; } */ @Override protected void drawSlot(int listIndex, int var2, int var3, int var4, Tessellator var5) { int guiX = (this.parent.width - this.parent.guiWidth) / 2; int guiY = (this.parent.height - this.parent.guiHeight) / 2; GL11.glDisable(GL11.GL_LIGHTING); GL11.glDisable(GL11.GL_FOG); GL11.glColor4f(1,1,1,1); this.parent.mc.renderEngine.bindTexture(new ResourceLocation(GMAchievements.MOD_ID, "textures/gui/achievements.png")); this.parent.drawTexturedModalRect(guiX + 15, guiY + var3, 0, 200, 200, 30); this.parent.getFontRenderer().drawString("Achievement name", guiX + 20, guiY + var3 + 5, 0x000000); } } I was trying to do something with this function this.func_27259_a(true, -22);, but it just moves the content up and down. Main problem is: When I scroll the slider, content is displayed over the container that holds it (over the top and bottom - you can sometimes see up to 5 elements). Second problem is the fullscreen (see screenshot), but I guess all I have to do is to reposition everything on resize of the window, right? Any pointers to the window resize event? Last thing, I was trying to close the GUI after clicking the button or pressing a keyboard, but it doesn't work. I also tried this.mc.thePlayer.closeScreen(). Any ideas? Thank you!
  3. Hey guys, I've been trying to create a simple GUI, but I keep getting this error message everytime I am trying to use a texture: [18:10:39] [Client thread/WARN]: Failed to load texture: gmachievements:textures/gui/magic_bag.png java.io.FileNotFoundException: gmachievements:textures/gui/magic_bag.png at net.minecraft.client.resources.SimpleReloadableResourceManager.getResource(SimpleReloadableResourceManager.java:71) ~[simpleReloadableResourceManager.class:?] ...etc I tried all of these methods to bind my texture mc.renderEngine.bindTexture(new ResourceLocation("gmachievements", "textures/gui/magic_bag.png")); mc.renderEngine.bindTexture(new ResourceLocation("gmachievements:textures/gui/magic_bag.png")); mc.renderEngine.bindTexture(new ResourceLocation(GMAchievements.MOD_ID, "textures/gui/magic_bag.png")); mc.renderEngine.bindTexture(new ResourceLocation(GMAchievements.MOD_ID + ':' + "textures/gui/magic_bag")); MOD_ID is "gmachievements" Project structure http://pasteboard.co/2GWAvAyX.png I read all the topics here on forums with similar problems, but everyting was pointing to wrong typo or no modid.. I tried a lot of things, even creating a totally new project - nothing helped me. Btw I am sorry but I couldnt use any of the formatting tools (JS errors in console!)
  4. m_pro_m posted a topic in Mods
    Hello, I made a mod that merges XP Orbs together. It's just a utility mod (for servers). Purpose of this mod is to ensure there aren't tons of XP Orbs dropped nearby XP farms, you can not remove easily with 5 FPS... I hope you will find this useful Download: XPPackager.zip
  5. I tried to put event.setResult(Result.DENY); but nothing happened. I am using event EntityJoinWorldEvent.
  6. Hello, I've got a code that removes some xp orb entities. Whenever it removes something, console says [WARNING] Fetching addPacket for removed entity That's ton of spam. Can I do something about it ? My code is simple .. I have got an event and then entity.setDead(); // Solved using event EntityEvent and checking if entity exists for at least 1 tick
  7. Hello, i am trying to load my custom sounds using this code: @ForgeSubscribe public void onSound(SoundLoadEvent event) { try { event.manager.addSound("randmusic:song1.ogg"); System.out.println("[Random Music] Songs loaded !"); } catch (Exception e) { System.out.println("[Random Music] Error loading music files "); } } It's working fine, but I will have more and more songs in my mod's assets folder. And I don't want to update my code everytime I add a song. So I need to get a count of files in the mod.zip (assets/sound/...). Is it event possible or will I have to update it everytime in code ? I am talking about event.manager.addSound("randmusic:song1.ogg");

Important Information

By using this site, you agree to our Terms of Use.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.