
Thor597
Forge Modder-
Posts
268 -
Joined
-
Last visited
Converted
-
Gender
Undisclosed
-
Personal Text
Author of The ThorMod
Thor597's Achievements

Diamond Finder (5/8)
0
Reputation
-
Did you read what I said? I asked for something more informational, I've been trying for over a year and I know what classes I potentionally need to use
-
Ok, I've been seeing alot of different topics and posts about how to have multiple biomes in a dimension and in all of these the people that reply either have no idea what theyre talking about or just reply with "Oh look around" So I ask of people who know how this: PLEASE write some sort of tutorial on how to do this step by step maybe do a video or something as this would be a godsend for all dimension mod makers that are limited to the knowledge of only having one biome with WorldChunkManagerHell which lets you have only one biome. It's one of the most frustrating things to try to figure out when making a dimension. I should know since me and others have been trying to do this for nearly a year and we havent come that far. Thanks in advance -Thor
-
I posted this in general discussion first by accident So I'm trying to render a blur over the player's view like a pumkin when in the dimension im working on but no matter what i do it just wont work TickHandler: package arcticraft.main; import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.src.ModLoader; import net.minecraft.util.Icon; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import arcticraft.blocks.BlockACWaterFlowing; import arcticraft.blocks.BlockACWaterStill; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class TickHandler implements ITickHandler { @Override public void tickStart(EnumSet<TickType> type, Object... tickData) { if (type.equals(EnumSet.of(TickType.RENDER))) { float ticks = ((Float)tickData[0]).floatValue(); onRenderTickStart(ticks); } } @Override public void tickEnd(EnumSet<TickType> type, Object... tickData) { if (type.equals(EnumSet.of(TickType.PLAYER))) { EntityPlayer player = (EntityPlayer)tickData[0]; } else if (type.equals(EnumSet.of(TickType.RENDER))) { float ticks = ((Float)tickData[0]).floatValue(); onRenderTickEnd(ticks); GuiScreen guiscreen = Minecraft.getMinecraft().currentScreen; if (guiscreen != null && ModLoader.getMinecraftInstance().thePlayer != null) { onTickInGUI(guiscreen); } } else if (type.equals(EnumSet.of(TickType.CLIENT))) { if(ModLoader.getMinecraftInstance().thePlayer != null){ onTickInGame(); } } } @Override public EnumSet<TickType> ticks() { return EnumSet.of(TickType.RENDER, TickType.CLIENT, TickType.PLAYER); // In my testing only RENDER, CLIENT, & PLAYER did anything on the client side. // Read 'cpw.mods.fml.common.TickType.java' for a full list and description of available types } @Override public String getLabel() { return null; } private boolean keyStates[]; /**Key checking function**/ public boolean checkKey(int i) { keyStates = new boolean[256]; if(ModLoader.getMinecraftInstance().currentScreen != null) { return false; } if(Keyboard.isKeyDown(i) != keyStates[i]) { return keyStates[i] = !keyStates[i]; } else { return false; } } private Minecraft mc = FMLClientHandler.instance().getClient(); public void onRenderTickStart(float ticks) { } public void onRenderTickEnd(float ticks) { ScaledResolution var5 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight); int var6 = var5.getScaledWidth(); int var7 = var5.getScaledHeight(); if(mc.currentScreen == null) { ACLivingEvent.renderFreezeEffect(var6, var7, mc); } } public void onTickInGUI(GuiScreen gui) { } public void onTickInGame() { } } Event File: package arcticraft.main; import org.lwjgl.opengl.GL11; import net.minecraft.block.Block; import net.minecraft.block.BlockFluid; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.EntityLiving; import net.minecraft.src.ModLoader; import net.minecraft.util.MathHelper; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.player.PlayerEvent; public class ACLivingEvent { public static boolean isFreezing = false; @ForgeSubscribe public void playerEvent(PlayerEvent event) { if(event.entityPlayer.dimension == MainRegistry.dimension) { this.isFreezing = true; } } public static void renderFreezeEffect(int par1, int par2, Minecraft mc) { if (isFreezing) { Minecraft mc8 = ModLoader.getMinecraftInstance(); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc8.renderEngine.getTexture("/mods/AC/textures/misc/freezing.png")); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(0.0D, par2, -90D, 0.0D, 1.0D); tessellator.addVertexWithUV(par1, par2, -90D, 1.0D, 1.0D); tessellator.addVertexWithUV(par1, 0.0D, -90D, 1.0D, 0.0D); tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D); tessellator.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } } } MainRegistry.dimension = public static int dimension = DimensionManager.getNextFreeDimId(); Event Registering line in MainRegistry: MinecraftForge.EVENT_BUS.register(new ACLivingEvent()); Any ideas?
-
So I'm trying to render a blur over the player's view like a pumkin when in the dimension im working on but no matter what i do it just wont work TickHandler: package arcticraft.main; import java.util.EnumSet; import net.minecraft.block.Block; import net.minecraft.client.Minecraft; import net.minecraft.client.gui.GuiScreen; import net.minecraft.client.gui.ScaledResolution; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.src.ModLoader; import net.minecraft.util.Icon; import org.lwjgl.input.Keyboard; import org.lwjgl.opengl.GL11; import arcticraft.blocks.BlockACWaterFlowing; import arcticraft.blocks.BlockACWaterStill; import cpw.mods.fml.client.FMLClientHandler; import cpw.mods.fml.common.ITickHandler; import cpw.mods.fml.common.TickType; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; @SideOnly(Side.CLIENT) public class TickHandler implements ITickHandler { @Override public void tickStart(EnumSet<TickType> type, Object... tickData) { if (type.equals(EnumSet.of(TickType.RENDER))) { float ticks = ((Float)tickData[0]).floatValue(); onRenderTickStart(ticks); } } @Override public void tickEnd(EnumSet<TickType> type, Object... tickData) { if (type.equals(EnumSet.of(TickType.PLAYER))) { EntityPlayer player = (EntityPlayer)tickData[0]; } else if (type.equals(EnumSet.of(TickType.RENDER))) { float ticks = ((Float)tickData[0]).floatValue(); onRenderTickEnd(ticks); GuiScreen guiscreen = Minecraft.getMinecraft().currentScreen; if (guiscreen != null && ModLoader.getMinecraftInstance().thePlayer != null) { onTickInGUI(guiscreen); } } else if (type.equals(EnumSet.of(TickType.CLIENT))) { if(ModLoader.getMinecraftInstance().thePlayer != null){ onTickInGame(); } } } @Override public EnumSet<TickType> ticks() { return EnumSet.of(TickType.RENDER, TickType.CLIENT, TickType.PLAYER); // In my testing only RENDER, CLIENT, & PLAYER did anything on the client side. // Read 'cpw.mods.fml.common.TickType.java' for a full list and description of available types } @Override public String getLabel() { return null; } private boolean keyStates[]; /**Key checking function**/ public boolean checkKey(int i) { keyStates = new boolean[256]; if(ModLoader.getMinecraftInstance().currentScreen != null) { return false; } if(Keyboard.isKeyDown(i) != keyStates[i]) { return keyStates[i] = !keyStates[i]; } else { return false; } } private Minecraft mc = FMLClientHandler.instance().getClient(); public void onRenderTickStart(float ticks) { } public void onRenderTickEnd(float ticks) { ScaledResolution var5 = new ScaledResolution(this.mc.gameSettings, this.mc.displayWidth, this.mc.displayHeight); int var6 = var5.getScaledWidth(); int var7 = var5.getScaledHeight(); if(mc.currentScreen == null) { ACLivingEvent.renderFreezeEffect(var6, var7, mc); } } public void onTickInGUI(GuiScreen gui) { } public void onTickInGame() { } } Event File: package arcticraft.main; import org.lwjgl.opengl.GL11; import net.minecraft.block.Block; import net.minecraft.block.BlockFluid; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.renderer.Tessellator; import net.minecraft.entity.EntityLiving; import net.minecraft.src.ModLoader; import net.minecraft.util.MathHelper; import net.minecraftforge.event.ForgeSubscribe; import net.minecraftforge.event.entity.living.*; import net.minecraftforge.event.entity.player.PlayerEvent; public class ACLivingEvent { public static boolean isFreezing = false; @ForgeSubscribe public void playerEvent(PlayerEvent event) { if(event.entityPlayer.dimension == MainRegistry.dimension) { this.isFreezing = true; } } public static void renderFreezeEffect(int par1, int par2, Minecraft mc) { if (isFreezing) { Minecraft mc8 = ModLoader.getMinecraftInstance(); GL11.glDisable(GL11.GL_DEPTH_TEST); GL11.glDepthMask(false); GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); GL11.glDisable(GL11.GL_ALPHA_TEST); GL11.glBindTexture(GL11.GL_TEXTURE_2D, mc8.renderEngine.getTexture("/mods/AC/textures/misc/freezing.png")); Tessellator tessellator = Tessellator.instance; tessellator.startDrawingQuads(); tessellator.addVertexWithUV(0.0D, par2, -90D, 0.0D, 1.0D); tessellator.addVertexWithUV(par1, par2, -90D, 1.0D, 1.0D); tessellator.addVertexWithUV(par1, 0.0D, -90D, 1.0D, 0.0D); tessellator.addVertexWithUV(0.0D, 0.0D, -90D, 0.0D, 0.0D); tessellator.draw(); GL11.glDepthMask(true); GL11.glEnable(GL11.GL_DEPTH_TEST); GL11.glEnable(GL11.GL_ALPHA_TEST); GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); } } } MainRegistry.dimension = public static int dimension = DimensionManager.getNextFreeDimId(); Event Registering line in MainRegistry: MinecraftForge.EVENT_BUS.register(new ACLivingEvent()); Any ideas?
-
without DimensionAPI...
-
How would one go about making a custom sun and moon texture in your new dimension using the DimensionManager in forge?
-
When I try to reobfuscate this happens: == MCP 7.25 (data: 7.25, client: 1.4.6, server: 1.4.6) == # found ff, ff patches, srgs, name csvs, doc csvs, param csvs, renumber csv, ast yle, astyle config > Creating Retroguard config files == Reobfuscating client == > Cleaning reobf > Generating md5s > Packing jar > Reobfuscating jar > Extracting modified classes - Done in 12.37 seconds !! Can not find server md5s !! Press any key to continue . . .
-
Still, I really need this
-
I dont like doing this but bump
-
I kind of need this for tomorrow as I am releasing my christmas update
-
It works fine however it resets to max damage every time I relog, so you basically lose the experience in the bottle new code: Item File package thormod.items; import java.util.List; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.src.ModLoader; import net.minecraft.world.World; import thormod.guis.ThorMod_GuiXPStoring; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class ThorMod_ItemXPStoringBottle extends Item { /** The current experience level the player is on. */ public int experienceLevel; public ThorMod_ItemXPStoringBottle(int par1) { super(par1); this.setMaxDamage(100); } public ItemStack onItemRightClick(ItemStack par1ItemStack, World par2World, EntityPlayer par3EntityPlayer) { if(!(par3EntityPlayer instanceof EntityPlayerMP)) { ModLoader.openGUI(par3EntityPlayer, new ThorMod_GuiXPStoring(this, par1ItemStack, par3EntityPlayer)); } return par1ItemStack; } /** * Add experience levels to this player. */ public void addExperienceLevel(int par1, ItemStack par2ItemStack, EntityPlayer par3EntityPlayer) { if (!(par2ItemStack.getItemDamage() == par2ItemStack.getMaxDamage())) { par2ItemStack.damageItem(par1, par3EntityPlayer); } } @SideOnly(Side.CLIENT) /** * allows items to add custom lines of information to the mouseover description */ public void addInformation(ItemStack par1ItemStack, EntityPlayer par2EntityPlayer, List par3List, boolean par4) { par3List.add(String.valueOf(par1ItemStack.getItemDamage())); } public String getTextureFile() { return "/thormod/textures/items.png"; } } Gui File package thormod.guis; import net.minecraft.client.gui.GuiButton; import net.minecraft.client.gui.GuiScreen; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import thormod.items.ThorMod_ItemXPStoringBottle; public class ThorMod_GuiXPStoring extends GuiScreen { public EntityPlayer theplayer; public ThorMod_ItemXPStoringBottle theBottle; public ItemStack theBottleStack; public ThorMod_GuiXPStoring(ThorMod_ItemXPStoringBottle bottle, ItemStack bottleStack, EntityPlayer entityplayer) { theplayer = entityplayer; theBottle = bottle; theBottleStack = bottleStack; } public void initGui() { controlList.clear(); controlList.add(new GuiButton(1, width / 2, height / 2 + -75, 98, 20, "Deposit 10 Experience Levels")); controlList.add(new GuiButton(2, width / 2, height / 2 + -50, 98, 20, "Withdraw 10 Experience Levels")); } protected void actionPerformed(GuiButton guibutton) { if(theBottle != null) { if(guibutton.id == 1 && theplayer.experienceLevel >= 10 && theBottleStack.getItemDamage() <= theBottleStack.getMaxDamage()) { theBottle.addExperienceLevel(10, theBottleStack, theplayer); theplayer.experienceLevel -= 10; updateScreen(); initGui(); } if(guibutton.id == 2 && theBottle.experienceLevel >= 10) { theplayer.addExperienceLevel(10); theBottle.experienceLevel -= 10; updateScreen(); initGui(); } } } public void keyTyped(char par1, int par2) { if (par2 == 1 || par2 == this.mc.gameSettings.keyBindInventory.keyCode) { this.mc.thePlayer.closeScreen(); } } public boolean doesGuiPauseGame() { return false; } public void onGuiClosed() { } public void drawScreen(int i, int j, float f) { drawDefaultBackground(); String exp = String.valueOf(this.theBottleStack.getItemDamage()); drawCenteredString(fontRenderer, exp, width / 2, height / 4 - 40, 8453920); super.drawScreen(i, j, f); } }
-
Ah, ok. I will check if everything works alltogether!
-
Oh wait, sorry. I wasnt actually checking in the entity file itself, wow
-
My import of EntityRegistry is completely fine. It still doesnt work even after I did Ctrl+Shift-O which for the record, nearly didnt even help me at all
-
Why do I get errors like: The method registerModEntity(Class<? extends Entity>, String, int, Object, int, int, boolean) in the type EntityRegistry is not applicable for the arguments (Class<ThorMod_EntityEmeraldPrimed>, String, int, ThorMod, int, int, boolean) on EntityRegistry.registerModEntity(ThorMod_EntityEmeraldPrimed.class, "EmBomb", EntityRegistry.findGlobalUniqueEntityId(), this, 64, 10, true); and: The method setBlockName(String) is undefined for the type ThorMod_Ores at Ores = new ThorMod_Ores(oresStartId, Material.rock).setBlockName("ThorOres").setCreativeTab(tBlocksTab).setHardness(4F); It's driving me nuts!