Commit Graph

150 Commits

Author SHA1 Message Date
Brock d16677224a Initial Fluid Integration (#3510)
* Added Fluid Storage Cells

* Added Fluid Import Bus

* Added Fluid Export Bus

* Added Fluid Storage Bus

* Added Fluid Terminal.
While holding a item with the FLUID_HANDLER_ITEM_CAPABILITY, such as a tank
Left click on a fluid to extract the fluid
Right click to insert the fluid
2018-06-11 19:55:33 +02:00
yueh d7b97fa7b8 Replaced LinkedList with ArrayList or ArrayDeque when applicable. (#3392) 2018-05-27 21:15:50 +02:00
yueh bf4818cf97 Updated Cell Registry safety and docs (#3383)
The Cell registry now ensures that the first handler is our own as other
addons might depend on it.
Updated docs to match the new requirements.
Made internal handler classes final.
2018-05-27 21:15:35 +02:00
yueh ccefb47581 Added a config option to disable the CraftingManager fallback. (#3415) 2018-03-08 16:44:48 +01:00
yueh 7ceaa4cc3e Fixes #3217: Allow caps to be used as P2P attunements. (#3257)
Adds a more abstract approach to map a cap to a certain type instead of
the hardcoded ForgeEnergy case.
Reorders the check from exact ItemStack > ModId > ForgeEnergy to
ItemStack > Cap > ModId. Thus the mod wildcard will be used last.
Support for ForgeEnergy and FluidHandlerItems by default.
Result for items supporting multiple capabilities is not defined.
2017-12-01 21:14:11 +01:00
yueh ab7f35a9ee Further StorageChannel refactoring (#3152)
Updated Drives to support more than Item and Fluid cells.
Use Collections.emptyList() instead of creating empty ArrayLists.
Fixes a NPE with uninitialized ME Chests.

Fixes #3150
2017-10-14 14:12:24 +02:00
yueh 6e81f698c0 Refactored StorageChannel enum into an interface (#3138)
This replaces the static enum with a more dynamic interface providing
factory methods for handling network storage.
2017-10-08 17:59:30 +02:00
yueh 95b27f490c Added Registry for customized charger rates. (#3139)
* Added Registry for customized charger rates.
* Added rates for all chargable items/block.
* Charger and Inscriber now store 1.6k AE each instead of 1.5k
* A crank applies 160 AE instead of 150
* Charged certus now requires 1.6k instead of 1.5k
2017-10-08 17:33:06 +02:00
fscan e8d554d69d Fix Inscriber recipe registration (#3131)
Fixes #3129
2017-10-02 22:03:22 +02:00
fscan 1e15b23506 Rework AEItemStack (#3091)
* Use itemstack as itemdef
* HIGH_TAG/LOW_TAG should be compared both directions
* Remove getTagCompound
* Make Itemlist implementation independent
* Cache item id for performance reasons
* Add preconditions to saveguard against external meddling
* Chache itemDamage
* Remove IAEStackSearchKey for now, rename getDisplayStack
2017-09-30 17:18:30 +02:00
yueh 2ed7a5598a Improved IGrinderRegistry (#3110)
* Improved IGrinderRegistry

Added a builder for grinder recipes similar to IInscriberRegistry.
Replaced different add methods with this builder.
IIinscriberRegistry#addRecipe and removeRecipe now return true on success.
2017-09-29 20:32:59 +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
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
fscan 52d28fabe3 Use IItemHandler instead of IInventory internally (#2971)
* Use IItemHandler instead of IInventory internally
2017-07-28 22:04:32 +02:00
yueh a4c468b9cf Updated caps to be manually disabled via config
Moved the cap injection to a method, allows them to be configurable.
This is not possible for Forge Energy as it is injected before even the
configuration are lodaed, thus violating their own capability contract
to use the method injection to explicitly make it configurable.

Updated the ratio key for forge energy to "ForgeEnergy" without a space
2017-07-22 13:29:14 +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 7de90ed0ae Finally use Java7 <> 2017-07-20 21:21:45 +02:00
yueh 621910df91 Format sourcecode 2017-07-20 21:17:10 +02:00
Gunther De Wachter 16b5b5aea2 Fixed setting a Tunnel Type to "Forge Energy". Forgot to edit the part that actually sets the tunnel. 2017-07-15 01:19:29 +02:00
Gunther De Wachter 577b1fa757 Add a method to attune the P2P Tunnel by (supported) ModId, or check for ForgeEnergy support if it's not listed. 2017-07-14 22:54:19 +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 90ee7fb15d Fixed last commit. I should never trust kate's syntax hilighting in the future again. 2017-07-13 04:49:10 +02:00
Gunther De Wachter e5e2714273 Really fixed NotNull this time. My local git repo got desync'ed for a bit. 2017-07-13 04:44:05 +02:00
Gunther De Wachter eb11845a2f Fixed applying the type of tunnel for P2P tunnels.
This was caused by the enforced lowercase mod id's and item names since 1.11.
2017-07-12 06:04:06 +02:00
yueh 6c52f31686 Replaces old fluid handlers with the new capability based ones. (#2727)
* Changed ME Chest and P2P tunnels to use fluid capabilities.
* Renamed all occurrences of liquid to fluids.
2017-06-29 05:57:43 +02:00
Gunther De Wachter 650edae902 More ItemStack null changes. 2017-06-26 07:07:04 +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 1cde7bc933 Changed to Null ItemStack instead of null. 2016-12-21 20:38:37 +01:00
yueh ed9e6dd21c Port to 1.11 2016-12-21 20:38:36 +01:00
yueh db85419702 Restructured registry packages (#2703)
Moved larger registries together with their related classes instead of putting unrelated classes into the same package.
2016-12-14 22:35:52 +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 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 1e20086799 Extracts item comparison from Platform into their own helper. (#2555)
* Extracts item comparison from Platform into their own helper.

Renamed methods to be more more fitting for the actual comparison.
Added documentation about each methods behaviour.
2016-11-04 09:27:52 +01:00
shartte b977ee89ee Remove External Storage Handler (#2417) (#2508)
* Implemented an adapter for IItemHandler so it can be used by the Storage Bus.
* Added update hook for inject/extract to ItemHandlerAdapter.
* Implemented ItemHandler and FluidHandler capabilities for the condenser, as replacement for the Void Inventories.
* Removed external storage handler, added capability-based way of accessing a monitorable ME network via the storage bus. Removed special case inventories for the matter condenser.
* Implemented InventoryAdaptor for IItemHandler. This also now fixes molecular assemblers interaction with part interfaces.
2016-10-26 22:58:23 +02:00
yueh 71396637e3 Organise imports 2016-09-17 17:05:07 +02:00
yueh 93145750c0 Added missing file headers 2016-09-17 16:00:37 +02:00
yueh 860636d067 Removed deprecated API methods 2016-09-17 15:08:47 +02:00
yueh f185bc07a6 Capitalised enums to match conventions 2016-09-17 15:06:00 +02:00
Sebastian Hartte 7e027da804 Reimplemented cable and parts rendering. 2016-09-10 00:56:28 +02:00
shartte e276aa682f Replaced all instances of Guava's Optional type with Java 8's Optional type, as discussed in #81. (#90) 2016-08-26 12:42:21 +02:00
shartte 6f2bbfab4c Major Refactoring of Bootstrap Code (#75)
- Refactored boostrap code:
  * Completely reworked item/block/tile registration.
  * Fixed server side startup.
  * Fixed server side startup.
  * More documentation.
  * More heavy cleanup
  * More cleanups.
  * Major refactoring of state mapping and fixes a lot of other issue related to item rendering.
  * Fixes sky chest item models (no item TESR).
  * Only use CachingRotatingBakedModel for tile entities automatically.
  Fix default rotation of quartz pillar for item model.
  * Used method reference instead of lambda for ItemMeshDefinition for multiparts.
  * Removed unnecessary IHasSpecialItemModel
  * Removed unused IconReg class.
  * Updated resource pack version.
2016-08-26 12:42:21 +02:00
elix-x d7f32a985d Cables & parts and Baking pipeline
- Added cables & parts rendering.
- Facades got a completely new way of rendering. Anvil facades are
totally a thing.
- Added baking pipeline for simplified, highly configurable quad baking.

NOTE: Yes, there are a lot of improvements to do, bugs to fix, stuff to
add. I'm just pushing it prior to code structure change, so it does not
get lost in stashes. But it actually works!
2016-08-19 22:46:13 +02:00
elix-x 8b9743f2bf Cleaned up debug stuff
Cleaned up debug stuff from naming convention change.
2016-08-19 22:46:13 +02:00
elix-x b31e5f5356 Merge remote-tracking branch 'origin/1.10-rv3-rendering' into 1.10-rv3-rendering
# Conflicts:
#	src/main/java/appeng/decorative/solid/BlockQuartzGlass.java

#	src/main/resources/assets/appliedenergistics2/blockstates/QuartzGlassBlock.json
# Changed naming convention.
2016-08-19 12:49:25 +02:00
elix-x 3d2ba425ec Change of naming convention
Changed naming convention. All AE blocks, items and TEs were affected.
Most of assets were transfered, but some sill need help. Localizations
will be transfered in a separate commit.
Closes #46.
2016-08-19 12:38:21 +02:00
shartte 838691d924 Fixes Paintball Item Rendering (#48)
* Added a way to register a custom ItemMeshDefinition for items, including registration of custom variants.

* Moved color handling for paint balls into the paint ball class and implemented the correct model selection logic for displaying the items.
2016-08-16 17:55:56 +02:00
shartte 026de7d590 Energy Cell Item Models (#44)
* Added energy cell item models.

* Removed the client-side only interface and moved to a method in AEBaseBlock instead.
2016-08-16 15:38:53 +02:00
shartte 53fd4de0cc Added stair blocks. (#47) 2016-08-14 13:26:53 +02:00
elix-x 3d1d2a3468 Fixed stairs & chests rendering
-Fixed chests rendering in inventory (kinda).
-Fixed stairs rendering.
From now on, all blocks with multiple states MUST have item model.
Example stair provided (though with incorrect textures).
Relates to #9.
2016-08-10 12:10:48 +02:00