* Mods can now register world types via a new forge registry, and optionally register a settings screen to tweak them.
* The default world type for dedicated servers and singleplayer world creation is configurable via forge's common config.
- Port some things I did in 1.14 which I couldn't do in 1.15 due to breaking changes.
- Fix multi-layer block models not working (1.16 RenderType doesn't override toString the same way anymore)
- Implement multi-layer item rendering.
- Improve CompositeModel submodel data passing.
Fix BreakSpeedEvent having null position. Closes#6844
Add MatrixStack to BackgroundDrawnEvent. Closes#6843
Fix some patches that should of been ATs. Closes#6839
Add getter to ServerPlayer to access client's language calue if sent. Closes#6829
Some patch cleanup.
Due to the massive rendering changes, certain features, such as emissive item rendering and the forge block rendering/lighting pipeline are currently disabled.
Co-authored-by: David Quintana <gigaherz@gmail.com>
Co-authored-by: tterrag <tterrag1098@gmail.com>
Co-authored-by: Unnoen <theunnoen@gmail.com>
* Reimplement forge blockstates variant through the use of a pseudo-model that handles the model loading, retexturing, custom data, etc. on behalf of the blockstates loader. This model gets injected into the model registry with an autogenerated unique name, to not collide with other model locations.
* Fix model loaders not being properly initialized by calling the reload method from the loader register function. In 1.12, registering a reload listener caused the listener to be called right away from the register method. This is not true anymore.
* Some (sadly breaking) improvements to the API, after feedback and concerns provided by users:
- Moved calculation of the translation key to the FluidAttributes constructor, so that builders can be shared between still & flowing sub-fluids.
- Moved biome-based coloring to a dedicated FluidAttributes.Water variant, which is not used by default.
- Added logic to automatically gather fluid textures into the list of textures to bake.
- Patched BucketItem and FlowingFluidBlock to avoid eager access to the fluid objects.
- Added a ForgeFlowingFluid class, as a more user-friendly way to construct a new FlowingFluid.
Also fixed the "translations" not being available early if an exception occurs
by force loading the forge and MC ones. Closes#5984
Signed-off-by: cpw <cpw+github@weeksfamily.ca>
Seriously, this is how to do targeted changes to specific classes.
In this case, adding a fieldtomethod redirect for EffectInstance.potion
to allow substitution.
Signed-off-by: cpw <cpw+github@weeksfamily.ca>
Add AT for GameRules.register Closes#5946
Fix Forge Blockstate loader model path is inconsistent with vanilla blockstates Closes#5892
Fix client crashing when opting not to load a world when there's missing blocks Closes#5886
Fixed wrong example path for the access transformer in the MDK build.gradle. #5891
Added getters for mouse x/y velocity and if the middle-mouse button is being held down. #5776
Modify issue template for better clarity. #5874
Fixed grindstone not using ItemStack-sensitive getMaxDamage. #5831
Added ParticleManager.registerFactory to Forge's AT. #5896
Fixed NPE in SidedInvWrapper when side was null. #5787
Moved EndermanEntity.setAttackTarget super call to allow LivingSetAttackTargetEvent the ability to override default behavior. #5778
Added field to make "Looking at" debug info maximum distance configurable #5714
In singleplayer our packet work could get delayed until the next tick,
breaking the expectation of packet read order. Fixes that using
NetworkHooks.openGui would result in missing inventory data on the client
Made all registry names consistent with their vanilla counterparts
Also added a system for legacy registry names, so no data will be lost
Cleaned up formatting in GameData and ForgeRegistries