Sams Teach Yourself Mod Development for Minecraft in 24 Hours / Edition 2 available in Paperback, eBook
![Sams Teach Yourself Mod Development for Minecraft in 24 Hours / Edition 2](http://vs-images.bn-web.com/static/redesign/srcs/images/grey-box.png?v11.12.4)
Sams Teach Yourself Mod Development for Minecraft in 24 Hours / Edition 2
- ISBN-10:
- 0672337630
- ISBN-13:
- 9780672337635
- Pub. Date:
- 11/12/2015
- Publisher:
- Sams
![Sams Teach Yourself Mod Development for Minecraft in 24 Hours / Edition 2](http://vs-images.bn-web.com/static/redesign/srcs/images/grey-box.png?v11.12.4)
Sams Teach Yourself Mod Development for Minecraft in 24 Hours / Edition 2
Buy New
$34.99Overview
In just 24 sessions of one hour or less, Sams Teach Yourself Mod Development for Minecraft in 24 Hours will help you transform Minecraft into anything you can imagine–and share your vision with millions of players worldwide! You’ll learn all the mod development skills you need as you walk through a complete step-by-step project, complete with a mob, new tools, new armor, food, ores, and much more. Every lesson builds on what you’ve already learned, giving you a rock-solid foundation for building any mod and creating any world!
Step-by-step instructions carefully walk you through the most common Minecraft mod development tasks.
Quizzes and exercises at the end of each chapter help you test your knowledge.
Notes present interesting information related to the discussion.
Tips offer advice or show you easier ways to perform tasks.
Cautions alert you to possible problems and give you advice on how to avoid them.
Minecraft is a registered trademark of Mojang Synergies / Notch Development AB. This book is not affiliated with or sponsored by Mojang Synergies / Notch Development AB.
Learn how to...
- Set up the environment where you’ll write your mod for Minecraft 1.8
- Create the basics for your mod with the Forge API
- Establish a framework that makes it easier to build complex mods
- Work with recipes and other small modifications
- Create multiple recipes, items, blocks, and entities at once
- Cook up food items that heal your players
- Make custom pickaxes, shovels, and completely original tools
- Use Tile Entities to create complex and unique mods
- Create interesting custom armor for players
- Generate entire worlds, including ores and plants
- Design and generate new structures with MCEdit
- Understand Entities and create Entity Models with Techne
- Code mobs with a custom Entity Model
- Manufacture Throwables
- Edit Minecraft functionality without breaking other mods
- Structure, package, and release your mod
- Master Java programming techniques you can use far beyond Minecraft
On the Web:
Register your book at informit.com/title/9780672337635 for access to all code examples and resources from this book, as well as updates and corrections as they become available.
Product Details
ISBN-13: | 9780672337635 |
---|---|
Publisher: | Sams |
Publication date: | 11/12/2015 |
Series: | Sams Teach Yourself Series |
Pages: | 448 |
Sales rank: | 1,051,174 |
Product dimensions: | 6.90(w) x 9.00(h) x 0.80(d) |
About the Author
Jimmy Koene maintains one of the world’s most popular Minecraft mod websites ( www.wuppy29.com/minecraft/modding-tutorials/forge-modding/ ). He is one of the only Minecraft modders who consistently maintains and updates his online tutorials. Also an expert Java and C++ programmer and Unity developer, he has written an Android Minecraft app that has been downloaded more than 45,000 times, along with various other smaller apps. He also maintains several Minecraft mods that cover many aspects of Minecraft, ranging from slight changes to how food works to mods that completely change the way you play.
Table of Contents
Introduction 1
Part I: Introduction
HOUR 1: Setting Up the Minecraft Development Environment 7
Understanding How Minecraft Is Written and What You Will Do with It . . . . 7
Learning About Forge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Setting Up the JDK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Setting Up Eclipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Setting Up Forge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Troubleshooter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
HOUR 2: Creating the Basics for Forge 23
Understanding the Java in the ExampleMod . . . . . . . . . . . . . . . . . . . . . . . 23
Creating Your Own Package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Creating Your Own Class File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Creating the Mod File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
HOUR 3: Working with Recipes and Other Small Modifications 39
Learning About Recipes in Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Crafting a Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Creating a Shapeless Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Creating a Smelting Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Using Special ItemStacks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Changing the Mob Spawn in a Dungeon . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Changing Chest Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
The Results in the Mod File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Part II: Items
HOUR 4: Making Your First Item 53
Understanding What an Item Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Coding a Basic Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
Giving the Item a Texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
HOUR 5: Creating Multiple Items in a Smart Way 69
Adding Multiple Items Using the Same File . . . . . . . . . . . . . . . . . . . . . . . . 69
Adding Metadata to Items . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Changing the Constructor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Making Metadata Jsons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
HOUR 6: Cooking Up a Food Item 87
Understanding Food in Minecraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Creating a Food Item. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Adding a Potion Effect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
HOUR 7: Making Your Own Tools 101
Creating a ToolMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
Creating a Pickaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
Creating Special Tools for Harvesting Different Blocks . . . . . . . . . . . . . . . . 111
Creating the ItemSamPaxel Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
HOUR 8: Creating Armor 119
Creating Your ArmorMaterial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Creating the Armor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
Customizing Armor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Part III: Blocks
HOUR 9: Making Your First Block 131
Understanding What a Block Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
Creating a Basic Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Making the Texture Jsons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Using a Custom Block in a Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
HOUR 10: Block States 143
Coding Block State Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
Making Block State Jsons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
HOUR 11: Making Your Blocks Unique 163
Adding Sided Textures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Making Half Blocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
Creating a Plant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
HOUR 12: Creating a Tile Entity 195
Understanding What a Tile Entity Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
Creating a Tile Entity Block . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Creating a Tile Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Server Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
Part IV: World Generation
HOUR 13: Generating Ores 217
Using Forge and an EventHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Creating a SamEventHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217
Using OreDictionary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
HOUR 14: Generating Plants 229
Creating a Custom WorldGen Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
Adding Code to SamEventHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
HOUR 15: Using MCEdit 245
Why Use MCEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Getting MCEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Using MCEdit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253
HOUR 16: Generating Your Structure 255
Installing the Schematic Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 255
Using the Schematic Converter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
Adding Mobs to Your Structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Part V: Entities
HOUR 17: Learning About Entities 269
Understanding What an Entity Is . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
Creating Proxies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
Creating a Basic Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
HOUR 18: Creating an Entity Model Using Techne 277
What Are Models? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
Downloading and Installing Techne . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278
Using Techne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 279
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
HOUR 19: Coding a Mob 289
Rendering the Mob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
Making the Mob Spawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
Making EntitySamMob a Mob . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
HOUR 20: Creating a Throwable 307
Registering a Throwable Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
Creating the Entity Class . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
Using the Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Rendering the Entity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
Part VI: Final Pointers
HOUR 21: Editing Vanilla Minecraft 319
How to Change Minecraft Indirectly . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Other Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Giving Your Armor Egg-Throwing Abilities . . . . . . . . . . . . . . . . . . . . . . . . 326
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331
HOUR 22: Structuring Your Mod 333
Why It Is Important to Structure Your Mod . . . . . . . . . . . . . . . . . . . . . . . 333
How to Structure Your Mod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
HOUR 23: Releasing Your Mod 349
Exporting Your Mod with Forge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Making Your Mod Public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
HOUR 24: What's Next 357
Using IRC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
Using Open Source Mods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
Learning Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Q&A . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 362
Workshop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
Exercises . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 363
APPENDICES
APPENDIX A: Additional Code Fragments 365
TOC, 9780672337635, 10/12/2015