Commit Graph

103 Commits

Author SHA1 Message Date
yueh d7b97fa7b8 Replaced LinkedList with ArrayList or ArrayDeque when applicable. (#3392) 2018-05-27 21:15:50 +02:00
yueh ccefb47581 Added a config option to disable the CraftingManager fallback. (#3415) 2018-03-08 16:44:48 +01:00
yueh 6c7cbb7ee1 Added a simple warning to patterns when using CraftingManager fallback. (#3412) 2018-03-08 16:34:48 +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
Florian Scandella 217cbf0982 we dont use scala ... 2017-09-17 13:38:44 +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
yueh 771a944058 Fixes #3081: Fixes blocking mode blocking on empty inventory. (#3082) 2017-09-11 12:03:32 +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
yueh e39855b48f Use qualified method and field access 2017-08-11 21:43:47 +02:00
tyra 8d5cc916e0 Adds improved tooltip to invalid encodedPattern (#2992)
* Adds improved tooltip to invalid encodedPattern

This also fixes that encodedPattern might be shown as valid,
even though one or more input or output item is missing.
2017-08-04 21:17:35 +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 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 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 780ce89ac3 Internal change to fix Named Inventories. This change will not affect the reobfed version (much). 2017-07-03 05:54:25 +02:00
Gunther De Wachter 0be2011645 Fixed blank patterns in the pattern terminal not decreasing when encoding a pattern. 2017-06-28 06:21:11 +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 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 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 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 a1ae91af76 Closes #2501: Hide substitution buttons for processing
Hides the substition button in processing mode to avoid confusion as it is
not usable there as well as not showing it as part of the tooltip.
Further it ensures that patterns are encoded with the setting being
disabled, should we add the support later without breaking existing
setups.
2016-10-24 11:39:59 +02:00
Sebastian Hartte 882f240307 Implemented capabilities for cable buses in a way that dispatches the capabilities to the parts on the appropriate attachment point. Implemented the capabilities for interface parts and tiles to provide a proof of concept. 2016-09-30 23:53:54 +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
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
elix-x 63f426336b Fixes and cleanup
- Compile error fixes (blame @biggles2206). Fixes #53.
- UVLModelLoader is now cross compatible with vanilla (vanilla can use
uvl parents who have vanilla parents).
- Due to it, now using uvlMarker instead of .uvl.
- General code reformatting and cleanup.
2016-08-15 18:19:33 +02:00
shartte 8ddff3f459 Fixed blocks state <-> meta conversion (#31)
-Added missing state <-> meta conversion methods to blocks. Fixes #23.
2016-08-11 11:40:34 +02: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 b62ff9898f Interfaces now slow down with failed crafting attempts.
Cleanup of unneeded tracking of failed attempts of MultiCraftingTracker.
Followup of #1905
2016-01-01 02:56:07 +01: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 e922bf02d4 Fixes #1973: 9th slot of ME Interface ignored work 2015-12-23 14:38:26 +01:00
yueh 1e7126f98e Added an option to toggle oredict subsitutions for patterns.
It adds a backward compatibility to convert current patterns to use
oredict by default, which should be removed with rv4 stable.

Closes #1156
2015-12-23 14:34:28 +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 059523f543 Reduce scope of variables 2015-09-30 14:22:21 +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 3b495c35d7 Fixes #1905: Export bus now considers failed crafting requests
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.
2015-09-30 14:03:31 +02:00
yueh ef6bc3e58f Changed the interface to 9 slots to be consistent with every other machine 2015-09-30 13:42:31 +02:00
AlgorithmX2 38afde724b Most of the 1.8 Port. 2015-06-15 19:44:59 -05:00
thatsIch 733a53ec6d Typo in 'fward' 2015-05-18 00:33:04 +02:00