Jump to content

Blade Avuari

Forge Modder
  • Posts

    41
  • Joined

  • Last visited

Everything posted by Blade Avuari

  1. That would be a good idea, but it might get a little annoying to work with, assuming that nobody makes a base for the Mod Option GUI pages. I could get to work on that right now, actually. EDIT: I just realized that that might also require config updating, which I'm not good with...
  2. Goto is saying that you should move all the information from the static method into the method, right after the config. By the way, I've started work on a similar mod, (although my work is currently on hold while I work on my Mega Man mod, and involves adding all the important side-items from across the series, instead of all the primaries from Ocarina of Time,) so if you ever want any help, or would like to organize your codebase, ask me. Oh, and you spelt Rupee wrong. EDIT: Thanking Goto
  3. The answer is simple: Don't use magiclauncher. Install forge using the instructions given to you on the download page. EDIT: Actually, Lex puts it nicely right here: http://www.minecraftforge.net/forum/index.php/topic,11552.msg59593.html#msg59593
  4. (Knowing that this will probably not be fun to hear...) Are you running the jar, or extracting it? Have you followed the instructions from Direwolf20's 1.6.2 forge installation video? If not, try that. If all else fails, send a message to the javaxdelta team about this problem, so it can be fixed. EDIT: Aww, lex, you didn't have to smite me for my statement involving bug reports...
  5. You take all the classes that reference it, and re-write them.
  6. I believe you do, sadly. At least, that's what I had to do when I made my "Dig Deeper!" mod. I'll give you some of the basic stuff from my MCM here. public class WorldChunkManagerDeeper extends WorldChunkManager { private GenLayer genBiomes; /** A GenLayer containing the indices into BiomeGenBase.biomeList[] */ private GenLayer biomeIndexLayer; /** The BiomeCache object for this world. */ private BiomeCacheDeeper biomeCache; /** A list of biomes that the player can spawn in. */ private List biomesToSpawnIn; protected WorldChunkManagerDeeper() { biomeCache = new BiomeCacheDeeper(this); biomesToSpawnIn = new ArrayList(); biomesToSpawnIn.add(BiomeGenBase.forest); biomesToSpawnIn.add(BiomeGenBase.jungleHills); } public WorldChunkManagerDeeper(long par1, WorldType par3WorldType) { this(); GenLayer agenlayer[] = GenLayer.initializeAllBiomeGenerators(par1, par3WorldType); genBiomes = agenlayer[0]; biomeIndexLayer = agenlayer[1]; } public WorldChunkManagerDeeper(World par1World) { this(par1World.getSeed(), par1World.getWorldInfo().getTerrainType()); } /** * Gets the list of valid biomes for the player to spawn in. */ public List getBiomesToSpawnIn() { return biomesToSpawnIn; } /** * Returns the BiomeGenBase related to the x, z position on the world. */ public BiomeGenBase getBiomeGenAt(int par1, int par2) { return biomeCache.getBiomeGenAt(par1, par2); } /** * Returns a list of rainfall values for the specified blocks. Args: listToReuse, x, z, width, length. */ public float[] getRainfall(float par1ArrayOfFloat[], int par2, int par3, int par4, int par5) { IntCache.resetIntCache(); if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) { par1ArrayOfFloat = new float[par4 * par5]; } int ai[] = biomeIndexLayer.getInts(par2, par3, par4, par5); for (int i = 0; i < par4 * par5; i++) { float f = (float)BiomeGenBase.biomeList[ai[i]].getIntRainfall() / 65536F; if (f > 1.0F) { f = 1.0F; } par1ArrayOfFloat[i] = f; } return par1ArrayOfFloat; } /** * Return an adjusted version of a given temperature based on the y height */ public float getTemperatureAtHeight(float par1, int par2) { return par1; } /** * Returns a list of temperatures to use for the specified blocks. Args: listToReuse, x, y, width, length */ public float[] getTemperatures(float par1ArrayOfFloat[], int par2, int par3, int par4, int par5) { IntCache.resetIntCache(); if (par1ArrayOfFloat == null || par1ArrayOfFloat.length < par4 * par5) { par1ArrayOfFloat = new float[par4 * par5]; } int ai[] = biomeIndexLayer.getInts(par2, par3, par4, par5); for (int i = 0; i < par4 * par5; i++) { float f = (float)BiomeGenBase.biomeList[ai[i]].getIntTemperature() / 65536F; if (f > 1.0F) { f = 1.0F; } par1ArrayOfFloat[i] = f; } return par1ArrayOfFloat; } /** * Returns an array of biomes for the location input. */ public BiomeGenBase[] getBiomesForGeneration(BiomeGenBase par1ArrayOfBiomeGenBase[], int par2, int par3, int par4, int par5) { IntCache.resetIntCache(); if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) { par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; } int ai[] = genBiomes.getInts(par2, par3, par4, par5); for (int i = 0; i < par4 * par5; i++) { par1ArrayOfBiomeGenBase[i] = BiomeGenBase.biomeList[ai[i]]; } return par1ArrayOfBiomeGenBase; } /** * Returns biomes to use for the blocks and loads the other data like temperature and humidity onto the * WorldChunkManager Args: oldBiomeList, x, z, width, depth */ public BiomeGenBase[] loadBlockGeneratorData(BiomeGenBase par1ArrayOfBiomeGenBase[], int par2, int par3, int par4, int par5) { return getBiomeGenAt(par1ArrayOfBiomeGenBase, par2, par3, par4, par5, true); } /** * Return a list of biomes for the specified blocks. Args: listToReuse, x, y, width, length, cacheFlag (if false, * don't check biomeCache to avoid infinite loop in BiomeCacheBlock) */ public BiomeGenBase[] getBiomeGenAt(BiomeGenBase par1ArrayOfBiomeGenBase[], int par2, int par3, int par4, int par5, boolean par6) { IntCache.resetIntCache(); if (par1ArrayOfBiomeGenBase == null || par1ArrayOfBiomeGenBase.length < par4 * par5) { par1ArrayOfBiomeGenBase = new BiomeGenBase[par4 * par5]; } if (par6 && par4 == 16 && par5 == 16 && (par2 & 0xf) == 0 && (par3 & 0xf) == 0) { BiomeGenBase abiomegenbase[] = biomeCache.getCachedBiomes(par2, par3); System.arraycopy(abiomegenbase, 0, par1ArrayOfBiomeGenBase, 0, par4 * par5); return par1ArrayOfBiomeGenBase; } int ai[] = biomeIndexLayer.getInts(par2, par3, par4, par5); for (int i = 0; i < par4 * par5; i++) { par1ArrayOfBiomeGenBase[i] = BiomeGenBase.biomeList[ai[i]]; } return par1ArrayOfBiomeGenBase; } /** * checks given Chunk's Biomes against List of allowed ones */ public boolean areBiomesViable(int par1, int par2, int par3, List par4List) { int i = par1 - par3 >> 2; int j = par2 - par3 >> 2; int k = par1 + par3 >> 2; int l = par2 + par3 >> 2; int i1 = (k - i) + 1; int j1 = (l - j) + 1; int ai[] = genBiomes.getInts(i, j, i1, j1); for (int k1 = 0; k1 < i1 * j1; k1++) { BiomeGenBase biomegenbase = BiomeGenBase.biomeList[ai[k1]]; if (!par4List.contains(biomegenbase)) { return false; } } return true; } /** * Finds a valid position within a range, that is once of the listed biomes. */ public ChunkPosition findBiomePosition(int par1, int par2, int par3, List par4List, Random par5Random) { int i = par1 - par3 >> 2; int j = par2 - par3 >> 2; int k = par1 + par3 >> 2; int l = par2 + par3 >> 2; int i1 = (k - i) + 1; int j1 = (l - j) + 1; int ai[] = genBiomes.getInts(i, j, i1, j1); ChunkPosition chunkposition = null; int k1 = 0; for (int l1 = 0; l1 < ai.length; l1++) { int i2 = i + l1 % i1 << 2; int j2 = j + l1 / i1 << 2; BiomeGenBase biomegenbase = BiomeGenBase.biomeList[ai[l1]]; if (par4List.contains(biomegenbase) && (chunkposition == null || par5Random.nextInt(k1 + 1) == 0)) { chunkposition = new ChunkPosition(i2, 0, j2); k1++; } } return chunkposition; } /** * Calls the WorldChunkManager's biomeCache.cleanupCache() */ public void cleanupCache() { biomeCache.cleanupCache(); } }
  7. Another thing that you can do (but will annoy players who want other mods to all hell) is to overwrite the classes where they are called.
  8. Hey, I would like to know how to check a value of an item that another player/mob is holding. It would also have to return if an item is not being held, or if the value is null. Here is the class for my base item, from which three different types of items extend. And the calling line for the item And the weaponsword
  9. Does anyone know what is done to use only one ID for multiple items? Are you supposed to store damage in a different tag than the normal damage value?
  10. Where did you change the length of the charge?
  11. I don't know if this works with other players, but in many of the animal class files, there is a boolean that causes something to happen when you right-click on a mob. Right click on wolf makes it sit, dyes it, feeds it, etc.
  12. By "start the map new," do you mean when you make a new map, or when you quit then come back?
  13. I have just started on a mod that will add at least 51 different items. The problem is, to be kind to other modders, I only want to use up one ID for each of my three different categories of items, (swords, axes, and lances,) one of these categories having 24 different items. As well, each item needs to be breakable. Is it possible to do this? If so, would I need to use only one class for each item, would I have to use a different class for each item, or can I have some items have their own class and have other ones be in the same class? Thanks.
  14. ChunkProviderDeeper The two "todo"s aren't part of generation.
  15. I have been trying to figure out why my mod, Digging Deeper, doesn't do anything anymore. It used to increase the water level and hightmap to 97, but it doesn't anymore.
  16. Take a look at BlockMobSpawner and TileEntityMobSpawner Block Tile Entity Check out these two functions anyPlayerInRange() updateEntity()
  17. You could scale all mobs so that they are twice the size that they should be? Or, you could add a block that lets you place blocks in it, but I don't know how that is done.
  18. I'm not an expert on making blocks, but I don't think you called UpdateTick in your class.
  19. Well, I guess you could sumulate it, in a way. Here is the code that makes the enderman check if a player is wearing a pumpkin: You could add something that checks if the player is wearing a specific armour piece every few seconds, and give them a potion effect if they are wearing it.
  20. If the blocks were set to short[], then the blocks would be deleted when you leave the game, because it would not be able to write to NEI, as far as I know.
  21. Which reminds me, I need to make an api so that other modders can have their ores gen on my mod.
  22. I might be wrong, but I think you have to change the mod name so it's different from the modID
  23. It makes the world taller. Taller world = more cavern exploration. Also, there will be add-ons to make specific things only appear under layer 64.
  24. Still in the process of changing all this to Forge-forum stuff, but hopefully all the BBCode works. I made this mod for Owen9456 of Minecraft Forums after he posted this: I opted for the second choice-- changing the ground level of the world. As it turned out, that was harder than I thought, and it took alot of help, but I soon completed everything needed: Ores are at the correct heights, and the height level is doubled from original minecraft. LEGAL Version Notes The mod! Images How to install the mod: To do: I can't give enough credit to Volgon8, who really DID everything that was done in the mod. Please try his mod at the below banner to check out the mod which let this one become what it is.
×
×
  • Create New...

Important Information

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