Enables mods to modify raw FOV directly.
Avoids modifier limit from FOVUpdateEvent.
Aware of blocks which are needed for fov change related with materials.
Main things of interest:
* IAnimationStateMachine - state machine for animations; can load
from json.
* AnimationTESR - automatic TESR for animated models.
* AnimationModelBase - same for entities.
* ITimeValue - time-varying value, used to control animation
parameters from code.
* TESRs can now be batched - look at TESR.renderTileEntityFast +
TE.hasFastRenderer.
* RegionRenderCache is not accessible to TESRs and other client-side
logic - MinecraftForgeClient.getRegionRenderCache.
Add the actual patches that I forgot.
Add simple implementations of IStorage and the factory methods.
Add ItemStackHandler. A simple IItemHandler implementaton.
return nulls, not throw nulls.
Move the vanilla wrappers to a separate class for now.
Minor clean ups of VanillaWrapper code.
Inline static methods.
Add comments.
Minor cleanup of code.
Remove redundant size field and add a validate slot index method.
Minor formatting issues.
Break early If stacksize to insert is 0.
Remove setByte() methods.
Throw exception if IItemHandler can't be modifyed in NBT loading.
Replace event handler with patches
Add capability to mine cart inventory entities.
Change formatting and registration of capability.
Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them.
Reduce patch sizes
Lazy initialization of the item handler for vanilla tiles.
Minor formatting changes.
Create a single vanilla chest item handler that will merge with adjacent chests when detected. Added hooks to reset the cached adjacent value when a block update is detected and when a chunk loads.
Revert "Make InventoryPlayer implements IItemHandler because why not. Also added a field to allow mods that add additional player inventory space to publicly expose them."
This reverts commit 306d4a37fd0e8c8a0754411c013b750dfe8e2c87.
Fix furnace derp
Replace double chest code with a simpler method.
Vanilla wrappers implement IItemHandlerModifiable (since they are modifiable)
Minor code cleanups
Add an onContentsChanged() and onLoad() callback methods.to the default implementation.
Add slot as a parameter in the callback method.
Change IItemHandlerModifiable.setStackInSlot() to void, and added a note about not being intended for cross-mod use.
Improve ItemStackHandler handling of errored NBT.
Make the stacks array protected.
Fix a lot of derps in SlotItemHandler.
Fix derp in ItemStackHandler
Clarify comments on IItemHandler
ItemStackHandler no longer caches the stack array in local variable.
Clean up the Chests code to make intentions clearer
Vanilla hoppers have their cooldown activated when an item is inserted. Made this behavior part of an item handler (rather than the insertion code)
Fix mistake in ItemStackHandler
More documentation of potential edge cases in getStackInSlot()
Make limit checking more resiliant.
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.
And helper functions in GameRegistry to allow for registering using those names automatically.
This is to simplify registration and get rid of the horrible hacks users are doing now with 'unlocalised names'.
Changes to the Model API - IModelState now works with Optional. Handling of parts of the model is not optional, and coordinate space/result interpretation is up to the caller. IModel doesn't extend IModelPart by default anymore; MapModelState uses composition to achieve previous functionality, IModelPart implementations are disjoint now. Updated perspective handing to the new API, removed IPerspectiveState (MapModelState is now the same thing). Perspective transforms for the default fluid model.