Hey, has anyone ever considered making a Java-based API mod? That way you only need to have one mod that requires you to get messy with the minecraft.jar file, and every mod you want to use can be in a folder. Sort of like the plugins system for Bukkit. I would think that if you coded it right you could have something akin to lisp-like hooks, so you could mod to the N-th degree. Plus, given that it was again coded correctly, as long as the API didn't change you wouldn't need to keep revamping all the mods for the incremental minecraft releases. Just update the API-mod itself, the external mods wouldn't know the difference.
I wonder if Notch would consider just plopping something like this into Minecraft itself...
Hopefully it will turn into a system where modders can use a toolkit to mod stuff without the need to mess with pure codes and file unless of course its something complex.
Like a editor or some kind of program that enables you to "create custom things" and turn it into a plugin so it can be attached to the game, as a unique ID so it doesn't conflict with other mods.
That would look like a IDE editor of some sorts I guess.
Invedit was interesting as it could modify inventory via a GUI window, although it lacked the functionality to inject new items into the list.
Does Minecraft have it's own database? Because if everything is hard-coded into the game, it makes it VERY hard to make mods that don't conflict with whatever that's in there... I find it easier to add new records and fields of data onto a database rather than having to hard-code it into the game as a sole class file.
From what I understand of the mechanics of the game, each block is given a unique numeric ID that's weighted according to some mystical numeric value for the world generator to play with. Bedrock would have the 'heaviest' weight, and is at the bottom of the map. Ores are weighted according to value, with dirt, stone, and sand as 'filler' according to altitude.
After that, water and terrain carving would start in, with biome generation.
The blocks are also referenced as part of a set of coordinates that tells it where to go on the .jpg to get its textures.
So, for something like.... IndustrialCraft, you need to mod the file that contains the block ID list, adding in your new entries, with the proper weights and texture values, then inject them as viable into the map generator with the proper distribution rarity, plus add in the GUI names of the blocks.
IC also has new tools to use, so you need to code those into the files as well, including how long each thing takes to process, what the GUI template looks like, where to find the skin, how to craft it, etc.
Now, this is mostly me just stepping through it in a logical manner, not having peeked very much at the code. (I don't code Java yet)
Quote from dra6o0n »
Hopefully it will turn into a system where modders can use a toolkit to mod stuff without the need to mess with pure codes and file unless of course its something complex.
Like a editor or some kind of program that enables you to "create custom things" and turn it into a plugin so it can be attached to the game, as a unique ID so it doesn't conflict with other mods.
That would look like a IDE editor of some sorts I guess.
I think it might, but I'm kind of hoping for nothing more than an external API class that people can use to make calls into. The class could act as a system interface between minecraft and mods. You could have it recognize mods through a config file in some external folder, and you could turn on and off mods. Each map would record what mods it was played with, so no random crashes. If a mod is turned on, the API looks for the 'new' information in the code and links that into the running program. It wouldn't be any laggier than Java is already once the mod is loaded, I think.
I wonder if Notch would consider just plopping something like this into Minecraft itself...
Like a editor or some kind of program that enables you to "create custom things" and turn it into a plugin so it can be attached to the game, as a unique ID so it doesn't conflict with other mods.
That would look like a IDE editor of some sorts I guess.
Invedit was interesting as it could modify inventory via a GUI window, although it lacked the functionality to inject new items into the list.
Does Minecraft have it's own database? Because if everything is hard-coded into the game, it makes it VERY hard to make mods that don't conflict with whatever that's in there... I find it easier to add new records and fields of data onto a database rather than having to hard-code it into the game as a sole class file.
After that, water and terrain carving would start in, with biome generation.
The blocks are also referenced as part of a set of coordinates that tells it where to go on the .jpg to get its textures.
So, for something like.... IndustrialCraft, you need to mod the file that contains the block ID list, adding in your new entries, with the proper weights and texture values, then inject them as viable into the map generator with the proper distribution rarity, plus add in the GUI names of the blocks.
IC also has new tools to use, so you need to code those into the files as well, including how long each thing takes to process, what the GUI template looks like, where to find the skin, how to craft it, etc.
Now, this is mostly me just stepping through it in a logical manner, not having peeked very much at the code. (I don't code Java yet)
I think it might, but I'm kind of hoping for nothing more than an external API class that people can use to make calls into. The class could act as a system interface between minecraft and mods. You could have it recognize mods through a config file in some external folder, and you could turn on and off mods. Each map would record what mods it was played with, so no random crashes. If a mod is turned on, the API looks for the 'new' information in the code and links that into the running program. It wouldn't be any laggier than Java is already once the mod is loaded, I think.