Commit Graph

135 Commits

Author SHA1 Message Date
yueh 1513ba3f6a Performance improvements for the energygrid (#3051)
* Performance improvements for the energygrid

Reworked the old recursive approach to a queue based loop.
Extract will try to prefer the next grid with the hightest amount of
stored energy.
Inject will try to prefer the grid with the lowest percentage stored.
Other operations are first come, first serve.

* Added a local buffer storage to EnergyGrid

This replaces the old not really working buffer with a special
IAEPowerStorage acting as buffer/proxy for the local energy demand as
well as temporary overflow should something provide more energy than
requested.

Currently it set to hold a maximum of 200 AE (+ optional overflow until
consumed). It will only be used locally, no other grid can use it to
avoid starving the neighbor grids before finding a energy cell.

* Fixes IExternalPowerSink

All implementations currently depend on the network demand being a valid
source, which might not be true.

Further it can cause the sink to iterate the network twice (demand and
inject) and both again for simulate and modulate.

Also it did not return the actual leftover amount instead of relying on
the demand matching it.

* Minor fixes related to removing nodes from a grid.

The grid did remove IStackWatcherHost not IEnergyWatcherHost, this was
fine for AE2 as only level emitters use it and they implement both.
But not for potential addons.

Also they would potentually not being removed as the are indexed by the
gridnodes not the machine.

Fixes #1004
2017-08-24 11:06:31 +02:00
fscan 8338a7d13e Fixes #3049: JEI recipe transfer can voiding items (#3053) 2017-08-21 14:39:29 +02:00
yueh c4fa21c193 Removes coremod (#3038)
From now on every integration must not rely on method stripping through
a coremod or @Optional. Notable example for a very good solution is IC2.

As consequence this drops all support for RF and mods must support on of
our supported energy types. At the time of writing, ForgeEnergy and
IC2/EU.
2017-08-17 21:16:57 +02:00
Gunther De Wachter 8a7450168b Updated JEI plugin to newer API methods. 2017-08-17 20:41:20 +02:00
yueh b61219ef88 Covered dense cables (#3030)
* Renamed all dense smart cable related things to include smart
* Added dense covered cables
* Added abstract PartDenseCable to reduce redundant code
* Added dense covered recipes

* Ensures ItemPart ordering to be consitent.

Now takes the metadata into account to preserve the ordering for colored
items instead of just the part type name and depend on the insertion
order of a hashmap.
2017-08-17 18:41:39 +02:00
yueh 4f9fd1b369 IC2 rework to avoid a coremod or @Optional (#3034)
* IC2 rework to avoid a coremod or @Optional

Updated IC2 dependency

Refactored IC2 itemcharging to use an IBackupElectricManager.
Allows charging any ae powered item by using an IBackupElectricManager
instead of having to implement IElectricItem and stripping it by some
sort.

Updated IAEItemPowerStorage to use Actionable for an easier handling
with power APIs supporting a simulation.

Refactored EU P2P to avoid method stripping
Use a modified internal BasicSinkSource instead of implementing
IEnergySource and IEnergySink directly on the tunnel.

Removed the superfluous EU P2P layers.

* Removed internalBattery due to being too complex

* Creative Energy Cell is not a chargeable item
2017-08-17 17:35:34 +02:00
yueh cdcab7d91c Organise Imports 2017-08-11 21:42:26 +02:00
Gunther De Wachter 0bed78a144 Re-enabled JEI search integration in terminals. 2017-08-03 22:00:42 +02:00
fscan 52d28fabe3 Use IItemHandler instead of IInventory internally (#2971)
* Use IItemHandler instead of IInventory internally
2017-07-28 22:04:32 +02:00
yueh a24ed38e90 Added missing Override annotations 2017-07-20 21:28:16 +02:00
yueh 15582fd1df Always use qualified access for fields and methods 2017-07-20 21:27:22 +02:00
yueh 406013142e Superfluous whitespace removal 2017-07-20 21:23:01 +02:00
yueh 7de90ed0ae Finally use Java7 <> 2017-07-20 21:21:45 +02:00
yueh 8ec8babb6a Organised imports 2017-07-20 21:18:49 +02:00
yueh 621910df91 Format sourcecode 2017-07-20 21:17:10 +02:00
Gunther De Wachter 66c87a2fa2 Re-enabled the RF and IC2 handler, as well as their P2P tunnels. Added Forge Energy P2P tunnel. 2017-07-14 21:52:04 +02:00
Gunther De Wachter fdab91323c Re-enabled the WAILA handler, using Hwyla. 2017-07-14 21:48:20 +02:00
Gunther De Wachter fbcf8c4705 Highly incomplete code. First work on porting to 1.12. Still need to rework a LOT of things. 2017-07-06 01:57:19 +02:00
Gunther De Wachter 890eef1803 Update MCP Mappings to stable_32
Some mapping updates are just straight up weird. 20170516 -> isBlockSolid, 20170517 -> causesDownwardCurrent
2017-07-03 06:54:45 +02:00
Gunther De Wachter eb0b304fd9 Even more null fixes. 2017-07-02 04:13:49 +02:00
Gunther De Wachter 61b81fc802 Fix facade recipes. Hopefully the last null check fix. 2017-06-27 20:39:06 +02:00
Gunther De Wachter da5879b667 First batch of null -> isEmpty() checks.
I most likely still missed a ton of checks...
2017-06-26 05:15:25 +02:00
yueh ed9e6dd21c Port to 1.11 2016-12-21 20:38:36 +01:00
yueh a14cf2204d Fixes anchor rendering (#2698)
* Fixes #2680: Use a shorter cable anchor model when blocked by a facade.
* Fixes #2664: Prevent anchors from creating intersection.

Replaced the simple List<ResourceLocation> for the static models with a
new container also indicating a solid part, which can be used to prevent
the creation of an intersection.
2016-12-14 22:37:10 +01:00
yueh 8bed7f223e TheOneProbe integration (#2696)
Displayed information is equal to current the WAILA integration.

Added a preInit stage to IIntegrationModule.
Added a factory method to IntegrationType to avoid touching
IntegrationNode for every new integration.

Fixes #2650
2016-12-14 22:36:40 +01:00
yueh eb1e86cacb Refactored GrinderRegistry. (#2644)
* Refactored GrinderRegistry.

Changed IGrinderRegistry#getRecipes to return an unmodifiable collection.
Added a way to remove recipes explicitly instead the internal list.
Added a cache to lookup recipes instead of iterating a list.

Renamed IGrinderEntry to IGrinderRecipe
Made IGrindRecipe immutable for easy caching.

Improved GrinderLogging and Exception Handling
JEI Workaround as it expects a List instead Collection.

* Added blacklist of explicit oredict names for the grindstone.

This can be used should the automatic recipe generation create unintended
loopholes.
2016-12-02 23:47:50 +01:00
yueh c405e725b2 Fixes #2667: Use new IC2 item names for P2P attunement. 2016-12-02 22:16:29 +01:00
yueh a665200c31 Refactored AEConfig (#2633)
Added a singleton getter instead the public field.
Reduced all fields to private.
Replaced field access with getters.
Added setters where necessary (Dimension/Biome Registration)
Added config options to disable more features.
Splitted Enum name from the config key.
Changed FacadeConfig and Networkhandler similar to AEConfig.init().
2016-11-26 14:07:34 +01:00
yueh 77bb28ded6 Fixes #2585: Hide WAILA data when it cannot be retrieved. (#2586) 2016-11-06 20:28:36 +01:00
shartte 0e7981d717 Cleaning Up Mod Integrations (#2581)
* Cleaned up unused Mod integrations other than for mods that are likely to be integrated soon.
* Introduced an easier Facade class to access mod integration abstractions (called Integrations).
* Removed the link between IntegrationType and integration abstraction. Integrations are now explicitly instantiated inside of IntegrationNode.
2016-11-06 20:23:14 +01:00
Sebastian Hartte f85ab7ddc2 Fixes Macerator recipes when IC2 integration is enabled. 2016-11-02 23:45:22 +01:00
shartte 5db7fc8e8c Show P2P-Tunnel Link Status on WAILA (#2545)
Implemented QoL improvement for P2P tunnels by showing their link status via WAILA.
2016-10-31 23:55:14 +01:00
Sebastian Hartte f598fb3cc4 Fixes an issue when starting without IC2 being enabled. 2016-10-28 22:58:19 +02:00
Sebastian Hartte 6e6e51dc20 Separated TileEntity and External Power Sink arguments to IC2 to emphasize that they don't necessarily need to be the same, and that a tile entity is required for IC2. 2016-10-28 22:58:19 +02:00
Sebastian Hartte 344958aefb Added IC2 integration. 2016-10-28 22:58:19 +02:00
Sebastian Hartte b679079a5a Updated JEI. 2016-10-15 14:31:54 +02:00
Sebastian Hartte 8df692053a Added JEI integration (#2436). 2016-10-08 13:06:21 +02:00
Sebastian Hartte 895a1a18d8 Re-Added original Waila integration and fixed compilation issues against new API. 2016-10-02 00:35:38 +02:00
AlgorithmX2 71afa9bf53 1.8.8 + deleted all integration can be recovered later or something. 2015-12-31 17:19:44 -06:00
yueh e94a0cfccf Reduces visibility of internal fields/methods
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.
2015-12-24 01:59:13 +01:00
thatsIch 888b3e5600 Closes #1899, Fixed #1898: Adds an easy way to export interesting information into CSV format
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
2015-12-23 14:32:53 +01:00
thatsIch 71223a9d58 Remove base module 2015-09-30 14:17:15 +02:00
thatsIch 430b33b7a3 Replace with array initializer
this can be done through http://docs.oracle.com/javase/specs/jls/se6/html/arrays.html#10.6
2015-09-30 14:15:53 +02:00
yueh 0d25b76b77 First iteration of making integrations typesafe 2015-09-30 13:51:47 +02:00
thatsIch 0d312f91af Fixes #1850: Fixed support for second optional output of the AE2 Grindstone 2015-09-30 13:41:15 +02:00
yueh b0504f4141 Closes #1726: Added Pressure P2P tunnel (PneumaticCraft) 2015-09-30 13:19:57 +02:00
yueh 2a5d26b349 Organize imports 2015-09-30 13:07:27 +02:00
yueh 0d6f80e813 Fixes #1706 Adds a test to disable unsupported BetterStorage integration 2015-09-30 12:48:25 +02:00
thatsIch 97f23cf955 Updates BuildCraft to 7.0.9
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
2015-06-18 20:09:36 +02:00
Uristqwerty 41b8150ef4 Cleaned up CraftGuide Integration
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
2015-06-17 21:35:46 +02:00