Many cultures believe that butterflies are the souls of the dead. I wanted to represent this idea in the Butterfly Mod. So this week I added the Féileacáin, the Irish spirits of the dead, represented as butterflies.
Renderer
A method of drawing graphics to a screen.
Creating a Butterfly Golem
A while ago there was a thread by Sushifox on PlanetMinecraft offering to create “adaptamobs”. Based on an earlier thread about digital pets, an adaptamob is simply one of 6 types of mobs represented in 2D, but with a specific theme applied to it.
Butterfly Eggs Done Right
Early on in the mod’s development I made a couple of missteps. I was less experienced and didn’t fully understand how Minecraft works, so I made some design choices that have proven to be problematic.
Pinning Up Butterfly Corpses
I’ve always struggled to get my head around modern day rendering code. There’s a reason I became a network and server programmer. Still, I managed to get this working in the end. Though I’m sure my computer knows many more swear works now.
Chrysalis: Completing the Cycle
We finally implement the chrysalis and complete the life cycle of the butterfly. Butterflies lay eggs. Eggs hatch into caterpillars. Caterpillars create a chrysalis. Butterflies hatch out of a chrysalis. The circle of life is complete.
Multi-Directional Caterpillars
Caterpillars will always spawn on top of a leaf block. We want to give a bit more variety in our caterpillar behaviour. So we modify caterpillars so that they can crawl on any side of a leaf block.
Modelling and Animating Caterpillars
Everyone knows that butterflies come from caterpillars. The next stage in the life cycle is for butterfly eggs to hatch into caterpillars. So we will add caterpillars to our mod that will hatch from the eggs we created last time.
Butterflies Part 2: The Rest of the @!#$ Owl
In Part 1 we coded a butterfly entity. Now we need to put the rest of the pieces together, so we can model, render, register, and ultimately spawn butterflies in our Minecraft world!
Model
Every entity needs a model.