MCPatcher functionality overhaul #533
Labels
Aesthetic
Changes or features focus on building/aesthetics
Feature Work
General mod feature work
Rendering
Issues & Changes related to render code
System Architecture
Requires new system to be built
MCPatcher's code was designed to be as unintrusive as possible for maximum compatibility through its installer. Unfortunately, this has also created code which is extremely difficult to maintain and upgrade. We should remove the MCPatcher code and rewrite it in a more maintainable and extendable way, with the following considerations:
Overridable
The texture features should be usable by addons to enable, for example, randomized and connected textures by default. Default settings must be able to be overridden by resourcepacks, and looking forward to the 1.7 update, resourcepack stacking.
Portable
1.7 makes changes to internal rendering, and 1.8 makes major changes to block and item models and textures. This system should be designed to be modular, so that these overhauls have limited impact on the actual core feature functionality.
Encapsulated
MCPatcher currently functions using monolithic handlers for all functionality. This should be avoided, and instead functionality should be encapsulated to more closely tie texture and rendering information with the blocks/items/biomes/etc instead of having them separated, which will both aid in maintainability and portability.
Compatible
The new implementation should be either compatible with the MCPatcher resourecepack API out of the box, or require minimal changes from resourcepack authors to be supported. Optifine features added post-MCPatcher (such as overlays) should also be supported if possible in future updates to the system.
The text was updated successfully, but these errors were encountered: