Jump to content

Emasher

Members
  • Posts

    8
  • Joined

  • Last visited

Everything posted by Emasher

  1. Recently I've begun writing several components of my mods in Scala rather than Java. In the past, I've managed to get everything to compile fine using Eclipse, however, when I try to use either MCP's compile script or compile everything in IntelliJ, I get the following errors: value PowerReceiver is not a member of object buildcraft.api.power.PowerHandler import buildcraft.api.power.PowerHandler.PowerReceiver; ^ not found: type PowerReceiver public PowerReceiver getPowerReceiver(ForgeDirection side); ^ Now, obviously the code itself is correct, and this particular code has nothing to do with Scala, but as soon as there are Scala files in the project, this error appears. Excluding the BuildCraft Power API isn't an option as my mod relies on it for the moment. If anyone knows what's causing this issue or knows how to fix it, any insight would be greatly appreciated.
  2. If you still haven't figured it out (seeing as this thread is a little bit old), your problem is that you're not overriding the BiomeGenBase method: public WorldGenerator getRandomWorldGenForTrees(Random random) If you don't override this method, Java will just use the one in BiomeGenBase, which, I think, gives you the default tree generator. You also may need to change the BiomeDecorator's treesPerChunk field, and make sure your trees can spawn on your biome's top block. Certain BiomeDecorator fields only change the way the biome is decorated if certain conditions are met. For the decorator to spawn dead bushes, the top block must be sand, mushrooms only spawn in low light levels (I think), clay only spawns underwater in a biome of the top block is dirt or grass. reeds also need either dirt, grass, sand, or gravel to spawn. Lilypads need water in the biome, so the minimum height must be negative. Also, there's no need to override the decorate() method from BiomeGenBase if all you're doing is calling the one in BiomeGenBase.
  3. With the number of biome adding mods continuing to increase it's getting much more difficult for mods that add biome specific world generation, or mobs to account for all the new biomes. While some biome mods have APIs that allow other modders to take advantage of their biomes, this solution has obvious drawbacks. Some mods classify biomes based on their properties, and work with them in this way (Forestry being an example). Although this works, most modders it seems would rather stick to vanilla biomes than put in the extra time required to do this. This has made biome mods less appealing to many players, as the difficulty of finding certain resources can sometimes make certain mods almost unplayable. What I propose is to add a tag system to biomes so it could easily be specified that a given biome is forested, mountainous, etc. I've written such a system, mainly as an API for one of my own mods (A Sufficient Number of Biomes), which has worked relatively well so far. Having similar functionality in Forge, seems to me a way to solve this problem. My own code can be found here, which perhaps will serve as a better example of what I'm proposing. Naturally, if it is decided that such a feature would benefit Forge, you're free to recycle any of my code to implement it.
  4. I've been working on modifying some of the world generation in one of my mods so that certain resources are added to worlds that were created before installing the mod. I'm using ChunkDataEvent to save NBT tags containing the version of the mod, as well as to check to see if that tag is there or not when the chunk is loaded. If the tag is there, I don't spawn the resources, if it isn't, I do. The problem is that the tag seems to disappear after the world has been loaded, and so only the first time each chunk is loaded after the world is loaded does it prevent spawning more resources. My code is shown below. public class WorldGenerationUpdater { private static boolean[][] hasHadSpawn = new boolean[1024][1024]; //For testing only @ForgeSubscribe public void Load(ChunkDataEvent event) { NBTTagCompound data = event.getData(); Chunk chunk = event.getChunk(); if(! data.hasKey("emasher_gas_info")) { EmasherGas.gasVentGenerator.generate(new Random(System.nanoTime()), chunk.xPosition, chunk.zPosition, chunk.worldObj, null, null); if(hasHadSpawn[chunk.xPosition + 512][chunk.zPosition + 512]) //For testing only { System.err.println("[GasCraft]Error: Chunk @" + chunk.xPosition + ", " + chunk.zPosition + "has already had shale gas spawn"); } else { System.out.println("Adding Shale Gas @" + chunk.xPosition + ", " + chunk.zPosition); } hasHadSpawn[chunk.xPosition + 512][chunk.zPosition + 512] = true; //For testing only } else { System.out.println("Chunk @" + chunk.xPosition + ", " + chunk.zPosition + "already has shale gas, Not spawning more"); } } @ForgeSubscribe public void Save(ChunkDataEvent event) { NBTTagCompound data = event.getData(); Chunk chunk = event.getChunk(); NBTTagCompound tag = new NBTTagCompound(); tag.setString("GasCraft_Version", EmasherGas.version); data.setCompoundTag("emasher_gas_info", tag); //System.out.println("Saving chunk@" + chunk.xPosition + ", " + chunk.zPosition); } }
  5. The fact that it's such a simple solution is why I suggested it in the first place. Quite a few mods now, Forestry and EBXL being some of the most well known ones, are already using biome properties to classify biomes, but standardizing the way biomes are classified within forge would cause a lot more mods to take advantage of it. Especially as we start to see more mods adding biomes, and more modders wanting to make their mods work with them. Now that I've added support for user made biomes in AS#B, it might be hard to keep up otherwise .
  6. You're right. A combination would probably work best just for those who want a little bit more control of what they're doing. Although, I still think something more general is needed to really solve the problem of mod authors ignoring non-vanilla biomes. I see what you mean about having some forest biomes for instance being vastly different from others, the majority of them are still similar enough that world generation and mobs spawning in one should most likely spawn in the other as well. At the very least, you've convinced me to add an API to AS#B that allows for access to specific biomes in the mean time.
  7. The problem with referencing modded biomes individually like that is there's just too many of them now to really cover everything between EBXL, AS#B, Biomes O Plenty, and a few others (and without getting into details, I can say that with the next version of AS#B there's going to be a potential for way more than there are now). Blocks are a little different, as you'd likely be looking for something more specific, for instance, trying to reference something like RP2 marble for some sort of world generation structure. A tag based system for biomes is a much better solution, as it would allow a mod author to simply do something to all "Forest" biomes for instance, without having to know anything about the specific biomes in different mods. I've been working on such a system, which has mainly just become an API for AS#B at this point, but it would be nice to have something like that in Forge where it it would actually be used.
  8. This thread is out of date. For more recent information, see: http://www.minecraftforum.net/topic/1568267-15147forge-emashers-mods-a-sufficient-number-of-biomes-now-with-user-made-biomes-gascraft-and-defense/ Contents 1. A Sufficient Number of Biomes - Adds several new biomes, as well as hemp, and few structures to the game 2. GasCraft - Adds gas to the game, which can be used as a fuel (works with BuildCraft and Railcraft), as well as a few other things. 3. Defense - A small mod that adds chain link fences, barbed wire fences, razor wire fences, and sandbags A Sufficient Number of Biomes First of all, this mod adds a few small structures. Throughout the world (except in water biomes) you'll find small ruins where you may find some useful items. In Oceans, as well as one of my new biomes, reefs, you'll also find shipwrecks. And who knows, the ship may have been carrying something quite valuable. This mod also introduces one new block called "Mixed Dirt". A rough dirt that can be crafted by combining dirt, sand, and gravel. It spawns naturally in a few biomes. http://spearmanstudios.com/mods/screens/biomes/Sand%20Forest.png[/img] [spoiler=Screenshots] The mod also adds algae, which spawns naturally on top of water blocks in swampland and jungle biomes, as well as my own marsh biome (technically, it will spawn in any biome that has been registered as "SWAMP" in biomedictionary if this mod is installed). Algae slowly spreads to other open spaces above water blocks. Currently, it's just decorative, however, I plan on adding a use for it (involving GasCraft) in a future update. More importantly, this mod adds several new biomes to the game. [spoiler=Biomes] Prairie Forest http://spearmanstudios.com/mods/screens/biomes/Prairie%20Forest.png[/img] A somewhat hilly, and sandy poplar (well, they're really birch) forest. Inspired by areas of western Manitoba. Summit A mountainous region that stretches up to the clouds. Covered in snow and rock. Reef This biome was inspired by a 1.7.3 world I played on for a while that had a ton of small sand islands. Sand Forest http://spearmanstudios.com/mods/screens/biomes/Sand%20Forest.png[/img] Sand, tall dark trees, and patches of grass. Marsh An extremely flat biome covered in tall grass and water. Now with algae! Shield Inspired by the Canadian Shield region. This biome is covered with lakes, and tall trees. Foothills This biome was designed to somewhat resemble the old beta world generation. It's quite like a forest, but with less trees, and more hills and lakes. Canyon A tall biome with grass patches, and short trees. Covered in mixed dirt. Dirt Plains http://spearmanstudios.com/mods/screens/biomes/Dirt%20Plain.png[/img] Much like the Canyon biome, but more flat. Glacier A simple biome covered in snow and ice. Not much more I can say about this one. And new as of version 1.3.0 Moorland Highlands with rocky outcroppings, lots of grass, and small trees. Hollow Tall trees, mixed dirt, and rocky outcroppings. The trees are still a work in progress. Treeline A rough cold biome with patches of grass, stone, and gravel. Only a few short trees grow here. All of these biomes, as well as the other world generation can be disabled in the config by changing the individual biome ids to '0' Custom Biomes As of AS#B 2.0, users can create there own custom biomes to play with and share with others. This is accomplished by text files placed in .minecraft/biomes/. A template/example can be found here. The files are reasonably straight forward to write, and the example should make most things obvious. However, a few things to note: -Biome IDs must be below 256, and you should use IDs that do not conflict with the IDs from the vanilla biomes, or any modded biomes -The top block and filler block fields are for the block ID you want to use. Only blocks with IDs below 256 will work. Meta sensitive blocks will not work as there is no way to change the metadata. Blocks from mods do work, although, anyone who uses your biomes will have to make sure they have their configs set correctly -DO NOT use blocks that have tile entities -Do not put spaces between the colon and the data. Do not leave white space anywhere -To set anything that has a PerChunk to not spawn, set the value to -999 -Grass and stone patches, and trees with only generate if you have your top block set to sand, mixed dirt (or grass for stone patches) -The tree types you can use are "SHIELD", "TAIGA", "HOLLOW", or "CUSTOM", using any other string will result in the default tree generator to be used. The next few fields are only used if the type is set to "CUSTOM". The tree leaves and wood refer to the metadata for the wood and leaves -The BiomeDictionary tags are: FOREST, PLAINS, MOUNTAIN, HILLS, SWAMP, WATER, DESERT, FROZEN, JUNGLE, WASTELAND, BEACH, NETHER, END, MUSHROOM, NULL. NULL is only used to prevent BiomeDictionary from automatically assigning tags to your biome. Each tag should be on a new line If you have any questions, feel free to ask. If enough people post cool biomes, I may put together some content packs. If you post your biomes in this thread, be sure to specifiy if I have permission to include them in any content packs. GasCraft This mod adds natural gas to the game, which can be used as a fuel, or, if you want to get creative, a weapon. Shale gas spawns at the bedrock level. On occasion, gas will come out the top of these blocks if there's no other block in the way. Gas itself also spawns in pockets deep underground. If the player, or any mob comes into contact with the gas, the result is poisoning, loss of health, and nausea. A gas mask can be crafted to avoid these symptoms if you want to be a bit careful. Gas will also explode if it comes into contact with fire, or another explosion, and if the game is set to hard mode, a torch. All gases are also forge liquids. As of GasCraft 1.3.2 Beta C, gas must be extracted from shale gas blocks using a machine called a "fracker" (see NEI for the recipe). Place one on top of the shale gas (or shale oil) block, pump water into the sides, and pump the gas out of the top. Once it's in the system, you can use a gas vial similarly to a bucket to carry it around in, or burn in a furnace for fuel, but more importantly, you can pipe it into a BuildCraft combustion engine to use as a fuel. And better yet, it works as a fuel for Railcraft Boilers. A new machine called the "Gas Vent" is included in GasCraft as of version 1.3.2 Beta C for which gas can be pumped into, and then will release it into the world upon receiving a redstone pulse. GasCraft also adds another gas called propellent. It can be made by putting natural gas through a BuildCraft refinery, or, if you don't have BuildCraft installed, you can cook a vial of natural gas in a furnace. Propellent can also be crafted into traps. It behaves slightly differently, rather than exploding when it catches fire, it drops flames onto the first solid ground below it, so it's useful for creating large fires (or a flamethrower when combined with RP2 igniters). It can also be crafted into spray paint, which can be used to paint wood planks. If you have AS#B installed, lighthouses will be made out of red and white planks rather than birch and jungle planks with GasCraft. Future versions will add new gases with different uses and well as new machines for processing, creating, and working with gases. [spoiler=Screenshots] [spoiler=Video Spotlights] [spoiler=Recipes] Also works with propellent. Works with any dye. See NEI for Fracker and Gas Vent recipes. Defense Another smaller mod, that adds a few new blocks to help defend your base. You can craft chain sheet, which can be used to craft chain link fences, and as a bonus, can be used to craft chain mail Armour. You can also craft fence wire, which can be used to make barbed wire, and razor wire. All 3 types of fence are climbable, however, barbed wire does small amounts of damage to anything it touches. Razor wire is similar, but does even more damage. Finally, the mod adds sand bags, which have a higher explosion resistance than most blocks. [spoiler=Recipes] Installation All of my mods require EmasherCore (see below) to be installed. The latest versions require at least Forge 6.5.0.466. Like any other Forge mod, simply place them in your .minecraft/mods folder (Please note that EmasherCore is NOT a coremod). All of my mods have config files that you can use to change the IDs of blocks, items, or biomes, as well as disable some types of world generation. Before reporting something as a bug, make sure it's not just an ID conflict, or a failure to install the mods properly. Download Moved To Wiki Reporting Bugs If you find a bug in one of my mods, it would be very much appreciated if you could report it to me. If the game actually crashes, please post the crash report or console log (in spoiler tags). For all bugs, a description about what you were doing at the time, as well as the versions of Minecraft, Minecraft Forge, my mods, and the version numbers of any other relevant mods, as well as any other relevant information, would be appreciated. I can't do anything about it if I can't figure out exactly what the problem is. Also note that I do not support older versions of my mods, I simply don't have time to go back and fix bugs in them.
×
×
  • Create New...

Important Information

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