Last (?) update pass. AE2 can be launched and used (?) in game.
Rendering system changed again and again - rendering is NOT working, to
be rewritten and CAN be done a lot simpler.
Second update pass which fixes all compile errors. Some parts may have
aftermath effect, hence why 3rd pass will check those maked with
"aftermath".
Errors: 82 -> 0. Mod can be launched.
This is first update pass, which is mainly import reorganization, name
fixes, etc... Although some parts of second were done where changes
aren't important.
Errors: ~1400 -> 82.
Just `onTunnelNetworkChange` with tickable is apparently less exhaustive, and less stable. This now avoids issues with network splits and reconnects not being handled in some cases. Also simplified reconnection; there was some duplicate logic in there, with a missing validity check which potentially led to invalid connections.
This is loosely based on #2032 and should prevent any duplicated event,
but still does a refresh the whole cache due to potentially issues with
some inventories.
It also ensures that storage buses will not announce a CellArrayUpdate
before they are fully initialized, thus no longer causing them to return
null during an update.
Fixes#2403
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.
Removes the split collection as in some rare corner cases the insertion
order is important to maintain the correct data in terms of self cleaning.
Keeps the general cleanups and split of Fluid/ItemList.
Fixes#1964
ModVersionFetcher will now return a MissingVersion in case of an exception
instead of letting it propagate upwards.
Also added a generic try/catch to the VersionChecker itself, just in case
any unchecked exception might be triggered inside the thread and at least
not logged correctly.
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
Splitted the ItemList and MeaningfulIterator into an item and fluid
version.
Added an IdentityHashMap as additional item layer to the ItemList for a
faster access.
Refactored FluidList, findFuzzy will now return the same fluid instead of
an empty collection.
The export bus will now no longer speed up, if more than 1 of the last
crafting requests failed and slow down, if more then 5 failed.
Some code cleanup and moved the custom iterator into the helper package
as it is clearly related to the craftingtracker and not the export bus.
Prioritized inventories are not longer used twice for storing leftover
items and thus finally reporting twice the amount of storable items when
they are the only possible option to store something.
Also fixes import buses now respecting the amount of storable items inside
the network instead of trying to place the exported items back and failing
on any restricted inventory, potentially voiding the overflow.
Fixes#1892
The recipes are now structured into multipe subfolder and split into more
distinct files, so the names are more appropriate and are better at
hinting which items the actually contain.
It also extends the RecipeResourceCopier to now handle the folder
recursively and extract all subdirectories and their files.
"import=" is currently requiring a relative path to the root directory
of the recipes. This would require a larger rewrite/refactoring, thus it
is kept for now until a potentially later changer.
This reverts splitting the oredict entries into their own directory and
moves them back into the recipes folder, as it currently is causing a
couple of issues like not being able to resolve the aliases or is not
working indev. But to keep it seperate it is now its own recipe file.
Fixes#1791
Reverts #1635
This should no longer keep a reference to a World around and potentially
keep them loaded.
Also added a finalize() to CompassRegion to ensure the file is closed on a
GC.
Some cleanup regarding member order, final, etc
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
Some general refactoring of every monitor including panels and terminals.
Disabled glPushAttrib and glPopAttrib for StorageMonitor as this can be a
performance issue.
Conflicts:
src/main/java/appeng/parts/AEBasePart.java
src/main/java/appeng/parts/reporting/PartConversionMonitor.java
src/main/java/appeng/parts/reporting/PartDarkMonitor.java
src/main/java/appeng/parts/reporting/PartMonitor.java
src/main/java/appeng/parts/reporting/PartPatternTerminal.java
src/main/java/appeng/parts/reporting/PartSemiDarkMonitor.java
src/main/java/appeng/parts/reporting/PartStorageMonitor.java
src/main/java/appeng/parts/reporting/PartTerminal.java
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
Split dependency logic on the BuildCraft modules.
Config needs to be reset, if BuildCraft was disabled actively,
because now there are 3 BC modules to be taken account of
Conflicts:
gradle.properties
src/main/java/appeng/facade/FacadeContainer.java
src/main/java/appeng/facade/FacadePart.java
src/main/java/appeng/integration/abstraction/IBC.java
src/main/java/appeng/integration/modules/BC.java
src/main/java/appeng/integration/modules/BCHelpers/BCPipeHandler.java
src/main/java/appeng/integration/modules/BCHelpers/BCPipeInventory.java
src/main/java/appeng/items/tools/ToolNetworkTool.java
src/main/java/appeng/items/tools/quartz/ToolQuartzWrench.java
src/main/java/appeng/parts/CableBusStorage.java
src/main/java/appeng/parts/layers/LayerIPipeConnection.java
src/main/java/appeng/parts/misc/PartStorageBus.java
src/main/java/appeng/parts/p2p/PartP2PItems.java
src/main/java/appeng/util/inv/AdaptorBCPipe.java
src/main/java/appeng/util/inv/WrapperBCPipe.java
Previously it did encode the current and previous used channels into the
same as well as mask it with 0xFF. Which lead to an overflow every 256
gridnodes requiring a channel. This will not happen at > 2^31
Also removes the need to bitshift them for every access.
Fixes#1510
A NPE caused to open CraftGuide very slowly (several seconds)
Added Grinder recipes
Added Inscriber recipes
Conflicts:
src/main/java/appeng/integration/modules/CraftGuide.java
Register an method that can be overidden
Register the same method in the interface
New class that picks the item and displays it to WAILA
Register the new class and call the other class method
Import in PartWailaDataProvider
Fixed errors
Renamed all Display -> Stack
Stuff
Removes the improper way to set itself into a public static non-final variable.
Removes the direct access to the IntegrationRegistry from AppEng. Will be added at some later point somewhere else for non-singleton access.
Constructor is set to package private to enable possible construction from unit tests. Are current not runnable sind it is currently tied to the FML Loader instance.