You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Instantly share code, notes, and snippets.
Up
UpcraftLP
DevOps, Java, C#, Web, Game Design // Want to support me? Kofi link below.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Cauldrons filled with Water can be used to remove Dye from Leather Armor and Shulker Boxes. They can also remove the top layer from Banners.
Block inventory names can be changed by renaming them with an Anvil before placing them down.
Closing a Trap Door your standing under will force you to crawl which allows you to go into one block tall areas.
Ender Chests can be used as an Obsidian storage block since breaking them drops eight Obsidian.
Grindstones can be used to remove non curse enchantments from items, giving players Experience in return.
Bamboo can be auto farmed and used as a renewable fuel source.
Lanterns emit slightly more light than Torches.
A Nether Portal can be any size between 4x5 and 23x23.
When using Bone Meal on Dirt, Coarse Dirt, Sand, Red Sand, or Gravel underwater, Coral will generate in place of some of the Seagrass. However this only works in Warm Ocean Biomes.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Brains, Schedules and Activities: An overview of the new 1.14 AI system
In 1.14, villagers use an AI system completely independent from the old Goal system. However, this system can be used by any LivingEntity. This document aims at explaining the basics of that more advanced AI.
Every living entity now has a Brain. A brain uses memories and sensors to perform tasks and activities.
Memories
Memories are a way to save arbitrary data for use by tasks.
With the release of Forge 14.23.2.2638, a proper way to render items with GL was implemented. Using this system is much simpler than the old system, which required a TileEntity, and does not allow access to the ItemStack.
Using TileEntityItemStackRenderer
TileEntityItemStackRenderer allows you to render your item using public void renderByItem(ItemStack itemStackIn).
There is an overload that takes partialTicks as a parameter, but it is never called in vanilla.
In order to use a TEISR, the Item must first satisfy the condition that its model returns true for IBakedModel#isBuiltInRenderer.
Once that returns true, the Item's TEISR will be accessed for rendering. If it does not have one, it will use the default TileEntityItemStackRenderer.instance. For an example IBakedModel to use, see below.
A description of the model loading process in Minecraft Forge 1.9-1.12.1
In this document, I use strings in the format "foo:bar" to represent ResourceLocations with domain foo and path bar. I also use [square brackets] for placeholders.
The Model Loading Process
Blocks
On startup and whenever the resources are reloaded (in ModelLoader#setupModelRegistry), Minecraft iterates through every registered Block (in ModelLoader#loadBlocks) and asks its custom IStateMapper (or DefaultStateMapper if none has been registered) to create a mapping between every valid IBlockState of the Block and the ModelResourceLocation for that state (with the domain and path pointing to a blockstates file and the variant to a variant within that file). It then attempts to load these models.
DefaultStateMapper looks for the blockstates file with the Block's registry name (i.e. assets/[modid]/blockstates/[name].json) and serialises each property and value of the IBlockState to create the variant name that the model is loaded from (e.g. "enabled=true,type=foobar"
This is now finally exposed to mods in a useful way. As it was mostly hidden from modders before, not eveyone may know what it is, so it will be explained later. Generates caves a
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters