Commit Graph

66 Commits

Author SHA1 Message Date
fscan d88f550eb0 Switch to new IItemHandler (#3669) 2018-10-04 20:39:06 +02:00
yueh a2091d10fe Code cleanup
Added missing this, annotations, etc.
2018-08-30 20:33:08 +02:00
yueh 046a27bf4c Fixes #3560: Render the fluid stacksize for ME fluid slots. (#3562) 2018-06-24 17:22:07 +02:00
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
fscan f0d807f0a2 Rework ContainerInscriber validation (#3238)
* Correctly handle metadata wildcard for inscriber inputs
2017-11-26 15:46:02 +01: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
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 970630a90d Refactored the BaseActionSource (#3063)
* Refactored the BaseActionSource

It now uses an interface `IActionSource` instead of a concrete class and further
subclasses. 

Instead of relying on a specific class for a certain action type, it now
uses methods with Optional as return values to determine a player or
machine issuing an action. Refer to the JavaDocs for the exact behaviour.

* `IActionHost` no longer extends `IGridHost`

It never used the additional functionality and if needed the `IGridNode`
will also provide a reference to the corresponding `IGridHost`.

Due to most crafting related GUIs being hardcoded to `IGridHost`, 
they no longer work when `IActionHost` is not extending it. Actually
`IActionHost` is the better solution for it, as it prevents us from looking
the grid up via the `IGridHost` and potentially finding a wrong grid.

* Interfaces now only lock the currently worked slot.

This allows `DualityInterface#onChangeInventory` to update slots of the same interface, should they be the source for a requested item and therefore updating their working set accordingly to queue further crafting requests for unfulfilled stack requirements.
2017-09-12 11:39:00 +02:00
Florian Scandella c8f10d92bb use index not slotNumber 2017-08-29 21:20:18 +02:00
yueh b8e685b1b6 Fixes #3040: Cache recipe and revalidate it (#3042)
* Fixes #3040: Cache recipe and revalidate it

This caches the last used recipe instead of only the result. Which
allows to revalidate the crafting grid against the recipe itself before
hitting the CraftingManager again. Therefore avoiding a high performance
hit for recipe lookups, just find the potential same recipe again.

* Remove old recipe lookup as forge provides it now.

* Further optimizations.

These are a bit quick'n'dirty and need a better solution with a full
container/gui refactoring. But for now they provide some great benefits
in terms of performance.
2017-08-20 21:31:30 +02:00
fscan ac48ab02fc Fix crash in clearStack (#3033) 2017-08-15 15:05:12 +02:00
yueh e39855b48f Use qualified method and field access 2017-08-11 21:43:47 +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
Gunther De Wachter 7eb09fc4db Fixed Container Workbench (and other UI's) giving access to slots that shouldn't be there. 2017-07-23 20:39: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 0f8204cd93 Fixed serversided issue. Forgot to check for uses of isEnabled before changing it to a clientside only method. 2017-07-13 04:18:33 +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 e6e858820f Updated forge and added some more stuff from the new mappings. 2017-07-03 07:34:24 +02:00
Gunther De Wachter 49a87f62ce More null's and cosmetic fixes. 2017-06-30 17:30:03 +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
Gunther De Wachter d77d21858e Fixed manually crafting items
This can hopefully be done in a more sensible fashion later.
2017-06-24 15:51:03 +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 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
elix-x 5498eb6d7c First update pass (1/3) - ~1400 -> 82 errors
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.
2016-06-19 14:43:27 +02:00
yueh f84b9a7e1d All parameters on one line (for now)
Easier picking of 1.7 changes
2016-01-01 02:02:05 +01:00
yueh 2e51ea5f78 Always use {} for statements 2015-12-24 02:11:17 +01:00
yueh 99215e1701 Organized imports 2015-12-24 02:07:03 +01:00
yueh c9e8a6e939 Formatted code 2015-12-24 02:03:16 +01: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 ebda927fb5 Add this qualifier 2015-09-30 14:26:54 +02:00
thatsIch 8b3a954f73 final variables and parameters 2015-09-30 14:24:44 +02:00
thatsIch 59dbfb1452 Fixed stairs 2015-09-30 11:34:16 +02:00
AlgorithmX2 38afde724b Most of the 1.8 Port. 2015-06-15 19:44:59 -05:00
thatsIch 0f9ca7885a Lower case methods 2015-05-18 00:08:05 +02:00
thatsIch 7c9b734948 reduces overly strong type cast 2015-05-09 12:45:46 +02:00
thatsIch 64ed05a1b4 Puts everywhere brackets 2015-04-29 18:38:24 +02:00
thatsIch 06bca227d0 Closes #1054: Adds an Inscriber API for Developers 2015-04-06 13:45:27 +02:00
yueh eaf57bedf6 Modifier are now using a consistent order based on the java conventions 2015-04-06 00:35:42 +02:00
thatsIch d34c988c88 Basic reformat, hit once, hope never again 2015-04-03 15:07:13 +02:00
thatsIch 9986ffc458 Fixes #675 No disabled feature should log spam or crash anymore.
Deprecates the old usage of the AEItemDefinitions via the direct method access of

* blocks()
* parts()
* items()
* materials()

and thus use the new re-direct via definitions().

All definitions are now initialized, no matter what. But SubItems, Items and Blocks are not registered, if by chance are disabled.
2015-03-28 16:21:37 +01:00
thatsIch 6aeca93b85 Unnecessary modifier in enums 2015-03-26 11:03:15 +01:00
thatsIch 4b4693498d Replace call to simple getter from within class with inlined version 2015-03-26 10:23:59 +01:00
yueh b18addbf37 remove trailing whitespaces 2015-02-03 12:04:13 +01:00
thatsIch 52c512635d Renamed constants 2015-01-01 22:13:10 +01:00
thatsIch 8179259afa Replaced C-style array instantiation with Java-Style 2015-01-01 21:15:03 +01:00
yueh 9b7b0fc0fb Organize imports 2014-12-29 21:59:05 +01:00