Using LogManager instead of FMLRelaunchLog to access the logger instance.
Added logging of the name of failed exports instead of exception.
Improved crafting log to include issuer including their location and the
requested item.
Removed superfluous FMLRelaunchLog instance.
Removed superfluous parameters for PlayerData constructor.
Reduces the visibility of all fields to private and create setters/getters
when necessary. Exceptions are fields with GuiSync as these need to be
public.
Reduces the visibility of internal methods to private/protected/default when possible.
Mostly used for the recipe system, but can also be used for debugging purposes. Debug options needs to be ticked to use the full information gain. Recipes only require the normal localization and the specific name plus metadata.
Shifted the recipes into a recipes folder where the CSV will also reside. This will also elevate the copying of the readme to the user directory since it can reside in the recipes folder.
Fixed a bug where the copier would copy the would also copy empty folders
Applied English Locale where localization is not expected as in internal recipe handling and IMC handling, basically which interacts with public API where we either require to enforce the incoming text with regex ([a-z0-9]) or just expect proper usage of the API, but with just using upper cases in recipe files it would break in Turkish Locale like
ALIAS
another option would have been to use `equalsIgnoreCase` in some cases, but not all applicable
Outsources the encoding of the compass data into the file name
Written tests for the encoding
Did some internal cleaning of the class
Conflicts:
src/main/java/appeng/block/solids/BlockSkyStone.java
src/main/java/appeng/core/WorldSettings.java
src/main/java/appeng/core/features/registries/PlayerRegistry.java
src/main/java/appeng/core/sync/network/NetworkHandler.java
src/main/java/appeng/core/worlddata/PlayerMapping.java
src/main/java/appeng/core/worlddata/PlayerMappingsInitializer.java
src/main/java/appeng/services/CompassService.java
src/main/java/appeng/worldgen/MeteoritePlacer.java
src/main/java/appeng/worldgen/MeteoriteWorldGen.java
Every Block had a call to its super, passing its own class.
This can easily be simulated by calling `this.getClass()` in the super class.
Also this was basically only used as using a name.
In the future it might be advisable to not use such methods,
since they are prone to refactoring.
If a feature dependency of ItemMultiMaterial was disabled, the returned value was never assigned with the constructed. Pulling out the construction and setting it before checking it, prevents the NPE and also matches the behaviour in ItemMultiPart, where parts are constructed, but never registered.