This is a dimension-adding API that works on both the client and server. It is simple and straightforward for modders to use, while at the same time it maximizes the possible customizations they can make to their dimensions with a comprehensive library of hooks and features. The following are some of the features which modders may utilize by adopting this API:
-- Custom portal blocks and items for your dimension; you may create as many as you wish until you run into block ID limits. You can also easily use other methods (such as entity interaction) to trigger teleportation.
-- For your portal(s), you may define:
- a custom Teleporter
- a custom entering/leaving message
- a custom achievement to be triggered upon entering the dimension
- whether the portal acts immediately or after a delay (as well as the length of the delay)
- whether it displays the Nether portal animation
- in which dimensions it can be used
- to which dimension it returns the player
- whether it can be used for fast/slow travel (and by what factor)
- a custom portal texture, and a custom overlay when about to teleport
-- It also adds various hooks related to sky rendering, biomes, and other features, which you may use in your WorldProvider file.
-- In your WorldProvider, you may define:
- a set of biomes to be generated; a biome may generate normally or as a sub-biome of a larger biome, like an ocean, like a river, on the border between two biomes, or after all the other biomes have generated
- a custom edition of RenderGlobal.java, as well as:
- whether clouds are rendered
- whether void fog is rendered
- additional objects to be rendered in the sky
- the size and texture of the sun and moon
- the brightness of the stars
- the player's respawn message if he or she dies in the dimension
- in what dimension the player respawns (currently only for the client)
- whether the dimension has the End's sky texture
- the name of the dimension's save folder
-- The API additionally possesses multiple other dimension-related utilities:
- adjust the maximum height of the dimension's terrain to 256
- determine what happens when one of Minecraft's existing blocks or items are used or placed
- intercept the addition or removal of a block from the world
- intercept an item when it is right-clicked
- render a custom overlay on the player's view ingame
- easily spawn custom portal particles
- easily add a new Teleporter
--DOWNLOAD & INSTALL--
Make sure to read this section in its entirety before downloading and installing.
Dimension API no longer requires any other mods to be downloaded before it can run. Make sure to install this mod AFTER ModLoader or ModLoaderMP. Also, please only use the alternate download if the regular one does not work for you.
If you have Minecraft Forge installed, use this version instead (it works for both the client and server, but make sure to have Forge already installed before using it):
1. Download Dimension API above; use the client version if you are installing the mod on singleplayer, and the server version if you are installing it on multiplayer. (Again, this doesn't apply to the Forge version.)
2. For singleplayer, go to your minecraft.jar and delete the META-INF folder. For multiplayer, go to your minecraft_server.jar but DO NOT delete this folder.
3. Drag and drop all the files from the download into your minecraft.jar (or minecraft_server.jar if installing on a server).
4. You're finished.
If you're a modder, install the same way and then decompile with MCP or use the sources provided under "For Modders." Decompiling should produce no errors.
--CHANGELOG & PREVIOUS VERSIONS--
Version 1.6.1 (MC 1.3.2) (current version)
- Updated to Minecraft 1.3.2.
- Moved block addition/removal hooks to WorldServer so that the API no longer edits Chunk; now use DimensionChunk for terrain generation that exceeds 128 blocks of height, or for any terrain generation if you're somehow not using ModLoader or Forge.
Version 1.6 (MC 1.3.1) (client download | server download)
- Updated to Minecraft 1.3.1; some fairly major infrastructural changes occurred as a result.
- Dropped ModLoader and ModLoaderMP as dependencies; although most modders will still need ModLoader or Forge for now, technically no other mod is required for Dimension API to run.
- Integrated compatibility patches for ModLoader, ModLoaderMP, and Forge (partially, since it was not yet updated at the time of this version's release) into the API; there will no longer have to be a separate Forge patch.
- Added respawning in non-overworld dimensions to the server.
- Added an option to override respawning completely (per dimension) with a custom method.
- Added method descriptions to some of the API's most important source files, as well as markers where it edits vanilla code.
- Fixed a bug where decompiling the API would produce errors in GenLayerDimension.java.
- Fixed a bug where server-side biome generation behaved weirdly.
Version 1.5 (MC 1.2.5) (client download | server download)
- Added support for easily including multiple biomes in a custom dimension; several different types of biomes can be generated (major, minor, border, ocean, river, and miscellaneous for other types). Note that biome temperatures are currently buggy in multiplayer.
- Added a hook to intercept the addition and removal of a block from the world.
- Added a hook to intercept the right-clicking of an item.
- Allowed the Teleporter class to vary depending on the dimension from and to which the player is teleporting.
- Added a hook called before and one called after the player is teleported to and from a dimension, as well as (for the client) when the player is teleporting in the process of respawning.
- Made the onItemUse method in IItemUse more appropriate for utilization as a block placement intercept.
- Finally fixed a bug where the Nether portal animation would display when walking out of a custom portal, and the custom portal animation would display for the Nether portal.
Version 1.4 (MC 1.2.5) (client download | server download | Forge client | Forge server)
- Fixed a bug where a modded portal overlay would sometimes display instead of the Nether portal overlay.
- Removed the buggy implementation of infinite sprites; it just wasn't good enough.
Version 1.3 (MC 1.2.4) (client download | server download | Forge client | Forge server)
- Added support for a custom version of RenderGlobal by dimension.
- Added custom save folder names.
- Added adjustable terrain height per dimension. (256 vs. 128 blocks)
- Added support for overriding a texture file that isn't the terrain.png for custom animated portal textures.
- Added adjustable limit to the height at which portals can spawn when using TeleporterCustom.
- Added a buggy, experimental block/item sprite API (to add custom sprite sheets without using any terrain indices) as a workaround until Jeb adds this feature to the game.
Version 1.2 (MC 1.2.3) (client download | server download)
- Added a custom ingame screen overlay hook, useful especially for displaying a boss's health.
- Added an easy way to create new Teleporters if the portal's structure follows Nether portal pattern.
- Added an easy way to create custom portal particles like the Nether portal's.
- Added mod_ files so that the API is acknowledged by ModLoader. These don't do anything other than give the version number.
- Fixed a Minecraft bug where block IDs above 127 would crash the game when part of the terrain generation.
Version 1.1 (MC 1.2.3) (download - client/server, Forge version)
- Updated server.
- Fixed a bug where the portal would start triggering again immediately after the player arrived in a dimension.
Version 1.1, pre-release 1 (MC 1.2.3) (download - client/server)
- Added an extremely easy way to register a modified (differently-colored) Nether portal texture.
- Added support for custom portal overlays; now your portal texture (or actually any block's texture) can be displayed when the player is about to teleport instead of the Nether portal's texture.
- Added the ability to respawn the player in another dimension after dying in your dimension.
- Restructured teleportation triggering; now teleportation can be triggered by just about anything by implementing the ISpecialTeleportation interface.
- Added a hook that is called every time an item is used or a block is placed, to allow modders access to these events (for portal activation and such) by implementing the IItemUse interface.
- Custom dimensions can now have the End's sky texture.
Version 1.0 (MC 1.1.0) (download - client/server)
- First release
--FOR MODDERS--
General instructions, sample dimension, and sources:
Firstly, you can get the sources for this API here (currently v1.6.1, alternate download here). If you're using Forge, you can get the patched sources here (alternate download here). You can merge the src folder in the download with the src folder within your MCP directory to install (but delete the minecraft_server folder if you aren't modding the server). Note that the field/method names in my or your sources may be outdated, so there is a risk of recompile errors.
-- I am currently working on an overhaul of the sample dimension to use more of the API's features; the sources for the sample dimension are outdated but will only produce a couple of (easily-fixable) errors in MCP. --
I have made a very basic example dimension as a sort of tutorial (now for both client and server!); click here to download the sources for it. Screenshot:
You must do three things specially for this mod; otherwise you only need to create a dimension normally (with a ChunkProvider, Teleporter, possibly a WorldChunkManager, etc.):
1. Make a WorldProvider that extends WorldProviderBase; you can utilize the many render-related hooks that I have created via your WorldProvider (look in WorldProviderBase to see them), but technically you are only required to give your dimension an ID number.
2. Register your dimension in your mod_ file, within "public mod_Example." All you need to do is say "DimensionAPI.registerDimension(new WorldProviderExample())" DO NOT put this in load().
3. Create a custom block (or item) that teleports you to your dimension (a portal, basically). You need to make the block's file extend BlockPortalBase (or ItemTeleporterBase), and fill in all the required (abstract) fields.
An example of a custom WorldProvider using some of the API's hooks:
package net.minecraft.src;
public class WorldProviderExample extends WorldProviderBase
{
public WorldProviderExample()
{
}
//required:
public int getDimensionID()
{
return 100;
}
//not required:
public boolean renderClouds()
{
return false;
}
public boolean renderVoidFog()
{
return true;
}
public float setSunSize()
{
return 3.0F;
}
public float setMoonSize()
{
return 0.5F;
}
public String getSunTexture()
{
return "/example/sunRed.png";
}
public String getMoonTexture()
{
return "/example/moonGreen.png";
}
public boolean renderStars()
{
return false;
}
public boolean darkenSkyDuringRain()
{
return false;
}
public String getRespawnMessage()
{
return "Apparently this dimension is too tough for you ;)";
}
//required by MC:
public void registerWorldChunkManager()
{
worldChunkMgr = new WorldChunkManagerExample(worldObj);
}
public IChunkProvider getChunkProvider()
{
return new ChunkProviderExample(worldObj, worldObj.getWorldSeed());
}
}
An example of a custom portal block:
package net.minecraft.src;
import java.util.ArrayList;
import java.util.List;
public class BlockPortalExample extends BlockPortalBase
{
public BlockPortalExample(int i, int j)
{
super(i, j, Material.portal);
}
//required:
public WorldProviderBase getDimension()
{
return new WorldProviderExample();
}
public Teleporter getTeleporter()
{
return new TeleporterExample()
}
public String getEnteringMessage()
{
return "Entering the Example Dimension";
}
public String getLeavingMessage()
{
return "Leaving the Example Dimension";
}
//not required:
public boolean isPortalImmediate()
{
return false;//does have a delay
}
public boolean displayPortalAnimation()
{
return true;//displays Nether portal animation
}
public List canTeleportFromDimension()
{
ArrayList arraylist = new ArrayList();
arraylist.add(Integer.valueOf(0));//player can teleport from overworld to this dimension
arraylist.add(Integer.valueOf(-1));//player can teleport from Nether to this dimension
return arraylist;
}
public int returnsPlayerToDimension()
{
return -1;//returns player to the Nether
}
public double getDistanceRatio()
{
return 0.2D;//slow travel
}
public int getPortalDelay()
{
return 150;//default
}
public Achievement triggerAchievement()
{
return mod_Example.exampleAchievement;//displays upon player's arrival in the dimension
}
}
As you can see, all the method names are pretty self-explanatory. Note that you do not have to change anything related to this API when porting your dimension to multiplayer, although you might want to get rid of any references to the rendering hooks in your WorldProvider as they are unnecessary in multiplayer.
I take requests for hooks/features to be added to the API, as long as they don't edit any more core class files than the API already does (I'll consider such hooks only if they're really huge, useful, and unique).
One last thing... I know how annoying it can be to lead people to a dozen different downloads just for one mod, so I give permission for modders who use this API to include it in their downloads. I only request that you mention your utilization of the API somewhere in your mod's post.
Video tutorial series by TheInstitutions:
This tutorial is created by TheInstitutions (go subscribe to his channel!). He's already made an updated version for 1.3.1:
--CURRENT USERS--
If you are using this to create a dimension and want to be included, send me the link to your mod's thread and maybe a screenshot or two so I can post them here.
Zoo Tycoon Mod
This API is also featured in ottoguy2's Ultimate API, a convenient pack of many useful modding APIs.
--COPYRIGHT--
This API is both open source and public domain. You have permission to redistribute the files from this mod, but I prefer that you give me some credit if you do so. You can incorporate any part of my code into your mod, overwrite any of my files, make patches between this and other mods without my permission, update the mod yourself if I discontinue it, etc.
Aha, but wouldn't it be pretty hard to code the generation/biomes stuff ?
Not too hard... Just look at the existing generation code and learn from it. How difficult it is depends on how complex you want to make your dimension, so you can always just start out small and simple and then work your way up.
Not too hard... Just look at the existing generation code and learn from it. How difficult it is depends on how complex you want to make your dimension, so you can always just start out small and simple and then work your way up.
If anyone's interested, I am now developing a biome API that won't interfere with existing worlds, unless the user specifies so. (It will be a separate mod.)
It is totally ok to edit more base classes if not any other useful mods is using that. Btw you just gave me permission to include this in UltimateAPI ;P
Oh, wow! Great! I was actually going to contact you about possible inclusion, but I wasn't sure I had enough users yet.
Btw, PudelHund kan väl inte betyda något på något annat språk?
Ha ha, I don't actually speak Swedish (that is Swedish, right?), but yes, it's meant to be "poodle dog" in a few different languages (Swedish, German, Danish, maybe Polish?).
Edit: Could you release the sourde? Just to add directly to your mcp?
I could release my own source files, but what about the edited ones? I suppose I could try making a patcher or something...
Btw, it would be even more awesome if you made patches for forge and Shockahpi. You know what? I will try to make a forge patch.
Forge works if you install the API after it (I'm not sure how that would work in MCP, though... I mean, it should work because of the way Forge is installed, but I'll have to try it). I'm pretty sure the API should already be compatible with ShockAhPI, as they don't edit any of the same classes. I designed it to be fairly unobtrusive.
There's a tutorial for what you have to do specifically for this API in the spoiler under "Instructions for Modders." I might make a full dimension-modding tutorial at some point, though.
getWorldSeed() doesn't exist in World. Do you mean getSeed()?
Having trouble getting a basic dimension up, but I'm more concerned at getting this to decompile and recompile with McForge. I wish I had a list of which unobfuscated classes in MCP matched the obfuscated ones so I could combine the code manually.
EDIT: Well that was easy enough. Decompile, copy paste the source somewhere, Decompile with only ModLoader/ModLoaderMp, paste entire source back into src, use getmodsource.bat, and now I have the source for just this mod. Start over again with decompiling minecraft with modloader/mp, use Forge install, copy/paste this mod's source into src again.
Unless MCP has changed the name again, getWorldSeed() does exist in the client version of World, and I'm pretty sure it's getRandomSeed() in the server version.
You can PM me with any questions you have, or post them here, whichever you prefer. I'm going to test this alongside Forge in MCP to see if there's an easier way of working with both. :smile.gif: Unless something has changed recently, the only class they both edit is RenderGlobal, and I include Forge's code from that class (which consisted only of changing a few fields from private to public when I last checked) in my API.
I have the obfuscated/unobfuscated names of the edited classes in the main post, btw.
TPPHM: Thanks! Glad to be part of the team.
ottoguy: :wink.gif: (Thanks for putting this in your API pack, by the way.)
This is a dimension-adding API that works on both the client and server. It is simple and straightforward for modders to use, while at the same time it maximizes the possible customizations they can make to their dimensions with a comprehensive library of hooks and features. The following are some of the features which modders may utilize by adopting this API:
-- Custom portal blocks and items for your dimension; you may create as many as you wish until you run into block ID limits. You can also easily use other methods (such as entity interaction) to trigger teleportation.
-- For your portal(s), you may define:
- a custom Teleporter
- a custom entering/leaving message
- a custom achievement to be triggered upon entering the dimension
- whether the portal acts immediately or after a delay (as well as the length of the delay)
- whether it displays the Nether portal animation
- in which dimensions it can be used
- to which dimension it returns the player
- whether it can be used for fast/slow travel (and by what factor)
- a custom portal texture, and a custom overlay when about to teleport
-- It also adds various hooks related to sky rendering, biomes, and other features, which you may use in your WorldProvider file.
-- In your WorldProvider, you may define:
- a set of biomes to be generated; a biome may generate normally or as a sub-biome of a larger biome, like an ocean, like a river, on the border between two biomes, or after all the other biomes have generated
- a custom edition of RenderGlobal.java, as well as:
- whether clouds are rendered
- whether void fog is rendered
- additional objects to be rendered in the sky
- the size and texture of the sun and moon
- the brightness of the stars
- the player's respawn message if he or she dies in the dimension
- in what dimension the player respawns (currently only for the client)
- whether the dimension has the End's sky texture
- the name of the dimension's save folder
-- The API additionally possesses multiple other dimension-related utilities:
- adjust the maximum height of the dimension's terrain to 256
- determine what happens when one of Minecraft's existing blocks or items are used or placed
- intercept the addition or removal of a block from the world
- intercept an item when it is right-clicked
- render a custom overlay on the player's view ingame
- easily spawn custom portal particles
- easily add a new Teleporter
--DOWNLOAD & INSTALL--
Make sure to read this section in its entirety before downloading and installing.
Dimension API no longer requires any other mods to be downloaded before it can run. Make sure to install this mod AFTER ModLoader or ModLoaderMP. Also, please only use the alternate download if the regular one does not work for you.
Download Dimension API Client v1.6.1 for Minecraft 1.3.2 (alternate download)
Download Dimension API Server v1.6.1 for Minecraft 1.3.2 (alternate download)
If you have Minecraft Forge installed, use this version instead (it works for both the client and server, but make sure to have Forge already installed before using it):
Download Dimension API v1.6.1 for Minecraft 1.3.2 - Forge edition (alternate download)
Installation instructions:
1. Download Dimension API above; use the client version if you are installing the mod on singleplayer, and the server version if you are installing it on multiplayer. (Again, this doesn't apply to the Forge version.)
2. For singleplayer, go to your minecraft.jar and delete the META-INF folder. For multiplayer, go to your minecraft_server.jar but DO NOT delete this folder.
3. Drag and drop all the files from the download into your minecraft.jar (or minecraft_server.jar if installing on a server).
4. You're finished.
If you're a modder, install the same way and then decompile with MCP or use the sources provided under "For Modders." Decompiling should produce no errors.
--CHANGELOG & PREVIOUS VERSIONS--
Version 1.6.1 (MC 1.3.2) (current version)
- Updated to Minecraft 1.3.2.
- Moved block addition/removal hooks to WorldServer so that the API no longer edits Chunk; now use DimensionChunk for terrain generation that exceeds 128 blocks of height, or for any terrain generation if you're somehow not using ModLoader or Forge.
Version 1.6 (MC 1.3.1) (client download | server download)
- Updated to Minecraft 1.3.1; some fairly major infrastructural changes occurred as a result.
- Dropped ModLoader and ModLoaderMP as dependencies; although most modders will still need ModLoader or Forge for now, technically no other mod is required for Dimension API to run.
- Integrated compatibility patches for ModLoader, ModLoaderMP, and Forge (partially, since it was not yet updated at the time of this version's release) into the API; there will no longer have to be a separate Forge patch.
- Added respawning in non-overworld dimensions to the server.
- Added an option to override respawning completely (per dimension) with a custom method.
- Added method descriptions to some of the API's most important source files, as well as markers where it edits vanilla code.
- Fixed a bug where decompiling the API would produce errors in GenLayerDimension.java.
- Fixed a bug where server-side biome generation behaved weirdly.
Version 1.5.1 (MC 1.2.5) (client download | server download | Forge client)
- The API now edits one fewer class on both the client and server; no other changes.
Version 1.5 (MC 1.2.5) (client download | server download)
- Added support for easily including multiple biomes in a custom dimension; several different types of biomes can be generated (major, minor, border, ocean, river, and miscellaneous for other types). Note that biome temperatures are currently buggy in multiplayer.
- Added a hook to intercept the addition and removal of a block from the world.
- Added a hook to intercept the right-clicking of an item.
- Allowed the Teleporter class to vary depending on the dimension from and to which the player is teleporting.
- Added a hook called before and one called after the player is teleported to and from a dimension, as well as (for the client) when the player is teleporting in the process of respawning.
- Made the onItemUse method in IItemUse more appropriate for utilization as a block placement intercept.
- Finally fixed a bug where the Nether portal animation would display when walking out of a custom portal, and the custom portal animation would display for the Nether portal.
Version 1.4 (MC 1.2.5) (client download | server download | Forge client | Forge server)
- Fixed a bug where a modded portal overlay would sometimes display instead of the Nether portal overlay.
- Removed the buggy implementation of infinite sprites; it just wasn't good enough.
Version 1.3 (MC 1.2.4) (client download | server download | Forge client | Forge server)
- Added support for a custom version of RenderGlobal by dimension.
- Added custom save folder names.
- Added adjustable terrain height per dimension. (256 vs. 128 blocks)
- Added support for overriding a texture file that isn't the terrain.png for custom animated portal textures.
- Added adjustable limit to the height at which portals can spawn when using TeleporterCustom.
- Added a buggy, experimental block/item sprite API (to add custom sprite sheets without using any terrain indices) as a workaround until Jeb adds this feature to the game.
Version 1.2 (MC 1.2.3) (client download | server download)
- Added a custom ingame screen overlay hook, useful especially for displaying a boss's health.
- Added an easy way to create new Teleporters if the portal's structure follows Nether portal pattern.
- Added an easy way to create custom portal particles like the Nether portal's.
- Added mod_ files so that the API is acknowledged by ModLoader. These don't do anything other than give the version number.
- Fixed a Minecraft bug where block IDs above 127 would crash the game when part of the terrain generation.
Version 1.1 (MC 1.2.3) (download - client/server, Forge version)
- Updated server.
- Fixed a bug where the portal would start triggering again immediately after the player arrived in a dimension.
Version 1.1, pre-release 1 (MC 1.2.3) (download - client/server)
- Added an extremely easy way to register a modified (differently-colored) Nether portal texture.
- Added support for custom portal overlays; now your portal texture (or actually any block's texture) can be displayed when the player is about to teleport instead of the Nether portal's texture.
- Added the ability to respawn the player in another dimension after dying in your dimension.
- Restructured teleportation triggering; now teleportation can be triggered by just about anything by implementing the ISpecialTeleportation interface.
- Added a hook that is called every time an item is used or a block is placed, to allow modders access to these events (for portal activation and such) by implementing the IItemUse interface.
- Custom dimensions can now have the End's sky texture.
Version 1.0 (MC 1.1.0) (download - client/server)
- First release
--FOR MODDERS--
General instructions, sample dimension, and sources:
Firstly, you can get the sources for this API here (currently v1.6.1, alternate download here). If you're using Forge, you can get the patched sources here (alternate download here). You can merge the src folder in the download with the src folder within your MCP directory to install (but delete the minecraft_server folder if you aren't modding the server). Note that the field/method names in my or your sources may be outdated, so there is a risk of recompile errors.
-- I am currently working on an overhaul of the sample dimension to use more of the API's features; the sources for the sample dimension are outdated but will only produce a couple of (easily-fixable) errors in MCP. --
I have made a very basic example dimension as a sort of tutorial (now for both client and server!); click here to download the sources for it. Screenshot:
You must do three things specially for this mod; otherwise you only need to create a dimension normally (with a ChunkProvider, Teleporter, possibly a WorldChunkManager, etc.):
1. Make a WorldProvider that extends WorldProviderBase; you can utilize the many render-related hooks that I have created via your WorldProvider (look in WorldProviderBase to see them), but technically you are only required to give your dimension an ID number.
2. Register your dimension in your mod_ file, within "public mod_Example." All you need to do is say "DimensionAPI.registerDimension(new WorldProviderExample())" DO NOT put this in load().
3. Create a custom block (or item) that teleports you to your dimension (a portal, basically). You need to make the block's file extend BlockPortalBase (or ItemTeleporterBase), and fill in all the required (abstract) fields.
An example of a custom WorldProvider using some of the API's hooks:
An example of a custom portal block:
As you can see, all the method names are pretty self-explanatory. Note that you do not have to change anything related to this API when porting your dimension to multiplayer, although you might want to get rid of any references to the rendering hooks in your WorldProvider as they are unnecessary in multiplayer.
I take requests for hooks/features to be added to the API, as long as they don't edit any more core class files than the API already does (I'll consider such hooks only if they're really huge, useful, and unique).
One last thing... I know how annoying it can be to lead people to a dozen different downloads just for one mod, so I give permission for modders who use this API to include it in their downloads. I only request that you mention your utilization of the API somewhere in your mod's post.
Video tutorial series by TheInstitutions:
This tutorial is created by TheInstitutions (go subscribe to his channel!). He's already made an updated version for 1.3.1:
--CURRENT USERS--
If you are using this to create a dimension and want to be included, send me the link to your mod's thread and maybe a screenshot or two so I can post them here.
All Dem Dimensions
AstroCraft
Atlantis Mod
Aurorae Dimension
Crazy Dimension
Creep Mod
Deathlands
DibbCraft
Forbidden Forest
Forgotten Legend
Freezer Mod
Ice Age (Planet Minecraft link)
Multidimensions
Mythcraft
Mythologycraft
NarutoCraft
Night Sky+ Space Mod
Pandora Mod
Pre-Prehistoric Mod
Underworld
This API is also featured in ottoguy2's Ultimate API, a convenient pack of many useful modding APIs.
--COPYRIGHT--
This API is both open source and public domain. You have permission to redistribute the files from this mod, but I prefer that you give me some credit if you do so. You can incorporate any part of my code into your mod, overwrite any of my files, make patches between this and other mods without my permission, update the mod yourself if I discontinue it, etc.
If you want me to respond to you, reply to me with the "Quote" button under my post.
Thanks!
Thank you. If you have any questions, feel free to contact me.
Thank you very much for this.
You're welcome! Dimension modding is really fun, so I encourage you to pursue it. :smile.gif:
Aha, but wouldn't it be pretty hard to code the generation/biomes stuff ?
Not too hard... Just look at the existing generation code and learn from it. How difficult it is depends on how complex you want to make your dimension, so you can always just start out small and simple and then work your way up.
That's true. :tongue.gif:
Want more Spawner Eggs ? http://www.minecraftforum.net/topic/1216130-125spawneggs-ultimate-10/
It looks like you have Forge installed, but that it's missing a class (ISidedInventory). Maybe try installing Forge again?
Oh, wow! Great! I was actually going to contact you about possible inclusion, but I wasn't sure I had enough users yet.
Ha ha, I don't actually speak Swedish (that is Swedish, right?), but yes, it's meant to be "poodle dog" in a few different languages (Swedish, German, Danish, maybe Polish?).
I could release my own source files, but what about the edited ones? I suppose I could try making a patcher or something...
Forge works if you install the API after it (I'm not sure how that would work in MCP, though... I mean, it should work because of the way Forge is installed, but I'll have to try it). I'm pretty sure the API should already be compatible with ShockAhPI, as they don't edit any of the same classes. I designed it to be fairly unobtrusive.
I'm glad to hear it. :smile.gif:
There's a tutorial for what you have to do specifically for this API in the spoiler under "Instructions for Modders." I might make a full dimension-modding tutorial at some point, though.
You're welcome. :smile.gif:
getWorldSeed() doesn't exist in World. Do you mean getSeed()?
Unless MCP has changed the name again, getWorldSeed() does exist in the client version of World, and I'm pretty sure it's getRandomSeed() in the server version.
You can PM me with any questions you have, or post them here, whichever you prefer. I'm going to test this alongside Forge in MCP to see if there's an easier way of working with both. :smile.gif: Unless something has changed recently, the only class they both edit is RenderGlobal, and I include Forge's code from that class (which consisted only of changing a few fields from private to public when I last checked) in my API.
I have the obfuscated/unobfuscated names of the edited classes in the main post, btw.
TPPHM: Thanks! Glad to be part of the team.
ottoguy: :wink.gif: (Thanks for putting this in your API pack, by the way.)