Platter

Platter

Hello!

I made a forge mod for Minecraft 1.15 / 1.16! It's called Platter, and as you can imagine, it adds a platter to Minecraft. Links: CurseForge GitHub Modrinth

A pile of steak rests upon a wooden platter.
Appetizing!

Design

Since this was my first Minecraft mod I wanted to keep the conceit pretty simple. The platter mod adds one block, the platter, which functions to automatically feed any nearby players or animals. Once you set up a platter in your base, or whenever you are crafting, you don't have to worry about manually feeding yourself. However, platter does not circumvent the need to bring food on adventures. Ultimately the task of feeding yourself in Minecraft is fairly trivial, but that's why the platter is easy to craft.

the platter is crafted with three iron bars and three wooden planks

My logic behind this crafting recipe is fairly straightforward; the wood is both the base and the plank type of the platter you want to create. Adding the iron bars creates a slight gate, no pun intended. In the early game of Minecraft, iron is fairly easy to obtain but still valuable because it is used for so many important pieces of gear. Thus, crafting a platter directly conflicts with the goal of getting iron armor, iron tools, or a bucket. So, it is my opinion that because iron in these early stages of the game is so useful, the player will not choose to craft a platter, ultimately a quality of life item, until they have started homesteading. Upon entering the midgame, the player will begin to have extra iron, iron that doesn't immediately go towards mining better or defending onesself, iron that simply is. The reward for this wait is the ability to craft 5 platters from turning your 6 iron ingots into 16 iron bars. I do not want to punish anybody whose idea of a base is different than the default configured radius of the platter. However, like surface iron or easy diamonds, the player can get lucky and stumble into a platter through natural generation. If the player visits a village, an igloo, or even a ruined portal, they can get the iron bars they need to craft a platter without feeling like they are "wasting" iron.

Steve looks on at his platter of beef, there is hunger in his eyes.
Homesteading

Technical

The mod itself is fairly simple under the hood. The platter is a tile entity that implements the item handler capability. The custom logic I focused on was making the item handler function like a stack. For example, if you put a steak on the platter and then an apple, the apple will get eaten first because it is on top of the stack of food. Attached to the tile entity is a custom renderer that renders the 3d model of each of your food items in the world. I made the amount of food a platter can hold user configurable, meaning a user or modpack developer can change the amount of storage a platter has. One benefit to user configuration is going to the extremes of it, seeing a massive stack of potatoes on a platter is a good laugh. By default the platter has nine spots in its inventory for food. I think nine slots is a good middle ground because it doesn't render an obscene amount of food, and a player would likely have multiple types of food that they want to put on the platter, especially mid game before a lot of farms are set up.

An incredible number of potatoes stacked upon a platter
Leaning Tower of Potatoes

I also strove to implement the platter in such a way that it would mesh with redstone automation. In vanilla Minecraft to breed an animal a player must use food on it. With my mod, options are opened for automating animal breeding behavior. Should the platter be stocked with appropriate foodstuffs, wheat, seeds, etc. it will feed and thereby breed nearby animals. This opens up many new automation challenges for Minecraft players. One possible activity is fully automating a pig farm using platter. The platter can be supplied via hopper and its inventory checked via comparator, all the player needs to do is hook up, say, a carrot farm to the input, and then the player can figure out how to turn the resulting pigs into cooked pork.

Hoppers feed carrots into platters, platters feed carrots into pigs. Thus the cycle of life continues.
Automation

Now, the downside of my novice experience with Forge is that I couldn't figure out an elegant way to programatically add a platter block for every woodtype. I shored up my weakness by automating the creation of data files, etc. However, I still feel I could have implemented this better. Fortunately I started development with 1.16 on the horizon but not out yet, so I understood that making it easy to add another platter type would be important. This design methodology bore out so updating to 1.16 was as simple as adjusting a few mappings and adding a few lines to the data file generating script. I really nailed that one and was one of the first few 1.16 mods on CurseForge.

Each type of platter, every wood type, stone, and metal, aligned in the 1.16 basalt nether.