* Add Entity.changeDimension patch and transitively required patches
* Fix throws declaration on CommandSetDimension#execute
* Fix rest of errors in fluid package
* Add PLAYER_REACH attribute
* Fix compile errors in fml.client.config and add GuiButton patch
* Delete unnecessary client.config classes, fix all config errors
* Comment some fluid errors in models
* Fix all errors in common package root, except ForgeHooks
* Mass comment network package
* Experimental conversion of extended states to generic base class
* Fix errors in common.util
* Remove config annotation stuff cuz lex said so
* Make extended state stuff compile fully
* resource package and misc leftover rendering stuff
* Port Item and ItemStack patches
* Extract most item patches to interface
* Refactor Item#setNoRepair to be part of Item.Builder
* Adapt AnimationItemOverrideList to new cap system
* Improve null contract of OptionalCapabilityInstance
* Remove Capability.cast
* Update CapabilityAnimation to new cap system
* Remove OptionalCapabilityInstance#flatMap and add NonNullConsumer
* Add capability patch to Entity, not everything yet
* Fix Entity patch and add missing methods to IForgeEntity
* Fix null contract of CapabilityDispatcher
* Add TileEntity caps
* Adapt FluidUtil to new cap system
* Add world caps
* Add chunk caps
* Clean up cap patches
* Replace all tabs with spaces
* Move builder methods on Item to Item.Builder
Whitepsace fix
* Sided stuff take 2
* Prevent OptionalCapabilityInstance creating additional empty instances
* Cache getCapability result in AnimationTESR
* Fix imports in TileEntity patch
* Pull out cap code to base class, add village caps
Some things to note:
Netty is screwy so currently can't join single player. @cpw
Crafting has been MAJORY reworked. The current GameRegistry functions are nooped, this is IN THE WORKS.
Just need to move the recipe list to a full class registry, and then re implement the in-code recipe registration.
Also, it IS advised that modders move to JSON, because ideally we'll see a S->C recipe syncing system in 1.13
which would allow servers to have custom recipes.
OreDictionary currently 1/2 works, need to write a better algorithm for replacing ingredients.
Please be patient
Rendering:
A lot of functions got a new float parameter, this is similar to partial ticks, needs more research
The flag is false by default, and if true the Entity will not update. It is saved and loaded from NBT, and is called updateBlocked. Modders are responsible for managing this flag for entities they with to 'freeze' or 'unfreeze'.
Major things to note:
Class renames: https://gist.github.com/LexManos/44dd211f90f498ad4015279b103dff86
Tile Entities are now packed in the ChunkData packet.
Forge intends to work around this to better support large moded worlds, but for the time being modders should implement the new function carefully and only send what data they need to!
Minecraft's codebase now has annotations, these are directly from Mojang and should be adheared to!
Added support for package-info.java's containing @Nullable information for all MC code base.
When combined with @Optional this should address all issues of soft dependancy on mods/apis.
This also addresses the issue of dynamic functionality in TileEntities/Entities.
Current capability providers: TileEntity, Entity, ItemStack
Also added INBTSerializeable, a generic interface for game objects that can be written to/from NBT tags.
Vanilla capabilities will be coming soon, mostly on request and review.
So start requesting capabiliteis on vanilla/Forge features.
Some notes:
Almost all int x, int y, int z parameters have been changed to BlockPos class
ForgeDirection has been removed, replaced by net.minecraft.util.EnumFacing.
All FML classes have moved from packet cpw.mods.fml to net.minecraftforge.fml
Fluid Rendering has been disabled for the time being, to be re-evaulated and a test mod created for it.
Minecraft now uses a Model based system for rendering blocks and Items. The intention is to expand the model format to better suit modder's needed once it is evaulated.
As such, The model loaders from Forge have been removed, to be replaced by expanding vanilla's model format.
Metadata has been extracted out in Minecraft to IBlockState, which holds a list of properties instead of magic number metadata. DO NOT listen to the fearmongering, you can do EVERYTHING with block states you could previously with metadata.
Stencil Bits are disabled entirely by for the main Display, Modders must enable and recreate the FrameBuffer if they wish to use Stencil Bits.