Compare commits

...

127 Commits

Author SHA1 Message Date
yueh 9c3ca0e3d7 Splitted channeldata into two ints
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
2015-06-16 18:11:46 +02:00
thatsIch 52d62b8202 Merge pull request #1591 from thatsIch/e-update-to-bc-7
Updates BC to 7.0.9 for rv2
2015-06-14 18:19:03 +02:00
thatsIch 643f559186 Fixes #1559: Level Emitter with P:R alloy wire does not crash anymore
Required to implement a more advanced interface, if not done that way, the parts will update themselves recursively
2015-06-14 10:10:51 +02:00
thatsIch 09ed06e47f Fixes #1588: Charged Certus Quartz Ore has its own oredictionary entry 2015-06-14 10:10:36 +02:00
thatsIch 741b5bee1f Updates BC to 7.0.9
Fixes disabling of BC integration
2015-06-13 22:53:57 +02:00
Uristqwerty c1c3655db6 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-09 23:42:03 +02:00
yueh b05796e62b No longer invalidate the cache of MEMonitorIInventory on simulate.
Should fix #1036
2015-06-05 23:06:57 +02:00
thatsIch 200e56a509 Fixes #1536: Checking for all required BC classes 2015-06-01 20:47:04 +02:00
thatsIch 9540bbce49 Merge pull request #1499 from TheJulianJES/patch-5
Changed version from PartStack provider to rv2 (rv3)
2015-05-23 13:52:58 +02:00
TheJulianJES c6d932da04 Changed version from PartStack provider to rv2 (rv3)
because @thatsIch merged it also to rv2
2015-05-23 13:49:52 +02:00
yueh 6e7100361c Fixes #1465 faulty item comparison 2015-05-19 21:16:30 +02:00
TheJulianJES ca50ee0762 Removes default RF tooltip
Removed tab

Did something
2015-05-19 21:16:10 +02:00
TheJulianJES f00d5c297f Parts display correctly in WAILA
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
2015-05-19 21:15:50 +02:00
yueh b13f5ced01 Fixes #1389 Enabled repeatable keyboard events 2015-05-19 21:14:49 +02:00
thatsIch 1c0f1ea243 Merge branch 'rv2' of https://github.com/AppliedEnergistics/Applied-Energistics-2 into rv2 2015-05-19 21:11:26 +02:00
Jeremiah Winsley b612ff47a3 Test with V6e of RotaryCraft
Conflicts:
	gradle.properties
2015-05-19 21:10:08 +02:00
Jeremiah Winsley e8a68cc531 Fixes #1384 - implement AdvancedShaftPowerReceiver for RotaryCraft powersink 2015-05-19 21:08:37 +02:00
thatsIch d9f362270b Merge pull request #1454 from TheJulianJES/doublePlayerInvInscriber
Don't add the player inventory two times (rv2)
2015-05-14 12:43:21 +02:00
TheJulianJES 37aef15a02 Don't add the player inventory two times (rv2) 2015-05-14 12:38:44 +02:00
thatsIch 2d8728f0e1 Merge pull request #1437 from TheJulianJES/GermanLang
Changed things in de_DE.lang (rv2)
2015-05-10 12:12:08 +02:00
thatsIch 3498a0902b Merge pull request #1434 from plumpudding/errorEclipse
Error eclipse for rv2 branch
2015-05-10 12:11:58 +02:00
TheJulianJES bb4b6719fe Changed things in de_DE.lang 2015-05-10 10:34:54 +02:00
TheJulianJES 34f78a7ce4 Fix warnings in eclipse
Close scanner instead of doing it with a warning

Make the scanner final..
2015-05-10 00:14:56 +02:00
thatsIch 064acc21ee Fixes #1411: Adds recipes for stairs 2015-05-08 18:36:42 +02:00
Lorenzo Dalla Costa Cervelin deeb67f07d Update pt_BR.lang 2015-05-08 17:59:55 +02:00
thatsIch 2eeaa80b59 Merge pull request #1380 from thatsIch/e-fix-javadoc
Fixed missing Javadoc parameter
2015-05-03 21:48:53 +02:00
thatsIch 1710894edc Use self compiled InvTweaks API 2015-05-03 21:23:54 +02:00
thatsIch 7cb485aa48 Fixed missing Javadoc parameter
Reworked the instantiation a bit
Added some additional checks due to the new nonnullability.
2015-05-03 16:45:27 +02:00
thatsIch 65d0ae9290 Merge pull request #1323 from thatsIch/e-installable-mods
Makes maven dependencies de- and installable
2015-05-03 16:24:34 +02:00
thatsIch 1baed48b0a Merge pull request #1372 from thatsIch/b-1368-vibration-chamber-comparator
Fixes #1368: Vibration Chamber notifies neighbors on inventory change and state change
2015-05-03 16:24:26 +02:00
yueh da6b31cdb1 Merge pull request #1352 from yueh/fix-1336
Fixes part interface inventory model
2015-05-02 20:39:42 +02:00
thatsIch 013c8d882c Makes maven dependencies de- and installable
Provides a new configuration `mods` which can be used on Maven Artifacts. That way, we can install them without affecting them on runtime (less load time)

Put the optional tasks into `optional.gradle` where a install task is just a copy task and the deinstall task a delete task

Added maven local to the repositories, if for some reason somebody uses a local maven
2015-05-02 19:35:34 +02:00
thatsIch 503d325021 Merge pull request #1381 from thatsIch/e-overriden-annotions
Adds annotations by contract of the interface
2015-05-02 19:22:19 +02:00
thatsIch 875214c166 Adds annotations by contract of the interface 2015-05-02 15:39:59 +02:00
thatsIch 2eec5309ac Merge pull request #1371 from thatsIch/e-latest-bleeding-edge-badge
Adds several badges
2015-05-02 07:24:52 +02:00
thatsIch a9ec31d72f Merge pull request #1332 from thatsIch/b-1331-crash-on-disabled-material
Fixes #1331: Happened on deactivating features for intermediate crafting components
2015-05-02 07:24:36 +02:00
thatsIch e392ecd08d Fixes #1368: Vibration Chamber notifies neighbors on inventory change and state change 2015-05-01 17:58:59 +02:00
thatsIch 03f9436ef9 Fixes #1331: Happened on deactivating features for intermediate crafting components
If a feature dependency of ItemMultiMaterial was disabled, the returned value was never assigned with the constructed. Pulling out the construction and setting it before checking it, prevents the NPE and also matches the behaviour in ItemMultiPart, where parts are constructed, but never registered.
2015-05-01 17:52:23 +02:00
yueh 8917a331eb Merge pull request #1373 from yueh/fix-1360
Added missing check to detect missing cell workbenches
2015-05-01 17:39:39 +02:00
thatsIch 8fbb317f6e Adds several badges 2015-05-01 17:34:06 +02:00
yueh f15561c4dc Added missing check to detect missing cell workbenches
Fixes #1360
2015-05-01 12:48:08 +02:00
thatsIch ee431b3269 Merge pull request #1359 from thatsIch/e-use-gradle-properties
Do not use the slurper anymore
2015-04-30 18:52:49 +02:00
thatsIch ba97dacfdd Merge pull request #1356 from thatsIch/e-brackets-everywhere
Puts everywhere brackets
2015-04-30 18:52:34 +02:00
thatsIch ce6a2e8487 Do not use the slurper anymore
The proper way to use gradle is to actually use the gradle.properties. It will be automatically read without using a self defined config slurper.

The gradle.properties adds additional convenient options e.g. regarding the VM options and parallel calculation or daemons
2015-04-29 21:03:49 +02:00
thatsIch 64ed05a1b4 Puts everywhere brackets 2015-04-29 18:38:24 +02:00
thatsIch 23aa8fd72d Merge pull request #1337 from thatsIch/e-1333-recipe-sorter
Fixes #1333: Updated old code parts related to recipes
2015-04-28 19:44:55 +02:00
yueh 332ea089e3 Fixes part interface inventory model
Fixes #1336
2015-04-28 19:13:51 +02:00
yueh 106003ebf9 Merge pull request #1349 from yueh/fix-1348
Removed MJ as icon
2015-04-28 19:11:21 +02:00
thatsIch 8271597394 Merge pull request #1341 from thatsIch/b-1339-server-crash
Fixes #1339: Was not able to retrieve the name of an unregistered part
2015-04-28 18:42:42 +02:00
thatsIch 9210069d9b Fixes #1333: Updated old code parts related to recipes
Fixed an additional bug, where the disassembling recipes were not working properly. The fail logic was flawed, so that it would never match the recipe
2015-04-28 18:37:46 +02:00
yueh f364359905 Removed MJ as icon
Fixes #1348
2015-04-28 18:28:54 +02:00
thatsIch fb618b939f Merge pull request #1342 from Mazdallier/patch-1
Update fr_FR.lang
2015-04-27 15:48:33 +02:00
Yves 43a47f8971 Update fr_FR.lang
Minor correction and group organisation
2015-04-27 13:23:28 +02:00
thatsIch e85acf2bee Fixes #1339: Was not able to retrieve the name of an unregistered part
Added an additional map to store all parts and be able to access them if needed.
Added public preconditions
Added private asserts
Excluded public overridden methods, since behaviour can be unexpected
2015-04-27 09:51:40 +02:00
thatsIch bbde2443e1 Merge pull request #1335 from TheVikingWarrior/patch-3
Update it_IT.lang
2015-04-26 16:54:21 +02:00
thatsIch ad2f63ba0d Merge pull request #1328 from thatsIch/b-1327-wrong-container
Fixes #1327: Prevents crash when configuring a GUI
2015-04-26 16:46:06 +02:00
TheVikingWarrior ee977720ca Update it_IT.lang 2015-04-26 15:48:53 +02:00
thatsIch ca953f4596 Fixes #1327: Prevents crash when configuring a GUI 2015-04-25 20:09:53 +02:00
thatsIch 2adc055536 Merge pull request #1276 from thatsIch/b-1186-disassembling-storage-missing-upgrades
Fixes #1186: Storage Cells drop upgrades upon disassembling
2015-04-24 19:12:17 +02:00
thatsIch 399934ac2b Merge pull request #1319 from Adaptivity/patch-1
Update ru_RU.lang
2015-04-24 19:11:51 +02:00
Anton 9451106c81 Update ru_RU.lang 2015-04-24 07:51:44 +03:00
thatsIch 8e75de8fb9 Merge pull request #1278 from thatsIch/b-1277-no-mj-config
Fixes #1277: Removed config option for MJ-P2P Tunnel
2015-04-23 23:48:55 +02:00
thatsIch eca598516e Fixes #1277: Removed config option for MJ-P2P Tunnel 2015-04-23 23:45:32 +02:00
thatsIch 2c5a54c210 Merge pull request #1269 from thatsIch/b-1256-number-converter
Fixes #1256: Using new size logic to determine the abbreviation for a stack size
2015-04-23 23:43:31 +02:00
thatsIch 1ac2ab0c10 Merge pull request #1272 from thatsIch/b-1271-missing-pack-mcmeta
Fixes #1271: Added missing pack.mcmeta
2015-04-23 23:42:58 +02:00
thatsIch 199b17b9c6 Merge pull request #1274 from thatsIch/e-1273-deprecated
Closes #1273: Replaced deprecated method call
2015-04-23 23:42:42 +02:00
thatsIch f582c8081b Merge pull request #1275 from thatsIch/e-1270-nei-grinder-localization
Closes #1270: Improves NEI grinder overlay localization
2015-04-23 23:42:26 +02:00
thatsIch 77d66b1817 Merge pull request #1279 from thatsIch/b-1264-render-crash-missing-rf-api
Fixes #1264: Does not crash on missing RF API
2015-04-23 23:42:01 +02:00
thatsIch df370396b1 Merge pull request #1299 from thatsIch/e-qol-exception-messages
Improved exceptions
2015-04-23 23:41:44 +02:00
thatsIch ceeb84a439 Merge pull request #1302 from thatsIch/e-qol-parthelper
Removes unrequired part helper getter, since it already existed
2015-04-23 23:41:24 +02:00
yueh 9af6b50347 Merge pull request #1308 from yueh/fix-329
Replaced static field with with a unique BaseActionSource
2015-04-23 23:32:41 +02:00
yueh d151313253 Replaced static field with with a unique BaseActionSource
Fixes #329
2015-04-23 23:22:55 +02:00
yueh 6d935cc8ae Merge pull request #1311 from yueh/fix-1310
Refactored the NEI handling to use an InventoryAdaptor
2015-04-23 23:17:11 +02:00
yueh 1396dbf600 Merge pull request #1312 from yueh/fix-456
Fixed interface dropping items into itself
2015-04-23 23:17:05 +02:00
thatsIch 8087a43df5 Fixes #1186: Storage Cells drop upgrades upon disassembling 2015-04-23 22:54:10 +02:00
yueh c2cd395ca1 Fixed interface dropping items into itself
Fixes #456
2015-04-23 15:57:12 +02:00
yueh a6e2975677 Refactored the NEI handling to use an InventoryAdaptor
Fixes #1310
2015-04-23 15:00:34 +02:00
thatsIch 3783ae8619 Improved exceptions
Many exceptions got an improvement due to changed class or description or details it is providing.
Is not complete, needs to be done in patches in the regions, where it is needed, since some are just
swallowed.

Removed total usage of pure RuntimeExceptions to 0.
2015-04-21 17:43:24 +02:00
thatsIch be17616836 Removes unrequired part helper getter, since it already existed 2015-04-20 21:12:03 +02:00
thatsIch 36c72d641f Merge pull request #1282 from theelixzammuto/rv2
Update it_IT.lang
2015-04-14 18:38:06 +02:00
theelixzammuto f878a7598d Update it_IT.lang 2015-04-14 18:07:07 +02:00
thatsIch 071ae6d680 Fixes #1264: Does not crash on missing RF API 2015-04-13 22:15:39 +02:00
thatsIch cc29230ce5 Fixes #1256: Using new size logic to determine the abbreviation for a stack size
Removes the usage of the old methods, since they were pretty, but not applicable for our use case. The displayed strings are determined by the size of the to be rendered string. Now the algorithm tries to use as much width as possible before trying to trim it down.

Added tests to reflect the changes and expected behaviour. Also using specific interfaces for the corresponding behaviour to shield from potential calls to the underlying enum singleton implementation.
2015-04-13 14:59:44 +02:00
thatsIch b282e5d968 Closes #1270: Improves NEI grinder overlay localization 2015-04-13 12:53:55 +02:00
thatsIch 3410db7b45 Closes #1273: Replaced deprecated method call 2015-04-13 12:32:53 +02:00
thatsIch 800c30e91c Fixes #1271: Added missing pack.mcmeta
Was missing in the resource management of the build script to be handled
2015-04-13 12:25:54 +02:00
thatsIch 817163dbf6 Merge pull request #1240 from bakaxyf/rv2
Update zh_CN.lang
2015-04-08 21:03:31 +02:00
thatsIch d164e279ef Merge pull request #1238 from thatsIch/b-1202-item-count
Fixes #1202: Now 10000x is the limit before being converted to next bigger unit
2015-04-08 15:35:07 +02:00
bakaxyf 4f9b8db6fc Update zh_CN.lang 2015-04-08 12:16:13 +08:00
thatsIch b58c92ebb6 Fixes #1202: Now 10000x items is the limit before being converted to next bigger unit
Added a new method to display a number in a long fashion.
Added respective unit tests for them
2015-04-07 23:46:52 +02:00
yueh 2667b8eac6 Merge pull request #1233 from yueh/fix-1230
Changed to LinkedHashSet to maintain insertion order
2015-04-07 12:50:27 +02:00
yueh 235fad439d Merge pull request #1228 from yueh/fix-1222
Changed the order as WATs are special and needing a position
2015-04-07 12:50:21 +02:00
yueh fcea444041 Changed to LinkedHashSet to maintain insertion order
Fixes #1230
2015-04-07 12:28:45 +02:00
yueh 80f56d4359 Changed the order as WATs are special and needing a position
Fixes #1222
2015-04-07 00:17:55 +02:00
thatsIch f14bfa7d53 Merge pull request #1227 from bakaxyf/rv2
Update zh_CN.lang
2015-04-06 22:42:57 +02:00
bakaxyf a7d55ee520 Update zh_CN.lang 2015-04-07 04:39:19 +08:00
thatsIch 7382897e8e Merge pull request #1225 from thatsIch/b-dev-jar-duplicates
Deobfuscated version for Developers contains no dupes anymore
2015-04-06 20:31:48 +02:00
thatsIch aac2b598ea Merge pull request #1221 from Adaptivity/rv2
Update ru_RU.lang
2015-04-06 20:30:44 +02:00
thatsIch 0f31cd43d2 Deobfuscated version for Developers contains no dupes anymore 2015-04-06 19:42:20 +02:00
yueh 788de6d432 Merge pull request #964 from yueh/fix-889
Fixes #889 possible dupe bug
2015-04-06 15:54:23 +02:00
thatsIch 04a6a683bc Merge pull request #1220 from thatsIch/e-1219-hardcoded-localizations
Fixes #1219: Improved localization options
2015-04-06 15:44:36 +02:00
thatsIch 25e433f7bd Merge pull request #1215 from thatsIch/e-1054-inscriber-api
Closes #1054: Adds an Inscriber API for Developers
2015-04-06 15:44:27 +02:00
Anton fbc44f47c8 Update ru_RU.lang 2015-04-06 16:32:05 +03:00
thatsIch 06bca227d0 Closes #1054: Adds an Inscriber API for Developers 2015-04-06 13:45:27 +02:00
thatsIch 8321a5fe1c Fixes #1219: Improved localization options 2015-04-06 13:37:40 +02:00
yueh 1bb8de3570 Merge pull request #1216 from yueh/cleanup-modifier-order
Modifier are now using a consistent order based on the java conventions
2015-04-06 13:31:21 +02:00
thatsIch 8666937117 Merge pull request #1210 from thatsIch/e-1207-channels
Fixes #1207 → Enables resource packs more fine tuned information in WAILA channel display
2015-04-06 13:09:54 +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 a30ef4679c Fixes #1207 → Enables resource packs more fine tuned information in WAILA channel display 2015-04-05 23:06:31 +02:00
yueh 0ee2ca72ac Merge pull request #1206 from yueh/fix-1068
Stops AEBaseItemBlock from modifying the metadata before placing.
2015-04-05 20:47:31 +02:00
thatsIch 881bb919da Merge pull request #1205 from thatsIch/b-npe-on-random-smashing-button
Fixes NPE on random button smashing
2015-04-05 20:18:10 +02:00
thatsIch 5ecd68d5b6 Merge pull request #1209 from thatsIch/b-integration-with-gradle
Fixes integration bug for Resources between Gradle and IntelliJ, does not affect Eclipse
2015-04-05 20:18:03 +02:00
thatsIch e2d0e5d424 Dont use instance reference for static references 2015-04-05 15:59:23 +02:00
thatsIch e3bf7d63c0 Split one liner declarations 2015-04-05 15:57:37 +02:00
thatsIch 3fedcf273b Remove random semicolons 2015-04-05 15:56:10 +02:00
thatsIch 8042dbb3db Fixes integration bug for Resources between Gradle and IntelliJ, does not affect Eclipse 2015-04-05 15:25:26 +02:00
yueh e7e397c412 Stops AEBaseItemBlock from modifying the metadata before placing. 2015-04-05 14:01:42 +02:00
thatsIch ecc472a692 Fixes NPE on random button smashing 2015-04-05 13:07:19 +02:00
thatsIch 9790d9fd93 Merge pull request #1187 from thatsIch/b-1059-fmp-disables-interfaces
Fixes #1059 FMP like TileEntities are not valid Interface targets anymore
2015-04-04 14:55:21 +02:00
yueh f3f89344b4 Merge pull request #1192 from yueh/fix-1191
Moved AEBaseBlock.setFeature() to the end of any constructor.
2015-04-04 14:40:35 +02:00
thatsIch bac94b67b8 Merge pull request #1199 from thatsIch/b-skychest-invtweaks-interaction
Fixes interaction bug between Sky Stone Chest and Inventory Tweaks
2015-04-04 14:33:06 +02:00
thatsIch ba1afcca38 Merge pull request #1198 from thatsIch/e-1197-ae-vibration
Fixes #1197 Vibration Chamber does produce AE, not ae
2015-04-04 14:32:54 +02:00
thatsIch bb1c341c95 Fixes #1059 FMP Blocks don't disturb the ME Interface identifier 2015-04-04 14:32:17 +02:00
thatsIch 2ef04f1303 Fixes interaction bug between Sky Stone Chest and Inventory Tweaks upon sort via space + click 2015-04-04 12:56:42 +02:00
thatsIch 632d048ee2 Fixes #1197 Vibration Chamber does produce AE, not ae 2015-04-04 12:26:15 +02:00
yueh adea6b3dec Moved AEBaseBlock.setFeature() to the end of any constructor.
Otherwise it can cause a registration of incomplete blocks, like missing
subtypes.
2015-04-04 01:31:51 +02:00
yueh 5416ea2365 Fixes 889 possible dupe bug
Adds a hotfix to prevent duping with portable cells.
Should possibly fix the NPE crash with switching slots on laggy servers.
2015-04-03 17:23:17 +02:00
598 changed files with 10543 additions and 2072 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
!gradlew
!gradlew.bat
!build.gradle
!build.properties
!gradle.properties
# include markdowns
!README.md
+15 -11
View File
@@ -1,3 +1,6 @@
<!--[![Latest Release](https://img.shields.io/github/tag/AppliedEnergistics/Applied-Energistics-2.svg?label=Latest Release)](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases) -->
[![Latest Build](https://img.shields.io/teamcity/http/ci.tsr.me/s/AppliedEnergistics_AutoHeadBuild.svg?label=Latest Build)](http://ci.tsr.me/viewType.html?buildTypeId=AppliedEnergistics_AutoHeadBuild&tab=buildTypeStatusDiv)
# Applied Energistics 2
## Table of Contents
@@ -26,12 +29,17 @@ A Mod about Matter, Energy and using them to conquer the world..
## License
Applied Energistics 2 API is (c) 2013 - 2014 AlgorithmX2 and licensed under MIT.
Applied Energistics 2 is (c) 2013 - 2014 AlgorithmX2 and licensed under LGPL v3.
See the LICENSE.txt for details or go to http://www.gnu.org/licenses/lgpl-3.0.txt for more information.
Textures and Models are licensed under [Creative Commons, Attribution-NonCommercial-ShareAlike 3.0]( https://creativecommons.org/licenses/by-nc-sa/3.0/).
* Applied Energistics 2 API
- (c) 2013 - 2015 AlgorithmX2 et al
- ![License](https://img.shields.io/badge/License-MIT-red.svg?style=flat)
* Applied Energistics 2
- (c) 2013 - 2015 AlgorithmX2 et al
- [![License](https://img.shields.io/badge/License-LGPLv3-blue.svg?style=flat)](https://raw.githubusercontent.com/AppliedEnergistics/Applied-Energistics-2/rv2/LICENSE)
* Textures and Models
- (c) 2013 - 2015 AlgorithmX2 et al
- [![License](https://img.shields.io/badge/License-CC%20BY--NC--SA%203.0-yellow.svg?style=flat)](https://creativecommons.org/licenses/by-nc-sa/3.0/)
* Text and Translations
- ![License](https://img.shields.io/badge/License-No%20Restriction-green.svg?style=flat)
## Downloads
@@ -103,7 +111,7 @@ Getting Started
6. Push to your fork `git push`
7. Create a Pull-Request on GitHub
8. Wait for review
9. Suqash commits for cleaner history
9. Squash commits for cleaner history
If you are only doing single file pull requests, GitHub supports using a quick way without the need of cloning your fork. Also read up about [synching](https://help.github.com/articles/syncing-a-fork) if you plan to contribute on regular basis.
@@ -137,10 +145,6 @@ An example string would be `appeng:appliedenergistics2:rv2-alpha-30:dev`
Files must be encoded as UTF-8.
### License
All Text and Translations submitted here can be used for any purpose, and may be re-distributed or used without any limitations.
### New Translations
You can provide any additional languages by creating a new file with the [appropriate language code](http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm).
+10 -7
View File
@@ -18,13 +18,15 @@
apply plugin: 'forge'
apply from: 'gradle/scripts/propertyloader.gradle'
apply from: 'gradle/scripts/dependencies.gradle'
apply from: 'gradle/scripts/artifacts.gradle'
apply from: 'gradle/scripts/autoinstallruntime.gradle'
apply from: 'gradle/scripts/integration.gradle'
apply from: 'gradle/scripts/optional.gradle'
buildscript {
repositories {
mavenLocal()
mavenCentral()
maven {
@@ -50,9 +52,9 @@ configurations.all {
sourceCompatibility = JavaVersion.VERSION_1_6
targetCompatibility = JavaVersion.VERSION_1_6
version = config.version + "-" + config.aechannel + "-" + config.build
group = config.group
archivesBaseName = config.archivesBaseName
version = aeversion + "-" + aechannel + "-" + aebuild
group = aegroup
archivesBaseName = aebasename
// If TeamCity is running this build, lets set the version info
if (hasProperty("teamcity")) {
@@ -77,11 +79,11 @@ jar {
}
minecraft {
version = config.minecraft_version + "-" + config.forge_version
version = minecraft_version + "-" + forge_version
replaceIn "AEConfig.java"
replace "@version@", project.version
replace "@aechannel@", config.aechannel
replace "@aechannel@", aechannel
// used when launching minecraft in dev env
runDir = "run"
@@ -110,6 +112,7 @@ processResources {
// replace stuff in mcmod.info, nothing else
from(sourceSets.main.resources.srcDirs) {
include 'mcmod.info'
expand 'version': project.version, 'mcversion': config.minecraft_version
expand 'version': project.version, 'mcversion': minecraft_version
include 'pack.mcmeta'
}
}
-41
View File
@@ -1,41 +0,0 @@
version=rv2
aechannel=beta
build=0
group=appeng
archivesBaseName=appliedenergistics2
#########################################################
# Versions #
#########################################################
minecraft_version=1.7.10
forge_version=10.13.2.1291
#########################################################
# APIs used for development #
#########################################################
cb_minecraft_version=1.7.10
fmp_version=1.1.1.324
code_chicken_lib_version=1.1.3.127
code_chicken_core_version=1.0.4.35
nei_version=1.0.4.90
bc_version=6.4.6
#########################################################
# API Stubs #
# Note: Do not edit these version numbers as they are #
# not the version of the mod, but stub code for AE2 to #
# compile #
#########################################################
api_betterstorage_version=1
api_coloredlightscore_version=1
api_craftguide_version=1
api_ic2_version=1
api_immibis_version=1
api_invtweaks_version=1
api_mekansim_version=1.7.10-8.0.1.198
api_mfr_version=1
api_railcraft_version=1
api_rblocks_version=1
api_rf_version=2
api_rotarycraft_version=V5c
api_waila_version=1.5.10_1.7.10
+57
View File
@@ -0,0 +1,57 @@
aeversion=rv2
aechannel=stable
aebuild=0
aegroup=appeng
aebasename=appliedenergistics2
#########################################################
# Versions #
#########################################################
minecraft_version=1.7.10
forge_version=10.13.2.1291
#########################################################
# Installable #
#########################################################
waila_version=1.5.10
jabba_version=1.2.1a
enderstorage_version=1.4.7.33
translocator_version=1.1.1.14
ic2_version=2.2.717
enderio_version=2.3.0.375_beta
#cofhlib_version=1.0.1-157
#cofhcore_version=3.0.2-270
#texpansion_version=4.0.0-176
#tfoundation_version=1.0.0-82
betterstorage_version=0.11.3.123.20
invtweaks_version=1.58
#########################################################
# Provided APIs #
#########################################################
fmp_version=1.1.1.324
code_chicken_lib_version=1.1.3.127
code_chicken_core_version=1.0.4.35
nei_version=1.0.4.90
bc_version=7.0.9
#########################################################
# Self Compiled APIs #
#########################################################
mekansim_version=8.0.1.198
rotarycraft_version=V6e
#########################################################
# Self Compiled API Stubs #
# Note: Do not edit these version numbers as they are #
# not the version of the mod, but stub code for AE2 to #
# compile #
#########################################################
api_coloredlightscore_version=1
api_craftguide_version=1
api_immibis_version=1
api_mfr_version=1
api_railcraft_version=1
api_rblocks_version=1
api_rf_version=2
+82 -21
View File
@@ -19,14 +19,14 @@
repositories {
mavenLocal()
maven {
name 'CB Maven FS'
name "ChickenBones"
url "http://chickenbones.net/maven/"
}
maven {
name "Waila Mobius Repo"
name "Mobius"
url "http://mobiusstrip.eu/maven"
}
@@ -34,31 +34,92 @@ repositories {
name "FireBall API Depot"
url "http://dl.tsr.me/artifactory/libs-release-local"
}
maven {
name = "Player"
url = "http://maven.ic2.player.to/"
}
maven {
name = "Tterrag"
url = "http://maven.tterrag.com/"
}
maven {
name = "RX14 Proxy"
url = "http://mvn.rx14.co.uk/repo/"
}
ivy {
name "BuildCraft"
artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
}
// CurseForge DNS for TE is not available or I am just being unlucky, code part can stay since this is applicable to any other curseforge mod though
// ivy {
// name = "CoFHLib"
// artifactPattern "http://addons.cursecdn.com/files/2212/893/[module]-[revision].[ext]"
// }
//
// ivy {
// name = "CoFHCore"
// artifactPattern "http://addons.cursecdn.com/files/2212/895/[module]-[revision].[ext]"
// }
// ivy {
// name = "ThermalExpansion"
// artifactPattern "http://addons.curse.cursecdn.com/files/2212/446/[module]-[revision].[ext]"
// }
// ivy {
// name = "ThermalFoundation"
// artifactPattern "http://addons.curse.cursecdn.com/files/2212/444/[module]-[revision].[ext]"
// }
}
configurations {
mods
}
dependencies {
// installable
mods "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev"
mods "mcp.mobius.jabba:Jabba:${jabba_version}_${minecraft_version}:dev"
mods "codechicken:EnderStorage:${minecraft_version}-${enderstorage_version}:dev"
mods "codechicken:Translocator:${minecraft_version}-${translocator_version}:dev"
mods "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:dev"
mods "com.enderio:EnderIO:${minecraft_version}-${enderio_version}:dev"
mods "net.mcft.copy.betterstorage:BetterStorage:${minecraft_version}-${betterstorage_version}:deobf"
mods "inventorytweaks:InventoryTweaks:${invtweaks_version}:deobf"
// mods name: 'CoFHLib', version: "[${minecraft_version}]${cofhlib_version}-dev", ext: 'jar'
// mods name: 'CoFHCore', version: "[${minecraft_version}]${cofhcore_version}-dev", ext: 'jar'
// mods name: 'ThermalExpansion', version: "[${minecraft_version}]${texpansion_version}-dev", ext: 'jar'
// mods name: 'ThermalFoundation', version: "[${minecraft_version}]${tfoundation_version}-dev", ext: 'jar'
compile "codechicken:ForgeMultipart:${config.cb_minecraft_version}-${config.fmp_version}:dev"
compile "codechicken:CodeChickenLib:${config.cb_minecraft_version}-${config.code_chicken_lib_version}:dev"
compile "codechicken:CodeChickenCore:${config.cb_minecraft_version}-${config.code_chicken_core_version}:dev"
compile "codechicken:NotEnoughItems:${config.cb_minecraft_version}-${config.nei_version}:dev"
compile "codechicken:ForgeMultipart:${minecraft_version}-${fmp_version}:dev"
compile "codechicken:CodeChickenLib:${minecraft_version}-${code_chicken_lib_version}:dev"
compile "codechicken:CodeChickenCore:${minecraft_version}-${code_chicken_core_version}:dev"
compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev"
compile "com.mod-buildcraft:buildcraft:${bc_version}:dev"
compile "com.mod-buildcraft:buildcraft:${config.bc_version}:dev"
// provided APIs
compile "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:api"
compile "net.mcft.copy.betterstorage:BetterStorage:${minecraft_version}-${betterstorage_version}:api"
// self compiled APIs
compile(group: 'api', name: 'betterstorage', version: "${config.api_betterstorage_version}")
compile(group: 'api', name: 'coloredlightscore', version: "${config.api_coloredlightscore_version}")
compile(group: 'api', name: 'craftguide', version: "${config.api_craftguide_version}")
compile(group: 'api', name: 'ic2', version: "${config.api_ic2_version}")
compile(group: 'api', name: 'immibis', version: "${config.api_immibis_version}")
compile(group: 'api', name: 'invtweaks', version: "${config.api_invtweaks_version}")
compile(group: 'api', name: 'mfr', version: "${config.api_mfr_version}")
compile(group: 'api', name: 'railcraft', version: "${config.api_railcraft_version}")
compile(group: 'api', name: 'rblocks', version: "${config.api_rblocks_version}")
compile(group: 'api', name: 'rf', version: "${config.api_rf_version}")
compile "appeng:Waila:${config.api_waila_version}:api"
compile "appeng:RotaryCraft:${config.api_rotarycraft_version}:api"
compile "appeng:mekanism:${config.api_mekansim_version}:api"
compile "appeng:Waila:${waila_version}_${minecraft_version}:api"
compile "appeng:RotaryCraft:${rotarycraft_version}:api"
compile "appeng:mekanism:${minecraft_version}-${mekansim_version}:api"
compile "appeng:InventoryTweaks:${invtweaks_version}:api"
// self compiled stubs
compile(group: 'api', name: 'coloredlightscore', version: "${api_coloredlightscore_version}")
compile(group: 'api', name: 'craftguide', version: "${api_craftguide_version}")
compile(group: 'api', name: 'immibis', version: "${api_immibis_version}")
compile(group: 'api', name: 'mfr', version: "${api_mfr_version}")
compile(group: 'api', name: 'railcraft', version: "${api_railcraft_version}")
compile(group: 'api', name: 'rblocks', version: "${api_rblocks_version}")
compile(group: 'api', name: 'rf', version: "${api_rf_version}")
testCompile "junit:junit:4.11"
}
+7
View File
@@ -0,0 +1,7 @@
apply plugin: 'idea'
idea {
module {
inheritOutputDirs = true
}
}
+106
View File
@@ -0,0 +1,106 @@
task wrapper(type: Wrapper) {
gradleVersion = "2.3"
}
// WAILA
task installWaila(type: Copy, dependsOn: "deinstallWaila") {
from { configurations.mods }
include "**/*Waila*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallWaila(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Waila*.jar")
}
// JABBA
task installJabba(type: Copy, dependsOn: "deinstallJabba") {
from { configurations.mods }
include "**/*Jabba*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallJabba(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Jabba*.jar")
}
// ENDER STORAGE
task installEnderStorage(type: Copy, dependsOn: "deinstallEnderStorage") {
from { configurations.mods }
include "**/*EnderStorage*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallEnderStorage(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*EnderStorage*.jar")
}
// TRANSLOCATOR
task installTranslocator(type: Copy, dependsOn: "deinstallTranslocator") {
from { configurations.mods }
include "**/*Translocator*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallTranslocator(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Translocator*.jar")
}
// INDUSTRIALCRAFT
task installIC2(type: Copy, dependsOn: "deinstallIC2") {
from { configurations.mods }
include "**/*industrialcraft*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallIC2(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*industrialcraft*.jar")
}
// ENDER IO
task installEnderIO(type: Copy, dependsOn: "deinstallEnderIO") {
from { configurations.mods }
include "**/*EnderIO*dev.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallEnderIO(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*EnderIO*.jar")
}
// TE
//task installTE(type: Copy, dependsOn: "deinstallTE") {
// from { configurations.mods }
// include "**/*CoFHLib*.jar"
// include "**/*CoFHCore*.jar"
// include "**/*ThermalFoundation*.jar"
// include "**/*ThermalExpansion*.jar"
//
// into file(minecraft.runDir + "/mods")
//}
//
//task deinstallTE(type: Delete) {
// delete fileTree(dir: minecraft.runDir + "/mods", includes: ["*CoFHLib*.jar", "*CoFHCore*.jar", "*ThermalFoundation*.jar", "*ThermalExpansion*.jar"])
//}
// INV TWEAKS
task installInvTweaks(type: Copy, dependsOn: "deinstallInvTweaks") {
from { configurations.mods }
include "**/*InventoryTweaks*dev*.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallInvTweaks(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*InventoryTweaks*.jar")
}
// BETTER STORAGE
task installBetterStorage(type: Copy, dependsOn: "deinstallBetterStorage") {
from { configurations.mods }
include "**/*BetterStorage*deobf*.jar"
into file(minecraft.runDir + "/mods")
}
task deinstallBetterStorage(type: Delete) {
delete fileTree(dir: minecraft.runDir + "/mods", include: "*BetterStorage*.jar")
}
-9
View File
@@ -1,9 +0,0 @@
// define the properties file
ext.configFile = file "build.properties"
configFile.withReader {
// read config. it shall from now on be referenced as simply config or as project.config
def prop = new Properties()
prop.load(it)
project.ext.config = new ConfigSlurper().parse prop
}
Binary file not shown.
+2 -2
View File
@@ -1,6 +1,6 @@
#Sat Sep 13 21:58:22 CEST 2014
#Sat May 02 19:28:20 CEST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
@@ -29,8 +29,8 @@ public enum FuzzyMode
// Note that percentage damaged, is the inverse of percentage durability.
IGNORE_ALL( -1 ), PERCENT_99( 0 ), PERCENT_75( 25 ), PERCENT_50( 50 ), PERCENT_25( 75 );
final public float breakPoint;
final public float percentage;
public final float breakPoint;
public final float percentage;
FuzzyMode( float p )
{
@@ -35,7 +35,7 @@ public enum PowerUnits
/**
* unlocalized name for the power unit.
*/
final public String unlocalizedName;
public final String unlocalizedName;
/**
* please do not edit this value, it is set when AE loads its config files.
*/
@@ -57,7 +57,7 @@ public enum SecurityPermissions
*/
SECURITY;
final private String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
private final String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
public String getUnlocalizedName()
{
+10 -6
View File
@@ -25,6 +25,7 @@ package appeng.api.config;
import java.util.EnumSet;
import javax.annotation.Nonnull;
public enum Settings
@@ -55,16 +56,19 @@ public enum Settings
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) );
private final EnumSet values;
private final EnumSet<? extends Enum<?>> values;
Settings( EnumSet set )
Settings( @Nonnull EnumSet<? extends Enum<?>> possibleOptions )
{
if( set == null || set.isEmpty() )
throw new RuntimeException( "Invalid configuration." );
this.values = set;
if ( possibleOptions.isEmpty() )
{
throw new IllegalArgumentException( "Tried to instantiate an empty setting." );
}
this.values = possibleOptions;
}
public EnumSet getPossibleValues()
public EnumSet<? extends Enum<?>> getPossibleValues()
{
return this.values;
}
@@ -3,6 +3,7 @@ package appeng.api.definitions;
import net.minecraft.block.Block;
import net.minecraft.item.ItemBlock;
import net.minecraft.world.IBlockAccess;
import com.google.common.base.Optional;
@@ -18,4 +19,16 @@ public interface IBlockDefinition extends IItemDefinition
* @return the {@link ItemBlock} implementation if applicable
*/
Optional<ItemBlock> maybeItemBlock();
/**
* Compare Block with world.
*
* @param world world of block
* @param x x pos of block
* @param y y pos of block
* @param z z pos of block
*
* @return if the block is placed in the world at the specific location.
*/
boolean isSameAs( IBlockAccess world, int x, int y, int z );
}
@@ -7,6 +7,10 @@ import net.minecraft.world.IBlockAccess;
/**
* Interface to compare a definition with an itemstack or a block
*
* @author thatsIch
* @version rv2
* @since rv2
*/
public interface IComparableDefinition
{
@@ -28,6 +32,9 @@ public interface IComparableDefinition
* @param z z pos of block
*
* @return if the block is placed in the world at the specific location.
*
* @deprecated moved to {@link IBlockDefinition}. Is removed in the next major release rv3
*/
@Deprecated
boolean isSameAs( IBlockAccess world, int x, int y, int z );
}
@@ -37,8 +37,8 @@ import appeng.api.features.ILocatable;
public class LocatableEventAnnounce extends Event
{
final public ILocatable target;
final public LocatableEvent change;
public final ILocatable target;
public final LocatableEvent change;
public LocatableEventAnnounce( ILocatable o, LocatableEvent ev )
{
@@ -0,0 +1,65 @@
package appeng.api.features;
import java.util.List;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
import com.google.common.base.Optional;
/**
* Registration Records for {@link IInscriberRegistry}
*
* You have to pay attention though, that recipes are not mirrored,
* where the top and bottom slots are switching places.
*
* This is applied on runtime.
*
* @author thatsIch
* @version rv2
* @since rv2
*/
public interface IInscriberRecipe
{
/**
* the current inputs
*
* @return inputs the inscriber will accept
*/
@Nonnull
List<ItemStack> getInputs();
/**
* gets the current output
*
* @return output that the recipe will produce
*/
@Nonnull
ItemStack getOutput();
/**
* gets the top optional
*
* @return item which is used top
*/
@Nonnull
Optional<ItemStack> getTopOptional();
/**
* gets the bottom optional
*
* @return item which is used bottom
*/
@Nonnull
Optional<ItemStack> getBottomOptional();
/**
* type of inscriber process
*
* @return type of process the inscriber is doing
*/
@Nonnull
InscriberProcessType getProcessType();
}
@@ -0,0 +1,88 @@
package appeng.api.features;
import java.util.Collection;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
/**
* Builder for an inscriber recipe
*
* @author thatsIch
* @version rv2
* @since rv2
*/
public interface IInscriberRecipeBuilder
{
/**
* Creates an inscriber recipe with inputs.
* Needs to be invoked.
*
* @param inputs new inputs for the recipe
*
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withInputs( @Nonnull Collection<ItemStack> inputs );
/**
* Creates an inscriber recipe with output.
* Needs to be invoked.
*
* @param output new output for the recipe
*
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withOutput( @Nonnull ItemStack output );
/**
* Creates an inscriber recipe with top.
* Either this or bot needs to be invoked.
*
* @param topOptional new top for the recipe
*
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withTopOptional( @Nonnull ItemStack topOptional );
/**
* Creates an inscriber recipe with bot.
* Either this or top needs to be invoked.
*
* @param bottomOptional new bot for the recipe
*
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withBottomOptional( @Nonnull ItemStack bottomOptional );
/**
* Creates an inscriber recipe with type.
* Needs to be invoked.
*
* @param type new type for the recipe
*
* @return currently used builder
*/
@Nonnull
IInscriberRecipeBuilder withProcessType( @Nonnull InscriberProcessType type );
/**
* Finalizes the process of making the recipe.
* Needs to be invoked to fetch inscriber recipe.
*
* @return legal inscriber recipe
*
* @throws IllegalStateException when input is not defined
* @throws IllegalStateException when input has no size
* @throws IllegalStateException when output is not defined
* @throws IllegalStateException when both optionals are not defined
* @throws IllegalStateException when process type is not defined
*/
@Nonnull
IInscriberRecipe build();
}
@@ -0,0 +1,69 @@
package appeng.api.features;
import java.util.List;
import java.util.Set;
import javax.annotation.Nonnull;
import net.minecraft.item.ItemStack;
/**
* Lets you manipulate Inscriber Recipes, by adding or editing existing ones.
*
* @author thatsIch
* @version rv2
* @since rv2
*/
public interface IInscriberRegistry
{
/**
* Current list of registered recipes, you can modify this if you want too.
* Will never contain a null recipe
*
* @return currentlyRegisteredRecipes
*/
@Nonnull
List<IInscriberRecipe> getRecipes();
/**
* Optional items which are used in the top or bottom slot
*
* @return set of all optional items
*/
@Nonnull
Set<ItemStack> getOptionals();
/**
* Get all registered items which are valid inputs
*
* @return set of all input items
*/
@Nonnull
Set<ItemStack> getInputs();
/**
* Extensible way to create an inscriber recipe
*
* @return builder for inscriber recipes
*/
@Nonnull
IInscriberRecipeBuilder builder();
/**
* add a new recipe the easy way, duplicates will not be added.
* Added recipes will be automatically added to the optionals and inputs.
*
* @param recipe new recipe
*
* @throws IllegalArgumentException if null is added
*/
void addRecipe( IInscriberRecipe recipe );
/**
* Removes a recipe from the registry
*
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense
*/
void removeRecipe( IInscriberRecipe toBeRemovedRecipe );
}
@@ -30,6 +30,12 @@ import appeng.api.storage.ICellRegistry;
import appeng.api.storage.IExternalStorageRegistry;
/**
* @author AlgorithmX2
* @author thatsIch
* @version rv2
* @since rv0
*/
public interface IRegistryContainer
{
@@ -69,6 +75,11 @@ public interface IRegistryContainer
*/
IGrinderRegistry grinder();
/**
* Manage inscriber recipes via API
*/
IInscriberRegistry inscriber();
/**
* get access to the locatable registry
*/
@@ -0,0 +1,15 @@
package appeng.api.features;
public enum InscriberProcessType
{
/**
* uses the optionals as catalyst
*/
Inscribe,
/**
* spends the optionals
*/
Press
}
@@ -59,9 +59,21 @@ public interface IStorageCell extends ICellWorkbenchItem
* @param cellItem item
*
* @return number of bytes
*
* @deprecated use {@link IStorageCell#getBytesPerType(ItemStack)}
*/
@Deprecated
int BytePerType( ItemStack cellItem );
/**
* Determines the number of bytes used for any type included on the cell.
*
* @param cellItem item
*
* @return number of bytes
*/
int getBytesPerType( ItemStack cellItem );
/**
* Must be between 1 and 63, indicates how many types you want to store on
* the item.
@@ -94,4 +94,4 @@ public interface IGrid
* @return the node considered the pivot point of the grid.
*/
IGridNode getPivot();
}
}
@@ -30,9 +30,9 @@ import net.minecraft.nbt.NBTTagCompound;
public class ResolverResult
{
final public String itemName;
final public int damageValue;
final public NBTTagCompound compound;
public final String itemName;
public final int damageValue;
public final NBTTagCompound compound;
public ResolverResult( String name, int damage )
{
@@ -80,7 +80,9 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
public StackType injectItems( StackType input, Actionable mode, BaseActionSource src )
{
if( mode == Actionable.SIMULATE )
{
return this.getHandler().injectItems( input, mode, src );
}
return this.monitorDifference( input.copy(), this.getHandler().injectItems( input, mode, src ), false, src );
}
@@ -94,12 +96,18 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
StackType diff = (StackType) original.copy();
if( extraction )
{
diff.setStackSize( leftOvers == null ? 0 : -leftOvers.getStackSize() );
}
else if( leftOvers != null )
{
diff.decStackSize( leftOvers.getStackSize() );
}
if( diff.getStackSize() != 0 )
{
this.postChangesToListeners( ImmutableList.of( diff ), src );
}
return leftOvers;
}
@@ -118,9 +126,13 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
Entry<IMEMonitorHandlerReceiver<StackType>, Object> o = i.next();
IMEMonitorHandlerReceiver<StackType> receiver = o.getKey();
if( receiver.isValid( o.getValue() ) )
{
receiver.postChange( this, diff, src );
}
else
{
i.remove();
}
}
}
@@ -133,7 +145,9 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
public StackType extractItems( StackType request, Actionable mode, BaseActionSource src )
{
if( mode == Actionable.SIMULATE )
{
return this.getHandler().extractItems( request, mode, src );
}
return this.monitorDifference( request.copy(), this.getHandler().extractItems( request, mode, src ), true, src );
}
@@ -53,8 +53,12 @@ public enum StorageChannel
public IItemList createList()
{
if( this == ITEMS )
{
return AEApi.instance().storage().createItemList();
}
else
{
return AEApi.instance().storage().createFluidList();
}
}
}
+4 -4
View File
@@ -77,22 +77,22 @@ public enum AEColor
/**
* Unlocalized name for color.
*/
final public String unlocalizedName;
public final String unlocalizedName;
/**
* Darkest Variant of the color, nearly black; as a RGB HEX Integer
*/
final public int blackVariant;
public final int blackVariant;
/**
* The Variant of the color that is used to represent the color normally; as a RGB HEX Integer
*/
final public int mediumVariant;
public final int mediumVariant;
/**
* Lightest Variant of the color, nearly white; as a RGB HEX Integer
*/
final public int whiteVariant;
public final int whiteVariant;
AEColor( String unlocalizedName, int blackHex, int medHex, int whiteHex )
{
@@ -105,22 +105,34 @@ public class WorldCoord
int zlen = Math.abs( oz );
if( loc.isEqual( this.copy().add( ForgeDirection.EAST, xlen ) ) )
{
return ForgeDirection.EAST;
}
if( loc.isEqual( this.copy().add( ForgeDirection.WEST, xlen ) ) )
{
return ForgeDirection.WEST;
}
if( loc.isEqual( this.copy().add( ForgeDirection.NORTH, zlen ) ) )
{
return ForgeDirection.NORTH;
}
if( loc.isEqual( this.copy().add( ForgeDirection.SOUTH, zlen ) ) )
{
return ForgeDirection.SOUTH;
}
if( loc.isEqual( this.copy().add( ForgeDirection.UP, ylen ) ) )
{
return ForgeDirection.UP;
}
if( loc.isEqual( this.copy().add( ForgeDirection.DOWN, ylen ) ) )
{
return ForgeDirection.DOWN;
}
return null;
}
+96 -15
View File
@@ -117,13 +117,21 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
super( mat );
if( mat == AEGlassMaterial.INSTANCE || mat == Material.glass )
{
this.setStepSound( Block.soundTypeGlass );
}
else if( mat == Material.rock )
{
this.setStepSound( Block.soundTypeStone );
}
else if( mat == Material.wood )
{
this.setStepSound( Block.soundTypeWood );
}
else
{
this.setStepSound( Block.soundTypeMetal );
}
this.featureFullName = new FeatureNameExtractor( c, subName ).get();
this.featureSubName = subName;
@@ -152,15 +160,24 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
public BlockRenderInfo getRendererInstance()
{
if( this.renderInfo != null )
{
return this.renderInfo;
}
try
{
return this.renderInfo = new BlockRenderInfo( this.getRenderer().newInstance() );
final BaseBlockRender renderer = this.getRenderer().newInstance();
this.renderInfo = new BlockRenderInfo( renderer );
return this.renderInfo;
}
catch( Throwable t )
catch ( InstantiationException e )
{
throw new RuntimeException( t );
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.getRenderer(), e );
}
catch( IllegalAccessException e )
{
throw new IllegalStateException( "Failed to create a new instance of " + this.getRenderer() + " because of permissions.", e );
}
}
@@ -196,7 +213,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
@Override
final public IFeatureHandler handler()
public final IFeatureHandler handler()
{
return this.handler;
}
@@ -236,7 +253,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
public IIcon getIcon( int direction, int metadata )
{
if( this.renderIcon != null )
{
return this.renderIcon;
}
return this.getRendererInstance().getTexture( ForgeDirection.getOrientation( direction ) );
}
@@ -249,12 +268,16 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
ICustomCollision collisionHandler = null;
if( this instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) this;
}
else
{
AEBaseTile te = this.getTileEntity( w, x, y, z );
if( te instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) te;
}
}
if( collisionHandler != null && bb != null )
@@ -270,27 +293,35 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
b.maxY += y;
b.maxZ += z;
if( bb.intersectsWith( b ) )
{
out.add( b );
}
}
}
else
{
super.addCollisionBoxesToList( w, x, y, z, bb, out, e );
}
}
@Override
@SideOnly( Side.CLIENT )
final public AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z )
public final AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z )
{
ICustomCollision collisionHandler = null;
AxisAlignedBB b = null;
if( this instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) this;
}
else
{
AEBaseTile te = this.getTileEntity( w, x, y, z );
if( te instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) te;
}
}
if( collisionHandler != null )
@@ -338,7 +369,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
for( AxisAlignedBB bx : collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, false ) )
{
if( b == null )
{
b = bx;
}
else
{
double minX = Math.min( b.minX, bx.minX );
@@ -354,13 +387,15 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
b.setBounds( b.minX + x, b.minY + y, b.minZ + z, b.maxX + x, b.maxY + y, b.maxZ + z );
}
else
{
b = super.getSelectedBoundingBoxFromPool( w, x, y, z );
}
return b;
}
@Override
final public boolean isOpaqueCube()
public final boolean isOpaqueCube()
{
return this.isOpaque;
}
@@ -371,12 +406,16 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
ICustomCollision collisionHandler = null;
if( this instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) this;
}
else
{
AEBaseTile te = this.getTileEntity( w, x, y, z );
if( te instanceof ICustomCollision )
{
collisionHandler = (ICustomCollision) te;
}
}
if( collisionHandler != null )
@@ -421,7 +460,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
@Override
final public boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
public final boolean onBlockActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
{
if( player != null )
{
@@ -437,10 +476,14 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
ItemStack[] drops = Platform.getBlockDrops( w, x, y, z );
if( tile == null )
{
return false;
}
if( tile instanceof TileCableBus || tile instanceof TileSkyChest )
{
return false;
}
ItemStack op = new ItemStack( this );
for( ItemStack ol : drops )
@@ -449,7 +492,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
{
NBTTagCompound tag = tile.downloadSettings( SettingsFrom.DISMANTLE_ITEM );
if( tag != null )
{
ol.setTagCompound( tag );
}
}
}
@@ -492,7 +537,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_LOADED );
}
else
{
memoryCard.notifyUser( player, MemoryCardMessages.INVALID_MACHINE );
}
return false;
}
}
@@ -514,7 +561,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
{
TileEntity te = this.getTileEntity( w, x, y, z );
if( te instanceof AEBaseTile )
{
( (AEBaseTile) w.getTileEntity( x, y, z ) ).setName( is.getDisplayName() );
}
}
}
@@ -537,7 +586,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
{
TileEntity te = this.getTileEntity( w, x, y, z );
if( te instanceof IInventory )
{
return Container.calcRedstoneFromInventory( (IInventory) te );
}
return 0;
}
@@ -566,13 +617,13 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
@Override
final public boolean isNormalCube( IBlockAccess world, int x, int y, int z )
public final boolean isNormalCube( IBlockAccess world, int x, int y, int z )
{
return this.isFullSize;
}
@Override
final public boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis )
public final boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis )
{
IOrientable rotatable = null;
@@ -630,7 +681,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
@Override
final public ForgeDirection[] getValidRotations( World w, int x, int y, int z )
public final ForgeDirection[] getValidRotations( World w, int x, int y, int z )
{
if( this.hasBlockTileEntity() )
{
@@ -671,7 +722,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
{
// if the input is an flippable IIcon find the original.
while( substitute instanceof FlippableIcon )
{
substitute = ( (FlippableIcon) substitute ).getOriginal();
}
if( substitute != null )
{
@@ -682,7 +735,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
IResource res = Minecraft.getMinecraft().getResourceManager().getResource( resLoc );
if( res != null )
{
return new FlippableIcon( ir.registerIcon( Name ) );
}
}
catch( Throwable e )
{
@@ -724,11 +779,15 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
public <T extends TileEntity> T getTileEntity( IBlockAccess w, int x, int y, int z )
{
if( !this.hasBlockTileEntity() )
{
return null;
}
TileEntity te = w.getTileEntity( x, y, z );
if( this.tileEntityType.isInstance( te ) )
{
return (T) te;
}
return null;
}
@@ -747,30 +806,48 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
ForgeDirection west = ForgeDirection.UNKNOWN;
if( forward == null || up == null )
{
return dir;
}
int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY;
int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ;
int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX;
for( ForgeDirection dx : ForgeDirection.VALID_DIRECTIONS )
{
if( dx.offsetX == west_x && dx.offsetY == west_y && dx.offsetZ == west_z )
{
west = dx;
}
}
if( dir == forward )
{
return ForgeDirection.SOUTH;
}
if( dir == forward.getOpposite() )
{
return ForgeDirection.NORTH;
}
if( dir == up )
{
return ForgeDirection.UP;
}
if( dir == up.getOpposite() )
{
return ForgeDirection.DOWN;
}
if( dir == west )
{
return ForgeDirection.WEST;
}
if( dir == west.getOpposite() )
{
return ForgeDirection.EAST;
}
return ForgeDirection.UNKNOWN;
}
@@ -787,7 +864,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
@Override
final public TileEntity createNewTileEntity( World var1, int var2 )
public final TileEntity createNewTileEntity( World var1, int var2 )
{
if( this.hasBlockTileEntity() )
{
@@ -797,13 +874,11 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
}
catch( InstantiationException e )
{
e.printStackTrace();
throw new RuntimeException( e );
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.tileEntityType , e );
}
catch( IllegalAccessException e )
{
e.printStackTrace();
throw new RuntimeException( e );
throw new IllegalStateException( "Failed to create a new instance of " + this.tileEntityType + ", because lack of permissions", e );
}
}
@@ -818,9 +893,13 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
{
ArrayList<ItemStack> drops = new ArrayList<ItemStack>();
if( te.dropItems() )
{
te.getDrops( w, x, y, z, drops );
}
else
{
te.getNoDrops( w, x, y, z, drops );
}
// Cry ;_; ...
Platform.spawnDrops( w, x, y, z, drops );
@@ -828,7 +907,9 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
super.breakBlock( w, x, y, z, a, b );
if( te != null )
{
w.setTileEntity( x, y, z, null );
}
}
public String getUnlocalizedName( ItemStack is )
@@ -56,14 +56,18 @@ public class AEBaseItemBlock extends ItemBlock
this.hasSubtypes = this.blockType.hasSubtypes;
if( Platform.isClient() )
{
MinecraftForgeClient.registerItemRenderer( this, ItemRenderer.INSTANCE );
}
}
@Override
public int getMetadata( int dmg )
{
if( this.hasSubtypes )
{
return dmg;
}
return 0;
}
@@ -107,17 +111,25 @@ public class AEBaseItemBlock extends ItemBlock
{
up = ForgeDirection.getOrientation( side );
if( up == ForgeDirection.UP || up == ForgeDirection.DOWN )
{
forward = ForgeDirection.SOUTH;
}
else
{
forward = ForgeDirection.UP;
}
}
else if( this.blockType instanceof BlockWireless || this.blockType instanceof BlockSkyCompass )
{
forward = ForgeDirection.getOrientation( side );
if( forward == ForgeDirection.UP || forward == ForgeDirection.DOWN )
{
up = ForgeDirection.SOUTH;
}
else
{
up = ForgeDirection.UP;
}
}
else
{
@@ -161,13 +173,15 @@ public class AEBaseItemBlock extends ItemBlock
up = ForgeDirection.getOrientation( side );
forward = ForgeDirection.SOUTH;
if( up.offsetY == 0 )
{
forward = ForgeDirection.UP;
ori.setOrientation( forward, up );
}
}
if( !this.blockType.isValidOrientation( w, x, y, z, forward, up ) )
{
return false;
}
if( super.placeBlockAt( stack, player, w, x, y, z, side, hitX, hitY, hitZ, metadata ) )
{
@@ -177,13 +191,17 @@ public class AEBaseItemBlock extends ItemBlock
ori = tile;
if( tile == null )
{
return true;
}
if( ori.canBeRotated() && !this.blockType.hasCustomRotation() )
{
if( ori.getForward() == null || ori.getUp() == null || // null
tile.getForward() == ForgeDirection.UNKNOWN || ori.getUp() == ForgeDirection.UNKNOWN )
{
ori.setOrientation( forward, up );
}
}
if( tile instanceof IGridProxyable )
@@ -89,13 +89,19 @@ public class BlockCraftingStorage extends BlockCraftingUnit
public String getUnlocalizedName( ItemStack is )
{
if( is.getItemDamage() == 1 )
{
return "tile.appliedenergistics2.BlockCraftingStorage4k";
}
if( is.getItemDamage() == 2 )
{
return "tile.appliedenergistics2.BlockCraftingStorage16k";
}
if( is.getItemDamage() == 3 )
{
return "tile.appliedenergistics2.BlockCraftingStorage64k";
}
return this.getItemUnlocalizedName( is );
}
@@ -94,7 +94,9 @@ public class BlockCraftingUnit extends AEBaseBlock
if( tg != null && !p.isSneaking() && tg.isFormed() && tg.isActive() )
{
if( Platform.isClient() )
{
return true;
}
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CRAFTING_CPU );
return true;
@@ -124,7 +126,9 @@ public class BlockCraftingUnit extends AEBaseBlock
{
TileCraftingTile cp = this.getTileEntity( w, x, y, z );
if( cp != null )
{
cp.breakCluster();
}
super.breakBlock( w, x, y, z, a, b );
}
@@ -133,7 +137,9 @@ public class BlockCraftingUnit extends AEBaseBlock
public String getUnlocalizedName( ItemStack is )
{
if( is.getItemDamage() == 1 )
{
return "tile.appliedenergistics2.BlockCraftingAccelerator";
}
return this.getItemUnlocalizedName( is );
}
@@ -148,7 +154,9 @@ public class BlockCraftingUnit extends AEBaseBlock
{
TileCraftingTile cp = this.getTileEntity( w, x, y, z );
if( cp != null )
{
cp.updateMultiBlock();
}
}
@Override
@@ -46,10 +46,10 @@ public class BlockMolecularAssembler extends AEBaseBlock
public BlockMolecularAssembler()
{
super( BlockMolecularAssembler.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.MolecularAssembler ) );
this.setTileEntity( TileMolecularAssembler.class );
this.isOpaque = false;
this.lightOpacity = 1;
this.setFeature( EnumSet.of( AEFeature.MolecularAssembler ) );
}
@Override
@@ -47,11 +47,11 @@ public class BlockCrank extends AEBaseBlock
public BlockCrank()
{
super( BlockCrank.class, Material.wood );
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
this.setTileEntity( TileCrank.class );
this.setLightOpacity( 0 );
this.setHarvestLevel( "axe", 0 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
}
@Override
@@ -117,10 +117,12 @@ public class BlockCrank extends AEBaseBlock
private ForgeDirection findCrankable( World world, int x, int y, int z )
{
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
{
if( this.isCrankable( world, x, y, z, dir ) )
{
return dir;
}
}
return ForgeDirection.UNKNOWN;
}
@@ -39,9 +39,9 @@ public class BlockGrinder extends AEBaseBlock
public BlockGrinder()
{
super( BlockGrinder.class, Material.rock );
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
this.setTileEntity( TileGrinder.class );
this.setHardness( 3.2F );
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
}
@Override
@@ -39,21 +39,25 @@ public class BlockCellWorkbench extends AEBaseBlock
public BlockCellWorkbench()
{
super( BlockCellWorkbench.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.StorageCells ) );
this.setTileEntity( TileCellWorkbench.class );
this.setFeature( EnumSet.of( AEFeature.StorageCells ) );
}
@Override
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileCellWorkbench tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CELL_WORKBENCH );
}
return true;
}
return false;
@@ -55,10 +55,10 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
public BlockCharger()
{
super( BlockCharger.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileCharger.class );
this.setLightOpacity( 2 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
@@ -71,7 +71,9 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
{
if( player.isSneaking() )
{
return false;
}
if( Platform.isServer() )
{
@@ -90,10 +92,14 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if( !AEConfig.instance.enableEffects )
{
return;
}
if( r.nextFloat() < 0.98 )
{
return;
}
AEBaseTile tile = this.getTileEntity( w, x, y, z );
if( tile instanceof TileCharger )
@@ -39,15 +39,17 @@ public class BlockCondenser extends AEBaseBlock
public BlockCondenser()
{
super( BlockCondenser.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileCondenser.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
{
if( player.isSneaking() )
{
return false;
}
if( Platform.isServer() )
{
@@ -41,10 +41,10 @@ public class BlockInscriber extends AEBaseBlock
public BlockInscriber()
{
super( BlockInscriber.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Inscriber ) );
this.setTileEntity( TileInscriber.class );
this.setLightOpacity( 2 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.Inscriber ) );
}
@Override
@@ -57,13 +57,17 @@ public class BlockInscriber extends AEBaseBlock
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileInscriber tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INSCRIBER );
}
return true;
}
return false;
@@ -42,8 +42,8 @@ public class BlockInterface extends AEBaseBlock
public BlockInterface()
{
super( BlockInterface.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileInterface.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
@@ -56,13 +56,17 @@ public class BlockInterface extends AEBaseBlock
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileInterface tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_INTERFACE );
}
return true;
}
return false;
@@ -38,15 +38,17 @@ public class BlockLightDetector extends BlockQuartzTorch
public BlockLightDetector()
{
super( BlockLightDetector.class );
this.setFeature( EnumSet.of( AEFeature.LightDetector ) );
this.setTileEntity( TileLightDetector.class );
this.setFeature( EnumSet.of( AEFeature.LightDetector ) );
}
@Override
public int isProvidingWeakPower( IBlockAccess w, int x, int y, int z, int side )
{
if( w instanceof World && ( (TileLightDetector) this.getTileEntity( w, x, y, z ) ).isReady() )
{
return ( (World) w ).getBlockLightValue( x, y, z ) - 6;
}
return 0;
}
@@ -58,7 +60,9 @@ public class BlockLightDetector extends BlockQuartzTorch
TileLightDetector tld = this.getTileEntity( world, x, y, z );
if( tld != null )
{
tld.updateLight();
}
}
@Override
@@ -50,11 +50,11 @@ public class BlockPaint extends AEBaseBlock
public BlockPaint()
{
super( BlockPaint.class, new MaterialLiquid( MapColor.airColor ) );
this.setFeature( EnumSet.of( AEFeature.PaintBalls ) );
this.setTileEntity( TilePaint.class );
this.setLightOpacity( 0 );
this.isFullSize = false;
this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.PaintBalls ) );
}
@Override
@@ -88,7 +88,9 @@ public class BlockPaint extends AEBaseBlock
TilePaint tp = this.getTileEntity( w, x, y, z );
if( tp != null )
{
tp.onNeighborBlockChange();
}
}
@Override
@@ -107,7 +109,9 @@ public class BlockPaint extends AEBaseBlock
public void fillWithRain( World w, int x, int y, int z )
{
if( Platform.isServer() )
{
w.setBlock( x, y, z, Platform.AIR, 0, 3 );
}
}
@Override
@@ -53,8 +53,8 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
{
super( BlockQuartzGrowthAccelerator.class, Material.rock );
this.setStepSound( Block.soundTypeMetal );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileQuartzGrowthAccelerator.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
@@ -68,7 +68,9 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if( !AEConfig.instance.enableEffects )
{
return;
}
TileQuartzGrowthAccelerator tileQuartzGrowthAccelerator = this.getTileEntity( w, x, y, z );
@@ -98,25 +100,33 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
dx = 0.6;
dz = d1;
if( !w.getBlock( x + west.offsetX, y + west.offsetY, z + west.offsetZ ).isAir( w, x + west.offsetX, y + west.offsetY, z + west.offsetZ ) )
{
return;
}
break;
case 1:
dx = d1;
dz += 0.6;
if( !w.getBlock( x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ ).isAir( w, x + forward.offsetX, y + forward.offsetY, z + forward.offsetZ ) )
{
return;
}
break;
case 2:
dx = d1;
dz = -0.6;
if( !w.getBlock( x - forward.offsetX, y - forward.offsetY, z - forward.offsetZ ).isAir( w, x - forward.offsetX, y - forward.offsetY, z - forward.offsetZ ) )
{
return;
}
break;
case 3:
dx = -0.6;
dz = d1;
if( !w.getBlock( x - west.offsetX, y - west.offsetY, z - west.offsetZ ).isAir( w, x - west.offsetX, y - west.offsetY, z - west.offsetZ ) )
{
return;
}
break;
}
@@ -55,8 +55,8 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
public BlockQuartzTorch()
{
this( BlockQuartzTorch.class );
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
this.setLightLevel( 0.9375F );
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
}
protected BlockQuartzTorch( Class which )
@@ -107,10 +107,14 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if( !AEConfig.instance.enableEffects )
{
return;
}
if( r.nextFloat() < 0.98 )
{
return;
}
ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
double xOff = -0.3 * up.offsetX;
@@ -132,7 +136,9 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
{
ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
if( !this.canPlaceAt( w, x, y, z, up.getOpposite() ) )
{
this.dropTorch( w, x, y, z );
}
}
private void dropTorch( World w, int x, int y, int z )
@@ -146,8 +152,12 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
public boolean canPlaceBlockAt( World w, int x, int y, int z )
{
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
{
if( this.canPlaceAt( w, x, y, z, dir ) )
{
return true;
}
}
return false;
}
@@ -41,8 +41,8 @@ public class BlockSecurity extends AEBaseBlock
public BlockSecurity()
{
super( BlockSecurity.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Security ) );
this.setTileEntity( TileSecurity.class );
this.setFeature( EnumSet.of( AEFeature.Security ) );
}
@Override
@@ -55,13 +55,17 @@ public class BlockSecurity extends AEBaseBlock
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileSecurity tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isClient() )
{
return true;
}
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_SECURITY );
return true;
@@ -50,10 +50,10 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
public BlockSkyCompass()
{
super( BlockSkyCompass.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.MeteoriteCompass ) );
this.setTileEntity( TileSkyCompass.class );
this.isOpaque = this.isFullSize = false;
this.lightOpacity = 0;
this.setFeature( EnumSet.of( AEFeature.MeteoriteCompass ) );
}
@Override
@@ -80,7 +80,9 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
{
TileSkyCompass sc = this.getTileEntity( w, x, y, z );
if( sc != null )
{
return false;
}
return this.canPlaceAt( w, x, y, z, forward.getOpposite() );
}
@@ -95,7 +97,9 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
TileSkyCompass sc = this.getTileEntity( w, x, y, z );
ForgeDirection up = sc.getForward();
if( !this.canPlaceAt( w, x, y, z, up.getOpposite() ) )
{
this.dropTorch( w, x, y, z );
}
}
private void dropTorch( World w, int x, int y, int z )
@@ -109,8 +113,12 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
public boolean canPlaceBlockAt( World w, int x, int y, int z )
{
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
{
if( this.canPlaceAt( w, x, y, z, dir ) )
{
return true;
}
}
return false;
}
@@ -59,12 +59,12 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
public BlockTinyTNT()
{
super( BlockTinyTNT.class, Material.tnt );
this.setFeature( EnumSet.of( AEFeature.TinyTNT ) );
this.setLightOpacity( 1 );
this.setBlockBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f );
this.isFullSize = this.isOpaque = false;
this.setStepSound( soundTypeGrass );
this.setHardness( 0F );
this.setFeature( EnumSet.of( AEFeature.TinyTNT ) );
EntityRegistry.registerModEntity( EntityTinyTNTPrimed.class, "EntityTinyTNTPrimed", EntityIds.TINY_TNT, AppEng.instance, 16, 4, true );
}
@@ -39,15 +39,15 @@ import appeng.tile.misc.TileVibrationChamber;
import appeng.util.Platform;
public class BlockVibrationChamber extends AEBaseBlock
public final class BlockVibrationChamber extends AEBaseBlock
{
public BlockVibrationChamber()
{
super( BlockVibrationChamber.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.PowerGen ) );
this.setTileEntity( TileVibrationChamber.class );
this.setHardness( 4.2F );
this.setFeature( EnumSet.of( AEFeature.PowerGen ) );
}
@Override
@@ -68,7 +68,9 @@ public class BlockVibrationChamber extends AEBaseBlock
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
{
if( player.isSneaking() )
{
return false;
}
if( Platform.isServer() )
{
@@ -87,7 +89,9 @@ public class BlockVibrationChamber extends AEBaseBlock
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if( !AEConfig.instance.enableEffects )
{
return;
}
AEBaseTile tile = this.getTileEntity( w, x, y, z );
if( tile instanceof TileVibrationChamber )
@@ -81,8 +81,8 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
{
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
static public Class<? extends TileEntity> noTesrTile;
static public Class<? extends TileEntity> tesrTile;
public static Class<? extends TileEntity> noTesrTile;
public static Class<? extends TileEntity> tesrTile;
/**
* Immibis MB Support.
*/
@@ -92,9 +92,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
public BlockCableBus()
{
super( BlockCableBus.class, AEGlassMaterial.INSTANCE );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setLightOpacity( 0 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
@@ -119,7 +119,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
public int getRenderBlockPass()
{
if( AEConfig.instance.isFeatureEnabled( AEFeature.AlphaPass ) )
{
return 1;
}
return 0;
}
@@ -162,7 +164,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
return block.getLightValue( world, x, y, z );
}
if( block == null )
{
return 0;
}
return this.cb( world, x, y, z ).getLightValue();
}
@@ -192,7 +196,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
{
AEBaseTile tile = this.getTileEntity( world, x, y, z );
if( tile != null )
{
tile.disableDrops();
}
// maybe ray trace?
}
return super.removedByPlayer( world, player, x, y, z );
@@ -224,21 +230,27 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
BusRenderHelper.INSTANCE.setPass( pass );
if( AEConfig.instance.isFeatureEnabled( AEFeature.AlphaPass ) )
{
return true;
}
return pass == 0;
}
@Override
public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z )
public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player )
{
Vec3 v3 = target.hitVec.addVector( -x, -y, -z );
SelectedPart sp = this.cb( world, x, y, z ).selectPart( v3 );
if( sp.part != null )
{
return sp.part.getItemStack( PartItemStack.Pick );
}
else if( sp.facade != null )
{
return sp.facade.getItemStack();
}
return null;
}
@@ -258,7 +270,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
IIcon ico = this.getIcon( p );
if( ico == null )
{
continue;
}
byte b0 = (byte) ( Platform.getRandomInt() % 2 == 0 ? 1 : 0 );
@@ -304,7 +318,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
IIcon ico = this.getIcon( p );
if( ico == null )
{
continue;
}
byte b0 = 3;
@@ -335,19 +351,25 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
public void onNeighborChange( IBlockAccess w, int x, int y, int z, int tileX, int tileY, int tileZ )
{
if( Platform.isServer() )
{
this.cb( w, x, y, z ).onNeighborChanged();
}
}
private IIcon getIcon( IPart p )
{
if( p == null )
{
return null;
}
try
{
IIcon ico = p.getBreakingTexture();
if( ico != null )
{
return ico;
}
}
catch( Throwable t )
{
@@ -356,7 +378,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
ItemStack is = p.getItemStack( PartItemStack.Network );
if( is == null || is.getItem() == null )
{
return null;
}
return is.getItem().getIcon( is, 0 );
}
@@ -367,10 +391,13 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
ICableBusContainer out = null;
if( te instanceof TileCableBus )
{
out = ( (TileCableBus) te ).cb;
}
else if( AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) )
{
out = ( (IFMP) AppEng.instance.getIntegration( IntegrationType.FMP ) ).getCableContainer( te );
}
return out == null ? NULL_CABLE_BUS : out;
}
@@ -392,7 +419,9 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
{
IIcon i = super.getIcon( direction, metadata );
if( i != null )
{
return i;
}
return ExtraBlockTextures.BlockQuartzGlassB.getIcon();
}
@@ -440,20 +469,24 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
TileEntity te = w.getTileEntity( x, y, z );
if( noTesrTile.isInstance( te ) )
{
return (T) te;
}
if( tesrTile != null && tesrTile.isInstance( te ) )
{
return (T) te;
}
return null;
}
public void setupTile()
{
this.setTileEntity( noTesrTile = Api.INSTANCE.getPartHelper().getCombinedInstance( TileCableBus.class.getName() ) );
this.setTileEntity( noTesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBus.class.getName() ) );
if( Platform.isClient() )
{
tesrTile = Api.INSTANCE.getPartHelper().getCombinedInstance( TileCableBusTESR.class.getName() );
tesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBusTESR.class.getName() );
GameRegistry.registerTileEntity( tesrTile, "ClientOnly_TESR_CableBus" );
CommonHelper.proxy.bindTileEntitySpecialRenderer( tesrTile, this );
}
@@ -38,9 +38,9 @@ public class BlockController extends AEBaseBlock
public BlockController()
{
super( BlockController.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Channels ) );
this.setTileEntity( TileController.class );
this.setHardness( 6 );
this.setFeature( EnumSet.of( AEFeature.Channels ) );
}
@Override
@@ -48,7 +48,9 @@ public class BlockController extends AEBaseBlock
{
TileController tc = this.getTileEntity( w, x, y, z );
if( tc != null )
{
tc.onNeighborChange( false );
}
}
@Override
@@ -33,7 +33,7 @@ public class BlockCreativeEnergyCell extends AEBaseBlock
public BlockCreativeEnergyCell()
{
super( BlockCreativeEnergyCell.class, AEGlassMaterial.INSTANCE );
this.setFeature( EnumSet.of( AEFeature.Creative ) );
this.setTileEntity( TileCreativeEnergyCell.class );
this.setFeature( EnumSet.of( AEFeature.Creative ) );
}
}
@@ -34,8 +34,8 @@ public class BlockDenseEnergyCell extends BlockEnergyCell
public BlockDenseEnergyCell()
{
super( BlockDenseEnergyCell.class );
this.setFeature( EnumSet.of( AEFeature.DenseEnergyCells ) );
this.setTileEntity( TileDenseEnergyCell.class );
this.setFeature( EnumSet.of( AEFeature.DenseEnergyCells ) );
}
@Override
@@ -34,7 +34,7 @@ public class BlockEnergyAcceptor extends AEBaseBlock
public BlockEnergyAcceptor()
{
super( BlockEnergyAcceptor.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileEnergyAcceptor.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
}
@@ -49,8 +49,8 @@ public class BlockEnergyCell extends AEBaseBlock
public BlockEnergyCell()
{
this( BlockEnergyCell.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setTileEntity( TileEnergyCell.class );
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
public BlockEnergyCell( Class c )
@@ -46,11 +46,11 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
public BlockWireless()
{
super( BlockWireless.class, AEGlassMaterial.INSTANCE );
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.WirelessAccessTerminal ) );
this.setTileEntity( TileWireless.class );
this.setLightOpacity( 0 );
this.isFullSize = false;
this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.WirelessAccessTerminal ) );
}
@Override
@@ -63,13 +63,17 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileWireless tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_WIRELESS );
}
return true;
}
return false;
@@ -197,6 +201,8 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
out.add( AxisAlignedBB.getBoundingBox( minX, minY, minZ, maxX, maxY, maxZ ) );
}
else
{
out.add( AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) );
}
}
}
@@ -53,12 +53,12 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
public BlockQuantumLinkChamber()
{
super( BlockQuantumLinkChamber.class, AEGlassMaterial.INSTANCE );
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
this.setTileEntity( TileQuantumBridge.class );
float shave = 2.0f / 16.0f;
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
this.setLightOpacity( 0 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
}
@Override
@@ -71,7 +71,9 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
if( bridge.hasQES() )
{
if( CommonHelper.proxy.shouldAddParticles( r ) )
{
CommonHelper.proxy.spawnEffect( EffectType.Energy, w, bx + 0.5, by + 0.5, bz + 0.5, null );
}
}
}
}
@@ -81,7 +83,9 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
{
TileQuantumBridge bridge = this.getTileEntity( w, x, y, z );
if( bridge != null )
{
bridge.neighborUpdate();
}
}
@Override
@@ -94,13 +98,17 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileQuantumBridge tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_QNB );
}
return true;
}
return false;
@@ -111,7 +119,9 @@ public class BlockQuantumLinkChamber extends AEBaseBlock implements ICustomColli
{
TileQuantumBridge bridge = this.getTileEntity( w, x, y, z );
if( bridge != null )
{
bridge.breakCluster();
}
super.breakBlock( w, x, y, z, a, b );
}
@@ -43,12 +43,12 @@ public class BlockQuantumRing extends AEBaseBlock implements ICustomCollision
public BlockQuantumRing()
{
super( BlockQuantumRing.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
this.setTileEntity( TileQuantumBridge.class );
float shave = 2.0f / 16.0f;
this.setBlockBounds( shave, shave, shave, 1.0f - shave, 1.0f - shave, 1.0f - shave );
this.setLightOpacity( 1 );
this.isFullSize = this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.QuantumNetworkBridge ) );
}
@Override
@@ -56,7 +56,9 @@ public class BlockQuantumRing extends AEBaseBlock implements ICustomCollision
{
TileQuantumBridge bridge = this.getTileEntity( w, x, y, z );
if( bridge != null )
{
bridge.neighborUpdate();
}
}
@Override
@@ -70,7 +72,9 @@ public class BlockQuantumRing extends AEBaseBlock implements ICustomCollision
{
TileQuantumBridge bridge = this.getTileEntity( w, x, y, z );
if( bridge != null )
{
bridge.breakCluster();
}
super.breakBlock( w, x, y, z, a, b );
}
@@ -45,9 +45,9 @@ public class BlockQuartzGlass extends AEBaseBlock
public BlockQuartzGlass( Class c )
{
super( c, Material.glass );
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) );
this.setLightOpacity( 0 );
this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks ) );
}
@Override
@@ -64,7 +64,9 @@ public class BlockQuartzGlass extends AEBaseBlock
if( mat == Material.glass || mat == AEGlassMaterial.INSTANCE )
{
if( w.getBlock( x, y, z ).getRenderType() == this.getRenderType() )
{
return false;
}
}
return super.shouldSideBeRendered( w, x, y, z, side );
}
@@ -40,9 +40,9 @@ public class BlockQuartzLamp extends BlockQuartzGlass
public BlockQuartzLamp()
{
super( BlockQuartzLamp.class );
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks, AEFeature.DecorativeLights ) );
this.setLightLevel( 1.0f );
this.setBlockTextureName( "BlockQuartzGlass" );
this.setFeature( EnumSet.of( AEFeature.DecorativeQuartzBlocks, AEFeature.DecorativeLights ) );
}
@Override
@@ -50,7 +50,9 @@ public class BlockQuartzLamp extends BlockQuartzGlass
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if( !AEConfig.instance.enableEffects )
{
return;
}
if( CommonHelper.proxy.shouldAddParticles( r ) )
{
@@ -72,11 +72,12 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
public BlockSkyStone()
{
super( BlockSkyStone.class, Material.rock );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setHardness( 50 );
this.hasSubtypes = true;
this.blockResistance = 150.0f;
this.setHarvestLevel( "pickaxe", 3, 0 );
this.setFeature( EnumSet.of( AEFeature.Core ) );
MinecraftForge.EVENT_BUS.register( this );
}
@@ -89,10 +90,14 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
int level = -1;
if( is != null )
{
level = is.getItem().getHarvestLevel( is, "pickaxe" );
}
if( Ev.metadata > 0 || level >= 3 || Ev.originalSpeed > 7.0 )
{
Ev.newSpeed /= 0.1;
}
}
}
@@ -116,7 +121,9 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
{
super.onBlockAdded( w, x, y, z );
if( Platform.isServer() )
{
WorldSettings.getInstance().getCompass().updateArea( w, x, y, z );
}
}
// use AE2's renderer, no rotatable blocks.
@@ -141,12 +148,16 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
{
IOrientable out = ( (IRB) AppEng.instance.getIntegration( IntegrationType.RB ) ).getOrientable( te );
if( out != null )
{
return out;
}
}
}
if( w.getBlockMetadata( x, y, z ) == 0 )
{
return new LocationRotation( w, x, y, z );
}
return new NullRotation();
}
@@ -155,13 +166,19 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
public String getUnlocalizedName( ItemStack is )
{
if( is.getItemDamage() == 1 )
{
return this.getUnlocalizedName() + ".Block";
}
if( is.getItemDamage() == 2 )
{
return this.getUnlocalizedName() + ".Brick";
}
if( is.getItemDamage() == 3 )
{
return this.getUnlocalizedName() + ".SmallBrick";
}
return this.getUnlocalizedName();
}
@@ -181,11 +198,17 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
public IIcon getIcon( int direction, int metadata )
{
if( metadata == 1 )
{
return this.Block;
}
if( metadata == 2 )
{
return this.Brick;
}
if( metadata == 3 )
{
return this.SmallBrick;
}
return super.getIcon( direction, metadata );
}
@@ -211,6 +234,8 @@ public class BlockSkyStone extends AEBaseBlock implements IOrientableBlock
{
super.breakBlock( w, x, y, z, b, WTF );
if( Platform.isServer() )
{
WorldSettings.getInstance().getCompass().updateArea( w, x, y, z );
}
}
}
@@ -1,6 +1,6 @@
/*
* This file is part of Applied Energistics 2.
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
* Copyright (c) 2013 - 2015, AlgorithmX2, All rights reserved.
*
* Applied Energistics 2 is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
@@ -29,7 +29,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.util.MathHelper;
import net.minecraft.world.IBlockAccess;
import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import appeng.api.AEApi;
import appeng.api.exceptions.MissingDefinition;
@@ -53,12 +52,12 @@ public class OreQuartz extends AEBaseBlock
public OreQuartz( Class<? extends OreQuartz> self )
{
super( self, Material.rock );
this.setFeature( EnumSet.of( AEFeature.Core ) );
this.setHardness( 3.0F );
this.setResistance( 5.0F );
this.boostBrightnessLow = 0;
this.boostBrightnessHigh = 1;
this.enhanceBrightness = false;
this.setFeature( EnumSet.of( AEFeature.Core ) );
}
@Override
@@ -67,12 +66,6 @@ public class OreQuartz extends AEBaseBlock
return RenderQuartzOre.class;
}
@Override
public void postInit()
{
OreDictionary.registerOre( "oreCertusQuartz", new ItemStack( this ) );
}
@Override
public int getMixedBrightnessForBlock( IBlockAccess par1iBlockAccess, int par2, int par3, int par4 )
{
@@ -91,7 +84,9 @@ public class OreQuartz extends AEBaseBlock
}
if( j1 > 15 )
{
j1 = 15;
}
return j1 << 20 | j1 << 4;
}
return j1;
@@ -20,7 +20,6 @@ package appeng.block.solids;
import java.util.Random;
import javax.annotation.Nullable;
import net.minecraft.client.Minecraft;
@@ -76,7 +75,9 @@ public class OreQuartzCharged extends OreQuartz
public void randomDisplayTick( World w, int x, int y, int z, Random r )
{
if ( !AEConfig.instance.enableEffects )
{
return;
}
double xOff = ( r.nextFloat() );
double yOff = ( r.nextFloat() );
@@ -50,11 +50,11 @@ public class BlockMatrixFrame extends AEBaseBlock implements ICustomCollision
public BlockMatrixFrame()
{
super( BlockMatrixFrame.class, Material.anvil );
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
this.setResistance( 6000000.0F );
this.setBlockUnbreakable();
this.setLightOpacity( 0 );
this.isOpaque = false;
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
}
@Override
@@ -40,8 +40,8 @@ public class BlockSpatialIOPort extends AEBaseBlock
public BlockSpatialIOPort()
{
super( BlockSpatialIOPort.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
this.setTileEntity( TileSpatialIOPort.class );
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
}
@Override
@@ -49,20 +49,26 @@ public class BlockSpatialIOPort extends AEBaseBlock
{
TileSpatialIOPort te = this.getTileEntity( w, x, y, z );
if( te != null )
{
te.updateRedstoneState();
}
}
@Override
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileSpatialIOPort tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_SPATIAL_IO_PORT );
}
return true;
}
return false;
@@ -39,8 +39,8 @@ public class BlockSpatialPylon extends AEBaseBlock
public BlockSpatialPylon()
{
super( BlockSpatialPylon.class, AEGlassMaterial.INSTANCE );
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
this.setTileEntity( TileSpatialPylon.class );
this.setFeature( EnumSet.of( AEFeature.SpatialIO ) );
}
@Override
@@ -48,7 +48,9 @@ public class BlockSpatialPylon extends AEBaseBlock
{
TileSpatialPylon tsp = this.getTileEntity( w, x, y, z );
if( tsp != null )
{
tsp.onNeighborBlockChange();
}
}
@Override
@@ -56,7 +58,9 @@ public class BlockSpatialPylon extends AEBaseBlock
{
TileSpatialPylon tsp = this.getTileEntity( w, x, y, z );
if( tsp != null )
{
return tsp.getLightValue();
}
return super.getLightValue( w, x, y, z );
}
@@ -45,8 +45,8 @@ public class BlockChest extends AEBaseBlock
public BlockChest()
{
super( BlockChest.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEChest ) );
this.setTileEntity( TileChest.class );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEChest ) );
}
@Override
@@ -62,7 +62,9 @@ public class BlockChest extends AEBaseBlock
if( tg != null && !p.isSneaking() )
{
if( Platform.isClient() )
{
return true;
}
if( side != tg.getUp().ordinal() )
{
@@ -78,7 +80,9 @@ public class BlockChest extends AEBaseBlock
tg.openGui( p, ch, cell, side );
}
else
{
p.addChatMessage( PlayerMessages.ChestCannotReadStorageCell.get() );
}
}
return true;
@@ -41,8 +41,8 @@ public class BlockDrive extends AEBaseBlock
public BlockDrive()
{
super( BlockDrive.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEDrive ) );
this.setTileEntity( TileDrive.class );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.MEDrive ) );
}
@Override
@@ -55,13 +55,17 @@ public class BlockDrive extends AEBaseBlock
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileDrive tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_DRIVE );
}
return true;
}
return false;
@@ -40,8 +40,8 @@ public class BlockIOPort extends AEBaseBlock
public BlockIOPort()
{
super( BlockIOPort.class, Material.iron );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.IOPort ) );
this.setTileEntity( TileIOPort.class );
this.setFeature( EnumSet.of( AEFeature.StorageCells, AEFeature.IOPort ) );
}
@Override
@@ -49,20 +49,26 @@ public class BlockIOPort extends AEBaseBlock
{
TileIOPort te = this.getTileEntity( w, x, y, z );
if( te != null )
{
te.updateRedstoneState();
}
}
@Override
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
{
if( p.isSneaking() )
{
return false;
}
TileIOPort tg = this.getTileEntity( w, x, y, z );
if( tg != null )
{
if( Platform.isServer() )
{
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_IOPORT );
}
return true;
}
return false;
@@ -58,13 +58,13 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision
public BlockSkyChest()
{
super( BlockSkyChest.class, Material.rock );
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) );
this.setTileEntity( TileSkyChest.class );
this.isOpaque = this.isFullSize = false;
this.lightOpacity = 0;
this.hasSubtypes = true;
this.setHardness( 50 );
this.blockResistance = 150.0f;
this.setFeature( EnumSet.of( AEFeature.Core, AEFeature.SkyStoneChests ) );
}
@Override
@@ -104,7 +104,9 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
{
if( Platform.isServer() )
{
Platform.openGUI( player, this.getTileEntity( w, x, y, z ), ForgeDirection.getOrientation( side ), GuiBridge.GUI_SKYCHEST );
}
return true;
}
@@ -127,7 +129,9 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision
public String getUnlocalizedName( ItemStack is )
{
if( is.getItemDamage() == 1 )
{
return this.getUnlocalizedName() + ".Block";
}
return this.getUnlocalizedName();
}
@@ -140,7 +144,9 @@ public class BlockSkyChest extends AEBaseBlock implements ICustomCollision
ForgeDirection o = ForgeDirection.UNKNOWN;
if( sk != null )
{
o = sk.getUp();
}
double X = o.offsetX == 0 ? 0.06 : 0.0;
double Y = o.offsetY == 0 ? 0.06 : 0.0;
+24 -3
View File
@@ -119,9 +119,13 @@ public class ClientHelper extends ServerHelper
public World getWorld()
{
if( Platform.isClient() )
{
return Minecraft.getMinecraft().theWorld;
}
else
{
return super.getWorld();
}
}
@Override
@@ -129,7 +133,9 @@ public class ClientHelper extends ServerHelper
{
BaseBlockRender bbr = blk.getRendererInstance().rendererInstance;
if( bbr.hasTESR() && tile != null )
{
ClientRegistry.bindTileEntitySpecialRenderer( tile, new TESRWrapper( bbr ) );
}
}
@Override
@@ -142,7 +148,9 @@ public class ClientHelper extends ServerHelper
return o;
}
else
{
return super.getPlayers();
}
}
@Override
@@ -243,9 +251,13 @@ public class ClientHelper extends ServerHelper
{
int setting = Minecraft.getMinecraft().gameSettings.particleSetting;
if( setting == 2 )
{
return false;
}
if( setting == 0 )
{
return true;
}
return r.nextInt( 2 * ( setting + 1 ) ) == 0;
}
@@ -347,7 +359,9 @@ public class ClientHelper extends ServerHelper
public CableRenderMode getRenderMode()
{
if( Platform.isServer() )
{
return super.getRenderMode();
}
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.thePlayer;
@@ -360,13 +374,12 @@ public class ClientHelper extends ServerHelper
{
Minecraft mc = Minecraft.getMinecraft();
if( mc == null || mc.thePlayer == null || mc.theWorld == null )
{
return;
}
EntityPlayer player = mc.thePlayer;
if( player == null )
return;
int x = (int) player.posX;
int y = (int) player.posY;
int z = (int) player.posZ;
@@ -386,7 +399,9 @@ public class ClientHelper extends ServerHelper
public void wheelEvent( MouseEvent me )
{
if( me.isCanceled() || me.dwheel == 0 )
{
return;
}
Minecraft mc = Minecraft.getMinecraft();
EntityPlayer player = mc.thePlayer;
@@ -412,16 +427,22 @@ public class ClientHelper extends ServerHelper
if( ev.map.getTextureType() == 1 )
{
for( ExtraItemTextures et : ExtraItemTextures.values() )
{
et.registerIcon( ev.map );
}
}
if( ev.map.getTextureType() == 0 )
{
for( ExtraBlockTextures et : ExtraBlockTextures.values() )
{
et.registerIcon( ev.map );
}
for( CableBusTextures cb : CableBusTextures.values() )
{
cb.registerIcon( ev.map );
}
}
}
}
+48 -13
View File
@@ -79,7 +79,6 @@ import appeng.core.sync.packets.PacketSwapSlots;
import appeng.helpers.InventoryAction;
import appeng.integration.IntegrationType;
import appeng.integration.abstraction.INEI;
import appeng.util.Platform;
public abstract class AEBaseGui extends GuiContainer
@@ -137,11 +136,17 @@ public abstract class AEBaseGui extends GuiContainer
final List<Slot> slots = this.getInventorySlots();
Iterator<Slot> i = slots.iterator();
while( i.hasNext() )
{
if( i.next() instanceof SlotME )
{
i.remove();
}
}
for( InternalSlotME me : this.meSlots )
{
slots.add( new SlotME( me ) );
}
}
@SuppressWarnings( "unchecked" )
@@ -157,7 +162,9 @@ public abstract class AEBaseGui extends GuiContainer
boolean hasClicked = Mouse.isButtonDown( 0 );
if( hasClicked && this.myScrollBar != null )
{
this.myScrollBar.click( this, mouse_x - this.guiLeft, mouse_y - this.guiTop );
}
for( Object c : this.buttonList )
{
@@ -172,11 +179,15 @@ public abstract class AEBaseGui extends GuiContainer
if( y < mouse_y && y + tooltip.getHeight() > mouse_y )
{
if( y < 15 )
{
y = 15;
}
String msg = tooltip.getMessage();
if( msg != null )
{
this.drawTooltip( x + 11, y + 4, 0, msg );
}
}
}
}
@@ -223,7 +234,9 @@ public abstract class AEBaseGui extends GuiContainer
}
if( forceWidth > 0 )
{
var5 = forceWidth;
}
this.zLevel = 300.0F;
itemRender.zLevel = 300.0F;
@@ -270,14 +283,16 @@ public abstract class AEBaseGui extends GuiContainer
}
@Override
final protected void drawGuiContainerForegroundLayer( int x, int y )
protected final void drawGuiContainerForegroundLayer( int x, int y )
{
int ox = this.guiLeft; // (width - xSize) / 2;
int oy = this.guiTop; // (height - ySize) / 2;
GL11.glColor4f( 1.0F, 1.0F, 1.0F, 1.0F );
if( this.myScrollBar != null )
{
this.myScrollBar.draw( this );
}
this.drawFG( ox, oy, x, y );
}
@@ -285,7 +300,7 @@ public abstract class AEBaseGui extends GuiContainer
public abstract void drawFG( int offsetX, int offsetY, int mouseX, int mouseY );
@Override
final protected void drawGuiContainerBackgroundLayer( float f, int x, int y )
protected final void drawGuiContainerBackgroundLayer( float f, int x, int y )
{
int ox = this.guiLeft; // (width - xSize) / 2;
int oy = this.guiTop; // (height - ySize) / 2;
@@ -358,7 +373,9 @@ public abstract class AEBaseGui extends GuiContainer
}
}
else
{
super.mouseClickMove( x, y, c, d );
}
}
@Override
@@ -371,7 +388,9 @@ public abstract class AEBaseGui extends GuiContainer
final InventoryAction action = ctrlDown == 1 ? InventoryAction.SPLIT_OR_PLACE_SINGLE : InventoryAction.PICKUP_OR_SET_DOWN;
if( this.drag_click.size() > 1 )
{
return;
}
PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
NetworkHandler.instance.sendToServer( p );
@@ -382,7 +401,9 @@ public abstract class AEBaseGui extends GuiContainer
if( slot instanceof SlotPatternTerm )
{
if( key == 6 )
{
return; // prevent weird double clicks..
}
try
{
@@ -396,13 +417,19 @@ public abstract class AEBaseGui extends GuiContainer
else if( slot instanceof SlotCraftingTerm )
{
if( key == 6 )
{
return; // prevent weird double clicks..
}
InventoryAction action = null;
if( key == 1 )
{
action = InventoryAction.CRAFT_SHIFT;
}
else
{
action = ctrlDown == 1 ? InventoryAction.CRAFT_STACK : InventoryAction.CRAFT_ITEM;
}
PacketInventoryAction p = new PacketInventoryAction( action, slotIdx, 0 );
NetworkHandler.instance.sendToServer( p );
@@ -416,12 +443,16 @@ public abstract class AEBaseGui extends GuiContainer
{
IAEItemStack stack = null;
if( slot instanceof SlotME )
{
stack = ( (SlotME) slot ).getAEStack();
}
int slotNum = this.getInventorySlots().size();
if( !( slot instanceof SlotME ) && slot != null )
{
slotNum = slot.slotNumber;
}
( (AEBaseContainer) this.inventorySlots ).setTargetStack( stack );
PacketInventoryAction p = new PacketInventoryAction( InventoryAction.MOVE_REGION, slotNum, 0 );
@@ -478,7 +509,9 @@ public abstract class AEBaseGui extends GuiContainer
stack = ( (SlotME) slot ).getAEStack();
if( stack != null && action == InventoryAction.PICKUP_OR_SET_DOWN && stack.getStackSize() == 0 && player.inventory.getItemStack() == null )
{
action = InventoryAction.AUTO_CRAFT;
}
break;
case 1:
@@ -490,8 +523,9 @@ public abstract class AEBaseGui extends GuiContainer
stack = ( (SlotME) slot ).getAEStack();
if( stack != null && stack.isCraftable() )
{
action = InventoryAction.AUTO_CRAFT;
}
else if( player.capabilities.isCreativeMode )
{
IAEItemStack slotItem = ( (SlotME) slot ).getAEStack();
@@ -527,9 +561,13 @@ public abstract class AEBaseGui extends GuiContainer
this.bl_clicked = slot;
this.dbl_clickTimer = Stopwatch.createStarted();
if( slot != null )
{
this.dbl_whichItem = slot.getHasStack() ? slot.getStack().copy() : null;
}
else
{
this.dbl_whichItem = null;
}
}
else if( this.dbl_whichItem != null )
{
@@ -643,7 +681,9 @@ public abstract class AEBaseGui extends GuiContainer
this.mouseWheelEvent( x, y, i / Math.abs( i ) );
}
else if( i != 0 && this.myScrollBar != null )
{
this.myScrollBar.wheel( i );
}
}
protected void mouseWheelEvent( int x, int y, int wheel )
@@ -703,7 +743,9 @@ public abstract class AEBaseGui extends GuiContainer
private boolean hasCustomInventoryName()
{
if( this.inventorySlots instanceof AEBaseContainer )
{
return ( (AEBaseContainer) this.inventorySlots ).customName != null;
}
return false;
}
@@ -744,8 +786,6 @@ public abstract class AEBaseGui extends GuiContainer
catch( Exception err )
{
AELog.warning( "[AppEng] AE prevented crash while drawing slot: " + err.toString() );
if( Platform.isDrawing( Tessellator.instance ) )
Tessellator.instance.draw();
}
this.setItemRender( pIR );
return;
@@ -794,8 +834,6 @@ public abstract class AEBaseGui extends GuiContainer
}
catch( Exception err )
{
if( Platform.isDrawing( tessellator ) )
tessellator.draw();
}
GL11.glPopAttrib();
}
@@ -840,7 +878,9 @@ public abstract class AEBaseGui extends GuiContainer
this.safeDrawSlot( s );
}
else
{
this.safeDrawSlot( s );
}
return;
}
@@ -876,15 +916,10 @@ public abstract class AEBaseGui extends GuiContainer
{
try
{
// drawSlotInventory
// super.func_146977_a( s );r
GuiContainer.class.getDeclaredMethod( "func_146977_a_original", Slot.class ).invoke( this, s );
}
catch( Exception err )
{
Tessellator tessellator = Tessellator.instance;
if( Platform.isDrawing( tessellator ) )
tessellator.draw();
}
}
@@ -30,6 +30,7 @@ import net.minecraft.item.ItemStack;
import appeng.api.storage.data.IAEItemStack;
import appeng.client.me.SlotME;
import appeng.core.AEConfig;
import appeng.core.localization.ButtonToolTips;
public abstract class AEBaseMEGui extends AEBaseGui
@@ -63,14 +64,30 @@ public abstract class AEBaseMEGui extends AEBaseGui
if( myStack != null )
{
if( myStack.getStackSize() > BigNumber || ( myStack.getStackSize() > 1 && stack.isItemDamaged() ) )
currentToolTip.add( "\u00a77Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getStackSize() ) );
{
final String local = ButtonToolTips.ItemsStored.getLocal();
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( myStack.getStackSize() );
final String format = String.format( local, formattedAmount );
currentToolTip.add( "\u00a77" + format );
}
if( myStack.getCountRequestable() > 0 )
currentToolTip.add( "\u00a77Items Requestable: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() ) );
{
final String local = ButtonToolTips.ItemsRequestable.getLocal();
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() );
final String format = String.format( local, formattedAmount );
currentToolTip.add( "\u00a77" + format );
}
}
else if( stack.stackSize > BigNumber || ( stack.stackSize > 1 && stack.isItemDamaged() ) )
{
currentToolTip.add( "\u00a77Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( stack.stackSize ) );
final String local = ButtonToolTips.ItemsStored.getLocal();
final String formattedAmount = NumberFormat.getNumberInstance( Locale.US ).format( stack.stackSize );
final String format = String.format( local, formattedAmount );
currentToolTip.add( "\u00a77" + format );
}
}
}
@@ -104,10 +121,14 @@ public abstract class AEBaseMEGui extends AEBaseGui
List<String> currentToolTip = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
if( myStack.getStackSize() > BigNumber || ( myStack.getStackSize() > 1 && stack.isItemDamaged() ) )
{
currentToolTip.add( "Items Stored: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getStackSize() ) );
}
if( myStack.getCountRequestable() > 0 )
{
currentToolTip.add( "Items Requestable: " + NumberFormat.getNumberInstance( Locale.US ).format( myStack.getCountRequestable() ) );
}
this.drawTooltip( x, y, 0, join( currentToolTip, "\n" ) );
}
@@ -48,15 +48,21 @@ public class AEConfigGui extends GuiConfig
for( String cat : AEConfig.instance.getCategoryNames() )
{
if( cat.equals( "versionchecker" ) )
{
continue;
}
if( cat.equals( "settings" ) )
{
continue;
}
ConfigCategory cc = AEConfig.instance.getCategory( cat );
if( cc.isChild() )
{
continue;
}
ConfigElement ce = new ConfigElement( cc );
list.add( ce );
@@ -98,9 +98,13 @@ public class GuiCellWorkbench extends GuiUpgradeable
int dx = this.workbench.availableUpgrades() - 8;
this.drawTexturedModalRect( offsetX + 177 + 27, offsetY, 186, 0, 35 - 8, 7 + dx * 18 );
if( dx == 8 )
{
this.drawTexturedModalRect( offsetX + 177 + 27, offsetY + ( 7 + ( dx ) * 18 ), 186, 151, 35 - 8, 7 );
}
else
{
this.drawTexturedModalRect( offsetX + 177 + 27 + 4, offsetY + ( 7 + ( dx ) * 18 ), 186 + 4, 151, 35 - 8, 7 );
}
}
else
{
@@ -113,13 +117,19 @@ public class GuiCellWorkbench extends GuiUpgradeable
int dx = this.workbench.availableUpgrades() - 16;
this.drawTexturedModalRect( offsetX + 177 + 27 + 18, offsetY, 186, 0, 35 - 8, 7 + dx * 18 );
if( dx == 8 )
{
this.drawTexturedModalRect( offsetX + 177 + 27 + 18, offsetY + ( 7 + ( dx ) * 18 ), 186, 151, 35 - 8, 7 );
}
else
{
this.drawTexturedModalRect( offsetX + 177 + 27 + 18 + 4, offsetY + ( 7 + ( dx ) * 18 ), 186 + 4, 151, 35 - 8, 7 );
}
}
}
if( this.hasToolbox() )
{
this.drawTexturedModalRect( offsetX + 178, offsetY + this.ySize - 90, 178, 161, 68, 68 );
}
}
@Override
@@ -135,7 +145,9 @@ public class GuiCellWorkbench extends GuiUpgradeable
if( is != null && is.getItem() instanceof IUpgradeModule )
{
if( ( (IUpgradeModule) is.getItem() ).getType( is ) == Upgrades.FUZZY )
{
hasFuzzy = true;
}
}
}
this.fuzzyMode.setVisibility( hasFuzzy );
@@ -186,7 +198,9 @@ public class GuiCellWorkbench extends GuiUpgradeable
NetworkHandler.instance.sendToServer( new PacketValueConfig( "CellWorkbench.Fuzzy", fz.name() ) );
}
else
{
super.actionPerformed( btn );
}
}
catch( IOException ignored )
{
@@ -197,10 +197,14 @@ public class GuiCraftAmount extends AEBaseGui
}
if( fixed )
{
this.amountToCraft.setText( out );
}
if( out.length() == 0 )
{
out = "0";
}
long result = Long.parseLong( out );
if( result < 0 )
@@ -248,7 +252,9 @@ public class GuiCraftAmount extends AEBaseGui
boolean isMinus = btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000;
if( isPlus || isMinus )
{
this.addQty( this.getQty( btn ) );
}
}
private void addQty( int i )
@@ -265,19 +271,27 @@ public class GuiCraftAmount extends AEBaseGui
}
if( fixed )
{
this.amountToCraft.setText( out );
}
if( out.length() == 0 )
{
out = "0";
}
long result = Integer.parseInt( out );
if( result == 1 && i > 1 )
{
result = 0;
}
result += i;
if( result < 1 )
{
result = 1;
}
out = Long.toString( result );
Integer.parseInt( out );
@@ -84,16 +84,24 @@ public class GuiCraftConfirm extends AEBaseGui
this.ccc = (ContainerCraftConfirm) this.inventorySlots;
if( te instanceof WirelessTerminalGuiObject )
{
this.OriginalGui = GuiBridge.GUI_WIRELESS_TERM;
}
if( te instanceof PartTerminal )
{
this.OriginalGui = GuiBridge.GUI_ME;
}
if( te instanceof PartCraftingTerminal )
{
this.OriginalGui = GuiBridge.GUI_CRAFTING_TERMINAL;
}
if( te instanceof PartPatternTerminal )
{
this.OriginalGui = GuiBridge.GUI_PATTERN_TERMINAL;
}
}
boolean isAutoStart()
@@ -115,7 +123,9 @@ public class GuiCraftConfirm extends AEBaseGui
this.buttonList.add( this.selectCPU );
if( this.OriginalGui != null )
{
this.cancel = new GuiButton( 0, this.guiLeft + 6, this.guiTop + this.ySize - 25, 50, 20, GuiText.Cancel.getLocal() );
}
this.buttonList.add( this.cancel );
}
@@ -174,11 +184,15 @@ public class GuiCraftConfirm extends AEBaseGui
btnTextText = GuiText.CraftingCPU.getLocal() + ": " + name;
}
else
{
btnTextText = GuiText.CraftingCPU.getLocal() + ": #" + this.ccc.selectedCpu;
}
}
if( this.ccc.noCPU )
{
btnTextText = GuiText.NoCraftingCPUs.getLocal();
}
this.selectCPU.displayString = btnTextText;
}
@@ -199,9 +213,13 @@ public class GuiCraftConfirm extends AEBaseGui
String dsp = null;
if( this.isSimulation() )
{
dsp = GuiText.Simulation.getLocal();
}
else
{
dsp = this.ccc.cpuBytesAvail > 0 ? ( GuiText.Bytes.getLocal() + ": " + this.ccc.cpuBytesAvail + " : " + GuiText.CoProcessors.getLocal() + ": " + this.ccc.cpuCoProcessors ) : GuiText.Bytes.getLocal() + ": N/A : " + GuiText.CoProcessors.getLocal() + ": N/A";
}
int offset = ( 219 - this.fontRendererObj.getStringWidth( dsp ) ) / 2;
this.fontRendererObj.drawString( dsp, offset, 165, 4210752 );
@@ -237,11 +255,17 @@ public class GuiCraftConfirm extends AEBaseGui
int lines = 0;
if( stored != null && stored.getStackSize() > 0 )
{
lines++;
}
if( pendingStack != null && pendingStack.getStackSize() > 0 )
{
lines++;
}
if( pendingStack != null && pendingStack.getStackSize() > 0 )
{
lines++;
}
int negY = ( ( lines - 1 ) * 5 ) / 2;
int downY = 0;
@@ -251,16 +275,22 @@ public class GuiCraftConfirm extends AEBaseGui
{
String str = Long.toString( stored.getStackSize() );
if( stored.getStackSize() >= 10000 )
{
str = Long.toString( stored.getStackSize() / 1000 ) + 'k';
}
if( stored.getStackSize() >= 10000000 )
{
str = Long.toString( stored.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.FromStorage.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.FromStorage.getLocal() + ": " + Long.toString( stored.getStackSize() ) );
}
downY += 5;
}
@@ -269,16 +299,22 @@ public class GuiCraftConfirm extends AEBaseGui
{
String str = Long.toString( missingStack.getStackSize() );
if( missingStack.getStackSize() >= 10000 )
{
str = Long.toString( missingStack.getStackSize() / 1000 ) + 'k';
}
if( missingStack.getStackSize() >= 10000000 )
{
str = Long.toString( missingStack.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.Missing.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.Missing.getLocal() + ": " + Long.toString( missingStack.getStackSize() ) );
}
red = true;
downY += 5;
@@ -288,16 +324,22 @@ public class GuiCraftConfirm extends AEBaseGui
{
String str = Long.toString( pendingStack.getStackSize() );
if( pendingStack.getStackSize() >= 10000 )
{
str = Long.toString( pendingStack.getStackSize() / 1000 ) + 'k';
}
if( pendingStack.getStackSize() >= 10000000 )
{
str = Long.toString( pendingStack.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.ToCraft.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.ToCraft.getLocal() + ": " + Long.toString( pendingStack.getStackSize() ) );
}
}
GL11.glPopMatrix();
@@ -311,7 +353,9 @@ public class GuiCraftConfirm extends AEBaseGui
dspToolTip = Platform.getItemDisplayName( is );
if( lineList.size() > 0 )
{
dspToolTip = dspToolTip + '\n' + Joiner.on( "\n" ).join( lineList );
}
toolPosX = x * ( 1 + sectionLength ) + xo + sectionLength - 8;
toolPosY = y * offY + yo;
@@ -366,17 +410,23 @@ public class GuiCraftConfirm extends AEBaseGui
{
case 0:
for( IAEItemStack l : list )
{
this.handleInput( this.storage, l );
}
break;
case 1:
for( IAEItemStack l : list )
{
this.handleInput( this.pending, l );
}
break;
case 2:
for( IAEItemStack l : list )
{
this.handleInput( this.missing, l );
}
break;
}
@@ -385,7 +435,9 @@ public class GuiCraftConfirm extends AEBaseGui
long amt = this.getTotal( l );
if( amt <= 0 )
{
this.deleteVisualStack( l );
}
else
{
IAEItemStack is = this.findVisualStack( l );
@@ -403,7 +455,9 @@ public class GuiCraftConfirm extends AEBaseGui
if( l.getStackSize() <= 0 )
{
if( a != null )
{
a.reset();
}
}
else
{
@@ -414,7 +468,9 @@ public class GuiCraftConfirm extends AEBaseGui
}
if( a != null )
{
a.setStackSize( l.getStackSize() );
}
}
}
@@ -427,13 +483,19 @@ public class GuiCraftConfirm extends AEBaseGui
long total = 0;
if( a != null )
{
total += a.getStackSize();
}
if( c != null )
{
total += c.getStackSize();
}
if( m != null )
{
total += m.getStackSize();
}
return total;
}
@@ -228,16 +228,22 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
{
String str = Long.toString( stored.getStackSize() );
if( stored.getStackSize() >= 10000 )
{
str = Long.toString( stored.getStackSize() / 1000 ) + 'k';
}
if( stored.getStackSize() >= 10000000 )
{
str = Long.toString( stored.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.Stored.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.Stored.getLocal() + ": " + Long.toString( stored.getStackSize() ) );
}
downY += 5;
}
@@ -246,16 +252,22 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
{
String str = Long.toString( activeStack.getStackSize() );
if( activeStack.getStackSize() >= 10000 )
{
str = Long.toString( activeStack.getStackSize() / 1000 ) + 'k';
}
if( activeStack.getStackSize() >= 10000000 )
{
str = Long.toString( activeStack.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.Crafting.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.Crafting.getLocal() + ": " + Long.toString( activeStack.getStackSize() ) );
}
downY += 5;
}
@@ -264,16 +276,22 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
{
String str = Long.toString( pendingStack.getStackSize() );
if( pendingStack.getStackSize() >= 10000 )
{
str = Long.toString( pendingStack.getStackSize() / 1000 ) + 'k';
}
if( pendingStack.getStackSize() >= 10000000 )
{
str = Long.toString( pendingStack.getStackSize() / 1000000 ) + 'm';
}
str = GuiText.Scheduled.getLocal() + ": " + str;
int w = 4 + this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * ( 1 + sectionLength ) + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * offY + yo + 6 - negY + downY ) * 2, 4210752 );
if( this.tooltip == z - viewStart )
{
lineList.add( GuiText.Scheduled.getLocal() + ": " + Long.toString( pendingStack.getStackSize() ) );
}
}
GL11.glPopMatrix();
@@ -287,7 +305,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
dspToolTip = Platform.getItemDisplayName( is );
if( lineList.size() > 0 )
{
dspToolTip = dspToolTip + '\n' + Joiner.on( "\n" ).join( lineList );
}
toolPosX = x * ( 1 + sectionLength ) + xo + sectionLength - 8;
toolPosY = y * offY + yo;
@@ -326,17 +346,23 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
{
case 0:
for( IAEItemStack l : list )
{
this.handleInput( this.storage, l );
}
break;
case 1:
for( IAEItemStack l : list )
{
this.handleInput( this.active, l );
}
break;
case 2:
for( IAEItemStack l : list )
{
this.handleInput( this.pending, l );
}
break;
}
@@ -345,7 +371,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
long amt = this.getTotal( l );
if( amt <= 0 )
{
this.deleteVisualStack( l );
}
else
{
IAEItemStack is = this.findVisualStack( l );
@@ -363,7 +391,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
if( l.getStackSize() <= 0 )
{
if( a != null )
{
a.reset();
}
}
else
{
@@ -374,7 +404,9 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
}
if( a != null )
{
a.setStackSize( l.getStackSize() );
}
}
}
@@ -387,13 +419,19 @@ public class GuiCraftingCPU extends AEBaseGui implements ISortSource
long total = 0;
if( a != null )
{
total += a.getStackSize();
}
if( b != null )
{
total += b.getStackSize();
}
if( c != null )
{
total += c.getStackSize();
}
return total;
}
@@ -166,11 +166,15 @@ public class GuiCraftingStatus extends GuiCraftingCPU
btnTextText = GuiText.CPUs.getLocal() + ": " + name;
}
else
{
btnTextText = GuiText.CPUs.getLocal() + ": #" + this.status.selectedCpu;
}
}
if( this.status.noCPU )
{
btnTextText = GuiText.NoCraftingJobs.getLocal();
}
this.selectCPU.displayString = btnTextText;
}
@@ -59,7 +59,9 @@ public class GuiCraftingTerm extends GuiMEMonitorable
for( Object j : c.inventorySlots )
{
if( j instanceof SlotCraftingMatrix )
{
s = (Slot) j;
}
}
if( s != null )
@@ -69,10 +69,14 @@ public class GuiFormationPlane extends GuiUpgradeable
this.fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752 );
if( this.fuzzyMode != null )
{
this.fuzzyMode.set( this.cvb.fzMode );
}
if( this.placeMode != null )
{
this.placeMode.set( ( (ContainerFormationPlane) this.cvb ).placeMode );
}
}
@Override
@@ -70,13 +70,19 @@ public class GuiIOPort extends GuiUpgradeable
this.fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752 );
if( this.redstoneMode != null )
{
this.redstoneMode.set( this.cvb.rsMode );
}
if( this.operationMode != null )
{
this.operationMode.set( ( (ContainerIOPort) this.cvb ).opMode );
}
if( this.fullMode != null )
{
this.fullMode.set( ( (ContainerIOPort) this.cvb ).fMode );
}
}
@Override
@@ -111,9 +117,13 @@ public class GuiIOPort extends GuiUpgradeable
boolean backwards = Mouse.isButtonDown( 1 );
if( btn == this.fullMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.fullMode.getSetting(), backwards ) );
}
if( btn == this.operationMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.operationMode.getSetting(), backwards ) );
}
}
}
@@ -77,9 +77,13 @@ public class GuiInscriber extends AEBaseGui
this.drawTexturedModalRect( offsetX, offsetY, 0, 0, 211 - 34, this.ySize );
if( this.drawUpgrades() )
{
this.drawTexturedModalRect( offsetX + 177, offsetY, 177, 0, 35, 14 + this.cvc.availableUpgrades() * 18 );
}
if( this.hasToolbox() )
{
this.drawTexturedModalRect( offsetX + 178, offsetY + this.ySize - 90, 178, this.ySize - 90, 68, 68 );
}
}
protected boolean drawUpgrades()
@@ -68,10 +68,14 @@ public class GuiInterface extends GuiUpgradeable
public void drawFG( int offsetX, int offsetY, int mouseX, int mouseY )
{
if( this.BlockMode != null )
{
this.BlockMode.set( ( (ContainerInterface) this.cvb ).bMode );
}
if( this.interfaceMode != null )
{
this.interfaceMode.setState( ( (ContainerInterface) this.cvb ).iTermMode == YesNo.YES );
}
this.fontRendererObj.drawString( this.getGuiDisplayName( GuiText.Interface.getLocal() ), 8, 6, 4210752 );
@@ -101,9 +105,13 @@ public class GuiInterface extends GuiUpgradeable
}
if( btn == this.interfaceMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( Settings.INTERFACE_TERMINAL, backwards ) );
}
if( btn == this.BlockMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.BlockMode.getSetting(), backwards ) );
}
}
}
@@ -105,7 +105,9 @@ public class GuiInterfaceTerminal extends AEBaseGui
while( o.hasNext() )
{
if( o.next() instanceof SlotDisconnected )
{
o.remove();
}
}
for( int x = 0; x < LINES_ON_PAGE && ex + x < this.lines.size(); x++ )
@@ -124,10 +126,14 @@ public class GuiInterfaceTerminal extends AEBaseGui
String name = (String) lineObj;
int rows = this.byName.get( name ).size();
if( rows > 1 )
{
name = name + " (" + rows + ')';
}
while( name.length() > 2 && this.fontRendererObj.getStringWidth( name ) > 155 )
{
name = name.substring( 0, name.length() - 1 );
}
this.fontRendererObj.drawString( name, 10, 6 + offset, 4210752 );
}
@@ -173,7 +179,9 @@ public class GuiInterfaceTerminal extends AEBaseGui
}
if( this.searchField != null )
{
this.searchField.drawTextBox();
}
}
@Override
@@ -182,7 +190,9 @@ public class GuiInterfaceTerminal extends AEBaseGui
if( !this.checkHotbarKeys( key ) )
{
if( character == ' ' && this.searchField.getText().length() == 0 )
{
return;
}
if( this.searchField.textboxKeyTyped( character, key ) )
{
@@ -218,7 +228,9 @@ public class GuiInterfaceTerminal extends AEBaseGui
{
String which = Integer.toString( x );
if( invData.hasKey( which ) )
{
current.inv.setInventorySlotContents( x, ItemStack.loadItemStackFromNBT( invData.getCompoundTag( which ) ) );
}
}
}
catch( NumberFormatException ignored )
@@ -130,10 +130,14 @@ public class GuiLevelEmitter extends GuiUpgradeable
super.drawFG( offsetX, offsetY, mouseX, mouseY );
if( this.craftingMode != null )
{
this.craftingMode.set( ( (ContainerLevelEmitter) this.cvb ).cmType );
}
if( this.levelMode != null )
{
this.levelMode.set( ( (ContainerLevelEmitter) this.cvb ).lvType );
}
}
@Override
@@ -170,16 +174,22 @@ public class GuiLevelEmitter extends GuiUpgradeable
boolean backwards = Mouse.isButtonDown( 1 );
if( btn == this.craftingMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.craftingMode.getSetting(), backwards ) );
}
if( btn == this.levelMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.levelMode.getSetting(), backwards ) );
}
boolean isPlus = btn == this.plus1 || btn == this.plus10 || btn == this.plus100 || btn == this.plus1000;
boolean isMinus = btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000;
if( isPlus || isMinus )
{
this.addQty( this.getQty( btn ) );
}
}
private void addQty( long i )
@@ -196,15 +206,21 @@ public class GuiLevelEmitter extends GuiUpgradeable
}
if( Fixed )
{
this.level.setText( Out );
}
if( Out.length() == 0 )
{
Out = "0";
}
long result = Long.parseLong( Out );
result += i;
if( result < 0 )
{
result = 0;
}
this.level.setText( Out = Long.toString( result ) );
@@ -240,10 +256,14 @@ public class GuiLevelEmitter extends GuiUpgradeable
}
if( Fixed )
{
this.level.setText( Out );
}
if( Out.length() == 0 )
{
Out = "0";
}
NetworkHandler.instance.sendToServer( new PacketValueConfig( "LevelEmitter.Value", Out ) );
}
@@ -22,6 +22,7 @@ package appeng.client.gui.implementations;
import java.io.IOException;
import java.util.List;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import net.minecraft.client.gui.GuiButton;
@@ -111,7 +112,9 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
this.ySize = 204;
if( te instanceof IViewCellStorage )
{
this.xSize += 33;
}
this.standardSize = this.xSize;
@@ -121,21 +124,33 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
this.viewCell = te instanceof IViewCellStorage;
if( te instanceof TileSecurity )
{
this.myName = GuiText.Security;
}
else if( te instanceof WirelessTerminalGuiObject )
{
this.myName = GuiText.WirelessTerminal;
}
else if( te instanceof IPortableCell )
{
this.myName = GuiText.PortableCell;
}
else if( te instanceof IMEChest )
{
this.myName = GuiText.Chest;
}
else if( te instanceof PartTerminal )
{
this.myName = GuiText.Terminal;
}
}
public void postUpdate( List<IAEItemStack> list )
{
for( IAEItemStack is : list )
{
this.repo.postUpdate( is );
}
this.repo.updateView();
this.setScrollBar();
@@ -166,9 +181,13 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
Enum next = Platform.rotateEnum( cv, backwards, iBtn.getSetting().getPossibleValues() );
if( btn == this.terminalStyleBox )
{
AEConfig.instance.settings.putSetting( iBtn.getSetting(), next );
}
else if( btn == this.searchBoxSettings )
{
AEConfig.instance.settings.putSetting( iBtn.getSetting(), next );
}
else
{
try
@@ -184,7 +203,9 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
iBtn.set( next );
if( next.getClass() == SearchBoxMode.class || next.getClass() == TerminalStyle.class )
{
this.re_init();
}
}
}
}
@@ -198,6 +219,8 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
@Override
public void initGui()
{
Keyboard.enableRepeatEvents( true );
this.maxRows = this.getMaxRows();
this.perRow = AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL ? 9 : 9 + ( ( this.width - this.standardSize ) / 18 );
@@ -217,10 +240,14 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
}
if( hasNEI )
{
this.rows--;
}
if( this.rows < 3 )
{
this.rows = 3;
}
this.meSlots.clear();
for( int y = 0; y < this.rows; y++ )
@@ -232,9 +259,13 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
}
if( AEConfig.instance.getConfigManager().getSetting( Settings.TERMINAL_STYLE ) != TerminalStyle.FULL )
{
this.xSize = this.standardSize + ( ( this.perRow - 9 ) * 18 );
}
else
{
this.xSize = this.standardSize;
}
super.initGui();
// full size : 204
@@ -303,7 +334,9 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
if( s instanceof AppEngSlot )
{
if( ( (AppEngSlot) s ).xDisplayPosition < 197 )
{
this.repositionSlot( (AppEngSlot) s );
}
}
if( s instanceof SlotCraftingMatrix || s instanceof SlotFakeCraftingMatrix )
@@ -353,6 +386,7 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
public void onGuiClosed()
{
super.onGuiClosed();
Keyboard.enableRepeatEvents( false );
memoryText = this.searchField.getText();
}
@@ -365,10 +399,14 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
this.drawTexturedModalRect( offsetX, offsetY, 0, 0, x_width, 18 );
if( this.viewCell || ( this instanceof GuiSecurity ) )
{
this.drawTexturedModalRect( offsetX + x_width, offsetY, x_width, 0, 46, 128 );
}
for( int x = 0; x < this.rows; x++ )
{
this.drawTexturedModalRect( offsetX, offsetY + 18 + x * 18, 0, 18, x_width, 18 );
}
this.drawTexturedModalRect( offsetX, offsetY + 16 + this.rows * 18 + this.lowerTextureOffset, 0, 106 - 18 - 18, x_width, 99 + this.reservedSpace - this.lowerTextureOffset );
@@ -386,11 +424,15 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
}
if( update )
{
this.repo.setViewCell( this.myCurrentViewCells );
}
}
if( this.searchField != null )
{
this.searchField.drawTextBox();
}
}
protected String getBackground()
@@ -420,7 +462,9 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
if( !this.checkHotbarKeys( key ) )
{
if( character == ' ' && this.searchField.getText().length() == 0 )
{
return;
}
if( this.searchField.textboxKeyTyped( character, key ) )
{
@@ -464,13 +508,19 @@ public class GuiMEMonitorable extends AEBaseMEGui implements ISortSource, IConfi
public void updateSetting( IConfigManager manager, Enum settingName, Enum newValue )
{
if( this.SortByBox != null )
{
this.SortByBox.set( this.configSrc.getSetting( Settings.SORT_BY ) );
}
if( this.SortDirBox != null )
{
this.SortDirBox.set( this.configSrc.getSetting( Settings.SORT_DIRECTION ) );
}
if( this.ViewBox != null )
{
this.ViewBox.set( this.configSrc.getSetting( Settings.VIEW_MODE ) );
}
this.repo.updateView();
}
@@ -30,7 +30,7 @@ public class GuiMEPortableCell extends GuiMEMonitorable
public GuiMEPortableCell( InventoryPlayer inventoryPlayer, IPortableCell te )
{
super( inventoryPlayer, te, new ContainerMEPortableCell( inventoryPlayer, null ) );
super( inventoryPlayer, te, new ContainerMEPortableCell( inventoryPlayer, te ) );
}
int defaultGetMaxRows()
@@ -161,7 +161,9 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
String str = Long.toString( refStack.getStackSize() );
if( refStack.getStackSize() >= 10000 )
{
str = Long.toString( refStack.getStackSize() / 1000 ) + 'k';
}
int w = this.fontRendererObj.getStringWidth( str );
this.fontRendererObj.drawString( str, (int) ( ( x * sectionLength + xo + sectionLength - 19 - ( w * 0.5 ) ) * 2 ), ( y * 18 + yo + 6 ) * 2, 4210752 );
@@ -176,7 +178,9 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
toolTip += ( '\n' + GuiText.Installed.getLocal() + ": " + ( refStack.getStackSize() ) );
if( refStack.getCountRequestable() > 0 )
{
toolTip += ( '\n' + GuiText.EnergyDrain.getLocal() + ": " + Platform.formatPowerLong( refStack.getCountRequestable(), true ) );
}
toolPosX = x * sectionLength + xo + sectionLength - 8;
toolPosY = y * 18 + yo;
@@ -214,7 +218,9 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
this.repo.clear();
for( IAEItemStack is : list )
{
this.repo.postUpdate( is );
}
this.repo.updateView();
this.setScrollBar();
@@ -249,7 +255,9 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
if( myStack != null )
{
while( currentToolTip.size() > 1 )
{
currentToolTip.remove( 1 );
}
}
}
}
@@ -278,7 +286,9 @@ public class GuiNetworkStatus extends AEBaseGui implements ISortSource
List currentToolTip = stack.getTooltip( this.mc.thePlayer, this.mc.gameSettings.advancedItemTooltips );
while( currentToolTip.size() > 1 )
{
currentToolTip.remove( 1 );
}
currentToolTip.add( GuiText.Installed.getLocal() + ": " + ( myStack.getStackSize() ) );
currentToolTip.add( GuiText.EnergyDrain.getLocal() + ": " + Platform.formatPowerLong( myStack.getCountRequestable(), true ) );
@@ -53,7 +53,9 @@ public class GuiNetworkTool extends AEBaseGui
try
{
if( btn == this.tFacades )
{
NetworkHandler.instance.sendToServer( new PacketValueConfig( "NetworkTool", "Toggle" ) );
}
}
catch( IOException e )
{
@@ -75,7 +77,9 @@ public class GuiNetworkTool extends AEBaseGui
public void drawFG( int offsetX, int offsetY, int mouseX, int mouseY )
{
if( this.tFacades != null )
{
this.tFacades.setState( ( (ContainerNetworkTool) this.inventorySlots ).facadeMode );
}
this.fontRendererObj.drawString( this.getGuiDisplayName( GuiText.NetworkTool.getLocal() ), 8, 6, 4210752 );
this.fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752 );
@@ -130,7 +130,9 @@ public class GuiPatternTerm extends GuiMEMonitorable
protected String getBackground()
{
if( this.container.craftingMode )
{
return "guis/pattern.png";
}
return "guis/pattern2.png";
}
@@ -138,8 +140,12 @@ public class GuiPatternTerm extends GuiMEMonitorable
protected void repositionSlot( AppEngSlot s )
{
if( s.isPlayerSide() )
{
s.yDisplayPosition = s.defY + this.ySize - 78 - 5;
}
else
{
s.yDisplayPosition = s.defY + this.ySize - 78 - 3;
}
}
}
@@ -156,7 +156,9 @@ public class GuiPriority extends AEBaseGui
}
if( this.OriginalGui != null && myIcon != null )
{
this.buttonList.add( this.originalGuiBtn = new GuiTabButton( this.guiLeft + 154, this.guiTop, myIcon, myIcon.getDisplayName(), itemRender ) );
}
this.priority = new GuiNumberBox( this.fontRendererObj, this.guiLeft + 62, this.guiTop + 57, 59, this.fontRendererObj.FONT_HEIGHT, Long.class );
this.priority.setEnableBackgroundDrawing( false );
@@ -196,7 +198,9 @@ public class GuiPriority extends AEBaseGui
boolean isMinus = btn == this.minus1 || btn == this.minus10 || btn == this.minus100 || btn == this.minus1000;
if( isPlus || isMinus )
{
this.addQty( this.getQty( btn ) );
}
}
private void addQty( int i )
@@ -213,10 +217,14 @@ public class GuiPriority extends AEBaseGui
}
if( fixed )
{
this.priority.setText( out );
}
if( out.length() == 0 )
{
out = "0";
}
long result = Long.parseLong( out );
result += i;
@@ -255,10 +263,14 @@ public class GuiPriority extends AEBaseGui
}
if( fixed )
{
this.priority.setText( out );
}
if( out.length() == 0 )
{
out = "0";
}
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
}
@@ -62,15 +62,25 @@ public class GuiSecurity extends GuiMEMonitorable
SecurityPermissions toggleSetting = null;
if( btn == this.inject )
{
toggleSetting = SecurityPermissions.INJECT;
}
if( btn == this.extract )
{
toggleSetting = SecurityPermissions.EXTRACT;
}
if( btn == this.craft )
{
toggleSetting = SecurityPermissions.CRAFT;
}
if( btn == this.build )
{
toggleSetting = SecurityPermissions.BUILD;
}
if( btn == this.security )
{
toggleSetting = SecurityPermissions.SECURITY;
}
if( toggleSetting != null )
{
@@ -84,13 +84,19 @@ public class GuiStorageBus extends GuiUpgradeable
this.fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752 );
if( this.fuzzyMode != null )
{
this.fuzzyMode.set( this.cvb.fzMode );
}
if( this.storageFilter != null )
{
this.storageFilter.set( ( (ContainerStorageBus) this.cvb ).storageFilter );
}
if( this.rwMode != null )
{
this.rwMode.set( ( (ContainerStorageBus) this.cvb ).rwMode );
}
}
@Override
@@ -109,19 +115,25 @@ public class GuiStorageBus extends GuiUpgradeable
try
{
if( btn == this.partition )
{
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Partition" ) );
}
else if( btn == this.clear )
{
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Clear" ) );
}
else if( btn == this.priority )
{
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
}
else if( btn == this.rwMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.rwMode.getSetting(), backwards ) );
}
else if( btn == this.storageFilter )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.storageFilter.getSetting(), backwards ) );
}
}
catch( IOException e )
{
@@ -94,13 +94,19 @@ public class GuiUpgradeable extends AEBaseGui
this.fontRendererObj.drawString( GuiText.inventory.getLocal(), 8, this.ySize - 96 + 3, 4210752 );
if( this.redstoneMode != null )
{
this.redstoneMode.set( this.cvb.rsMode );
}
if( this.fuzzyMode != null )
{
this.fuzzyMode.set( this.cvb.fzMode );
}
if( this.craftMode != null )
{
this.craftMode.set( this.cvb.cMode );
}
}
@Override
@@ -111,19 +117,29 @@ public class GuiUpgradeable extends AEBaseGui
this.bindTexture( this.getBackground() );
this.drawTexturedModalRect( offsetX, offsetY, 0, 0, 211 - 34, this.ySize );
if( this.drawUpgrades() )
{
this.drawTexturedModalRect( offsetX + 177, offsetY, 177, 0, 35, 14 + this.cvb.availableUpgrades() * 18 );
}
if( this.hasToolbox() )
{
this.drawTexturedModalRect( offsetX + 178, offsetY + this.ySize - 90, 178, this.ySize - 90, 68, 68 );
}
}
protected void handleButtonVisibility()
{
if( this.redstoneMode != null )
{
this.redstoneMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.REDSTONE ) > 0 );
}
if( this.fuzzyMode != null )
{
this.fuzzyMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.FUZZY ) > 0 );
}
if( this.craftMode != null )
{
this.craftMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.CRAFTING ) > 0 );
}
}
protected String getBackground()
@@ -149,12 +165,18 @@ public class GuiUpgradeable extends AEBaseGui
boolean backwards = Mouse.isButtonDown( 1 );
if( btn == this.redstoneMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.redstoneMode.getSetting(), backwards ) );
}
if( btn == this.craftMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.craftMode.getSetting(), backwards ) );
}
if( btn == this.fuzzyMode )
{
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.fuzzyMode.getSetting(), backwards ) );
}
}
}
@@ -62,7 +62,7 @@ public class GuiVibrationChamber extends AEBaseGui
int k = 25;
int l = -15;
this.pb.setFullMsg( this.cvc.aePerTick * this.cvc.getCurrentProgress() / 100 + " ae/t" );
this.pb.setFullMsg( this.cvc.aePerTick * this.cvc.getCurrentProgress() / 100 + " AE/t" );
if( this.cvc.getCurrentProgress() > 0 )
{
@@ -193,9 +193,13 @@ public class GuiImgButton extends GuiButton implements ITooltip
GL11.glScalef( 0.5f, 0.5f, 0.5f );
if( this.enabled )
{
GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
}
else
{
GL11.glColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
}
par1Minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) );
this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height;
@@ -212,9 +216,13 @@ public class GuiImgButton extends GuiButton implements ITooltip
else
{
if( this.enabled )
{
GL11.glColor4f( 1.0f, 1.0f, 1.0f, 1.0f );
}
else
{
GL11.glColor4f( 0.5f, 0.5f, 0.5f, 1.0f );
}
par1Minecraft.renderEngine.bindTexture( ExtraBlockTextures.GuiTexture( "guis/states.png" ) );
this.field_146123_n = par2 >= this.xPosition && par3 >= this.yPosition && par2 < this.xPosition + this.width && par3 < this.yPosition + this.height;
@@ -236,7 +244,9 @@ public class GuiImgButton extends GuiButton implements ITooltip
{
ButtonAppearance app = appearances.get( new EnumPair( this.buttonSetting, this.currentValue ) );
if( app == null )
{
return 256 - 1;
}
return app.index;
}
return 256 - 1;
@@ -262,7 +272,9 @@ public class GuiImgButton extends GuiButton implements ITooltip
{
ButtonAppearance buttonAppearance = appearances.get( new EnumPair( this.buttonSetting, this.currentValue ) );
if( buttonAppearance == null )
{
return "No Such Message";
}
displayName = buttonAppearance.displayName;
displayValue = buttonAppearance.displayValue;
@@ -274,19 +286,27 @@ public class GuiImgButton extends GuiButton implements ITooltip
String value = StatCollector.translateToLocal( displayValue );
if( name == null || name.isEmpty() )
{
name = displayName;
}
if( value == null || value.isEmpty() )
{
value = displayValue;
}
if( this.fillVar != null )
{
value = COMPILE.matcher( value ).replaceFirst( this.fillVar );
}
value = PATTERN_NEW_LINE.matcher( value ).replaceAll( "\n" );
StringBuilder sb = new StringBuilder( value );
int i = sb.lastIndexOf( "\n" );
if( i <= 0 )
{
i = 0;
}
while( i + 30 < sb.length() && ( i = sb.lastIndexOf( " ", i + 30 ) ) != -1 )
{
sb.replace( i, i + 1, "\n" );
@@ -357,9 +377,13 @@ public class GuiImgButton extends GuiButton implements ITooltip
public boolean equals( Object obj )
{
if( obj == null )
{
return false;
}
if( this.getClass() != obj.getClass() )
{
return false;
}
EnumPair other = (EnumPair) obj;
return other.setting == this.setting && other.value == this.value;
}
@@ -43,11 +43,17 @@ public class GuiNumberBox extends GuiTextField
try
{
if( this.type == int.class || this.type == Integer.class )
{
Integer.parseInt( this.getText() );
}
else if( this.type == long.class || this.type == Long.class )
{
Long.parseLong( this.getText() );
}
else if( this.type == double.class || this.type == Double.class )
{
Double.parseDouble( this.getText() );
}
}
catch( NumberFormatException e )
{
@@ -91,7 +91,9 @@ public class GuiProgressBar extends GuiButton implements ITooltip
public String getMessage()
{
if( this.fullMsg != null )
{
return this.fullMsg;
}
return ( this.titleName != null ? this.titleName : "" ) + '\n' + this.source.getCurrentProgress() + ' ' + GuiText.Of.getLocal() + ' ' + this.source.getMaxProgress();
}

Some files were not shown because too many files have changed in this diff Show More