I had some people over in another thread show some interest in a tutorial on how to add custom breeds and textures in BarracudaATA’s Dragon Mounts Mod, so without further ado, here is the lazy man’s* method on how to add these to the mod!
NOTE: I have absolutely 0% Mac/Linux experience, all of this is in Windows 7.
As well, this is for the 1.7.10 r41 version of the mod.
*Lazy meaning I don’t have the coding experience to use the template and build one completely from scratch:P
This program will be used to edit the appropriate files. Just pick the correct version for your OS (32/64 bit Windows, OS X or Linux) and after it has finished downloading, move the .zip to your desktop, right click>properties>unblock and then extract the files.
Grab the Source code (zip). No need to extract this one but you will still want to unblock it.
Windows "blocks" any files that you download (for the reason that it "came from another computer") as a built-in "safety measure" and leaving them blocked can potentially affect the files upon extraction.
Once you have all of this, we can move on.
Part two: Importing the code
Get Eclipse up and running. This is a simple as double-clicking the .exe after extracting the folder, it is an independent program that does not need to be installed. After you’ve created the project in the workspace (File>new>project) go to File>import. Select “Archive file” and then click “browse” (it’s next to “From archive file”) and find the source code for the mod. Choose the project folder you made in Eclipse and import it. If everything was done correctly, Eclipse should currently look like this, with the project and dragon-mounts-r41 folders expanded:
If it does, great! The actual source code for the mod is in the folder named main, which is inside the src folder. Now here’s where the fun begins…
Part three: Editing
Open up the folder named “java”. this folder contains the main code that runs the mod and, as you have probably already guessed, the code we need to edit. In the case of adding breeds, open up the following folders:
info>ata4>minecraft>dragon>server>entity
You should now see three folders named “ai”, “breeds” and “helper”, along with the files “EntityFlyingTameable” and “EntityTameableDragon”. We’ll need to edit files in both the “breeds” folder and the “helper” folder. When you open the “breeds” folder you will see the .java file for all the breeds in the mod (air, end, etc.). Highlight one (I tend to use the “end” breed) and hit copy and then paste. It will prompt you to change the name to “copy of -----.java”. Remove the “Copy of” and change the breed to whatever your new breed will be (“end” to “stryker” for example) and hit ok. It should add the .java entry to the folder. Once this is done, double click the entry and you will be presented with the editor:
This is where you need to be careful. Only change the entries that say “end” (or whatever the base breed was) to the name of the new breed. In the case of the image, “end” is the command you will use to manually change the breed and “ender” is the name of the folder that contains the textures (we’ll get to that later). After making the desired changes, the editor now shows this:
You can add immunity to certain types of damage via a copy/paste from other breeds (I added fire and lava immunity):
In addition, you can change the "addHabitatBlock" lines to the block(s) of your choice. Look up the block(s) you want to use on the Minecraft Wiki to find the Minecraft names for them.
How these lines work is when the growing process is started the game will use the surrounding blocks (a minimum of two) to determine the breed. This can be used to avoid custom breeds being unobtainable without commands or make them obtainable only with commands (special feature for server admins/OPs maybe?).
Save this, and you are done with the actual breed file! You can add as many as you like.
Next we need to add the new breed(s) to the registry so it/they can be used. Expand the “helper” folder and double-click “DragonBreedRegistry”. Scroll down slightly and you will see the list. Simply copy/paste any of the lines to make a duplicate and change the name to the name of your breed(s), like so:
Hit save and you are done in this folder! Next, we add the textures…
Part four: Adding textures
Ok, so we finished making the main code changes to add the breed. Now comes the fun part: Adding custom textures! First, follow the folder tree:
Now choose a folder and drag it to your desktop. There are four 256x256 .png images named “body”, “egg”, “glow” and “saddle”. They must all be present for the new breed to render the texture properly (except for “egg”, if it's not present it will use the default enderdragon texture). So, for example, if you didn’t want it to show the saddle, edit it to be blank (not a solid color, but clear) and leave it in the folder. I use GIMP for all my editing. After you have finished editing the texture, rename the folder to match your breed. The folder name must match the second name provided in the breed file we edited earlier (super("stryker", "stryker", 0xab39be); or otherwise) or it won’t work. Drag and drop it into the “dragon” folder and confirm when prompted.
Hit save all (Ctrl+Shift+S) and we are done...with this part. Next, we will export and compile the mod!
Part five: Exporting and compiling
Now that we have the editing done we can export the source code. After shrinking all the folders in Eclipse, Go to File>Export and select “Archive file” then hit next. Check the box next to your project file that contains everything, then hit “browse” to provide a name and location for it to export the .zip file to (I use Desktop). After you have exported the .zip file, open it and grab the “java” and “resources” folders and copy them to the desktop. Remember the Forge folder we extracted here earlier? Good! Move the “java” and “resources” folders to the folder named “main”, the tree is as such:
Main Forge Folder>src>main
There will probably already be a “java” and “resources” folder there, go ahead and delete those. Then drag and drop your “java” and “resources” folders into the “main” folder. We're close, but not done yet! We now need to set up Forge so it names the file properly. Go back to the main Forge folder and you will see a file named “build.gradle”. Double-click it and if/when prompted, open it with notepad or WordPad (I prefer WordPad as it doesn’t mess up the way the formatting is displayed). The only things we need to edit are the lines “version” and “archivesBaseName”. The “archivesBaseName” line gives the .jar file it’s overall name when it’s generated and the version is displayed at the end of the name. In my case, DragonMounts-r41-1.7.10 is the name and S5260 is the version. After making these changes, hit save and exit WordPad/notepad. We can now compile the code! In the main Forge folder, hold shift and right click inside the folder and select “Open command window here”.
Now, type “gradlew build” (without the quotes!!!) in the command window and press enter. If all goes well, you will get this:
Now go to the folder “libs” which is in the folder “build” and the mod .jar file should be there. Congrats, you are done! Simply throw it in your Forge mods folder in your .minecraft and have fun!!!
Other tips/tricks:
Happy with the mod as is and just want custom textures without all the hassle? Simply use WinRAR to open the texture folder in the .jar and copy them to your desktop where you can edit them!
And lastly, a photo showing the "EntityTameableDragon" file and what you can edit in it. I've highlighted the main lines, if you made it this far I think you can figure the rest out yourself;)
I had some people over in another thread show some interest in a tutorial on how to add custom breeds and textures in BarracudaATA’s Dragon Mounts Mod, so without further ado, here is the lazy man’s* method on how to add these to the mod!
NOTE: I have absolutely 0% Mac/Linux experience, all of this is in Windows 7.
As well, this is for the 1.7.10 r41 version of the mod.
*Lazy meaning I don’t have the coding experience to use the template and build one completely from scratch:P
This program will be used to edit the appropriate files. Just pick the correct version for your OS (32/64 bit Windows, OS X or Linux) and after it has finished downloading, move the .zip to your desktop, right click and extract.
Grab the Source code (zip). No need to extract this one.
Once you have all of this, we can move on.
Part two: Importing the code
Get Eclipse up and running. This is a simple as double-clicking the .exe after extracting the folder, it is an independent program that does not need to be installed. After you’ve created the project in the workspace (File>new>project) go to File>import. Select “Archive file” and then click “browse” (it’s next to “From archive file”) and find the source code for the mod. Choose the project folder you made in Eclipse and import it. If everything was done correctly, Eclipse should currently look like this, with the project and dragon-mounts-r41 folders expanded:
If it does, great! The actual source code for the mod is in the folder named main, which is inside the src folder. Now here’s where the fun begins…
Part three: Editing
Open up the folder named “java”. this folder contains the main code that runs the mod and, as you have probably already guessed, the code we need to edit. In the case of adding breeds, open up the following folders:
info>ata4>minecraft>dragon>server>entity
You should now see three folders named “ai”, “breeds” and “helper”, along with the files “EntityFlyingTameable” and “EntityTameableDragon”. We’ll need to edit files in both the “breeds” folder and the “helper” folder. When you open the “breeds” folder you will see the .java file for all the breeds in the mod (air, end, etc.). Highlight one (I tend to use the “end” breed) and hit copy and then paste. It will prompt you to change the name to “copy of -----.java”. Remove the “Copy of” and change the breed to whatever your new breed will be (“end” to “stryker” for example) and hit ok. It should add the .java entry to the folder. Once this is done, double click the entry and you will be presented with the editor:
This is where you need to be careful. Only change the entries that say “end” (or whatever the base breed was) to the name of the new breed. In the case of the image, “end” is the command you will use to manually change the breed and “ender” is the name of the folder that contains the textures (we’ll get to that later). After making the desired changes, the editor now shows this:
You can also add immunity to certain types of damage via a copy/paste from other breeds (I added fire and lava immunity):
Save this, and you are done with the actual breed file! You can add as many as you like.
Next we need to add the new breed(s) to the registry so it/they can be used. Expand the “helper” folder and double-click “DragonBreedRegistry”. Scroll down slightly and you will see the list. Simply copy/paste any of the lines to make a duplicate and change the name to the name of your breed(s), like so:
Hit save and you are done in this folder! Next, we add the textures…
Part four: Adding textures
Ok, so we finished making the main code changes to add the breed. Now comes the fun part: Adding custom textures! First, follow the folder tree:
Now choose a folder and drag it to your desktop. There are four 256x256 .png images named “body”, “egg”, “glow” and “saddle”. They must all be present for the new breed to render the texture properly (except for “egg”, if it's not present it will use the default enderdragon texture). So, for example, if you didn’t want it to show the saddle, edit it to be blank (not a solid color, but clear) and leave it in the folder. I use GIMP for all my editing. After you have finished editing the texture, rename the folder to match your breed. The folder name must match the second name provided in the breed file we edited earlier (super("stryker", "stryker", 0xab39be); or otherwise) or it won’t work. Drag and drop it into the “dragon” folder and confirm when prompted.
Hit save all (Ctrl+Shift+S) and we are done...with this part. Next, we will export and compile the mod!
Part five: Exporting and compiling
Now that we have the editing done we can export the source code. After shrinking all the folders in Eclipse, Go to File>Export and select “Archive file” then hit next. Check the box next to your project file that contains everything, then hit “browse” to provide a name and location for it to export the .zip file to (I use Desktop). After you have exported the .zip file, open it and grab the “java” and “resources” folders and copy them to the desktop. Remember the Forge folder we extracted here earlier? Good! Move the “java” and “resources” folders to the folder named “main”, the tree is as such:
Main Forge Folder>src>main
There will probably already be a “java” and “resources” folder there, go ahead and delete those. Then drag and drop your “java” and “resources” folders into the “main” folder. We're close, but not done yet! We now need to set up Forge so it names the file properly. Go back to the main Forge folder and you will see a file named “build.gradle”. Double-click it and if/when prompted, open it with notepad or WordPad (I prefer WordPad as it doesn’t mess up the way the formatting is displayed). The only things we need to edit are the lines “version” and “archivesBaseName”. The “archivesBaseName” line gives the .jar file it’s overall name when it’s generated and the version is displayed at the end of the name. In my case, DragonMounts-r41-1.7.10 is the name and S5260 is the version. After making these changes, hit save and exit WordPad/notepad. We can now compile the code! In the main Forge folder, hold shift and right click inside the folder and select “Open command window here”.
Now, type “gradlew build” (without the quotes!!!) in the command window and press enter. If all goes well, you will get this:
Now go to the folder “libs” which is in the folder “build” and the mod .jar file should be there. Congrats, you are done! Simply throw it in your Forge mods folder in your .minecraft and have fun!!!
Other tips/tricks:
Happy with the mod as is and just want custom textures without all the hassle? Simply use WinRAR to open the texture folder in the .jar and copy them to your desktop where you can edit them!
And lastly, a photo showing the "EntityTameableDragon" file and what you can edit in it. I've highlighted the main lines, if you made it this far I think you can figure the rest out yourself;)
I am rather crazy about dragons in general, so I'm really excited to try this mod out. I found the main page, and obviously I found the link to this tutorial.
First of all, thank you so much. This is amazing and super helpful. Seriously. I mean it.
Second of all, do you know if there is a way to get it to work on version 8.x? Currently the latest download says 7.10, and from past experience most of the 7.10 versions of mods don't work anymore.
Last of all, how can we make more adjustments to our dragons (more than just the immunities to fire, lava, magic, etc)? If you don't know, do you know where I can go to look for that information?
For example, I want to add that the fire dragons have a chance to set enemies on fire when they attack. I would also love to give forest dragons a small heal spell that would trigger if the player falls below a certain health. I would also like to change the speeds, and perhaps give water dragons the ability to actually swim. A stretch goal would be creating some item or interface to command the dragon to use an ability on the block you've right-clicked on, such as the nether dragon spawning a block of lava there, or a forest dragon using a bone meal effect on that block.
Any advice you can give on any of these fronts?
A few questions regarding the actual content you've already provided for your tutorial:
1. Why do you change it on the server but not on client? Do you have to change it on both or just one of them?
2. How can you change how to get the egg to hatch into your new custom breed? For example, the Fire dragons need some kind of lava/fire near them, the Forest dragons need some plantlife nearby... How do I tell the game what I want the conditions to be for hatching that dragon?
I'd love some more specific instructions on how to set up the project in Eclipse. There's a lot of variables and options when setting up the project and i wasn't quite sure what to do.
I am rather crazy about dragons in general, so I'm really excited to try this mod out. I found the main page, and obviously I found the link to this tutorial.
First of all, thank you so much. This is amazing and super helpful. Seriously. I mean it.
Second of all, do you know if there is a way to get it to work on version 8.x? Currently the latest download says 7.10, and from past experience most of the 7.10 versions of mods don't work anymore.
Last of all, how can we make more adjustments to our dragons (more than just the immunities to fire, lava, magic, etc)? If you don't know, do you know where I can go to look for that information?
For example, I want to add that the fire dragons have a chance to set enemies on fire when they attack. I would also love to give forest dragons a small heal spell that would trigger if the player falls below a certain health. I would also like to change the speeds, and perhaps give water dragons the ability to actually swim. A stretch goal would be creating some item or interface to command the dragon to use an ability on the block you've right-clicked on, such as the nether dragon spawning a block of lava there, or a forest dragon using a bone meal effect on that block.
Any advice you can give on any of these fronts?
A few questions regarding the actual content you've already provided for your tutorial:
1. Why do you change it on the server but not on client? Do you have to change it on both or just one of them?
2. How can you change how to get the egg to hatch into your new custom breed? For example, the Fire dragons need some kind of lava/fire near them, the Forest dragons need some plantlife nearby... How do I tell the game what I want the conditions to be for hatching that dragon?
1. No problem, glad it was helpful
2. It's currently being ported to 1.8 by the developer, no idea on an ETA but it's in the works. So far aside from some minor bugs (the mod is still a WIP) it works well in 1.7.10.
3. Most of that (except for the speed thing) are out of my league in terms of my coding knowledge. I would try to find a (much) more experienced coder for those questions. The speed (ground works, not sure about in air), health, damage the dragon deals and hitboxes (maybe?) can all be adjusted in the "EntityTameableDragon" file.
1a. You only have to edit in the server folder. I haven't looked at the files for a bit, but from what I remember there actually wasn't anything related to this in the client folders, just render commands. I'll check when I can and edit this post for confirmation.
2a. In the individual breed file there are the "AddHabitatBlock" and "AddHabitatBiome" lines. I didn't mess with/experiment with these as I had already botched the final product a few times and didn't want to redo it any more times than I wanted to. I would assume you would replace the existing blocks/biome with the desired ones, although I'm not sure if any other files would need to be edited for this.
I'd love some more specific instructions on how to set up the project in Eclipse. There's a lot of variables and options when setting up the project and i wasn't quite sure what to do.
As long as you have the linked version, it's the option that simply says "Project", nothing else. I believe it just creates a folder in the Eclipse directory to import the other files to.
Rollback Post to RevisionRollBack
Just call me "Stryker", no need to be formal.
Normal sig clutter below:
I got everything to work with my added dragons to some extent. I'm able to load my world, but as soon as I right-click with a dragon spawn egg, the game crashes with the error report below. Given the heads and causes in this crash report, my initial thought would be that the variables (habitat blocks and habitat biomes) of some of my breeds are conflicting with some of the default behaviors in "EntityTameableDragon". It'd be much appreciated if someone could give some ideas as to where my problem might be. I'll even email my adaptation of the mod (when completed) to the winner. ;P
java.lang.NullPointerException: Ticking memory connection
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
-- Ticking connection --
Details:
Connection: net.minecraft.network.NetworkManager@28979d8a
Stacktrace:
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 258195424 bytes (246 MB) / 658526208 bytes (628 MB) up to 4281597952 bytes (4083 MB)
JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291 10 mods loaded, 10 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1291} [Forge Mod Loader] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
customnpcs{1.7.10c} [CustomNpcs] (CustomNPCs_1.7.10c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
DragonMounts{1.7.10} [Dragon Mounts] (DragonMounts-j41-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
moreplayermodels{1.7.10b} [MorePlayerModels] (MorePlayerModels_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
noCubes{1.0} [No Cubes] (noCubes-1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
RWG{Alpha 1.1} [Realistic World Gen Alpha] (Realistic-World-Gen-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
TooMuchTNT{2.9} [TooMuchTNT] (TooMuchTNT v2.9.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
worldedit{6.0-beta-01} [WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP['creeperL98'/321, l='1_7_10 Test', x=-1181.57, y=73.00, z=-685.62]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
Here's another, this time by right-clicking a dragon egg to start the hatching process.
---- Minecraft Crash Report ----
// I just don't know what went wrong
Time: 5/24/15 11:00 AM
Description: Ticking entity
java.lang.NullPointerException: Ticking entity
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
at net.minecraft.world.World.func_72939_s(World.java:1887)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1994)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:961)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at
net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at
net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_
(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at
net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a
(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
Level generator: ID 04 - RWG, ver 0. Features enabled: false
Level generator options:
Level spawn location: World:
(97,64,45), Chunk: (at 1,4,13 in 6,2; contains blocks 96,0,32 to 111,255,47), Region: (0,0; contains chunks 0,0 to 31,31,
blocks 0,0,0 to 511,255,511)
Level time: 672 game time, 672 day time
Level dimension: 0
Level storage version:
0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode:
creative (ID 1). Hardcore: false. Cheats: false
Forced entities: ~~ERROR~~ NullPointerException: null
Retry entities: 0
total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at
net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:373)
at
net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2432)
at net.minecraft.client.Minecraft.func_99999_d
(Minecraft.java:909)
at net.minecraft.client.main.Main.main(SourceFile:148)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at
net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
--
System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version:
1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
I got everything to work with my added dragons to some extent. I'm able to load my world, but as soon as I right-click with a dragon spawn egg, the game crashes with the error report below. Given the heads and causes in this crash report, my initial thought would be that the variables (habitat blocks and habitat biomes) of some of my breeds are conflicting with some of the default behaviors in "EntityTameableDragon". It'd be much appreciated if someone could give some ideas as to where my problem might be. I'll even email my adaptation of the mod (when completed) to the winner. ;P
java.lang.NullPointerException: Ticking memory connection
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
-- Ticking connection --
Details:
Connection: net.minecraft.network.NetworkManager@28979d8a
Stacktrace:
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 258195424 bytes (246 MB) / 658526208 bytes (628 MB) up to 4281597952 bytes (4083 MB)
JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291 10 mods loaded, 10 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1291} [Forge Mod Loader] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
customnpcs{1.7.10c} [CustomNpcs] (CustomNPCs_1.7.10c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
DragonMounts{1.7.10} [Dragon Mounts] (DragonMounts-j41-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
moreplayermodels{1.7.10b} [MorePlayerModels] (MorePlayerModels_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
noCubes{1.0} [No Cubes] (noCubes-1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
RWG{Alpha 1.1} [Realistic World Gen Alpha] (Realistic-World-Gen-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
TooMuchTNT{2.9} [TooMuchTNT] (TooMuchTNT v2.9.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
worldedit{6.0-beta-01} [WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP['creeperL98'/321, l='1_7_10 Test', x=-1181.57, y=73.00, z=-685.62]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
Here's another, this time by right-clicking a dragon egg to start the hatching process.
---- Minecraft Crash Report ----
// I just don't know what went wrong
Time: 5/24/15 11:00 AM
Description: Ticking entity
java.lang.NullPointerException: Ticking entity
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
at net.minecraft.world.World.func_72939_s(World.java:1887)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1994)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:961)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at
net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at
net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_
(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at
net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a
(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
Level generator: ID 04 - RWG, ver 0. Features enabled: false
Level generator options:
Level spawn location: World:
(97,64,45), Chunk: (at 1,4,13 in 6,2; contains blocks 96,0,32 to 111,255,47), Region: (0,0; contains chunks 0,0 to 31,31,
blocks 0,0,0 to 511,255,511)
Level time: 672 game time, 672 day time
Level dimension: 0
Level storage version:
0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode:
creative (ID 1). Hardcore: false. Cheats: false
Forced entities: ~~ERROR~~ NullPointerException: null
Retry entities: 0
total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at
net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:373)
at
net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2432)
at net.minecraft.client.Minecraft.func_99999_d
(Minecraft.java:909)
at net.minecraft.client.main.Main.main(SourceFile:148)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at
net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
--
System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version:
1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291
10 mods loaded, 10 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized-
>Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1291} [Forge Mod Loader] (forge-
1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available-
>Available->Available
Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
customnpcs{1.7.10c} [CustomNpcs]
(CustomNPCs_1.7.10c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available-
>Available->Available
DragonMounts{1.7.10} [Dragon Mounts] (DragonMounts-j41-1.7.10.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
moreplayermodels{1.7.10b}
[MorePlayerModels] (MorePlayerModels_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized-
>Available->Available->Available->Available
noCubes{1.0} [No Cubes] (noCubes-1.0.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
RWG{Alpha 1.1} [Realistic World Gen
Alpha] (Realistic-World-Gen-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized-
>Available->Available->Available->Available
TooMuchTNT{2.9} [TooMuchTNT] (TooMuchTNT v2.9.jar) Unloaded->Constructed-
>Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
worldedit{6.0-beta-01}
[WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-
initialized->Available->Available->Available->Available
Launched Version: 1.7.10
LWJGL: 2.9.1
OpenGL: GeForce GT
430/PCIe/SSE2 GL version 4.5.0 NVIDIA 352.86, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using
framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and
maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.
Is Modded: Definitely; Client brand changed
to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: English (US)
Profiler Position:
N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: On (16)
Were you using the normal un-edited version with no problems before? I would try a fresh compile from un-edited source code to make sure it's not the edits. And I did have to redo my personal version and (I at least) didn't run into any issues with the blocks and biomes conflicting. Usually if something isn't right it won't actually compile to a .jar file. And what mod are you using for a dragon spawn egg?
Were you using the normal un-edited version with no problems before? I would try a fresh compile from un-edited source code to make sure it's not the edits. And I did have to redo my personal version and (I at least) didn't run into any issues with the blocks and biomes conflicting. Usually if something isn't right it won't actually compile to a .jar file. And what mod are you using for a dragon spawn egg?
Thx, I figured it out. The default dragon in one of the files was still set to "end" while I had changed the the other parts like the registry and breed class to "ender."
Next to tackle is creating a new AI for the dragons so they'll roam around by flying when untamed.
If you can create an AI for a flying dragon, I'd really be interested in how you do it. I've tried to do the same thing for some dragons in my mod, but found the existing AI in Minecraft to be completely incompatible with any kind of flying an entity might do.
Thx, I figured it out. The default dragon in one of the files was still set to "end" while I had changed the the other parts like the registry and breed class to "ender."
Next to tackle is creating a new AI for the dragons so they'll roam around by flying when untamed.
Ah, same thing I did quite a few times, happens a lot when I rush to get something done lol. Good to hear you got it and good luck with the AI. If you get anything figured out let me know.
The Meaning of Life, the Universe, and Everything.
Join Date:
8/23/2014
Posts:
59
Location:
Somewhere among trees...
Minecraft:
Akitiki
Member Details
I think I had done everything right, but up to where I actually played the mod, it was broken. I have a save with everything, of course, but something's up. The dragons already existing disappeared. Rolling back to the save (and using your version) worked fine.
The command window read that the build was successful (though it didn't show a bunch of "up-to-date" readouts). Also I did setup the Forge as said for the name, but it still spat out "modid 1.0" :/
Sounds exactly like an issue I had before...that frankly I forget how I fixed:/ The one thing I forgot to add to the main post that could be the issue is that you need to make sure all the files are unblocked after downloading. Right click the file(s)>properties>unblock (make sure to do this to the main .zip archive before extraction so it unblocks all the files inside). Then back up any custom textures and start with fresh, unblocked Forge and source code. The blocking is something Windows does by default as a "safety measure" and in some instances can affect the files when they are extracted. It might also be why it's not saving the name that you had input.
Rollback Post to RevisionRollBack
Just call me "Stryker", no need to be formal.
Normal sig clutter below:
Sounds exactly like an issue I had before...that frankly I forget how I fixed:/ The one thing I forgot to add to the main post that could be the issue is that you need to make sure all the files are unblocked after downloading. Right click the file(s)>properties>unblock (make sure to do this to the main .zip archive before extraction so it unblocks all the files inside). Then back up any custom textures and start with fresh, unblocked Forge and source code. The blocking is something Windows does by default as a "safety measure" and in some instances can affect the files when they are extracted. It might also be why it's not saving the name that you had input.
i'll give it a shot tomorrow. all of the custom stuff is saved elsewhere already, but i'll double check. I'll let you know how it goes, and with hopes it'll work.
>Cannot find System Java Compiler. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable to point to the according directory.
Yeah... This appeared when it tried to compile.
Fixed.
Also, you can change what block they spawn on perfectly fine- I changed the vanilla Ender Dragon to only be on End Stone while my new dragon only spawns on Obsidian (originally, both did both... and both still require Sky)
Also, you can change what block they spawn on perfectly fine- I changed the vanilla Ender Dragon to only be on End Stone while my new dragon only spawns on Obsidian (originally, both did both... and both still require Sky)
Thanks for the info, added it to the main post.
Rollback Post to RevisionRollBack
Just call me "Stryker", no need to be formal.
Normal sig clutter below:
The Meaning of Life, the Universe, and Everything.
Join Date:
2/28/2013
Posts:
74
Xbox:
GingerNo7
Member Details
This really is an amazing tutorial. I'm creating a ton of new dragon breeds and once I'm finished I'll share it with everyone on the Dragon Mounts thread
The Meaning of Life, the Universe, and Everything.
Join Date:
2/28/2013
Posts:
74
Xbox:
GingerNo7
Member Details
Also, is it possible to have have two breeds of dragon eggs hatch (become one breed or the other) under the same conditions but have the resulting breed be a random selection of the two?
This really is an amazing tutorial. I'm creating a ton of new dragon breeds and once I'm finished I'll share it with everyone on the Dragon Mounts thread
Thanks! I'd love to see what you've come up with. Maybe I should create a thread exclusively for sharing breeds...
Also, is it possible to have have two breeds of dragon eggs hatch (become one breed or the other) under the same conditions but have the resulting breed be a random selection of the two?
I had set up one of my builds like that and didn't seem to get a randomized result. I think it would have to be coded to be a random selection, maybe with some sort of rarity percentage? Kind of like how shiny Pokemon are so rare but most times found in the same area as their normal counterparts.
I seem to have hit a snag. There isn't a build.gradle file. What should I do?
Grab a fresh copy of the Forge environment and make sure you're unblocking the file before extracting it. If it's still not there, try a different version. When it comes to compiling mods it doesn't really matter what revision the Forge environment is as long as it's fairly recent. I think I'm using either 1230 or 1291 for 1.7.10 stuff.
Rollback Post to RevisionRollBack
Just call me "Stryker", no need to be formal.
Normal sig clutter below:
I had some people over in another thread show some interest in a tutorial on how to add custom breeds and textures in BarracudaATA’s Dragon Mounts Mod, so without further ado, here is the lazy man’s* method on how to add these to the mod!
NOTE: I have absolutely 0% Mac/Linux experience, all of this is in Windows 7.
As well, this is for the 1.7.10 r41 version of the mod.
*Lazy meaning I don’t have the coding experience to use the template and build one completely from scratch:P
Part one: Things you’ll need
Java JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Refer to this guide here to install it properly.
Eclipse IDE for Java EE Devs: https://www.eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/lunasr2
This program will be used to edit the appropriate files. Just pick the correct version for your OS (32/64 bit Windows, OS X or Linux) and after it has finished downloading, move the .zip to your desktop, right click>properties>unblock and then extract the files.
Minecraft Forge (for compiling the source code after editing): http://files.minecraftforge.net/maven/net/minecraftforge/forge/index_1.7.10.html
Grab the latest version of the src, nothing else is need from this site. Again, move to desktop>right click>properties>unblock then extract.
And last but not least, the source code itself:
https://github.com/ata4/dragon-mounts/releases/tag/r41
Grab the Source code (zip). No need to extract this one but you will still want to unblock it.
Windows "blocks" any files that you download (for the reason that it "came from another computer") as a built-in "safety measure" and leaving them blocked can potentially affect the files upon extraction.
Once you have all of this, we can move on.
Part two: Importing the code
Get Eclipse up and running. This is a simple as double-clicking the .exe after extracting the folder, it is an independent program that does not need to be installed. After you’ve created the project in the workspace (File>new>project) go to File>import. Select “Archive file” and then click “browse” (it’s next to “From archive file”) and find the source code for the mod. Choose the project folder you made in Eclipse and import it. If everything was done correctly, Eclipse should currently look like this, with the project and dragon-mounts-r41 folders expanded:
If it does, great! The actual source code for the mod is in the folder named main, which is inside the src folder. Now here’s where the fun begins…
Part three: Editing
Open up the folder named “java”. this folder contains the main code that runs the mod and, as you have probably already guessed, the code we need to edit. In the case of adding breeds, open up the following folders:
info>ata4>minecraft>dragon>server>entity
You should now see three folders named “ai”, “breeds” and “helper”, along with the files “EntityFlyingTameable” and “EntityTameableDragon”. We’ll need to edit files in both the “breeds” folder and the “helper” folder. When you open the “breeds” folder you will see the .java file for all the breeds in the mod (air, end, etc.). Highlight one (I tend to use the “end” breed) and hit copy and then paste. It will prompt you to change the name to “copy of -----.java”. Remove the “Copy of” and change the breed to whatever your new breed will be (“end” to “stryker” for example) and hit ok. It should add the .java entry to the folder. Once this is done, double click the entry and you will be presented with the editor:
This is where you need to be careful. Only change the entries that say “end” (or whatever the base breed was) to the name of the new breed. In the case of the image, “end” is the command you will use to manually change the breed and “ender” is the name of the folder that contains the textures (we’ll get to that later). After making the desired changes, the editor now shows this:
You can add immunity to certain types of damage via a copy/paste from other breeds (I added fire and lava immunity):
In addition, you can change the "addHabitatBlock" lines to the block(s) of your choice. Look up the block(s) you want to use on the Minecraft Wiki to find the Minecraft names for them.
How these lines work is when the growing process is started the game will use the surrounding blocks (a minimum of two) to determine the breed. This can be used to avoid custom breeds being unobtainable without commands or make them obtainable only with commands (special feature for server admins/OPs maybe?).
Save this, and you are done with the actual breed file! You can add as many as you like.
Next we need to add the new breed(s) to the registry so it/they can be used. Expand the “helper” folder and double-click “DragonBreedRegistry”. Scroll down slightly and you will see the list. Simply copy/paste any of the lines to make a duplicate and change the name to the name of your breed(s), like so:
Hit save and you are done in this folder! Next, we add the textures…
Part four: Adding textures
Ok, so we finished making the main code changes to add the breed. Now comes the fun part: Adding custom textures! First, follow the folder tree:
resources>assets>dragonmounts>textures>entities>dragon
Now choose a folder and drag it to your desktop. There are four 256x256 .png images named “body”, “egg”, “glow” and “saddle”. They must all be present for the new breed to render the texture properly (except for “egg”, if it's not present it will use the default enderdragon texture). So, for example, if you didn’t want it to show the saddle, edit it to be blank (not a solid color, but clear) and leave it in the folder. I use GIMP for all my editing. After you have finished editing the texture, rename the folder to match your breed. The folder name must match the second name provided in the breed file we edited earlier (super("stryker", "stryker", 0xab39be); or otherwise) or it won’t work. Drag and drop it into the “dragon” folder and confirm when prompted.
Hit save all (Ctrl+Shift+S) and we are done...with this part. Next, we will export and compile the mod!
Part five: Exporting and compiling
Now that we have the editing done we can export the source code. After shrinking all the folders in Eclipse, Go to File>Export and select “Archive file” then hit next. Check the box next to your project file that contains everything, then hit “browse” to provide a name and location for it to export the .zip file to (I use Desktop). After you have exported the .zip file, open it and grab the “java” and “resources” folders and copy them to the desktop. Remember the Forge folder we extracted here earlier? Good! Move the “java” and “resources” folders to the folder named “main”, the tree is as such:
Main Forge Folder>src>main
There will probably already be a “java” and “resources” folder there, go ahead and delete those. Then drag and drop your “java” and “resources” folders into the “main” folder. We're close, but not done yet! We now need to set up Forge so it names the file properly. Go back to the main Forge folder and you will see a file named “build.gradle”. Double-click it and if/when prompted, open it with notepad or WordPad (I prefer WordPad as it doesn’t mess up the way the formatting is displayed). The only things we need to edit are the lines “version” and “archivesBaseName”. The “archivesBaseName” line gives the .jar file it’s overall name when it’s generated and the version is displayed at the end of the name. In my case, DragonMounts-r41-1.7.10 is the name and S5260 is the version. After making these changes, hit save and exit WordPad/notepad. We can now compile the code! In the main Forge folder, hold shift and right click inside the folder and select “Open command window here”.
Now, type “gradlew build” (without the quotes!!!) in the command window and press enter. If all goes well, you will get this:
Now go to the folder “libs” which is in the folder “build” and the mod .jar file should be there. Congrats, you are done! Simply throw it in your Forge mods folder in your .minecraft and have fun!!!
Other tips/tricks:
Happy with the mod as is and just want custom textures without all the hassle? Simply use WinRAR to open the texture folder in the .jar and copy them to your desktop where you can edit them!
And lastly, a photo showing the "EntityTameableDragon" file and what you can edit in it. I've highlighted the main lines, if you made it this far I think you can figure the rest out yourself;)
Hope this was helpful, enjoy:)
Normal sig clutter below:
Thanks for the tutorial Stryker
Hello!
I am rather crazy about dragons in general, so I'm really excited to try this mod out. I found the main page, and obviously I found the link to this tutorial.
First of all, thank you so much. This is amazing and super helpful. Seriously. I mean it.
Second of all, do you know if there is a way to get it to work on version 8.x? Currently the latest download says 7.10, and from past experience most of the 7.10 versions of mods don't work anymore.
Last of all, how can we make more adjustments to our dragons (more than just the immunities to fire, lava, magic, etc)? If you don't know, do you know where I can go to look for that information?
For example, I want to add that the fire dragons have a chance to set enemies on fire when they attack. I would also love to give forest dragons a small heal spell that would trigger if the player falls below a certain health. I would also like to change the speeds, and perhaps give water dragons the ability to actually swim. A stretch goal would be creating some item or interface to command the dragon to use an ability on the block you've right-clicked on, such as the nether dragon spawning a block of lava there, or a forest dragon using a bone meal effect on that block.
Any advice you can give on any of these fronts?
A few questions regarding the actual content you've already provided for your tutorial:
1. Why do you change it on the server but not on client? Do you have to change it on both or just one of them?
2. How can you change how to get the egg to hatch into your new custom breed? For example, the Fire dragons need some kind of lava/fire near them, the Forest dragons need some plantlife nearby... How do I tell the game what I want the conditions to be for hatching that dragon?
I'd love some more specific instructions on how to set up the project in Eclipse. There's a lot of variables and options when setting up the project and i wasn't quite sure what to do.
1. No problem, glad it was helpful
2. It's currently being ported to 1.8 by the developer, no idea on an ETA but it's in the works. So far aside from some minor bugs (the mod is still a WIP) it works well in 1.7.10.
3. Most of that (except for the speed thing) are out of my league in terms of my coding knowledge. I would try to find a (much) more experienced coder for those questions. The speed (ground works, not sure about in air), health, damage the dragon deals and hitboxes (maybe?) can all be adjusted in the "EntityTameableDragon" file.
1a. You only have to edit in the server folder. I haven't looked at the files for a bit, but from what I remember there actually wasn't anything related to this in the client folders, just render commands. I'll check when I can and edit this post for confirmation.
2a. In the individual breed file there are the "AddHabitatBlock" and "AddHabitatBiome" lines. I didn't mess with/experiment with these as I had already botched the final product a few times and didn't want to redo it any more times than I wanted to. I would assume you would replace the existing blocks/biome with the desired ones, although I'm not sure if any other files would need to be edited for this.
As long as you have the linked version, it's the option that simply says "Project", nothing else. I believe it just creates a folder in the Eclipse directory to import the other files to.
Normal sig clutter below:
I got everything to work with my added dragons to some extent. I'm able to load my world, but as soon as I right-click with a dragon spawn egg, the game crashes with the error report below. Given the heads and causes in this crash report, my initial thought would be that the variables (habitat blocks and habitat biomes) of some of my breeds are conflicting with some of the default behaviors in "EntityTameableDragon". It'd be much appreciated if someone could give some ideas as to where my problem might be. I'll even email my adaptation of the mod (when completed) to the winner. ;P
---- Minecraft Crash Report ----
// Oops.
Time: 5/23/15 7:14 PM
Description: Ticking memory connection
java.lang.NullPointerException: Ticking memory connection
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70639_aQ(EntityTameableDragon.java:315)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70642_aH(EntityTameableDragon.java:348)
at net.minecraft.item.ItemMonsterPlacer.func_77840_a(SourceFile:148)
at net.minecraft.item.ItemMonsterPlacer.func_77648_a(SourceFile:85)
at net.minecraftforge.common.ForgeHooks.onPlaceItemIntoWorld(ForgeHooks.java:505)
at net.minecraft.item.ItemStack.func_77943_a(ItemStack.java:128)
at net.minecraft.server.management.ItemInWorldManager.func_73078_a(ItemInWorldManager.java:389)
at net.minecraft.network.NetHandlerPlayServer.func_147346_a(NetHandlerPlayServer.java:556)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:60)
at net.minecraft.network.play.client.C08PacketPlayerBlockPlacement.func_148833_a(SourceFile:9)
at net.minecraft.network.NetworkManager.func_74428_b(NetworkManager.java:212)
-- Ticking connection --
Details:
Connection: net.minecraft.network.NetworkManager@28979d8a
Stacktrace:
at net.minecraft.network.NetworkSystem.func_151269_c(NetworkSystem.java:165)
at net.minecraft.server.MinecraftServer.func_71190_q(MinecraftServer.java:659)
at net.minecraft.server.MinecraftServer.func_71217_p(MinecraftServer.java:547)
at net.minecraft.server.integrated.IntegratedServer.func_71217_p(IntegratedServer.java:111)
at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:427)
at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:685)
-- System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version: 1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 258195424 bytes (246 MB) / 658526208 bytes (628 MB) up to 4281597952 bytes (4083 MB)
JVM Flags: 6 total; -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291 10 mods loaded, 10 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1291} [Forge Mod Loader] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
customnpcs{1.7.10c} [CustomNpcs] (CustomNPCs_1.7.10c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
DragonMounts{1.7.10} [Dragon Mounts] (DragonMounts-j41-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
moreplayermodels{1.7.10b} [MorePlayerModels] (MorePlayerModels_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
noCubes{1.0} [No Cubes] (noCubes-1.0.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
RWG{Alpha 1.1} [Realistic World Gen Alpha] (Realistic-World-Gen-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
TooMuchTNT{2.9} [TooMuchTNT] (TooMuchTNT v2.9.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
worldedit{6.0-beta-01} [WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Profiler Position: N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Player Count: 1 / 8; [EntityPlayerMP['creeperL98'/321, l='1_7_10 Test', x=-1181.57, y=73.00, z=-685.62]]
Type: Integrated Server (map_client.txt)
Is Modded: Definitely; Client brand changed to 'fml,forge'
Here's another, this time by right-clicking a dragon egg to start the hatching process.
---- Minecraft Crash Report ----
// I just don't know what went wrong
Time: 5/24/15 11:00 AM
Description: Ticking entity
java.lang.NullPointerException: Ticking entity
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
at net.minecraft.world.World.func_72939_s(World.java:1887)
at net.minecraft.client.Minecraft.func_71407_l(Minecraft.java:1994)
at net.minecraft.client.Minecraft.func_71411_J(Minecraft.java:961)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:887)
at net.minecraft.client.main.Main.main(SourceFile:148)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.isInvulnerableTo(EntityTameableDragon.java:839)
at
info.ata4.minecraft.dragon.server.entity.EntityTameableDragon.func_70097_a(EntityTameableDragon.java:662)
at
net.minecraft.entity.EntityLivingBase.func_70030_z(EntityLivingBase.java:198)
at
net.minecraft.entity.EntityLiving.func_70030_z(EntityLiving.java:157)
at net.minecraft.entity.Entity.func_70071_h_
(Entity.java:318)
at net.minecraft.entity.EntityLivingBase.func_70071_h_(EntityLivingBase.java:1561)
at
net.minecraft.entity.EntityLiving.func_70071_h_(EntityLiving.java:206)
at net.minecraft.world.World.func_72866_a
(World.java:2070)
at net.minecraft.world.World.func_72870_g(World.java:2034)
-- Entity being ticked --
Details:
Entity Type: DragonMount (info.ata4.minecraft.dragon.server.entity.EntityTameableDragon)
Entity ID: 4558
Entity Name:
~~ERROR~~ NullPointerException: null
Entity's Exact location: 88.50, 71.50, 41.50
Entity's Block location: World:
(88,71,41), Chunk: (at 8,4,9 in 5,2; contains blocks 80,0,32 to 95,255,47), Region: (0,0; contains chunks 0,0 to 31,31,
blocks 0,0,0 to 511,255,511)
Entity's Momentum: 0.00, 0.00, 0.00
Stacktrace:
at net.minecraft.world.World.func_72939_s
(World.java:1887)
-- Affected level --
Details:
Level name: MpServer
All players: 1 total; [EntityClientPlayerMP
['creeperL98'/109, l='MpServer', x=88.26, y=72.62, z=38.62]]
Chunk stats: MultiplayerChunkCache: 288, 288
Level seed: 0
Level generator: ID 04 - RWG, ver 0. Features enabled: false
Level generator options:
Level spawn location: World:
(97,64,45), Chunk: (at 1,4,13 in 6,2; contains blocks 96,0,32 to 111,255,47), Region: (0,0; contains chunks 0,0 to 31,31,
blocks 0,0,0 to 511,255,511)
Level time: 672 game time, 672 day time
Level dimension: 0
Level storage version:
0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode:
creative (ID 1). Hardcore: false. Cheats: false
Forced entities: ~~ERROR~~ NullPointerException: null
Retry entities: 0
total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at
net.minecraft.client.multiplayer.WorldClient.func_72914_a(WorldClient.java:373)
at
net.minecraft.client.Minecraft.func_71396_d(Minecraft.java:2432)
at net.minecraft.client.Minecraft.func_99999_d
(Minecraft.java:909)
at net.minecraft.client.main.Main.main(SourceFile:148)
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at
net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
--
System Details --
Details:
Minecraft Version: 1.7.10
Operating System: Windows 7 (amd64) version 6.1
Java Version:
1.8.0_25, Oracle Corporation
Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 383226144 bytes (365 MB) / 716414976 bytes (683 MB) up to 4281597952 bytes (4083 MB)
JVM Flags: 6 total; -
XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmx4G -XX:+UseConcMarkSweepGC -XX:
+CMSIncrementalMode -XX:-UseAdaptiveSizePolicy -Xmn128M
AABB Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML: MCP v9.05 FML v7.10.85.1291 Minecraft Forge 10.13.2.1291
10 mods loaded, 10 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized-
>Initialized->Post-initialized->Available->Available->Available->Available
FML{7.10.85.1291} [Forge Mod Loader] (forge-
1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available-
>Available->Available
Forge{10.13.2.1291} [Minecraft Forge] (forge-1.7.10-10.13.2.1291.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
customnpcs{1.7.10c} [CustomNpcs]
(CustomNPCs_1.7.10c.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available-
>Available->Available
DragonMounts{1.7.10} [Dragon Mounts] (DragonMounts-j41-1.7.10.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
moreplayermodels{1.7.10b}
[MorePlayerModels] (MorePlayerModels_1.7.10b.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized-
>Available->Available->Available->Available
noCubes{1.0} [No Cubes] (noCubes-1.0.jar) Unloaded->Constructed->Pre-
initialized->Initialized->Post-initialized->Available->Available->Available->Available
RWG{Alpha 1.1} [Realistic World Gen
Alpha] (Realistic-World-Gen-Mod-1.7.10.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized-
>Available->Available->Available->Available
TooMuchTNT{2.9} [TooMuchTNT] (TooMuchTNT v2.9.jar) Unloaded->Constructed-
>Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
worldedit{6.0-beta-01}
[WorldEdit] (worldedit-forge-mc1.7.10-6.0-beta-01.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-
initialized->Available->Available->Available->Available
Launched Version: 1.7.10
LWJGL: 2.9.1
OpenGL: GeForce GT
430/PCIe/SSE2 GL version 4.5.0 NVIDIA 352.86, NVIDIA Corporation
GL Caps: Using GL 1.3 multitexturing.
Using
framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Anisotropic filtering is supported and
maximum anisotropy is 16.
Shaders are available because OpenGL 2.1 is supported.
Is Modded: Definitely; Client brand changed
to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: []
Current Language: English (US)
Profiler Position:
N/A (disabled)
Vec3 Pool Size: 0 (0 bytes; 0 MB) allocated, 0 (0 bytes; 0 MB) used
Anisotropic Filtering: On (16)
Thanks so much! I'll have to give it a try! Let's hope I don't goof something up here (I guess the worst if I do, is something won't work XD)
Were you using the normal un-edited version with no problems before? I would try a fresh compile from un-edited source code to make sure it's not the edits. And I did have to redo my personal version and (I at least) didn't run into any issues with the blocks and biomes conflicting. Usually if something isn't right it won't actually compile to a .jar file. And what mod are you using for a dragon spawn egg?
No problem! Worst that will happen is it won't compile, and the command window will say what went wrong.
Normal sig clutter below:
Thx, I figured it out. The default dragon in one of the files was still set to "end" while I had changed the the other parts like the registry and breed class to "ender."
Next to tackle is creating a new AI for the dragons so they'll roam around by flying when untamed.
If you can create an AI for a flying dragon, I'd really be interested in how you do it. I've tried to do the same thing for some dragons in my mod, but found the existing AI in Minecraft to be completely incompatible with any kind of flying an entity might do.
[url=2482915-wip-arkcraft-survival-evolved-dinos-taming]
Ah, same thing I did quite a few times, happens a lot when I rush to get something done lol. Good to hear you got it and good luck with the AI. If you get anything figured out let me know.
Also, for those interested, my edited version:
http://www.mediafire.com/download/yie6b71pss8rbnc/DragonMounts-r41-1.7.10-S5260.jar
And a commands/tips list to go with it:
http://www.mediafire.com/view/chma7cjezfy8qbf/Dragon_Mounts_Commands__for_edited_version.txt
Normal sig clutter below:
I think I had done everything right, but up to where I actually played the mod, it was broken. I have a save with everything, of course, but something's up. The dragons already existing disappeared. Rolling back to the save (and using your version) worked fine.
The command window read that the build was successful (though it didn't show a bunch of "up-to-date" readouts). Also I did setup the Forge as said for the name, but it still spat out "modid 1.0" :/
Help?
Sounds exactly like an issue I had before...that frankly I forget how I fixed:/ The one thing I forgot to add to the main post that could be the issue is that you need to make sure all the files are unblocked after downloading. Right click the file(s)>properties>unblock (make sure to do this to the main .zip archive before extraction so it unblocks all the files inside). Then back up any custom textures and start with fresh, unblocked Forge and source code. The blocking is something Windows does by default as a "safety measure" and in some instances can affect the files when they are extracted. It might also be why it's not saving the name that you had input.
Normal sig clutter below:
i'll give it a shot tomorrow. all of the custom stuff is saved elsewhere already, but i'll double check. I'll let you know how it goes, and with hopes it'll work.
Yeah... This appeared when it tried to compile.Fixed.
Also, you can change what block they spawn on perfectly fine- I changed the vanilla Ender Dragon to only be on End Stone while my new dragon only spawns on Obsidian (originally, both did both... and both still require Sky)
Thanks for the info, added it to the main post.
Normal sig clutter below:
This really is an amazing tutorial. I'm creating a ton of new dragon breeds and once I'm finished I'll share it with everyone on the Dragon Mounts thread
Also, is it possible to have have two breeds of dragon eggs hatch (become one breed or the other) under the same conditions but have the resulting breed be a random selection of the two?
I seem to have hit a snag. There isn't a build.gradle file. What should I do?
Thanks! I'd love to see what you've come up with. Maybe I should create a thread exclusively for sharing breeds...
I had set up one of my builds like that and didn't seem to get a randomized result. I think it would have to be coded to be a random selection, maybe with some sort of rarity percentage? Kind of like how shiny Pokemon are so rare but most times found in the same area as their normal counterparts.
Grab a fresh copy of the Forge environment and make sure you're unblocking the file before extracting it. If it's still not there, try a different version. When it comes to compiling mods it doesn't really matter what revision the Forge environment is as long as it's fairly recent. I think I'm using either 1230 or 1291 for 1.7.10 stuff.
Normal sig clutter below: