Compare commits
260 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d52efa8f78 | |||
| 55e373bb31 | |||
| db76915b7e | |||
| d5b352abda | |||
| 90af295750 | |||
| b004e6eb27 | |||
| b560382e80 | |||
| 410d2f1e0d | |||
| e52400bf26 | |||
| 0387d30d1c | |||
| f4ff28d2a6 | |||
| 1bec11f616 | |||
| 9b685d5b73 | |||
| 4b984452ad | |||
| b3e33b1c3b | |||
| 572c2bb403 | |||
| 645c2b0e1c | |||
| 6952a2f958 | |||
| dbf84428a5 | |||
| 734d50d086 | |||
| 4b3d7c7d03 | |||
| 7a220e253d | |||
| 80e1a2863b | |||
| 92331b4d2e | |||
| bcba2329b7 | |||
| 597e17b52b | |||
| 4b055a7f21 | |||
| 759b6daa59 | |||
| e1f03db7b3 | |||
| 72518ad977 | |||
| 21fa2718f8 | |||
| 777bec184a | |||
| b9d615c4ba | |||
| 40d339e173 | |||
| 20c1c4529a | |||
| 72399e5789 | |||
| f303c17ae0 | |||
| 26f13d4109 | |||
| 0df445c6a8 | |||
| 8c817b2f85 | |||
| 7bd8cf3f59 | |||
| 3ab6758e6c | |||
| 3dd948e4a4 | |||
| 3bb9e4df97 | |||
| d17f045339 | |||
| 5817cde56b | |||
| 45d94d4c2c | |||
| d893e52eb0 | |||
| 464a56ffc5 | |||
| 40dcf711f6 | |||
| 5dfca5eb93 | |||
| 26daaf2232 | |||
| c2022a7208 | |||
| 74c2e1fab9 | |||
| 0de7a2d83a | |||
| 517a832ac1 | |||
| 1ecc811559 | |||
| 7dd283cf9f | |||
| a12ef1e534 | |||
| a567dcc026 | |||
| 7f72ba97f0 | |||
| c3db5ef9e4 | |||
| f955febb5d | |||
| 3115147edf | |||
| 1cec5922a0 | |||
| 322b296639 | |||
| d1244f59ed | |||
| 6a18102ea0 | |||
| 300a9618b6 | |||
| dfb435ae7d | |||
| 1728f683c3 | |||
| c0b62fd519 | |||
| 67c901966e | |||
| a5287f6779 | |||
| 8234c6dbb5 | |||
| 9c8deac9de | |||
| c21a44d8c0 | |||
| 3c62734c87 | |||
| 5b6b14cde7 | |||
| 51c92d3dfb | |||
| 37295745cf | |||
| c3ce9d9542 | |||
| 15993eb3c7 | |||
| 48d1a5aa88 | |||
| 3826b3b51f | |||
| 7833ff5eab | |||
| 6f5a2888c0 | |||
| 6d42032738 | |||
| 1a38e5ba94 | |||
| ff3e51018f | |||
| 65c47d4c4e | |||
| d7486fec3c | |||
| 796b6dc7a2 | |||
| 67b261cc7c | |||
| 3fb3f70392 | |||
| 49321d72c1 | |||
| 62fb0dc7f7 | |||
| e9e9535f2a | |||
| ab9f4e7fd7 | |||
| 1080b65404 | |||
| c823e1464b | |||
| 4ba722cb51 | |||
| 91b8d30a15 | |||
| 3e6231492e | |||
| 1c2df4f380 | |||
| 3f013c8d1d | |||
| 4e46dc08af | |||
| f5e3ae8949 | |||
| b2c31e20b2 | |||
| cd0aec123d | |||
| 3844f3af87 | |||
| 1cc118c927 | |||
| afd1d4e21e | |||
| 77597973e7 | |||
| 4acec30a66 | |||
| ab32b2b357 | |||
| 8b7aea9f14 | |||
| db4a6c6cc0 | |||
| c6383f21c5 | |||
| 85de600d16 | |||
| 944f434993 | |||
| 6b47bf3ce8 | |||
| 60aa74d19f | |||
| e5f59e0a00 | |||
| 2ba4f312d4 | |||
| 2274ca79e4 | |||
| a75dee0d08 | |||
| 349ac7e0a0 | |||
| b5d0db493b | |||
| 256c0258bb | |||
| 73ffbb268a | |||
| 69299a6b1d | |||
| d1e4ea6579 | |||
| f0bf72bc34 | |||
| 7fc538fc99 | |||
| acc3bb6a29 | |||
| 71ce42f26a | |||
| cb013cf55b | |||
| 57836848ae | |||
| 53c4529d7a | |||
| e3a0b34767 | |||
| 5aaaeb6d42 | |||
| e1ff0fe5ef | |||
| 86e5d6f5da | |||
| 05f90760f2 | |||
| 17465e68e8 | |||
| b0348fb888 | |||
| 7a731ec658 | |||
| 3a9296f453 | |||
| 4ac8a0add0 | |||
| 6e76690835 | |||
| 776d68bb03 | |||
| e2b870f1f1 | |||
| 4befdecd25 | |||
| 98fe4680c1 | |||
| 2d7917de14 | |||
| 6e881fac2d | |||
| 0076f2ea51 | |||
| 523548373d | |||
| 58bdeb134c | |||
| 2722057c81 | |||
| d6f29464c6 | |||
| 5105a2b1fb | |||
| c00962b044 | |||
| 858f73c439 | |||
| ade5e23458 | |||
| 61dfc05ae0 | |||
| 25fd03cb88 | |||
| e7fe8b60de | |||
| f16ae9c80b | |||
| ed1f327c57 | |||
| 4a19ea4c68 | |||
| 0ec1d728e5 | |||
| 57eb4c0a71 | |||
| ecf2f3fdaf | |||
| f3db010303 | |||
| 1a1316072a | |||
| 020740bf43 | |||
| 682c674696 | |||
| 7fa7502770 | |||
| 962c7c0a92 | |||
| 12e0efa3e1 | |||
| a349e1a277 | |||
| b72c766c16 | |||
| 72eab029ab | |||
| 3613c235be | |||
| 880ea762e5 | |||
| 83c9c0efcb | |||
| 733a53ec6d | |||
| 8c500c4016 | |||
| abdd6e1915 | |||
| 209333989e | |||
| 2803a671d1 | |||
| 1cf2e8d43e | |||
| e7746dc037 | |||
| 72195ea784 | |||
| f102c3b468 | |||
| f0215ca56a | |||
| 0f9ca7885a | |||
| 124d14d3c3 | |||
| f9e25b5a33 | |||
| 72d85aecc9 | |||
| 0bfb7b7ed3 | |||
| e82e8a039b | |||
| e626355aef | |||
| 192848e383 | |||
| 6339be5a06 | |||
| 4b5fd35056 | |||
| 1137b11550 | |||
| 6636718ef7 | |||
| e40f68d3fa | |||
| 96e79e9d9c | |||
| 3f5ed8ed7f | |||
| fdd44f4633 | |||
| 0085909914 | |||
| 5c301238cd | |||
| 30ba43e672 | |||
| afb9bb4379 | |||
| 3863e2c900 | |||
| b0249244cc | |||
| 77873e135f | |||
| 35997d58bb | |||
| 82efa151cc | |||
| 71569cadb5 | |||
| 1d737c3167 | |||
| 168038c595 | |||
| e99680d59b | |||
| 18503ac526 | |||
| 22f7345147 | |||
| b6b76d145b | |||
| 7c9b734948 | |||
| 16c0fbe3c1 | |||
| b8f22202d4 | |||
| 513292cd08 | |||
| d8ac614a17 | |||
| 8dd0991a7d | |||
| 5832e2d828 | |||
| c451a25c7f | |||
| 9d4fd64c58 | |||
| 42c7cca64f | |||
| 7f61ebebc8 | |||
| 7f14faeaa3 | |||
| f193c2adc4 | |||
| b748a1982f | |||
| a44369a272 | |||
| 25a3573a76 | |||
| 9845e2a463 | |||
| 3d5fd2c5e8 | |||
| dbacb566bb | |||
| 96576a7fc5 | |||
| 81464d7de1 | |||
| dd8e1d1faf | |||
| 00248f574a | |||
| e6e1771349 | |||
| 0a0a788c1c | |||
| 74c0fd92ae | |||
| 34665d94df | |||
| 7e681dc1d9 | |||
| c158519f37 | |||
| de069980ce |
+2
-1
@@ -11,7 +11,8 @@
|
||||
|
||||
# include markdowns
|
||||
!README.md
|
||||
!License.md
|
||||
!LICENSE
|
||||
!CONTRIBUTING.md
|
||||
|
||||
# include sourcecode
|
||||
!src/
|
||||
|
||||
+29
-16
@@ -11,20 +11,32 @@ top of things.
|
||||
|
||||
Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue now!
|
||||
|
||||
1. Make sure your issue hasn't already been answered or fixed. Also think about whether your issue is a valid one before submitting it.
|
||||
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues)
|
||||
3. Click new issue
|
||||
4. Enter your Issue's title (something that summarizes your issue), and then create a detailed description of the issue.
|
||||
* To help in resolving your issues please try to include the follow if applicable:
|
||||
* The problem that is happening?
|
||||
* What was expected?
|
||||
* How to reproduce the problem?
|
||||
* Server or Single Player?
|
||||
* Mod Pack using and version?
|
||||
* Crash log (Please make sure to use [pastebin](http://pastebin.com/) for the log file)
|
||||
* Screen shots or Pictures of the problem
|
||||
1. Make sure your issue has not already been answered or fixed and you are using the latest version. Also think about whether your issue is a valid one before submitting it.
|
||||
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues) and click [new issue](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/new)
|
||||
3. Enter your a title of your issue (something that summarizes your issue), and then create a detailed description of the issue.
|
||||
* Do not tag it with something like `[Feature]` or `[Bug]`. When it is applicable, we will take care of it.
|
||||
* The following details are required. Not including them can cause the issue to be closed.
|
||||
* Forge version
|
||||
* AE2 version
|
||||
* Crash log, when reporting a crash (Please make sure to use [pastebin](http://pastebin.com/))
|
||||
* Do not post an excerpt of what you consider important, instead:
|
||||
* Post the full log
|
||||
* Other mods and their version, when reporting an issue between AE and another mod
|
||||
* Also consider updating these before submitting a new issue, it might be already fixed
|
||||
* A detailed description of the bug or feature
|
||||
* To further help in resolving your issues please try to include the follow if applicable:
|
||||
* What was expected?
|
||||
* How to reproduce the problem?
|
||||
* This is usually a great detail and allows us to fix it way faster
|
||||
* Server or Single Player?
|
||||
* Screen shots or Pictures of the problem
|
||||
* Mod Pack using and version?
|
||||
* Keep in mind that some mods might use an outdated version of AE2
|
||||
* If so you should report it to your modpack
|
||||
5. Click `Submit New Issue`, and wait for feedback!
|
||||
|
||||
Providing as many details as possible does help us to find and resolve the issue faster and also you getting a fixed version as fast as possible.
|
||||
|
||||
### Submitting Changes
|
||||
|
||||
* Submit an issue to the github project, assuming one does not already exist.
|
||||
@@ -55,10 +67,8 @@ Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue
|
||||
from our issue tracker. The body describes the behavior without the patch,
|
||||
why this is a problem, and how the patch fixes the problem when applied.
|
||||
````
|
||||
* Always fully test your changes. If they are large engouh in scope, then fully
|
||||
test AE2.
|
||||
* Describing the process you used to test your changes in detail will help speed
|
||||
up this process.
|
||||
* Always fully test your changes. If they are large engouh in scope, then fully test AE2.
|
||||
* Describing the process you used to test your changes in detail will help speed up this process.
|
||||
|
||||
## Making Trivial Changes
|
||||
|
||||
@@ -97,6 +107,9 @@ the styling guidelines used by AE.
|
||||
|
||||
PRs that do not conform to these standards will be rejected.
|
||||
|
||||
You can find presets for Eclipse and IntelliJ IDEA in the `codeformat` folder.
|
||||
We try to keep them up to date, but in case you find them not formatting it correctly, then please report it
|
||||
|
||||
### Whitespace
|
||||
|
||||
#### Tabs or spaces
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<!--[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases) -->
|
||||
[](http://ci.tsr.me/viewType.html?buildTypeId=AppliedEnergistics_AutoHeadBuild&tab=buildTypeStatusDiv)
|
||||
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/tags)
|
||||
[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases)
|
||||
|
||||
# Applied Energistics 2
|
||||
|
||||
@@ -31,7 +32,7 @@ A Mod about Matter, Energy and using them to conquer the world..
|
||||
|
||||
* Applied Energistics 2 API
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- 
|
||||
- [](http://opensource.org/licenses/MIT)
|
||||
* Applied Energistics 2
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- [](https://raw.githubusercontent.com/AppliedEnergistics/Applied-Energistics-2/rv2/LICENSE)
|
||||
@@ -39,7 +40,7 @@ A Mod about Matter, Energy and using them to conquer the world..
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- [](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||
* Text and Translations
|
||||
- 
|
||||
- [](https://creativecommons.org/publicdomain/zero/1.0/)
|
||||
|
||||
## Downloads
|
||||
|
||||
@@ -53,20 +54,32 @@ You install this mod by putting it into the `minecraft/mods/` folder. It has no
|
||||
|
||||
Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue now!
|
||||
|
||||
1. Make sure your issue hasn't already been answered or fixed. Also think about whether your issue is a valid one before submitting it.
|
||||
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues)
|
||||
3. Click new issue
|
||||
4. Enter your Issue's title (something that summarizes your issue), and then create a detailed description of the issue.
|
||||
* To help in resolving your issues please try to include the follow if applicable:
|
||||
* The problem that is happening?
|
||||
* What was expected?
|
||||
* How to reproduce the problem?
|
||||
* Server or Single Player?
|
||||
* Mod Pack using and version?
|
||||
* Crash log (Please make sure to use [pastebin](http://pastebin.com/) for the log file)
|
||||
* Screen shots or Pictures of the problem
|
||||
1. Make sure your issue has not already been answered or fixed and you are using the latest version. Also think about whether your issue is a valid one before submitting it.
|
||||
2. Go to [the issues page](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues) and click [new issue](https://github.com/AppliedEnergistics/Applied-Energistics-2/issues/new)
|
||||
3. Enter your a title of your issue (something that summarizes your issue), and then create a detailed description of the issue.
|
||||
* Do not tag it with something like `[Feature]` or `[Bug]`. When it is applicable, we will take care of it.
|
||||
* The following details are required. Not including them can cause the issue to be closed.
|
||||
* Forge version
|
||||
* AE2 version
|
||||
* Crash log, when reporting a crash (Please make sure to use [pastebin](http://pastebin.com/))
|
||||
* Do not post an excerpt of what you consider important, instead:
|
||||
* Post the full log
|
||||
* Other mods and their version, when reporting an issue between AE and another mod
|
||||
* Also consider updating these before submitting a new issue, it might be already fixed
|
||||
* A detailed description of the bug or feature
|
||||
* To further help in resolving your issues please try to include the follow if applicable:
|
||||
* What was expected?
|
||||
* How to reproduce the problem?
|
||||
* This is usually a great detail and allows us to fix it way faster
|
||||
* Server or Single Player?
|
||||
* Screen shots or Pictures of the problem
|
||||
* Mod Pack using and version?
|
||||
* Keep in mind that some mods might use an outdated version of AE2
|
||||
* If so you should report it to your modpack
|
||||
5. Click `Submit New Issue`, and wait for feedback!
|
||||
|
||||
Providing as many details as possible does help us to find and resolve the issue faster and also you getting a fixed version as fast as possible.
|
||||
|
||||
## Building
|
||||
|
||||
1. Clone this repository via
|
||||
@@ -89,6 +102,8 @@ Applied Energistics 2 crashing, have a suggestion, found a bug? Create an issue
|
||||
Before you want to add major changes, you might want to discuss them with us first, before wasting your time.
|
||||
If you are still willing to contribute to this project, you can contribute via [Pull-Request](https://help.github.com/articles/creating-a-pull-request).
|
||||
|
||||
The [guidelines for contributing](https://github.com/AppliedEnergistics/Applied-Energistics-2/blob/master/CONTRIBUTING.md) contain more detailed information about topics like the used code style and should also be considered.
|
||||
|
||||
Here are a few things to keep in mind that will help get your PR approved.
|
||||
|
||||
* A PR should be focused on content. Any PRs where the changes are only syntax will be rejected.
|
||||
@@ -126,7 +141,7 @@ Development and standard builds can be obtained [Here](http://ae2.ae-mod.info/Do
|
||||
When compiling against the AE2 API you can use gradle dependencies, just add
|
||||
|
||||
dependencies {
|
||||
compile "appeng:appliedenergistics2:rv_-_____-__:dev"
|
||||
compile "appeng:appliedenergistics2:rv_-_____-__:dev"
|
||||
}
|
||||
|
||||
or add the compile line to your existing dependencies task to your build.gradle
|
||||
|
||||
+6
-3
@@ -98,12 +98,16 @@ sourceSets {
|
||||
|
||||
resources {
|
||||
srcDir "src/main/resources/"
|
||||
include "assets/appliedenergistics2/recipes/*.recipe",
|
||||
include "assets/appliedenergistics2/recipes/**/*.recipe",
|
||||
"assets/appliedenergistics2/recipes/README.html",
|
||||
"assets/appliedenergistics2/lang/*.lang",
|
||||
"assets/appliedenergistics2/textures/blocks/*",
|
||||
"assets/appliedenergistics2/textures/guis/*",
|
||||
"assets/appliedenergistics2/textures/models/*",
|
||||
"assets/appliedenergistics2/textures/items/*"
|
||||
"assets/appliedenergistics2/textures/items/*",
|
||||
"assets/appliedenergistics2/meta/*",
|
||||
"mcmod.info",
|
||||
"pack.mcmeta"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -113,6 +117,5 @@ processResources {
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
expand 'version': project.version, 'mcversion': minecraft_version
|
||||
include 'pack.mcmeta'
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -1,10 +0,0 @@
|
||||
#Organize Import Order
|
||||
#Thu Oct 09 12:52:21 CEST 2014
|
||||
6=
|
||||
5=cpw
|
||||
4=net
|
||||
3=io
|
||||
2=org
|
||||
1=com
|
||||
0=java
|
||||
7=appeng
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<profiles version="12">
|
||||
<profile kind="CodeFormatterProfile" name="Algo" version="12">
|
||||
<profile kind="CodeFormatterProfile" name="AE2" version="12">
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="do not insert"/>
|
||||
@@ -22,7 +22,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
|
||||
@@ -37,13 +37,13 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
|
||||
@@ -72,14 +72,14 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
|
||||
@@ -96,7 +96,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="0"/>
|
||||
@@ -106,7 +106,7 @@
|
||||
<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
|
||||
@@ -122,13 +122,13 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="insert"/>
|
||||
@@ -138,7 +138,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="next_line"/>
|
||||
@@ -147,7 +147,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
|
||||
@@ -182,7 +182,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="0"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="next_line"/>
|
||||
@@ -215,7 +215,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
|
||||
@@ -231,7 +231,7 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="insert"/>
|
||||
@@ -267,8 +267,8 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="insert"/>
|
||||
@@ -283,13 +283,13 @@
|
||||
<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="true"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="tab"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="1"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="160"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
|
||||
<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="do not insert"/>
|
||||
</profile>
|
||||
</profiles>
|
||||
@@ -0,0 +1,11 @@
|
||||
#Organize Import Order
|
||||
#Sat Jun 13 15:22:41 CEST 2015
|
||||
8=appeng
|
||||
7=
|
||||
6=cpw
|
||||
5=net
|
||||
4=io
|
||||
3=org
|
||||
2=com
|
||||
1=javax
|
||||
0=java
|
||||
+11
-10
@@ -1,5 +1,5 @@
|
||||
aeversion=rv2
|
||||
aechannel=stable
|
||||
aeversion=rv3
|
||||
aechannel=alpha
|
||||
aebuild=0
|
||||
aegroup=appeng
|
||||
aebasename=appliedenergistics2
|
||||
@@ -8,15 +8,15 @@ aebasename=appliedenergistics2
|
||||
# Versions #
|
||||
#########################################################
|
||||
minecraft_version=1.7.10
|
||||
forge_version=10.13.2.1291
|
||||
forge_version=10.13.4.1448-1.7.10
|
||||
|
||||
#########################################################
|
||||
# Installable #
|
||||
#########################################################
|
||||
waila_version=1.5.10
|
||||
jabba_version=1.2.1a
|
||||
enderstorage_version=1.4.7.33
|
||||
translocator_version=1.1.1.14
|
||||
enderstorage_version=1.4.7.36
|
||||
translocator_version=1.1.2.15
|
||||
ic2_version=2.2.717
|
||||
enderio_version=2.3.0.375_beta
|
||||
#cofhlib_version=1.0.1-157
|
||||
@@ -29,11 +29,13 @@ 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
|
||||
fmp_version=1.2.0.345
|
||||
code_chicken_lib_version=1.1.3.138
|
||||
code_chicken_core_version=1.0.7.46
|
||||
nei_version=1.0.5.111
|
||||
bc_version=7.0.9
|
||||
opencomputers_version=1.5.12.26
|
||||
pneumaticcraft_version=1.9.15-105
|
||||
|
||||
#########################################################
|
||||
# Self Compiled APIs #
|
||||
@@ -53,5 +55,4 @@ api_craftguide_version=1
|
||||
api_immibis_version=1
|
||||
api_mfr_version=1
|
||||
api_railcraft_version=1
|
||||
api_rblocks_version=1
|
||||
api_rf_version=2
|
||||
|
||||
@@ -10,6 +10,11 @@ task javadocJar(type: Jar, dependsOn: myJavadocs) {
|
||||
from 'build/docs/javadoc/'
|
||||
}
|
||||
|
||||
task sourceJar(type: Jar, dependsOn: classes) {
|
||||
classifier = 'sources'
|
||||
from sourceSets.main.allSource
|
||||
}
|
||||
|
||||
task devJar(type: Jar) {
|
||||
|
||||
manifest {
|
||||
@@ -40,4 +45,5 @@ artifacts {
|
||||
archives devJar
|
||||
archives apiJar
|
||||
archives javadocJar
|
||||
archives sourceJar
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
|
||||
/*
|
||||
* This file is part of Applied Energistics 2.
|
||||
* Copyright (c) 2013 - 2014, AlgorithmX2, All rights reserved.
|
||||
@@ -45,11 +46,21 @@ repositories {
|
||||
url = "http://maven.tterrag.com/"
|
||||
}
|
||||
|
||||
maven {
|
||||
maven {
|
||||
name = "RX14 Proxy"
|
||||
url = "http://mvn.rx14.co.uk/repo/"
|
||||
}
|
||||
|
||||
maven {
|
||||
name "OpenComputers Repo"
|
||||
url = "http://maven.cil.li/"
|
||||
}
|
||||
|
||||
maven {
|
||||
name = "MM repo"
|
||||
url = "http://maven.k-4u.nl/"
|
||||
}
|
||||
|
||||
ivy {
|
||||
name "BuildCraft"
|
||||
artifactPattern "http://www.mod-buildcraft.com/releases/BuildCraft/[revision]/[module]-[revision]-[classifier].[ext]"
|
||||
@@ -91,6 +102,8 @@ dependencies {
|
||||
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 "li.cil.oc:OpenComputers:MC${minecraft_version}-${opencomputers_version}:dev"
|
||||
|
||||
// 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'
|
||||
@@ -101,8 +114,10 @@ dependencies {
|
||||
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 "pneumaticCraft:PneumaticCraft-${minecraft_version}:${pneumaticcraft_version}:api"
|
||||
|
||||
// provided APIs
|
||||
compile "li.cil.oc:OpenComputers:MC${minecraft_version}-${opencomputers_version}:api"
|
||||
compile "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:api"
|
||||
compile "net.mcft.copy.betterstorage:BetterStorage:${minecraft_version}-${betterstorage_version}:api"
|
||||
|
||||
@@ -118,7 +133,6 @@ dependencies {
|
||||
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"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion = "2.3"
|
||||
gradleVersion = "2.4"
|
||||
}
|
||||
|
||||
// WAILA
|
||||
@@ -103,4 +103,14 @@ task installBetterStorage(type: Copy, dependsOn: "deinstallBetterStorage") {
|
||||
|
||||
task deinstallBetterStorage(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*BetterStorage*.jar")
|
||||
}
|
||||
}
|
||||
|
||||
task installOpenComputers(type: Copy, dependsOn: "deinstallOpenComputers") {
|
||||
from { configurations.mods }
|
||||
include "**/*OpenComputer*dev*.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallOpenComputers(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*OpenComputers*.jar")
|
||||
}
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
||||
#Sat May 02 19:28:20 CEST 2015
|
||||
#Mon Aug 31 16:41:19 CEST 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
|
||||
|
||||
@@ -51,15 +51,15 @@ public enum AEApi
|
||||
|
||||
HELD_API = (IAppEngApi) apiField.get( apiClass );
|
||||
}
|
||||
catch( ClassNotFoundException e )
|
||||
catch( final ClassNotFoundException e )
|
||||
{
|
||||
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FQN + " class, without it being declared." );
|
||||
}
|
||||
catch( NoSuchFieldException e )
|
||||
catch( final NoSuchFieldException e )
|
||||
{
|
||||
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FIELD + " field in " + CORE_API_FQN + " without it being declared." );
|
||||
}
|
||||
catch( IllegalAccessException e )
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FIELD + " field in " + CORE_API_FQN + " without enough access permissions." );
|
||||
}
|
||||
|
||||
@@ -30,22 +30,22 @@ public enum AccessRestriction
|
||||
|
||||
private final int permissionBit;
|
||||
|
||||
AccessRestriction( int v )
|
||||
AccessRestriction( final int v )
|
||||
{
|
||||
this.permissionBit = v;
|
||||
}
|
||||
|
||||
public boolean hasPermission( AccessRestriction ar )
|
||||
public boolean hasPermission( final AccessRestriction ar )
|
||||
{
|
||||
return ( this.permissionBit & ar.permissionBit ) == ar.permissionBit;
|
||||
}
|
||||
|
||||
public AccessRestriction restrictPermissions( AccessRestriction ar )
|
||||
public AccessRestriction restrictPermissions( final AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit & ar.permissionBit );
|
||||
}
|
||||
|
||||
private AccessRestriction getPermByBit( int bit )
|
||||
private AccessRestriction getPermByBit( final int bit )
|
||||
{
|
||||
switch( bit )
|
||||
{
|
||||
@@ -61,12 +61,12 @@ public enum AccessRestriction
|
||||
}
|
||||
}
|
||||
|
||||
public AccessRestriction addPermissions( AccessRestriction ar )
|
||||
public AccessRestriction addPermissions( final AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit | ar.permissionBit );
|
||||
}
|
||||
|
||||
public AccessRestriction removePermissions( AccessRestriction ar )
|
||||
public AccessRestriction removePermissions( final AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit & ( ~ar.permissionBit ) );
|
||||
}
|
||||
|
||||
@@ -32,13 +32,13 @@ public enum FuzzyMode
|
||||
public final float breakPoint;
|
||||
public final float percentage;
|
||||
|
||||
FuzzyMode( float p )
|
||||
FuzzyMode( final float p )
|
||||
{
|
||||
this.percentage = p;
|
||||
this.breakPoint = p / 100.0f;
|
||||
}
|
||||
|
||||
public int calculateBreakPoint( int maxDamage )
|
||||
public int calculateBreakPoint( final int maxDamage )
|
||||
{
|
||||
return (int) ( ( this.percentage * maxDamage ) / 100.0f );
|
||||
}
|
||||
|
||||
@@ -33,12 +33,12 @@ public enum PowerMultiplier
|
||||
*/
|
||||
public double multiplier = 1.0;
|
||||
|
||||
public double multiply( double in )
|
||||
public double multiply( final double in )
|
||||
{
|
||||
return in * this.multiplier;
|
||||
}
|
||||
|
||||
public double divide( double in )
|
||||
public double divide( final double in )
|
||||
{
|
||||
return in / this.multiplier;
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ public enum PowerUnits
|
||||
*/
|
||||
public double conversionRatio = 1.0;
|
||||
|
||||
PowerUnits( String un )
|
||||
PowerUnits( final String un )
|
||||
{
|
||||
this.unlocalizedName = un;
|
||||
}
|
||||
@@ -58,7 +58,7 @@ public enum PowerUnits
|
||||
*
|
||||
* @return value converted to target units, from this units.
|
||||
*/
|
||||
public double convertTo( PowerUnits target, double value )
|
||||
public double convertTo( final PowerUnits target, final double value )
|
||||
{
|
||||
return ( value * this.conversionRatio ) / target.conversionRatio;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package appeng.api.config;
|
||||
|
||||
|
||||
public enum SchedulingMode
|
||||
{
|
||||
DEFAULT, ROUNDROBIN, RANDOM
|
||||
}
|
||||
@@ -54,13 +54,15 @@ public enum Settings
|
||||
|
||||
INTERFACE_TERMINAL( EnumSet.of( YesNo.YES, YesNo.NO ) ), CRAFT_VIA_REDSTONE( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||
|
||||
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) );
|
||||
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) ),
|
||||
|
||||
SCHEDULING_MODE( EnumSet.allOf( SchedulingMode.class ) );
|
||||
|
||||
private final EnumSet<? extends Enum<?>> values;
|
||||
|
||||
Settings( @Nonnull EnumSet<? extends Enum<?>> possibleOptions )
|
||||
Settings( @Nonnull final EnumSet<? extends Enum<?>> possibleOptions )
|
||||
{
|
||||
if ( possibleOptions.isEmpty() )
|
||||
if( possibleOptions.isEmpty() )
|
||||
{
|
||||
throw new IllegalArgumentException( "Tried to instantiate an empty setting." );
|
||||
}
|
||||
|
||||
@@ -34,5 +34,6 @@ public enum TunnelType
|
||||
ITEM, // Item Tunnel
|
||||
LIGHT, // Light Tunnel
|
||||
BUNDLED_REDSTONE, // Bundled Redstone Tunnel
|
||||
COMPUTER_MESSAGE // Computer Message Tunnel
|
||||
COMPUTER_MESSAGE, // Computer Message Tunnel
|
||||
PRESSURE // PneumaticCraft Tunnel
|
||||
}
|
||||
|
||||
@@ -59,7 +59,7 @@ public enum Upgrades
|
||||
@Deprecated
|
||||
private final Map<ItemStack, Integer> supportedMax = new HashMap<ItemStack, Integer>();
|
||||
|
||||
Upgrades( int tier )
|
||||
Upgrades( final int tier )
|
||||
{
|
||||
this.tier = tier;
|
||||
}
|
||||
@@ -78,10 +78,10 @@ public enum Upgrades
|
||||
* @param item machine in which this upgrade can be installed
|
||||
* @param maxSupported amount how many upgrades can be installed
|
||||
*/
|
||||
public void registerItem( IItemDefinition item, int maxSupported )
|
||||
public void registerItem( final IItemDefinition item, final int maxSupported )
|
||||
{
|
||||
final Optional<ItemStack> maybeStack = item.maybeStack( 1 );
|
||||
for( ItemStack stack : maybeStack.asSet() )
|
||||
for( final ItemStack stack : maybeStack.asSet() )
|
||||
{
|
||||
this.registerItem( stack, maxSupported );
|
||||
}
|
||||
@@ -93,7 +93,7 @@ public enum Upgrades
|
||||
* @param stack machine in which this upgrade can be installed
|
||||
* @param maxSupported amount how many upgrades can be installed
|
||||
*/
|
||||
public void registerItem( ItemStack stack, int maxSupported )
|
||||
public void registerItem( final ItemStack stack, final int maxSupported )
|
||||
{
|
||||
if( stack != null )
|
||||
{
|
||||
@@ -110,7 +110,7 @@ public enum Upgrades
|
||||
* @deprecated use {@link Upgrades#registerItem(IItemDefinition, int)}
|
||||
*/
|
||||
@Deprecated
|
||||
public void registerItem( AEItemDefinition item, int maxSupported )
|
||||
public void registerItem( final AEItemDefinition item, final int maxSupported )
|
||||
{
|
||||
if( item != null )
|
||||
{
|
||||
|
||||
@@ -77,6 +77,22 @@ public interface IBlocks
|
||||
|
||||
IBlockDefinition quartzPillarStair();
|
||||
|
||||
IBlockDefinition skyStoneSlab();
|
||||
|
||||
IBlockDefinition skyStoneBlockSlab();
|
||||
|
||||
IBlockDefinition skyStoneBrickSlab();
|
||||
|
||||
IBlockDefinition skyStoneSmallBrickSlab();
|
||||
|
||||
IBlockDefinition fluixSlab();
|
||||
|
||||
IBlockDefinition quartzSlab();
|
||||
|
||||
IBlockDefinition chiseledQuartzSlab();
|
||||
|
||||
IBlockDefinition quartzPillarSlab();
|
||||
|
||||
/*
|
||||
* misc
|
||||
*/
|
||||
@@ -90,7 +106,7 @@ public interface IBlocks
|
||||
|
||||
ITileDefinition charger();
|
||||
|
||||
ITileDefinition tinyTNT();
|
||||
IBlockDefinition tinyTNT();
|
||||
|
||||
ITileDefinition security();
|
||||
|
||||
|
||||
@@ -1,11 +1,34 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
* the Software without restriction, including without limitation the rights to
|
||||
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||
* the Software, and to permit persons to whom the Software is furnished to do so,
|
||||
* subject to the following conditions:
|
||||
*
|
||||
* The above copyright notice and this permission notice shall be included in all
|
||||
* copies or substantial portions of the Software.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||
* IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
*/
|
||||
|
||||
package appeng.api.definitions;
|
||||
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
|
||||
public interface IItemDefinition extends IComparableDefinition
|
||||
{
|
||||
@@ -18,4 +41,9 @@ public interface IItemDefinition extends IComparableDefinition
|
||||
* @return an {@link ItemStack} with specified quantity of this item.
|
||||
*/
|
||||
Optional<ItemStack> maybeStack( int stackSize );
|
||||
|
||||
/**
|
||||
* @return <tt>true</tt> if definition is enabled
|
||||
*/
|
||||
boolean isEnabled();
|
||||
}
|
||||
|
||||
@@ -66,6 +66,8 @@ public interface IParts
|
||||
|
||||
IItemDefinition annihilationPlane();
|
||||
|
||||
IItemDefinition identityAnnihilationPlane();
|
||||
|
||||
IItemDefinition formationPlane();
|
||||
|
||||
IItemDefinition p2PTunnelME();
|
||||
@@ -82,6 +84,10 @@ public interface IParts
|
||||
|
||||
IItemDefinition p2PTunnelLight();
|
||||
|
||||
IItemDefinition p2PTunnelOpenComputers();
|
||||
|
||||
IItemDefinition p2PTunnelPneumaticCraft();
|
||||
|
||||
IItemDefinition cableAnchor();
|
||||
|
||||
IItemDefinition monitor();
|
||||
|
||||
@@ -40,7 +40,7 @@ public class LocatableEventAnnounce extends Event
|
||||
public final ILocatable target;
|
||||
public final LocatableEvent change;
|
||||
|
||||
public LocatableEventAnnounce( ILocatable o, LocatableEvent ev )
|
||||
public LocatableEventAnnounce( final ILocatable o, final LocatableEvent ev )
|
||||
{
|
||||
this.target = o;
|
||||
this.change = ev;
|
||||
|
||||
@@ -29,7 +29,7 @@ public class AppEngException extends Exception
|
||||
|
||||
private static final long serialVersionUID = -9051434206368465494L;
|
||||
|
||||
public AppEngException( String t )
|
||||
public AppEngException( final String t )
|
||||
{
|
||||
super( t );
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package appeng.api.exceptions;
|
||||
|
||||
public class CoreInaccessibleException extends RuntimeException
|
||||
{
|
||||
public CoreInaccessibleException( String message )
|
||||
public CoreInaccessibleException( final String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@ package appeng.api.exceptions;
|
||||
|
||||
public class MissingDefinition extends RuntimeException
|
||||
{
|
||||
public MissingDefinition( String message )
|
||||
public MissingDefinition( final String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class MissingIngredientError extends Exception
|
||||
|
||||
private static final long serialVersionUID = -998858343831371697L;
|
||||
|
||||
public MissingIngredientError( String n )
|
||||
public MissingIngredientError( final String n )
|
||||
{
|
||||
super( n );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class ModNotInstalled extends Exception
|
||||
|
||||
private static final long serialVersionUID = -9052435206368425494L;
|
||||
|
||||
public ModNotInstalled( String t )
|
||||
public ModNotInstalled( final String t )
|
||||
{
|
||||
super( t );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class RecipeError extends Exception
|
||||
|
||||
private static final long serialVersionUID = -6602870588617670262L;
|
||||
|
||||
public RecipeError( String n )
|
||||
public RecipeError( final String n )
|
||||
{
|
||||
super( n );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class RegistrationError extends Exception
|
||||
|
||||
private static final long serialVersionUID = -6602870588617670263L;
|
||||
|
||||
public RegistrationError( String n )
|
||||
public RegistrationError( final String n )
|
||||
{
|
||||
super( n );
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
@@ -12,22 +14,26 @@ import net.minecraft.item.ItemStack;
|
||||
* Lets you manipulate Inscriber Recipes, by adding or editing existing ones.
|
||||
*
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @version rv3
|
||||
* @since rv2
|
||||
*/
|
||||
public interface IInscriberRegistry
|
||||
{
|
||||
/**
|
||||
* Current list of registered recipes, you can modify this if you want too.
|
||||
* Will never contain a null recipe
|
||||
* An immutable copy of currently registered recipes.
|
||||
*
|
||||
* Use the provided methods to actually modify the inscriber recipes.
|
||||
*
|
||||
* @see IInscriberRegistry#addRecipe(IInscriberRecipe)
|
||||
* @see IInscriberRegistry#removeRecipe(IInscriberRecipe)
|
||||
*
|
||||
* @return currentlyRegisteredRecipes
|
||||
*/
|
||||
@Nonnull
|
||||
List<IInscriberRecipe> getRecipes();
|
||||
Collection<IInscriberRecipe> getRecipes();
|
||||
|
||||
/**
|
||||
* Optional items which are used in the top or bottom slot
|
||||
* Optional items which are used in the top or bottom slot.
|
||||
*
|
||||
* @return set of all optional items
|
||||
*/
|
||||
@@ -35,7 +41,7 @@ public interface IInscriberRegistry
|
||||
Set<ItemStack> getOptionals();
|
||||
|
||||
/**
|
||||
* Get all registered items which are valid inputs
|
||||
* Get all registered items which are valid inputs.
|
||||
*
|
||||
* @return set of all input items
|
||||
*/
|
||||
@@ -43,7 +49,7 @@ public interface IInscriberRegistry
|
||||
Set<ItemStack> getInputs();
|
||||
|
||||
/**
|
||||
* Extensible way to create an inscriber recipe
|
||||
* Extensible way to create an inscriber recipe.
|
||||
*
|
||||
* @return builder for inscriber recipes
|
||||
*/
|
||||
@@ -61,9 +67,10 @@ public interface IInscriberRegistry
|
||||
void addRecipe( IInscriberRecipe recipe );
|
||||
|
||||
/**
|
||||
* Removes a recipe from the registry
|
||||
* Removes all equal recipes from the registry.
|
||||
*
|
||||
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense
|
||||
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense.
|
||||
*/
|
||||
void removeRecipe( IInscriberRecipe toBeRemovedRecipe );
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -24,6 +24,8 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import appeng.api.config.TunnelType;
|
||||
@@ -39,10 +41,10 @@ public interface IP2PTunnelRegistry
|
||||
* Allows third parties to register items from their mod as potential
|
||||
* attunements for AE's P2P Tunnels
|
||||
*
|
||||
* @param trigger - the item which triggers attunement
|
||||
* @param type - the type of tunnel
|
||||
* @param trigger - the item which triggers attunement. Nullable, but then ignored
|
||||
* @param type - the type of tunnel. Nullable, but then ignored
|
||||
*/
|
||||
void addNewAttunement( ItemStack trigger, TunnelType type );
|
||||
void addNewAttunement( @Nullable ItemStack trigger, @Nullable TunnelType type );
|
||||
|
||||
/**
|
||||
* returns null if no attunement can be found.
|
||||
@@ -51,5 +53,6 @@ public interface IP2PTunnelRegistry
|
||||
*
|
||||
* @return null if no attunement can be found or attunement
|
||||
*/
|
||||
@Nullable
|
||||
TunnelType getTunnelTypeByItem( ItemStack trigger );
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -24,10 +24,12 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.mojang.authlib.GameProfile;
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
|
||||
|
||||
/**
|
||||
* Maintains a save specific list of userids and username combinations this greatly simplifies storage internally and
|
||||
@@ -55,5 +57,6 @@ public interface IPlayerRegistry
|
||||
*
|
||||
* @return PlayerEntity, or null if the player could not be found.
|
||||
*/
|
||||
@Nullable
|
||||
EntityPlayer findPlayer( int playerID );
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -24,11 +24,19 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import appeng.api.recipes.ICraftHandler;
|
||||
import appeng.api.recipes.IRecipeHandler;
|
||||
import appeng.api.recipes.ISubItemResolver;
|
||||
|
||||
|
||||
/**
|
||||
* @author AlgorithmX2
|
||||
* @author thatsIch
|
||||
* @version rv3 - 10.08.2015
|
||||
* @since rv0
|
||||
*/
|
||||
public interface IRecipeHandlerRegistry
|
||||
{
|
||||
|
||||
@@ -37,7 +45,7 @@ public interface IRecipeHandlerRegistry
|
||||
*
|
||||
* MUST BE CALLED IN PRE-INIT
|
||||
*
|
||||
* @param name name of crafthandler
|
||||
* @param name name of crafthandler
|
||||
* @param handler class of crafthandler
|
||||
*/
|
||||
void addNewCraftHandler( String name, Class<? extends ICraftHandler> handler );
|
||||
@@ -56,6 +64,7 @@ public interface IRecipeHandlerRegistry
|
||||
*
|
||||
* @return A recipe handler by name, returns null on failure.
|
||||
*/
|
||||
@Nullable
|
||||
ICraftHandler getCraftHandlerFor( String name );
|
||||
|
||||
/**
|
||||
@@ -67,9 +76,10 @@ public interface IRecipeHandlerRegistry
|
||||
* resolve sub items by name.
|
||||
*
|
||||
* @param nameSpace namespace of item
|
||||
* @param itemName full name of item
|
||||
* @param itemName full name of item
|
||||
*
|
||||
* @return ResolverResult or ResolverResultSet
|
||||
* @return ResolverResult or ResolverResultSet or null if could not resolve
|
||||
*/
|
||||
@Nullable
|
||||
Object resolveItem( String nameSpace, String itemName );
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class TransitionResult
|
||||
public final boolean success;
|
||||
public final double energyUsage;
|
||||
|
||||
public TransitionResult( boolean _success, double power )
|
||||
public TransitionResult( final boolean _success, final double power )
|
||||
{
|
||||
this.success = _success;
|
||||
this.energyUsage = power;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class MENetworkChannelChanged extends MENetworkEvent
|
||||
|
||||
public final IGridNode node;
|
||||
|
||||
public MENetworkChannelChanged( IGridNode n )
|
||||
public MENetworkChannelChanged( final IGridNode n )
|
||||
{
|
||||
this.node = n;
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public class MENetworkCraftingCpuChange extends MENetworkEvent
|
||||
|
||||
public final IGridNode node;
|
||||
|
||||
public MENetworkCraftingCpuChange( IGridNode n )
|
||||
public MENetworkCraftingCpuChange( final IGridNode n )
|
||||
{
|
||||
this.node = n;
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@ public class MENetworkCraftingPatternChange extends MENetworkEvent
|
||||
public final ICraftingProvider provider;
|
||||
public final IGridNode node;
|
||||
|
||||
public MENetworkCraftingPatternChange( ICraftingProvider p, IGridNode n )
|
||||
public MENetworkCraftingPatternChange( final ICraftingProvider p, final IGridNode n )
|
||||
{
|
||||
this.provider = p;
|
||||
this.node = n;
|
||||
|
||||
@@ -71,7 +71,7 @@ public class MENetworkEvent
|
||||
*
|
||||
* @param v current number of visitors
|
||||
*/
|
||||
public void setVisitedObjects( int v )
|
||||
public void setVisitedObjects( final int v )
|
||||
{
|
||||
this.visited = v;
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ public class MENetworkPowerIdleChange extends MENetworkEvent
|
||||
|
||||
public final IGridNode node;
|
||||
|
||||
public MENetworkPowerIdleChange( IGridNode nodeThatChanged )
|
||||
public MENetworkPowerIdleChange( final IGridNode nodeThatChanged )
|
||||
{
|
||||
this.node = nodeThatChanged;
|
||||
}
|
||||
|
||||
@@ -42,7 +42,7 @@ public class MENetworkPowerStorage extends MENetworkEvent
|
||||
public final IAEPowerStorage storage;
|
||||
public final PowerEventType type;
|
||||
|
||||
public MENetworkPowerStorage( IAEPowerStorage t, PowerEventType y )
|
||||
public MENetworkPowerStorage( final IAEPowerStorage t, final PowerEventType y )
|
||||
{
|
||||
this.storage = t;
|
||||
this.type = y;
|
||||
|
||||
@@ -39,7 +39,7 @@ public class MENetworkSpatialEvent extends MENetworkEvent
|
||||
* @param SpatialIO ( INSTANCE of the SpatialIO block )
|
||||
* @param EnergyUsage ( the amount of energy that the SpatialIO uses)
|
||||
*/
|
||||
public MENetworkSpatialEvent( IGridHost SpatialIO, double EnergyUsage )
|
||||
public MENetworkSpatialEvent( final IGridHost SpatialIO, final double EnergyUsage )
|
||||
{
|
||||
this.host = SpatialIO;
|
||||
this.spatialEnergyUsage = EnergyUsage;
|
||||
|
||||
@@ -42,7 +42,7 @@ public class MENetworkStorageEvent extends MENetworkEvent
|
||||
public final IMEMonitor monitor;
|
||||
public final StorageChannel channel;
|
||||
|
||||
public MENetworkStorageEvent( IMEMonitor o, StorageChannel chan )
|
||||
public MENetworkStorageEvent( final IMEMonitor o, final StorageChannel chan )
|
||||
{
|
||||
this.monitor = o;
|
||||
this.channel = chan;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -38,8 +38,8 @@ public interface ISecurityRegistry
|
||||
/**
|
||||
* Submit Permissions into the register.
|
||||
*
|
||||
* @param PlayerID player id
|
||||
* @param playerID player id
|
||||
* @param permissions permissions of player
|
||||
*/
|
||||
void addPlayer( int PlayerID, EnumSet<SecurityPermissions> permissions );
|
||||
void addPlayer( int playerID, EnumSet<SecurityPermissions> permissions );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ public class MachineSource extends BaseActionSource
|
||||
|
||||
public final IActionHost via;
|
||||
|
||||
public MachineSource( IActionHost v )
|
||||
public MachineSource( final IActionHost v )
|
||||
{
|
||||
this.via = v;
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public class PlayerSource extends BaseActionSource
|
||||
public final EntityPlayer player;
|
||||
public final IActionHost via;
|
||||
|
||||
public PlayerSource( EntityPlayer p, IActionHost v )
|
||||
public PlayerSource( final EntityPlayer p, final IActionHost v )
|
||||
{
|
||||
this.player = p;
|
||||
this.via = v;
|
||||
|
||||
@@ -60,7 +60,7 @@ public class TickingRequest
|
||||
*/
|
||||
public final boolean canBeAlerted;
|
||||
|
||||
public TickingRequest( int min, int max, boolean sleep, boolean alertable )
|
||||
public TickingRequest( final int min, final int max, final boolean sleep, final boolean alertable )
|
||||
{
|
||||
this.minTickRate = min;
|
||||
this.maxTickRate = max;
|
||||
|
||||
@@ -33,7 +33,7 @@ public enum CableRenderMode
|
||||
public final boolean transparentFacades;
|
||||
public final boolean opaqueFacades;
|
||||
|
||||
CableRenderMode( boolean hideFacades )
|
||||
CableRenderMode( final boolean hideFacades )
|
||||
{
|
||||
this.transparentFacades = hideFacades;
|
||||
this.opaqueFacades = !hideFacades;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -94,7 +94,7 @@ public interface IFacadePart
|
||||
|
||||
int getItemDamage();
|
||||
|
||||
boolean isBC();
|
||||
boolean notAEFacade();
|
||||
|
||||
void setThinFacades( boolean useThinFacades );
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -24,6 +24,8 @@
|
||||
package appeng.api.parts;
|
||||
|
||||
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
//@formatter:off
|
||||
@@ -63,5 +65,6 @@ public interface IPartItem
|
||||
*
|
||||
* @return part from item
|
||||
*/
|
||||
@Nullable
|
||||
IPart createPartFromItemStack( ItemStack is );
|
||||
}
|
||||
|
||||
@@ -46,7 +46,7 @@ public abstract class LayerBase extends TileEntity // implements IPartHost
|
||||
*
|
||||
* @return the part for the requested side.
|
||||
*/
|
||||
public IPart getPart( ForgeDirection side )
|
||||
public IPart getPart( final ForgeDirection side )
|
||||
{
|
||||
return null; // place holder.
|
||||
}
|
||||
|
||||
@@ -55,14 +55,14 @@ public class SelectedPart
|
||||
this.side = ForgeDirection.UNKNOWN;
|
||||
}
|
||||
|
||||
public SelectedPart( IPart part, ForgeDirection side )
|
||||
public SelectedPart( final IPart part, final ForgeDirection side )
|
||||
{
|
||||
this.part = part;
|
||||
this.facade = null;
|
||||
this.side = side;
|
||||
}
|
||||
|
||||
public SelectedPart( IFacadePart facade, ForgeDirection side )
|
||||
public SelectedPart( final IFacadePart facade, final ForgeDirection side )
|
||||
{
|
||||
this.part = null;
|
||||
this.facade = facade;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* The MIT License (MIT)
|
||||
*
|
||||
* Copyright (c) 2013 AlgorithmX2
|
||||
* Copyright (c) 2013 - 2015 AlgorithmX2
|
||||
*
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
* this software and associated documentation files (the "Software"), to deal in
|
||||
@@ -25,10 +25,17 @@ package appeng.api.recipes;
|
||||
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
|
||||
public interface IRecipeLoader
|
||||
{
|
||||
|
||||
BufferedReader getFile( String s ) throws Exception;
|
||||
/**
|
||||
* @param filePath the path to the to be loaded file
|
||||
*
|
||||
* @return reader handler of the file
|
||||
*
|
||||
* @throws Exception if reading goes wrong
|
||||
*/
|
||||
BufferedReader getFile( @Nonnull String filePath ) throws Exception;
|
||||
}
|
||||
|
||||
@@ -34,14 +34,14 @@ public class ResolverResult
|
||||
public final int damageValue;
|
||||
public final NBTTagCompound compound;
|
||||
|
||||
public ResolverResult( String name, int damage )
|
||||
public ResolverResult( final String name, final int damage )
|
||||
{
|
||||
this.itemName = name;
|
||||
this.damageValue = damage;
|
||||
this.compound = null;
|
||||
}
|
||||
|
||||
public ResolverResult( String name, int damage, NBTTagCompound data )
|
||||
public ResolverResult( final String name, final int damage, final NBTTagCompound data )
|
||||
{
|
||||
this.itemName = name;
|
||||
this.damageValue = damage;
|
||||
|
||||
@@ -36,7 +36,7 @@ public class ResolverResultSet
|
||||
public final String name;
|
||||
public final List<ItemStack> results;
|
||||
|
||||
public ResolverResultSet( String myName, ItemStack... set )
|
||||
public ResolverResultSet( final String myName, final ItemStack... set )
|
||||
{
|
||||
this.results = Arrays.asList( set );
|
||||
this.name = myName;
|
||||
|
||||
@@ -52,32 +52,32 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
|
||||
protected boolean hasChanged = true;
|
||||
|
||||
public MEMonitorHandler( IMEInventoryHandler<StackType> t )
|
||||
public MEMonitorHandler( final IMEInventoryHandler<StackType> t )
|
||||
{
|
||||
this.internalHandler = t;
|
||||
this.cachedList = (IItemList<StackType>) t.getChannel().createList();
|
||||
}
|
||||
|
||||
public MEMonitorHandler( IMEInventoryHandler<StackType> t, StorageChannel chan )
|
||||
public MEMonitorHandler( final IMEInventoryHandler<StackType> t, final StorageChannel chan )
|
||||
{
|
||||
this.internalHandler = t;
|
||||
this.cachedList = (IItemList<StackType>) chan.createList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addListener( IMEMonitorHandlerReceiver<StackType> l, Object verificationToken )
|
||||
public void addListener( final IMEMonitorHandlerReceiver<StackType> l, final Object verificationToken )
|
||||
{
|
||||
this.listeners.put( l, verificationToken );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeListener( IMEMonitorHandlerReceiver<StackType> l )
|
||||
public void removeListener( final IMEMonitorHandlerReceiver<StackType> l )
|
||||
{
|
||||
this.listeners.remove( l );
|
||||
}
|
||||
|
||||
@Override
|
||||
public StackType injectItems( StackType input, Actionable mode, BaseActionSource src )
|
||||
public StackType injectItems( final StackType input, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
@@ -91,9 +91,9 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
return this.internalHandler;
|
||||
}
|
||||
|
||||
private StackType monitorDifference( IAEStack original, StackType leftOvers, boolean extraction, BaseActionSource src )
|
||||
private StackType monitorDifference( final IAEStack original, final StackType leftOvers, final boolean extraction, final BaseActionSource src )
|
||||
{
|
||||
StackType diff = (StackType) original.copy();
|
||||
final StackType diff = (StackType) original.copy();
|
||||
|
||||
if( extraction )
|
||||
{
|
||||
@@ -112,19 +112,19 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
return leftOvers;
|
||||
}
|
||||
|
||||
protected void postChangesToListeners( Iterable<StackType> changes, BaseActionSource src )
|
||||
protected void postChangesToListeners( final Iterable<StackType> changes, final BaseActionSource src )
|
||||
{
|
||||
this.notifyListenersOfChange( changes, src );
|
||||
}
|
||||
|
||||
protected void notifyListenersOfChange( Iterable<StackType> diff, BaseActionSource src )
|
||||
protected void notifyListenersOfChange( final Iterable<StackType> diff, final BaseActionSource src )
|
||||
{
|
||||
this.hasChanged = true;// need to update the cache.
|
||||
Iterator<Entry<IMEMonitorHandlerReceiver<StackType>, Object>> i = this.getListeners();
|
||||
final Iterator<Entry<IMEMonitorHandlerReceiver<StackType>, Object>> i = this.getListeners();
|
||||
while( i.hasNext() )
|
||||
{
|
||||
Entry<IMEMonitorHandlerReceiver<StackType>, Object> o = i.next();
|
||||
IMEMonitorHandlerReceiver<StackType> receiver = o.getKey();
|
||||
final Entry<IMEMonitorHandlerReceiver<StackType>, Object> o = i.next();
|
||||
final IMEMonitorHandlerReceiver<StackType> receiver = o.getKey();
|
||||
if( receiver.isValid( o.getValue() ) )
|
||||
{
|
||||
receiver.postChange( this, diff, src );
|
||||
@@ -142,7 +142,7 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
}
|
||||
|
||||
@Override
|
||||
public StackType extractItems( StackType request, Actionable mode, BaseActionSource src )
|
||||
public StackType extractItems( final StackType request, final Actionable mode, final BaseActionSource src )
|
||||
{
|
||||
if( mode == Actionable.SIMULATE )
|
||||
{
|
||||
@@ -175,17 +175,17 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPrioritized( StackType input )
|
||||
public boolean isPrioritized( final StackType input )
|
||||
{
|
||||
return this.getHandler().isPrioritized( input );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canAccept( StackType input )
|
||||
public boolean canAccept( final StackType input )
|
||||
{
|
||||
return this.getHandler().canAccept( input );
|
||||
} @Override
|
||||
public IItemList<StackType> getAvailableItems( IItemList out )
|
||||
public IItemList<StackType> getAvailableItems( final IItemList out )
|
||||
{
|
||||
return this.getHandler().getAvailableItems( out );
|
||||
}
|
||||
@@ -203,7 +203,7 @@ public class MEMonitorHandler<StackType extends IAEStack> implements IMEMonitor<
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean validForPass( int i )
|
||||
public boolean validForPass( final int i )
|
||||
{
|
||||
return this.getHandler().validForPass( i );
|
||||
}
|
||||
|
||||
@@ -45,7 +45,7 @@ public enum StorageChannel
|
||||
|
||||
public final Class<? extends IAEStack> type;
|
||||
|
||||
StorageChannel( Class<? extends IAEStack> t )
|
||||
StorageChannel( final Class<? extends IAEStack> t )
|
||||
{
|
||||
this.type = t;
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ public enum AEColor
|
||||
*/
|
||||
public final int whiteVariant;
|
||||
|
||||
AEColor( String unlocalizedName, int blackHex, int medHex, int whiteHex )
|
||||
AEColor( final String unlocalizedName, final int blackHex, final int medHex, final int whiteHex )
|
||||
{
|
||||
this.unlocalizedName = unlocalizedName;
|
||||
this.blackVariant = blackHex;
|
||||
@@ -105,7 +105,7 @@ public enum AEColor
|
||||
/**
|
||||
* Logic to see which colors match each other.. special handle for Transparent
|
||||
*/
|
||||
public boolean matches( AEColor color )
|
||||
public boolean matches( final AEColor color )
|
||||
{
|
||||
return this == Transparent || color == Transparent || this == color;
|
||||
}
|
||||
|
||||
@@ -37,21 +37,21 @@ public class DimensionalCoord extends WorldCoord
|
||||
private final World w;
|
||||
private final int dimId;
|
||||
|
||||
public DimensionalCoord( DimensionalCoord s )
|
||||
public DimensionalCoord( final DimensionalCoord s )
|
||||
{
|
||||
super( s.x, s.y, s.z );
|
||||
this.w = s.w;
|
||||
this.dimId = s.dimId;
|
||||
}
|
||||
|
||||
public DimensionalCoord( TileEntity s )
|
||||
public DimensionalCoord( final TileEntity s )
|
||||
{
|
||||
super( s );
|
||||
this.w = s.getWorldObj();
|
||||
this.dimId = this.w.provider.dimensionId;
|
||||
}
|
||||
|
||||
public DimensionalCoord( World _w, int _x, int _y, int _z )
|
||||
public DimensionalCoord( final World _w, final int _x, final int _y, final int _z )
|
||||
{
|
||||
super( _x, _y, _z );
|
||||
this.w = _w;
|
||||
@@ -71,12 +71,12 @@ public class DimensionalCoord extends WorldCoord
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals( Object obj )
|
||||
public boolean equals( final Object obj )
|
||||
{
|
||||
return obj instanceof DimensionalCoord && this.isEqual( (DimensionalCoord) obj );
|
||||
}
|
||||
|
||||
public boolean isEqual( DimensionalCoord c )
|
||||
public boolean isEqual( final DimensionalCoord c )
|
||||
{
|
||||
return this.x == c.x && this.y == c.y && this.z == c.z && c.w == this.w;
|
||||
}
|
||||
@@ -87,7 +87,7 @@ public class DimensionalCoord extends WorldCoord
|
||||
return "dimension=" + this.dimId + ", " + super.toString();
|
||||
}
|
||||
|
||||
public boolean isInWorld( World world )
|
||||
public boolean isInWorld( final World world )
|
||||
{
|
||||
return this.w == world;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
package appeng.api.util;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
@@ -43,5 +43,5 @@ public interface ICommonTile
|
||||
* @param z z pos of tile entity
|
||||
* @param drops drops of tile entity
|
||||
*/
|
||||
void getDrops( World world, int x, int y, int z, ArrayList<ItemStack> drops );
|
||||
void getDrops( World world, int x, int y, int z, List<ItemStack> drops );
|
||||
}
|
||||
@@ -39,19 +39,19 @@ public class WorldCoord
|
||||
public int y;
|
||||
public int z;
|
||||
|
||||
public WorldCoord( TileEntity s )
|
||||
public WorldCoord( final TileEntity s )
|
||||
{
|
||||
this( s.xCoord, s.yCoord, s.zCoord );
|
||||
}
|
||||
|
||||
public WorldCoord( int _x, int _y, int _z )
|
||||
public WorldCoord( final int _x, final int _y, final int _z )
|
||||
{
|
||||
this.x = _x;
|
||||
this.y = _y;
|
||||
this.z = _z;
|
||||
}
|
||||
|
||||
public WorldCoord subtract( ForgeDirection direction, int length )
|
||||
public WorldCoord subtract( final ForgeDirection direction, final int length )
|
||||
{
|
||||
this.x -= direction.offsetX * length;
|
||||
this.y -= direction.offsetY * length;
|
||||
@@ -59,7 +59,7 @@ public class WorldCoord
|
||||
return this;
|
||||
}
|
||||
|
||||
public WorldCoord add( int _x, int _y, int _z )
|
||||
public WorldCoord add( final int _x, final int _y, final int _z )
|
||||
{
|
||||
this.x += _x;
|
||||
this.y += _y;
|
||||
@@ -67,7 +67,7 @@ public class WorldCoord
|
||||
return this;
|
||||
}
|
||||
|
||||
public WorldCoord subtract( int _x, int _y, int _z )
|
||||
public WorldCoord subtract( final int _x, final int _y, final int _z )
|
||||
{
|
||||
this.x -= _x;
|
||||
this.y -= _y;
|
||||
@@ -75,7 +75,7 @@ public class WorldCoord
|
||||
return this;
|
||||
}
|
||||
|
||||
public WorldCoord multiple( int _x, int _y, int _z )
|
||||
public WorldCoord multiple( final int _x, final int _y, final int _z )
|
||||
{
|
||||
this.x *= _x;
|
||||
this.y *= _y;
|
||||
@@ -83,7 +83,7 @@ public class WorldCoord
|
||||
return this;
|
||||
}
|
||||
|
||||
public WorldCoord divide( int _x, int _y, int _z )
|
||||
public WorldCoord divide( final int _x, final int _y, final int _z )
|
||||
{
|
||||
this.x /= _x;
|
||||
this.y /= _y;
|
||||
@@ -94,15 +94,15 @@ public class WorldCoord
|
||||
/**
|
||||
* Will Return NULL if it's at some diagonal!
|
||||
*/
|
||||
public ForgeDirection directionTo( WorldCoord loc )
|
||||
public ForgeDirection directionTo( final WorldCoord loc )
|
||||
{
|
||||
int ox = this.x - loc.x;
|
||||
int oy = this.y - loc.y;
|
||||
int oz = this.z - loc.z;
|
||||
final int ox = this.x - loc.x;
|
||||
final int oy = this.y - loc.y;
|
||||
final int oz = this.z - loc.z;
|
||||
|
||||
int xlen = Math.abs( ox );
|
||||
int ylen = Math.abs( oy );
|
||||
int zlen = Math.abs( oz );
|
||||
final int xlen = Math.abs( ox );
|
||||
final int ylen = Math.abs( oy );
|
||||
final int zlen = Math.abs( oz );
|
||||
|
||||
if( loc.isEqual( this.copy().add( ForgeDirection.EAST, xlen ) ) )
|
||||
{
|
||||
@@ -137,12 +137,12 @@ public class WorldCoord
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isEqual( WorldCoord c )
|
||||
public boolean isEqual( final WorldCoord c )
|
||||
{
|
||||
return this.x == c.x && this.y == c.y && this.z == c.z;
|
||||
}
|
||||
|
||||
public WorldCoord add( ForgeDirection direction, int length )
|
||||
public WorldCoord add( final ForgeDirection direction, final int length )
|
||||
{
|
||||
this.x += direction.offsetX * length;
|
||||
this.y += direction.offsetY * length;
|
||||
@@ -162,7 +162,7 @@ public class WorldCoord
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals( Object obj )
|
||||
public boolean equals( final Object obj )
|
||||
{
|
||||
return obj instanceof WorldCoord && this.isEqual( (WorldCoord) obj );
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -22,24 +22,19 @@ package appeng.block;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockContainer;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.client.resources.IResource;
|
||||
import net.minecraft.creativetab.CreativeTabs;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
@@ -49,21 +44,11 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.common.registry.GameRegistry;
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import appeng.api.implementations.items.IMemoryCard;
|
||||
import appeng.api.implementations.items.MemoryCardMessages;
|
||||
import appeng.api.implementations.tiles.IColorableTile;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.api.util.IOrientableBlock;
|
||||
import appeng.block.networking.BlockCableBus;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.BlockRenderInfo;
|
||||
import appeng.client.render.WorldRender;
|
||||
@@ -74,45 +59,34 @@ import appeng.core.features.AEFeature;
|
||||
import appeng.core.features.FeatureNameExtractor;
|
||||
import appeng.core.features.IAEFeature;
|
||||
import appeng.core.features.IFeatureHandler;
|
||||
import appeng.core.features.ItemStackSrc;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import appeng.tile.networking.TileCableBus;
|
||||
import appeng.tile.storage.TileSkyChest;
|
||||
import appeng.util.LookDirection;
|
||||
import appeng.util.Platform;
|
||||
import appeng.util.SettingsFrom;
|
||||
|
||||
|
||||
public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
public abstract class AEBaseBlock extends Block implements IAEFeature
|
||||
{
|
||||
private final String featureFullName;
|
||||
private final Optional<String> featureSubName;
|
||||
@SideOnly( Side.CLIENT )
|
||||
public IIcon renderIcon;
|
||||
protected final Optional<String> featureSubName;
|
||||
protected boolean isOpaque = true;
|
||||
protected boolean isFullSize = true;
|
||||
protected boolean hasSubtypes = false;
|
||||
protected boolean isInventory = false;
|
||||
private IFeatureHandler handler;
|
||||
@SideOnly( Side.CLIENT )
|
||||
BlockRenderInfo renderInfo;
|
||||
private IFeatureHandler handler;
|
||||
|
||||
@Nullable
|
||||
private Class<? extends TileEntity> tileEntityType = null;
|
||||
|
||||
protected AEBaseBlock( Class<? extends AEBaseBlock> c, Material mat )
|
||||
protected AEBaseBlock( final Material mat )
|
||||
{
|
||||
this( c, mat, Optional.<String>absent() );
|
||||
this( mat, Optional.<String>absent() );
|
||||
this.setLightOpacity( 255 );
|
||||
this.setLightLevel( 0 );
|
||||
this.setHardness( 2.2F );
|
||||
this.setTileProvider( false );
|
||||
this.setHarvestLevel( "pickaxe", 0 );
|
||||
}
|
||||
|
||||
protected AEBaseBlock( Class<?> c, Material mat, Optional<String> subName )
|
||||
protected AEBaseBlock( final Material mat, final Optional<String> subName )
|
||||
{
|
||||
super( mat );
|
||||
|
||||
@@ -133,16 +107,10 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
this.setStepSound( Block.soundTypeMetal );
|
||||
}
|
||||
|
||||
this.featureFullName = new FeatureNameExtractor( c, subName ).get();
|
||||
this.featureFullName = new FeatureNameExtractor( this.getClass(), subName ).get();
|
||||
this.featureSubName = subName;
|
||||
}
|
||||
|
||||
// update Block value.
|
||||
private void setTileProvider( boolean b )
|
||||
{
|
||||
ReflectionHelper.setPrivateValue( Block.class, this, b, "isTileProvider" );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString()
|
||||
{
|
||||
@@ -151,8 +119,8 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
|
||||
public void registerNoIcons()
|
||||
{
|
||||
BlockRenderInfo info = this.getRendererInstance();
|
||||
FlippableIcon i = new FlippableIcon( new MissingIcon( this ) );
|
||||
final BlockRenderInfo info = this.getRendererInstance();
|
||||
final FlippableIcon i = new FlippableIcon( new MissingIcon( this ) );
|
||||
info.updateIcons( i, i, i, i, i, i );
|
||||
}
|
||||
|
||||
@@ -171,11 +139,11 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
|
||||
return this.renderInfo;
|
||||
}
|
||||
catch ( InstantiationException e )
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.getRenderer(), e );
|
||||
}
|
||||
catch( IllegalAccessException e )
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of " + this.getRenderer() + " because of permissions.", e );
|
||||
}
|
||||
@@ -187,29 +155,15 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return BaseBlockRender.class;
|
||||
}
|
||||
|
||||
public IIcon unmappedGetIcon( IBlockAccess w, int x, int y, int z, int s )
|
||||
public IIcon unmappedGetIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
return super.getIcon( w, x, y, z, s );
|
||||
}
|
||||
|
||||
protected void setTileEntity( Class<? extends TileEntity> c )
|
||||
protected void setFeature( final EnumSet<AEFeature> f )
|
||||
{
|
||||
this.tileEntityType = c;
|
||||
|
||||
AEBaseTile.registerTileItem( c, new ItemStackSrc( this, 0 ) );
|
||||
GameRegistry.registerTileEntity( this.tileEntityType, this.featureFullName );
|
||||
this.isInventory = IInventory.class.isAssignableFrom( c );
|
||||
this.setTileProvider( this.hasBlockTileEntity() );
|
||||
}
|
||||
|
||||
public boolean hasBlockTileEntity()
|
||||
{
|
||||
return this.tileEntityType != null;
|
||||
}
|
||||
|
||||
protected void setFeature( EnumSet<AEFeature> f )
|
||||
{
|
||||
this.handler = new AEBlockFeatureHandler( f, this, this.featureSubName );
|
||||
final AEBlockFeatureHandler featureHandler = new AEBlockFeatureHandler( f, this, this.featureSubName );
|
||||
this.setHandler( featureHandler );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -218,6 +172,11 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return this.handler;
|
||||
}
|
||||
|
||||
protected final void setHandler( final IFeatureHandler handler )
|
||||
{
|
||||
this.handler = handler;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postInit()
|
||||
{
|
||||
@@ -243,48 +202,39 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s )
|
||||
public IIcon getIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
return this.getIcon( this.mapRotation( w, x, y, z, s ), w.getBlockMetadata( x, y, z ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
if( this.renderIcon != null )
|
||||
{
|
||||
return this.renderIcon;
|
||||
}
|
||||
|
||||
return this.getRendererInstance().getTexture( ForgeDirection.getOrientation( direction ) );
|
||||
}
|
||||
|
||||
protected ICustomCollision getCustomCollision( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
if( this instanceof ICustomCollision )
|
||||
{
|
||||
return (ICustomCollision) this;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SuppressWarnings( "unchecked" )
|
||||
// NOTE: WAS FINAL, changed for Immibis
|
||||
public void addCollisionBoxesToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e )
|
||||
public void addCollisionBoxesToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List out, final Entity e )
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z );
|
||||
|
||||
if( collisionHandler != null && bb != null )
|
||||
{
|
||||
List<AxisAlignedBB> tmp = new ArrayList<AxisAlignedBB>();
|
||||
final List<AxisAlignedBB> tmp = new ArrayList<AxisAlignedBB>();
|
||||
collisionHandler.addCollidingBlockToList( w, x, y, z, bb, tmp, e );
|
||||
for( AxisAlignedBB b : tmp )
|
||||
for( final AxisAlignedBB b : tmp )
|
||||
{
|
||||
b.minX += x;
|
||||
b.minY += y;
|
||||
@@ -306,51 +256,38 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public final AxisAlignedBB getSelectedBoundingBoxFromPool( World w, int x, int y, int z )
|
||||
public final AxisAlignedBB getSelectedBoundingBoxFromPool( final World w, final int x, final int y, final 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;
|
||||
}
|
||||
}
|
||||
final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z );
|
||||
|
||||
if( collisionHandler != null )
|
||||
{
|
||||
if( Platform.isClient() )
|
||||
{
|
||||
EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
LookDirection ld = Platform.getPlayerRay( player, Platform.getEyeOffset( player ) );
|
||||
final EntityPlayer player = Minecraft.getMinecraft().thePlayer;
|
||||
final LookDirection ld = Platform.getPlayerRay( player, Platform.getEyeOffset( player ) );
|
||||
|
||||
Iterable<AxisAlignedBB> bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, Minecraft.getMinecraft().thePlayer, true );
|
||||
final Iterable<AxisAlignedBB> bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, Minecraft.getMinecraft().thePlayer, true );
|
||||
AxisAlignedBB br = null;
|
||||
|
||||
double lastDist = 0;
|
||||
|
||||
for( AxisAlignedBB bb : bbs )
|
||||
for( final AxisAlignedBB bb : bbs )
|
||||
{
|
||||
this.setBlockBounds( (float) bb.minX, (float) bb.minY, (float) bb.minZ, (float) bb.maxX, (float) bb.maxY, (float) bb.maxZ );
|
||||
|
||||
MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, ld.a, ld.b );
|
||||
final MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, ld.a, ld.b );
|
||||
|
||||
this.setBlockBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
if( r != null )
|
||||
{
|
||||
double xLen = ( ld.a.xCoord - r.hitVec.xCoord );
|
||||
double yLen = ( ld.a.yCoord - r.hitVec.yCoord );
|
||||
double zLen = ( ld.a.zCoord - r.hitVec.zCoord );
|
||||
final double xLen = ( ld.a.xCoord - r.hitVec.xCoord );
|
||||
final double yLen = ( ld.a.yCoord - r.hitVec.yCoord );
|
||||
final double zLen = ( ld.a.zCoord - r.hitVec.zCoord );
|
||||
|
||||
final double thisDist = xLen * xLen + yLen * yLen + zLen * zLen;
|
||||
|
||||
double thisDist = xLen * xLen + yLen * yLen + zLen * zLen;
|
||||
if( br == null || lastDist > thisDist )
|
||||
{
|
||||
lastDist = thisDist;
|
||||
@@ -366,32 +303,26 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
}
|
||||
}
|
||||
|
||||
for( AxisAlignedBB bx : collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, false ) )
|
||||
final AxisAlignedBB b = AxisAlignedBB.getBoundingBox( 16d, 16d, 16d, 0d, 0d, 0d );
|
||||
|
||||
for( final AxisAlignedBB bx : collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, false ) )
|
||||
{
|
||||
if( b == null )
|
||||
{
|
||||
b = bx;
|
||||
}
|
||||
else
|
||||
{
|
||||
double minX = Math.min( b.minX, bx.minX );
|
||||
double minY = Math.min( b.minY, bx.minY );
|
||||
double minZ = Math.min( b.minZ, bx.minZ );
|
||||
double maxX = Math.max( b.maxX, bx.maxX );
|
||||
double maxY = Math.max( b.maxY, bx.maxY );
|
||||
double maxZ = Math.max( b.maxZ, bx.maxZ );
|
||||
b.setBounds( minX, minY, minZ, maxX, maxY, maxZ );
|
||||
}
|
||||
final double minX = Math.min( b.minX, bx.minX );
|
||||
final double minY = Math.min( b.minY, bx.minY );
|
||||
final double minZ = Math.min( b.minZ, bx.minZ );
|
||||
final double maxX = Math.max( b.maxX, bx.maxX );
|
||||
final double maxY = Math.max( b.maxY, bx.maxY );
|
||||
final double maxZ = Math.max( b.maxZ, bx.maxZ );
|
||||
|
||||
b.setBounds( minX, minY, minZ, maxX, maxY, maxZ );
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
return b;
|
||||
return super.getSelectedBoundingBoxFromPool( w, x, y, z );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -401,45 +332,32 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
}
|
||||
|
||||
@Override
|
||||
public MovingObjectPosition collisionRayTrace( World w, int x, int y, int z, Vec3 a, Vec3 b )
|
||||
public MovingObjectPosition collisionRayTrace( final World w, final int x, final int y, final int z, final Vec3 a, final Vec3 b )
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
final ICustomCollision collisionHandler = this.getCustomCollision( w, x, y, z );
|
||||
|
||||
if( collisionHandler != null )
|
||||
{
|
||||
Iterable<AxisAlignedBB> bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, true );
|
||||
final Iterable<AxisAlignedBB> bbs = collisionHandler.getSelectedBoundingBoxesFromPool( w, x, y, z, null, true );
|
||||
MovingObjectPosition br = null;
|
||||
|
||||
double lastDist = 0;
|
||||
|
||||
for( AxisAlignedBB bb : bbs )
|
||||
for( final AxisAlignedBB bb : bbs )
|
||||
{
|
||||
this.setBlockBounds( (float) bb.minX, (float) bb.minY, (float) bb.minZ, (float) bb.maxX, (float) bb.maxY, (float) bb.maxZ );
|
||||
|
||||
MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, a, b );
|
||||
final MovingObjectPosition r = super.collisionRayTrace( w, x, y, z, a, b );
|
||||
|
||||
this.setBlockBounds( 0, 0, 0, 1, 1, 1 );
|
||||
|
||||
if( r != null )
|
||||
{
|
||||
double xLen = ( a.xCoord - r.hitVec.xCoord );
|
||||
double yLen = ( a.yCoord - r.hitVec.yCoord );
|
||||
double zLen = ( a.zCoord - r.hitVec.zCoord );
|
||||
final double xLen = ( a.xCoord - r.hitVec.xCoord );
|
||||
final double yLen = ( a.yCoord - r.hitVec.yCoord );
|
||||
final double zLen = ( a.zCoord - r.hitVec.zCoord );
|
||||
|
||||
double thisDist = xLen * xLen + yLen * yLen + zLen * zLen;
|
||||
final double thisDist = xLen * xLen + yLen * yLen + zLen * zLen;
|
||||
if( br == null || lastDist > thisDist )
|
||||
{
|
||||
lastDist = thisDist;
|
||||
@@ -452,6 +370,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
{
|
||||
return br;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -459,118 +378,15 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return super.collisionRayTrace( w, x, y, z, a, b );
|
||||
}
|
||||
|
||||
@Override
|
||||
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 )
|
||||
{
|
||||
ItemStack is = player.inventory.getCurrentItem();
|
||||
if( is != null )
|
||||
{
|
||||
if( Platform.isWrench( player, is, x, y, z ) && player.isSneaking() )
|
||||
{
|
||||
Block id = w.getBlock( x, y, z );
|
||||
if( id != null )
|
||||
{
|
||||
AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
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 )
|
||||
{
|
||||
if( Platform.isSameItemType( ol, op ) )
|
||||
{
|
||||
NBTTagCompound tag = tile.downloadSettings( SettingsFrom.DISMANTLE_ITEM );
|
||||
if( tag != null )
|
||||
{
|
||||
ol.setTagCompound( tag );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( id.removedByPlayer( w, player, x, y, z, false ) )
|
||||
{
|
||||
List<ItemStack> l = Lists.newArrayList( drops );
|
||||
Platform.spawnDrops( w, x, y, z, l );
|
||||
w.setBlockToAir( x, y, z );
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if( is.getItem() instanceof IMemoryCard && !( this instanceof BlockCableBus ) )
|
||||
{
|
||||
IMemoryCard memoryCard = (IMemoryCard) is.getItem();
|
||||
if( player.isSneaking() )
|
||||
{
|
||||
AEBaseTile t = this.getTileEntity( w, x, y, z );
|
||||
if( t != null )
|
||||
{
|
||||
String name = this.getUnlocalizedName();
|
||||
NBTTagCompound data = t.downloadSettings( SettingsFrom.MEMORY_CARD );
|
||||
if( data != null )
|
||||
{
|
||||
memoryCard.setMemoryCardContents( is, name, data );
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_SAVED );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
String name = memoryCard.getSettingsName( is );
|
||||
NBTTagCompound data = memoryCard.getData( is );
|
||||
if( this.getUnlocalizedName().equals( name ) )
|
||||
{
|
||||
AEBaseTile t = this.getTileEntity( w, x, y, z );
|
||||
t.uploadSettings( SettingsFrom.MEMORY_CARD, data );
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_LOADED );
|
||||
}
|
||||
else
|
||||
{
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.INVALID_MACHINE );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this.onActivated( w, x, y, z, player, side, hitX, hitY, hitZ );
|
||||
}
|
||||
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy( World w, int x, int y, int z, EntityLivingBase player, ItemStack is )
|
||||
{
|
||||
if( is.hasDisplayName() )
|
||||
{
|
||||
TileEntity te = this.getTileEntity( w, x, y, z );
|
||||
if( te instanceof AEBaseTile )
|
||||
{
|
||||
( (AEBaseTile) w.getTileEntity( x, y, z ) ).setName( is.getDisplayName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
@SuppressWarnings( "unchecked" )
|
||||
public final void getSubBlocks( Item item, CreativeTabs tabs, List itemStacks )
|
||||
public final void getSubBlocks( final Item item, final CreativeTabs tabs, final List itemStacks )
|
||||
{
|
||||
this.getCheckedSubBlocks( item, tabs, itemStacks );
|
||||
}
|
||||
@@ -582,59 +398,48 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getComparatorInputOverride( World w, int x, int y, int z, int s )
|
||||
public int getComparatorInputOverride( final World w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
TileEntity te = this.getTileEntity( w, x, y, z );
|
||||
if( te instanceof IInventory )
|
||||
{
|
||||
return Container.calcRedstoneFromInventory( (IInventory) te );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void registerBlockIcons( IIconRegister iconRegistry )
|
||||
public void registerBlockIcons( final IIconRegister iconRegistry )
|
||||
{
|
||||
BlockRenderInfo info = this.getRendererInstance();
|
||||
FlippableIcon topIcon;
|
||||
FlippableIcon bottomIcon;
|
||||
FlippableIcon sideIcon;
|
||||
FlippableIcon eastIcon;
|
||||
FlippableIcon westIcon;
|
||||
FlippableIcon southIcon;
|
||||
FlippableIcon northIcon;
|
||||
final BlockRenderInfo info = this.getRendererInstance();
|
||||
final FlippableIcon topIcon = this.optionalIcon( iconRegistry, this.getTextureName(), null );
|
||||
final FlippableIcon bottomIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Bottom", topIcon );
|
||||
final FlippableIcon sideIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Side", topIcon );
|
||||
final FlippableIcon eastIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "East", sideIcon );
|
||||
final FlippableIcon westIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "West", sideIcon );
|
||||
final FlippableIcon southIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Front", sideIcon );
|
||||
final FlippableIcon northIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Back", sideIcon );
|
||||
|
||||
this.blockIcon = topIcon = this.optionalIcon( iconRegistry, this.getTextureName(), null );
|
||||
bottomIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Bottom", topIcon );
|
||||
sideIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Side", topIcon );
|
||||
eastIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "East", sideIcon );
|
||||
westIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "West", sideIcon );
|
||||
southIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Front", sideIcon );
|
||||
northIcon = this.optionalIcon( iconRegistry, this.getTextureName() + "Back", sideIcon );
|
||||
this.blockIcon = topIcon;
|
||||
|
||||
info.updateIcons( bottomIcon, topIcon, northIcon, southIcon, eastIcon, westIcon );
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean isNormalCube( IBlockAccess world, int x, int y, int z )
|
||||
public final boolean isNormalCube( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
return this.isFullSize;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean rotateBlock( World w, int x, int y, int z, ForgeDirection axis )
|
||||
public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
IOrientable rotatable = null;
|
||||
if( this instanceof IOrientableBlock )
|
||||
{
|
||||
return ( (IOrientableBlock) this ).getOrientable( w, x, y, z );
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
if( this.hasBlockTileEntity() )
|
||||
{
|
||||
rotatable = (AEBaseTile) this.getTileEntity( w, x, y, z );
|
||||
}
|
||||
else if( this instanceof IOrientableBlock )
|
||||
{
|
||||
rotatable = ( (IOrientableBlock) this ).getOrientable( w, x, y, z );
|
||||
}
|
||||
@Override
|
||||
public final boolean rotateBlock( final World w, final int x, final int y, final int z, final ForgeDirection axis )
|
||||
{
|
||||
final IOrientable rotatable = this.getOrientable( w, x, y, z );
|
||||
|
||||
if( rotatable != null && rotatable.canBeRotated() )
|
||||
{
|
||||
@@ -670,55 +475,24 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return false;
|
||||
}
|
||||
|
||||
protected void customRotateBlock( IOrientable rotatable, ForgeDirection axis )
|
||||
protected void customRotateBlock( final IOrientable rotatable, final ForgeDirection axis )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up )
|
||||
public boolean isValidOrientation( final World w, final int x, final int y, final int z, final ForgeDirection forward, final ForgeDirection up )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final ForgeDirection[] getValidRotations( World w, int x, int y, int z )
|
||||
public ForgeDirection[] getValidRotations( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
if( this.hasBlockTileEntity() )
|
||||
{
|
||||
AEBaseTile obj = this.getTileEntity( w, x, y, z );
|
||||
if( obj != null && obj.canBeRotated() )
|
||||
{
|
||||
return ForgeDirection.VALID_DIRECTIONS;
|
||||
}
|
||||
}
|
||||
|
||||
return new ForgeDirection[0];
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour )
|
||||
{
|
||||
TileEntity te = this.getTileEntity( world, x, y, z );
|
||||
|
||||
if( te instanceof IColorableTile )
|
||||
{
|
||||
IColorableTile ct = (IColorableTile) te;
|
||||
AEColor c = ct.getColor();
|
||||
AEColor newColor = AEColor.values()[colour];
|
||||
|
||||
if( c != newColor )
|
||||
{
|
||||
ct.recolourBlock( side, newColor, null );
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.recolourBlock( world, x, y, z, side, colour );
|
||||
}
|
||||
|
||||
@SideOnly( Side.CLIENT )
|
||||
private FlippableIcon optionalIcon( IIconRegister ir, String Name, IIcon substitute )
|
||||
private FlippableIcon optionalIcon( final IIconRegister ir, final String name, IIcon substitute )
|
||||
{
|
||||
// if the input is an flippable IIcon find the original.
|
||||
while( substitute instanceof FlippableIcon )
|
||||
@@ -730,42 +504,33 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
{
|
||||
try
|
||||
{
|
||||
ResourceLocation resLoc = new ResourceLocation( Name );
|
||||
ResourceLocation resLoc = new ResourceLocation( name );
|
||||
resLoc = new ResourceLocation( resLoc.getResourceDomain(), String.format( "%s/%s%s", "textures/blocks", resLoc.getResourcePath(), ".png" ) );
|
||||
|
||||
IResource res = Minecraft.getMinecraft().getResourceManager().getResource( resLoc );
|
||||
final IResource res = Minecraft.getMinecraft().getResourceManager().getResource( resLoc );
|
||||
if( res != null )
|
||||
{
|
||||
return new FlippableIcon( ir.registerIcon( Name ) );
|
||||
return new FlippableIcon( ir.registerIcon( name ) );
|
||||
}
|
||||
}
|
||||
catch( Throwable e )
|
||||
catch( final Throwable e )
|
||||
{
|
||||
return new FlippableIcon( substitute );
|
||||
}
|
||||
}
|
||||
|
||||
return new FlippableIcon( ir.registerIcon( Name ) );
|
||||
return new FlippableIcon( ir.registerIcon( name ) );
|
||||
}
|
||||
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
super.getSubBlocks( item, tabs, itemStacks );
|
||||
}
|
||||
|
||||
int mapRotation( IBlockAccess w, int x, int y, int z, int s )
|
||||
int mapRotation( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
IOrientable ori = null;
|
||||
|
||||
if( this.hasBlockTileEntity() )
|
||||
{
|
||||
ori = (AEBaseTile) this.getTileEntity( w, x, y, z );
|
||||
}
|
||||
else if( this instanceof IOrientableBlock )
|
||||
{
|
||||
ori = ( (IOrientableBlock) this ).getOrientable( w, x, y, z );
|
||||
}
|
||||
final IOrientable ori = this.getOrientable( w, x, y, z );
|
||||
|
||||
if( ori != null && ori.canBeRotated() )
|
||||
{
|
||||
@@ -775,24 +540,7 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return s;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
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;
|
||||
}
|
||||
|
||||
public ForgeDirection mapRotation( IOrientable ori, ForgeDirection dir )
|
||||
public ForgeDirection mapRotation( final IOrientable ori, final ForgeDirection dir )
|
||||
{
|
||||
// case DOWN: return bottomIcon;
|
||||
// case UP: return blockIcon;
|
||||
@@ -801,20 +549,20 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
// case WEST: return sideIcon;
|
||||
// case EAST: return sideIcon;
|
||||
|
||||
ForgeDirection forward = ori.getForward();
|
||||
ForgeDirection up = ori.getUp();
|
||||
ForgeDirection west = ForgeDirection.UNKNOWN;
|
||||
final ForgeDirection forward = ori.getForward();
|
||||
final ForgeDirection up = ori.getUp();
|
||||
|
||||
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;
|
||||
final int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY;
|
||||
final int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ;
|
||||
final int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX;
|
||||
|
||||
for( ForgeDirection dx : ForgeDirection.VALID_DIRECTIONS )
|
||||
ForgeDirection west = ForgeDirection.UNKNOWN;
|
||||
for( final ForgeDirection dx : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
if( dx.offsetX == west_x && dx.offsetY == west_y && dx.offsetZ == west_z )
|
||||
{
|
||||
@@ -852,72 +600,18 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
return ForgeDirection.UNKNOWN;
|
||||
}
|
||||
|
||||
public Class<? extends TileEntity> getTileEntityClass()
|
||||
{
|
||||
return this.tileEntityType;
|
||||
}
|
||||
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void setRenderStateByMeta( int itemDamage )
|
||||
public void setRenderStateByMeta( final int itemDamage )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TileEntity createNewTileEntity( World var1, int var2 )
|
||||
{
|
||||
if( this.hasBlockTileEntity() )
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.tileEntityType.newInstance();
|
||||
}
|
||||
catch( InstantiationException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.tileEntityType , e );
|
||||
}
|
||||
catch( IllegalAccessException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of " + this.tileEntityType + ", because lack of permissions", e );
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock( World w, int x, int y, int z, Block a, int b )
|
||||
{
|
||||
AEBaseTile te = this.getTileEntity( w, x, y, z );
|
||||
if( te != null )
|
||||
{
|
||||
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 );
|
||||
}
|
||||
|
||||
super.breakBlock( w, x, y, z, a, b );
|
||||
if( te != null )
|
||||
{
|
||||
w.setTileEntity( x, y, z, null );
|
||||
}
|
||||
}
|
||||
|
||||
public String getUnlocalizedName( ItemStack is )
|
||||
public String getUnlocalizedName( final ItemStack is )
|
||||
{
|
||||
return this.getUnlocalizedName();
|
||||
}
|
||||
|
||||
public void addInformation( ItemStack is, EntityPlayer player, List<String> lines, boolean advancedItemTooltips )
|
||||
public void addInformation( final ItemStack is, final EntityPlayer player, final List<String> lines, final boolean advancedItemTooltips )
|
||||
{
|
||||
|
||||
}
|
||||
@@ -931,4 +625,5 @@ public class AEBaseBlock extends BlockContainer implements IAEFeature
|
||||
{
|
||||
return this.hasSubtypes;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -47,9 +47,9 @@ import appeng.util.Platform;
|
||||
public class AEBaseItemBlock extends ItemBlock
|
||||
{
|
||||
|
||||
final AEBaseBlock blockType;
|
||||
private final AEBaseBlock blockType;
|
||||
|
||||
public AEBaseItemBlock( Block id )
|
||||
public AEBaseItemBlock( final Block id )
|
||||
{
|
||||
super( id );
|
||||
this.blockType = (AEBaseBlock) id;
|
||||
@@ -62,7 +62,7 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetadata( int dmg )
|
||||
public int getMetadata( final int dmg )
|
||||
{
|
||||
if( this.hasSubtypes )
|
||||
{
|
||||
@@ -74,38 +74,36 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
@SuppressWarnings( "unchecked" )
|
||||
public final void addInformation( ItemStack itemStack, EntityPlayer player, List toolTip, boolean advancedTooltips )
|
||||
public final void addInformation( final ItemStack itemStack, final EntityPlayer player, final List toolTip, final boolean advancedTooltips )
|
||||
{
|
||||
this.addCheckedInformation( itemStack, player, toolTip, advancedTooltips );
|
||||
}
|
||||
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void addCheckedInformation( ItemStack itemStack, EntityPlayer player, List<String> toolTip, boolean advancedToolTips )
|
||||
public void addCheckedInformation( final ItemStack itemStack, final EntityPlayer player, final List<String> toolTip, final boolean advancedToolTips )
|
||||
{
|
||||
this.blockType.addInformation( itemStack, player, toolTip, advancedToolTips );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isBookEnchantable( ItemStack itemstack1, ItemStack itemstack2 )
|
||||
public boolean isBookEnchantable( final ItemStack itemstack1, final ItemStack itemstack2 )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName( ItemStack is )
|
||||
public String getUnlocalizedName( final ItemStack is )
|
||||
{
|
||||
return this.blockType.getUnlocalizedName( is );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean placeBlockAt( ItemStack stack, EntityPlayer player, World w, int x, int y, int z, int side, float hitX, float hitY, float hitZ, int metadata )
|
||||
public boolean placeBlockAt( final ItemStack stack, final EntityPlayer player, final World w, final int x, final int y, final int z, final int side, final float hitX, final float hitY, final float hitZ, final int metadata )
|
||||
{
|
||||
ForgeDirection up = ForgeDirection.UNKNOWN;
|
||||
ForgeDirection forward = ForgeDirection.UNKNOWN;
|
||||
|
||||
IOrientable ori = null;
|
||||
|
||||
if( this.blockType.hasBlockTileEntity() )
|
||||
if( this.blockType instanceof AEBaseTileBlock )
|
||||
{
|
||||
if( this.blockType instanceof BlockLightDetector )
|
||||
{
|
||||
@@ -135,7 +133,7 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
{
|
||||
up = ForgeDirection.UP;
|
||||
|
||||
byte rotation = (byte) ( MathHelper.floor_double( ( player.rotationYaw * 4F ) / 360F + 2.5D ) & 3 );
|
||||
final byte rotation = (byte) ( MathHelper.floor_double( ( player.rotationYaw * 4F ) / 360F + 2.5D ) & 3 );
|
||||
|
||||
switch( rotation )
|
||||
{
|
||||
@@ -167,6 +165,7 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
}
|
||||
}
|
||||
|
||||
IOrientable ori = null;
|
||||
if( this.blockType instanceof IOrientableBlock )
|
||||
{
|
||||
ori = ( (IOrientableBlock) this.blockType ).getOrientable( w, x, y, z );
|
||||
@@ -185,9 +184,9 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
|
||||
if( super.placeBlockAt( stack, player, w, x, y, z, side, hitX, hitY, hitZ, metadata ) )
|
||||
{
|
||||
if( this.blockType.hasBlockTileEntity() && !( this.blockType instanceof BlockLightDetector ) )
|
||||
if( this.blockType instanceof AEBaseTileBlock && !( this.blockType instanceof BlockLightDetector ) )
|
||||
{
|
||||
AEBaseTile tile = this.blockType.getTileEntity( w, x, y, z );
|
||||
final AEBaseTile tile = ( (AEBaseTileBlock) this.blockType ).getTileEntity( w, x, y, z );
|
||||
ori = tile;
|
||||
|
||||
if( tile == null )
|
||||
@@ -198,7 +197,7 @@ public class AEBaseItemBlock extends ItemBlock
|
||||
if( ori.canBeRotated() && !this.blockType.hasCustomRotation() )
|
||||
{
|
||||
if( ori.getForward() == null || ori.getUp() == null || // null
|
||||
tile.getForward() == ForgeDirection.UNKNOWN || ori.getUp() == ForgeDirection.UNKNOWN )
|
||||
tile.getForward() == ForgeDirection.UNKNOWN || ori.getUp() == ForgeDirection.UNKNOWN )
|
||||
{
|
||||
ori.setOrientation( forward, up );
|
||||
}
|
||||
|
||||
@@ -42,34 +42,34 @@ import appeng.util.Platform;
|
||||
public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEItemPowerStorage
|
||||
{
|
||||
|
||||
public AEBaseItemBlockChargeable( Block id )
|
||||
public AEBaseItemBlockChargeable( final Block id )
|
||||
{
|
||||
super( id );
|
||||
}
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void addCheckedInformation( ItemStack itemStack, EntityPlayer player, List<String> toolTip, boolean advancedTooltips )
|
||||
public void addCheckedInformation( final ItemStack itemStack, final EntityPlayer player, final List<String> toolTip, final boolean advancedTooltips )
|
||||
{
|
||||
NBTTagCompound tag = itemStack.getTagCompound();
|
||||
final NBTTagCompound tag = itemStack.getTagCompound();
|
||||
double internalCurrentPower = 0;
|
||||
double internalMaxPower = this.getMaxEnergyCapacity();
|
||||
final double internalMaxPower = this.getMaxEnergyCapacity();
|
||||
|
||||
if( tag != null )
|
||||
{
|
||||
internalCurrentPower = tag.getDouble( "internalCurrentPower" );
|
||||
}
|
||||
|
||||
double percent = internalCurrentPower / internalMaxPower;
|
||||
final double percent = internalCurrentPower / internalMaxPower;
|
||||
|
||||
toolTip.add( GuiText.StoredEnergy.getLocal() + ':' + MessageFormat.format( " {0,number,#} ", internalCurrentPower ) + Platform.gui_localize( PowerUnits.AE.unlocalizedName ) + " - " + MessageFormat.format( " {0,number,#.##%} ", percent ) );
|
||||
}
|
||||
|
||||
private double getMaxEnergyCapacity()
|
||||
{
|
||||
Block blockID = Block.getBlockFromItem( this );
|
||||
final Block blockID = Block.getBlockFromItem( this );
|
||||
final IBlockDefinition energyCell = Api.INSTANCE.definitions().blocks().energyCell();
|
||||
for( Block block : energyCell.maybeBlock().asSet() )
|
||||
for( final Block block : energyCell.maybeBlock().asSet() )
|
||||
{
|
||||
if( blockID == block )
|
||||
{
|
||||
@@ -85,10 +85,10 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte
|
||||
}
|
||||
|
||||
@Override
|
||||
public double injectAEPower( ItemStack is, double amt )
|
||||
public double injectAEPower( final ItemStack is, double amt )
|
||||
{
|
||||
double internalCurrentPower = this.getInternal( is );
|
||||
double internalMaxPower = this.getMaxEnergyCapacity();
|
||||
final double internalMaxPower = this.getMaxEnergyCapacity();
|
||||
internalCurrentPower += amt;
|
||||
if( internalCurrentPower > internalMaxPower )
|
||||
{
|
||||
@@ -102,20 +102,20 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte
|
||||
return 0;
|
||||
}
|
||||
|
||||
private double getInternal( ItemStack is )
|
||||
private double getInternal( final ItemStack is )
|
||||
{
|
||||
NBTTagCompound nbt = Platform.openNbtData( is );
|
||||
final NBTTagCompound nbt = Platform.openNbtData( is );
|
||||
return nbt.getDouble( "internalCurrentPower" );
|
||||
}
|
||||
|
||||
private void setInternal( ItemStack is, double amt )
|
||||
private void setInternal( final ItemStack is, final double amt )
|
||||
{
|
||||
NBTTagCompound nbt = Platform.openNbtData( is );
|
||||
final NBTTagCompound nbt = Platform.openNbtData( is );
|
||||
nbt.setDouble( "internalCurrentPower", amt );
|
||||
}
|
||||
|
||||
@Override
|
||||
public double extractAEPower( ItemStack is, double amt )
|
||||
public double extractAEPower( final ItemStack is, double amt )
|
||||
{
|
||||
double internalCurrentPower = this.getInternal( is );
|
||||
if( internalCurrentPower > amt )
|
||||
@@ -131,19 +131,19 @@ public class AEBaseItemBlockChargeable extends AEBaseItemBlock implements IAEIte
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAEMaxPower( ItemStack is )
|
||||
public double getAEMaxPower( final ItemStack is )
|
||||
{
|
||||
return this.getMaxEnergyCapacity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public double getAECurrentPower( ItemStack is )
|
||||
public double getAECurrentPower( final ItemStack is )
|
||||
{
|
||||
return this.getInternal( is );
|
||||
}
|
||||
|
||||
@Override
|
||||
public AccessRestriction getPowerFlow( ItemStack is )
|
||||
public AccessRestriction getPowerFlow( final ItemStack is )
|
||||
{
|
||||
return AccessRestriction.WRITE;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
|
||||
package appeng.block;
|
||||
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemSlab;
|
||||
|
||||
|
||||
public class AEBaseItemBlockSlab extends ItemSlab
|
||||
{
|
||||
|
||||
public AEBaseItemBlockSlab( final Block block, final AEBaseSlabBlock singleSlab, final AEBaseSlabBlock doubleSlab, final Boolean isDoubleSlab )
|
||||
{
|
||||
super( block, singleSlab, doubleSlab, isDoubleSlab );
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,139 @@
|
||||
/*
|
||||
* This file is part of Applied Energistics 2.
|
||||
* Copyright (c) 2013 - 2014, 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
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
||||
*/
|
||||
|
||||
package appeng.block;
|
||||
|
||||
|
||||
import java.util.EnumSet;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.BlockSlab;
|
||||
import net.minecraft.client.renderer.texture.IIconRegister;
|
||||
import net.minecraft.item.Item;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.util.IIcon;
|
||||
import net.minecraft.util.MovingObjectPosition;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.features.IAEFeature;
|
||||
import appeng.core.features.IFeatureHandler;
|
||||
import appeng.core.features.SlabBlockFeatureHandler;
|
||||
|
||||
|
||||
public class AEBaseSlabBlock extends BlockSlab implements IAEFeature
|
||||
{
|
||||
private final IFeatureHandler features;
|
||||
private final AEBaseBlock block;
|
||||
private final int meta;
|
||||
private AEBaseSlabBlock slabs;
|
||||
private AEBaseSlabBlock doubleSlabs;
|
||||
private final String name;
|
||||
|
||||
public AEBaseSlabBlock( final AEBaseBlock block, final int meta, final EnumSet<AEFeature> features, final boolean isDoubleSlab, final String name )
|
||||
{
|
||||
super( isDoubleSlab, block.getMaterial() );
|
||||
this.block = block;
|
||||
this.meta = meta;
|
||||
this.name = name;
|
||||
this.setBlockName( "appliedenergistics2." + name );
|
||||
this.setHardness( block.getBlockHardness( null, 0, 0, 0 ) );
|
||||
this.setResistance( block.getExplosionResistance( null ) * 5.0F / 3.0F );
|
||||
this.setStepSound( block.stepSound );
|
||||
this.useNeighborBrightness = true;
|
||||
if( !this.field_150004_a )
|
||||
{
|
||||
this.doubleSlabs = new AEBaseSlabBlock( block, meta, features, true, name + ".double" ).setSlabs( this );
|
||||
}
|
||||
this.features = !this.field_150004_a ? new SlabBlockFeatureHandler( features, this ) : null;
|
||||
}
|
||||
|
||||
public AEBaseSlabBlock setSlabs( final AEBaseSlabBlock slabs )
|
||||
{
|
||||
this.slabs = slabs;
|
||||
return this;
|
||||
}
|
||||
|
||||
public AEBaseSlabBlock slabs()
|
||||
{
|
||||
return this.slabs;
|
||||
}
|
||||
|
||||
public AEBaseSlabBlock doubleSlabs()
|
||||
{
|
||||
return this.doubleSlabs;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IFeatureHandler handler()
|
||||
{
|
||||
return this.features;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postInit()
|
||||
{
|
||||
// Override to do stuff
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( final int dir, final int meta )
|
||||
{
|
||||
return this.block.getIcon( dir, this.meta );
|
||||
}
|
||||
|
||||
@Override
|
||||
public String func_150002_b( final int p_150002_1_ )
|
||||
{
|
||||
return this.getUnlocalizedName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons( final IIconRegister reg )
|
||||
{
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped( final int meta, final Random rand, final int fortune )
|
||||
{
|
||||
return this.field_150004_a ? Item.getItemFromBlock( this.slabs ) : Item.getItemFromBlock( this );
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock( final MovingObjectPosition target, final World world, final int x, final int y, final int z )
|
||||
{
|
||||
AEBaseSlabBlock block = (AEBaseSlabBlock) world.getBlock( x, y, z );
|
||||
|
||||
if( block == null )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
if( block.field_150004_a )
|
||||
{
|
||||
block = this.slabs;
|
||||
}
|
||||
|
||||
final int meta = world.getBlockMetadata( x, y, z ) & 7;
|
||||
return new ItemStack( block, 1, meta );
|
||||
}
|
||||
|
||||
public String name()
|
||||
{
|
||||
return this.name;
|
||||
}
|
||||
}
|
||||
@@ -21,11 +21,11 @@ package appeng.block;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockStairs;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.features.IAEFeature;
|
||||
import appeng.core.features.IFeatureHandler;
|
||||
@@ -36,7 +36,7 @@ public abstract class AEBaseStairBlock extends BlockStairs implements IAEFeature
|
||||
{
|
||||
private final IFeatureHandler features;
|
||||
|
||||
protected AEBaseStairBlock( Block block, int meta, EnumSet<AEFeature> features )
|
||||
protected AEBaseStairBlock( final Block block, final int meta, final EnumSet<AEFeature> features )
|
||||
{
|
||||
super( block, meta );
|
||||
|
||||
|
||||
@@ -0,0 +1,348 @@
|
||||
/*
|
||||
* This file is part of Applied Energistics 2.
|
||||
* Copyright (c) 2013 - 2014, 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
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Applied Energistics 2 is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with Applied Energistics 2. If not, see <http://www.gnu.org/licenses/lgpl>.
|
||||
*/
|
||||
|
||||
package appeng.block;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Nonnull;
|
||||
import javax.annotation.Nullable;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.ITileEntityProvider;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.EntityLivingBase;
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.inventory.Container;
|
||||
import net.minecraft.inventory.IInventory;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.ReflectionHelper;
|
||||
|
||||
import appeng.api.implementations.items.IMemoryCard;
|
||||
import appeng.api.implementations.items.MemoryCardMessages;
|
||||
import appeng.api.implementations.tiles.IColorableTile;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.block.networking.BlockCableBus;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.features.AETileBlockFeatureHandler;
|
||||
import appeng.core.features.IAEFeature;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
import appeng.tile.AEBaseTile;
|
||||
import appeng.tile.networking.TileCableBus;
|
||||
import appeng.tile.storage.TileSkyChest;
|
||||
import appeng.util.Platform;
|
||||
import appeng.util.SettingsFrom;
|
||||
|
||||
|
||||
public abstract class AEBaseTileBlock extends AEBaseBlock implements IAEFeature, ITileEntityProvider
|
||||
{
|
||||
|
||||
@Nonnull
|
||||
private Class<? extends TileEntity> tileEntityType;
|
||||
|
||||
public AEBaseTileBlock( final Material mat )
|
||||
{
|
||||
super( mat );
|
||||
}
|
||||
|
||||
protected AEBaseTileBlock( final Material mat, final Optional<String> subName )
|
||||
{
|
||||
super( mat, subName );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setFeature( final EnumSet<AEFeature> f )
|
||||
{
|
||||
final AETileBlockFeatureHandler featureHandler = new AETileBlockFeatureHandler( f, this, this.featureSubName );
|
||||
this.setHandler( featureHandler );
|
||||
}
|
||||
|
||||
protected void setTileEntity( final Class<? extends TileEntity> c )
|
||||
{
|
||||
this.tileEntityType = c;
|
||||
this.isInventory = IInventory.class.isAssignableFrom( c );
|
||||
this.setTileProvider( this.hasBlockTileEntity() );
|
||||
}
|
||||
|
||||
// update Block value.
|
||||
private void setTileProvider( final boolean b )
|
||||
{
|
||||
ReflectionHelper.setPrivateValue( Block.class, this, b, "isTileProvider" );
|
||||
}
|
||||
|
||||
public boolean hasBlockTileEntity()
|
||||
{
|
||||
return this.tileEntityType != null;
|
||||
}
|
||||
|
||||
public Class<? extends TileEntity> getTileEntityClass()
|
||||
{
|
||||
return this.tileEntityType;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public <T extends AEBaseTile> T getTileEntity( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
if( !this.hasBlockTileEntity() )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
final TileEntity te = w.getTileEntity( x, y, z );
|
||||
if( this.tileEntityType.isInstance( te ) )
|
||||
{
|
||||
return (T) te;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public final TileEntity createNewTileEntity( final World var1, final int var2 )
|
||||
{
|
||||
if( this.hasBlockTileEntity() )
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.tileEntityType.newInstance();
|
||||
}
|
||||
catch( final InstantiationException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of an illegal class " + this.tileEntityType, e );
|
||||
}
|
||||
catch( final IllegalAccessException e )
|
||||
{
|
||||
throw new IllegalStateException( "Failed to create a new instance of " + this.tileEntityType + ", because lack of permissions", e );
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock( final World w, final int x, final int y, final int z, final Block a, final int b )
|
||||
{
|
||||
final AEBaseTile te = this.getTileEntity( w, x, y, z );
|
||||
if( te != null )
|
||||
{
|
||||
final 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 );
|
||||
}
|
||||
|
||||
// super will remove the TE, as it is not an instance of BlockContainer
|
||||
super.breakBlock( w, x, y, z, a, b );
|
||||
}
|
||||
|
||||
@Override
|
||||
public final ForgeDirection[] getValidRotations( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
final AEBaseTile obj = this.getTileEntity( w, x, y, z );
|
||||
if( obj != null && obj.canBeRotated() )
|
||||
{
|
||||
return ForgeDirection.VALID_DIRECTIONS;
|
||||
}
|
||||
|
||||
return super.getValidRotations( w, x, y, z );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean recolourBlock( final World world, final int x, final int y, final int z, final ForgeDirection side, final int colour )
|
||||
{
|
||||
final TileEntity te = this.getTileEntity( world, x, y, z );
|
||||
|
||||
if( te instanceof IColorableTile )
|
||||
{
|
||||
final IColorableTile ct = (IColorableTile) te;
|
||||
final AEColor c = ct.getColor();
|
||||
final AEColor newColor = AEColor.values()[colour];
|
||||
|
||||
if( c != newColor )
|
||||
{
|
||||
ct.recolourBlock( side, newColor, null );
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
return super.recolourBlock( world, x, y, z, side, colour );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getComparatorInputOverride( final World w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
final TileEntity te = this.getTileEntity( w, x, y, z );
|
||||
if( te instanceof IInventory )
|
||||
{
|
||||
return Container.calcRedstoneFromInventory( (IInventory) te );
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onBlockEventReceived( final World p_149696_1_, final int p_149696_2_, final int p_149696_3_, final int p_149696_4_, final int p_149696_5_, final int p_149696_6_ )
|
||||
{
|
||||
super.onBlockEventReceived( p_149696_1_, p_149696_2_, p_149696_3_, p_149696_4_, p_149696_5_, p_149696_6_ );
|
||||
final TileEntity tileentity = p_149696_1_.getTileEntity( p_149696_2_, p_149696_3_, p_149696_4_ );
|
||||
return tileentity != null ? tileentity.receiveClientEvent( p_149696_5_, p_149696_6_ ) : false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy( final World w, final int x, final int y, final int z, final EntityLivingBase player, final ItemStack is )
|
||||
{
|
||||
if( is.hasDisplayName() )
|
||||
{
|
||||
final TileEntity te = this.getTileEntity( w, x, y, z );
|
||||
if( te instanceof AEBaseTile )
|
||||
{
|
||||
( (AEBaseTile) w.getTileEntity( x, y, z ) ).setName( is.getDisplayName() );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public final boolean onBlockActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player != null )
|
||||
{
|
||||
final ItemStack is = player.inventory.getCurrentItem();
|
||||
if( is != null )
|
||||
{
|
||||
if( Platform.isWrench( player, is, x, y, z ) && player.isSneaking() )
|
||||
{
|
||||
final Block id = w.getBlock( x, y, z );
|
||||
if( id != null )
|
||||
{
|
||||
final AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
final ItemStack[] drops = Platform.getBlockDrops( w, x, y, z );
|
||||
|
||||
if( tile == null )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if( tile instanceof TileCableBus || tile instanceof TileSkyChest )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
final ItemStack op = new ItemStack( this );
|
||||
for( final ItemStack ol : drops )
|
||||
{
|
||||
if( Platform.isSameItemType( ol, op ) )
|
||||
{
|
||||
final NBTTagCompound tag = tile.downloadSettings( SettingsFrom.DISMANTLE_ITEM );
|
||||
if( tag != null )
|
||||
{
|
||||
ol.setTagCompound( tag );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( id.removedByPlayer( w, player, x, y, z, false ) )
|
||||
{
|
||||
final List<ItemStack> l = Lists.newArrayList( drops );
|
||||
Platform.spawnDrops( w, x, y, z, l );
|
||||
w.setBlockToAir( x, y, z );
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
if( is.getItem() instanceof IMemoryCard && !( this instanceof BlockCableBus ) )
|
||||
{
|
||||
final IMemoryCard memoryCard = (IMemoryCard) is.getItem();
|
||||
if( player.isSneaking() )
|
||||
{
|
||||
final AEBaseTile t = this.getTileEntity( w, x, y, z );
|
||||
if( t != null )
|
||||
{
|
||||
final String name = this.getUnlocalizedName();
|
||||
final NBTTagCompound data = t.downloadSettings( SettingsFrom.MEMORY_CARD );
|
||||
if( data != null )
|
||||
{
|
||||
memoryCard.setMemoryCardContents( is, name, data );
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_SAVED );
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final String name = memoryCard.getSettingsName( is );
|
||||
final NBTTagCompound data = memoryCard.getData( is );
|
||||
if( this.getUnlocalizedName().equals( name ) )
|
||||
{
|
||||
final AEBaseTile t = this.getTileEntity( w, x, y, z );
|
||||
t.uploadSettings( SettingsFrom.MEMORY_CARD, data );
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.SETTINGS_LOADED );
|
||||
}
|
||||
else
|
||||
{
|
||||
memoryCard.notifyUser( player, MemoryCardMessages.INVALID_MACHINE );
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return this.onActivated( w, x, y, z, player, side, hitX, hitY, hitZ );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
return this.getTileEntity( w, x, y, z );
|
||||
}
|
||||
|
||||
@Override
|
||||
public ICustomCollision getCustomCollision( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
final AEBaseTile te = this.getTileEntity( w, x, y, z );
|
||||
if( te instanceof ICustomCollision )
|
||||
{
|
||||
return (ICustomCollision) te;
|
||||
}
|
||||
|
||||
return super.getCustomCollision( w, x, y, z );
|
||||
}
|
||||
|
||||
}
|
||||
@@ -26,9 +26,9 @@ import net.minecraft.world.IBlockAccess;
|
||||
|
||||
public class AEDecorativeBlock extends AEBaseBlock
|
||||
{
|
||||
public AEDecorativeBlock( Class<? extends AEBaseBlock> c, Material mat )
|
||||
public AEDecorativeBlock( final Material mat )
|
||||
{
|
||||
super( c, mat );
|
||||
super( mat );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -38,7 +38,7 @@ public class AEDecorativeBlock extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s )
|
||||
public IIcon getIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
return super.unmappedGetIcon( w, x, y, z, s );
|
||||
}
|
||||
|
||||
@@ -40,11 +40,8 @@ import appeng.tile.crafting.TileCraftingMonitorTile;
|
||||
|
||||
public class BlockCraftingMonitor extends BlockCraftingUnit
|
||||
{
|
||||
|
||||
public BlockCraftingMonitor()
|
||||
{
|
||||
super( BlockCraftingMonitor.class );
|
||||
|
||||
this.setTileEntity( TileCraftingMonitorTile.class );
|
||||
}
|
||||
|
||||
@@ -55,11 +52,11 @@ public class BlockCraftingMonitor extends BlockCraftingUnit
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
if( direction != ForgeDirection.SOUTH.ordinal() )
|
||||
{
|
||||
for( Block craftingUnitBlock : AEApi.instance().definitions().blocks().craftingUnit().maybeBlock().asSet() )
|
||||
for( final Block craftingUnitBlock : AEApi.instance().definitions().blocks().craftingUnit().maybeBlock().asSet() )
|
||||
{
|
||||
return craftingUnitBlock.getIcon( direction, metadata );
|
||||
}
|
||||
@@ -77,7 +74,7 @@ public class BlockCraftingMonitor extends BlockCraftingUnit
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
itemStacks.add( new ItemStack( this, 1, 0 ) );
|
||||
}
|
||||
|
||||
@@ -37,8 +37,6 @@ public class BlockCraftingStorage extends BlockCraftingUnit
|
||||
{
|
||||
public BlockCraftingStorage()
|
||||
{
|
||||
super( BlockCraftingStorage.class );
|
||||
|
||||
this.setTileEntity( TileCraftingStorageTile.class );
|
||||
}
|
||||
|
||||
@@ -49,7 +47,7 @@ public class BlockCraftingStorage extends BlockCraftingUnit
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
switch( metadata & ( ~4 ) )
|
||||
{
|
||||
@@ -77,7 +75,7 @@ public class BlockCraftingStorage extends BlockCraftingUnit
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
itemStacks.add( new ItemStack( this, 1, 0 ) );
|
||||
itemStacks.add( new ItemStack( this, 1, 1 ) );
|
||||
@@ -86,7 +84,7 @@ public class BlockCraftingStorage extends BlockCraftingUnit
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName( ItemStack is )
|
||||
public String getUnlocalizedName( final ItemStack is )
|
||||
{
|
||||
if( is.getItemDamage() == 1 )
|
||||
{
|
||||
|
||||
@@ -35,7 +35,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCraftingCPU;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
@@ -45,22 +45,16 @@ import appeng.tile.crafting.TileCraftingTile;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockCraftingUnit extends AEBaseBlock
|
||||
public class BlockCraftingUnit extends AEBaseTileBlock
|
||||
{
|
||||
public static final int FLAG_FORMED = 8;
|
||||
|
||||
public BlockCraftingUnit()
|
||||
{
|
||||
this( BlockCraftingUnit.class );
|
||||
|
||||
this.setTileEntity( TileCraftingTile.class );
|
||||
}
|
||||
|
||||
public BlockCraftingUnit( Class<? extends BlockCraftingUnit> childClass )
|
||||
{
|
||||
super( childClass, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.hasSubtypes = true;
|
||||
this.setTileEntity( TileCraftingTile.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.CraftingCPU ) );
|
||||
}
|
||||
|
||||
@@ -71,7 +65,7 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
switch( metadata )
|
||||
{
|
||||
@@ -88,9 +82,9 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
TileCraftingTile tg = this.getTileEntity( w, x, y, z );
|
||||
final TileCraftingTile tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null && !p.isSneaking() && tg.isFormed() && tg.isActive() )
|
||||
{
|
||||
if( Platform.isClient() )
|
||||
@@ -107,24 +101,24 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
itemStacks.add( new ItemStack( this, 1, 0 ) );
|
||||
itemStacks.add( new ItemStack( this, 1, 1 ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setRenderStateByMeta( int itemDamage )
|
||||
public void setRenderStateByMeta( final int itemDamage )
|
||||
{
|
||||
IIcon front = this.getIcon( ForgeDirection.SOUTH.ordinal(), itemDamage );
|
||||
IIcon other = this.getIcon( ForgeDirection.NORTH.ordinal(), itemDamage );
|
||||
final IIcon front = this.getIcon( ForgeDirection.SOUTH.ordinal(), itemDamage );
|
||||
final IIcon other = this.getIcon( ForgeDirection.NORTH.ordinal(), itemDamage );
|
||||
this.getRendererInstance().setTemporaryRenderIcons( other, other, front, other, other, other );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void breakBlock( World w, int x, int y, int z, Block a, int b )
|
||||
public void breakBlock( final World w, final int x, final int y, final int z, final Block a, final int b )
|
||||
{
|
||||
TileCraftingTile cp = this.getTileEntity( w, x, y, z );
|
||||
final TileCraftingTile cp = this.getTileEntity( w, x, y, z );
|
||||
if( cp != null )
|
||||
{
|
||||
cp.breakCluster();
|
||||
@@ -134,7 +128,7 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getUnlocalizedName( ItemStack is )
|
||||
public String getUnlocalizedName( final ItemStack is )
|
||||
{
|
||||
if( is.getItemDamage() == 1 )
|
||||
{
|
||||
@@ -144,15 +138,15 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
return this.getItemUnlocalizedName( is );
|
||||
}
|
||||
|
||||
protected String getItemUnlocalizedName( ItemStack is )
|
||||
protected String getItemUnlocalizedName( final ItemStack is )
|
||||
{
|
||||
return super.getUnlocalizedName( is );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block junk )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block junk )
|
||||
{
|
||||
TileCraftingTile cp = this.getTileEntity( w, x, y, z );
|
||||
final TileCraftingTile cp = this.getTileEntity( w, x, y, z );
|
||||
if( cp != null )
|
||||
{
|
||||
cp.updateMultiBlock();
|
||||
@@ -160,15 +154,15 @@ public class BlockCraftingUnit extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public int damageDropped( int meta )
|
||||
public int damageDropped( final int meta )
|
||||
{
|
||||
return meta & 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getDamageValue( World w, int x, int y, int z )
|
||||
public int getDamageValue( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
int meta = w.getBlockMetadata( x, y, z );
|
||||
final int meta = w.getBlockMetadata( x, y, z );
|
||||
return this.damageDropped( meta );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockAssembler;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -38,14 +38,15 @@ import appeng.tile.crafting.TileMolecularAssembler;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockMolecularAssembler extends AEBaseBlock
|
||||
public class BlockMolecularAssembler extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public static boolean booleanAlphaPass = false;
|
||||
|
||||
public BlockMolecularAssembler()
|
||||
{
|
||||
super( BlockMolecularAssembler.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.setTileEntity( TileMolecularAssembler.class );
|
||||
this.isOpaque = false;
|
||||
this.lightOpacity = 1;
|
||||
@@ -59,7 +60,7 @@ public class BlockMolecularAssembler extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRenderInPass( int pass )
|
||||
public boolean canRenderInPass( final int pass )
|
||||
{
|
||||
booleanAlphaPass = pass == 1;
|
||||
return pass == 0 || pass == 1;
|
||||
@@ -73,9 +74,9 @@ public class BlockMolecularAssembler extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
TileMolecularAssembler tg = this.getTileEntity( w, x, y, z );
|
||||
final TileMolecularAssembler tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null && !p.isSneaking() )
|
||||
{
|
||||
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_MAC );
|
||||
|
||||
@@ -31,15 +31,15 @@ import appeng.core.features.AEFeature;
|
||||
public class ItemCraftingStorage extends AEBaseItemBlock
|
||||
{
|
||||
|
||||
public ItemCraftingStorage( Block id )
|
||||
public ItemCraftingStorage( final Block id )
|
||||
{
|
||||
super( id );
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getContainerItem( ItemStack itemStack )
|
||||
public ItemStack getContainerItem( final ItemStack itemStack )
|
||||
{
|
||||
for( ItemStack stack : AEApi.instance().definitions().blocks().craftingUnit().maybeStack( 1 ).asSet() )
|
||||
for( final ItemStack stack : AEApi.instance().definitions().blocks().craftingUnit().maybeStack( 1 ).asSet() )
|
||||
{
|
||||
return stack;
|
||||
}
|
||||
@@ -48,7 +48,7 @@ public class ItemCraftingStorage extends AEBaseItemBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasContainerItem( ItemStack stack )
|
||||
public boolean hasContainerItem( final ItemStack stack )
|
||||
{
|
||||
return AEConfig.instance.isFeatureEnabled( AEFeature.enableDisassemblyCrafting );
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ import net.minecraftforge.common.util.FakePlayer;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.api.implementations.tiles.ICrankable;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCrank;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -41,12 +41,13 @@ import appeng.tile.AEBaseTile;
|
||||
import appeng.tile.grindstone.TileCrank;
|
||||
|
||||
|
||||
public class BlockCrank extends AEBaseBlock
|
||||
public class BlockCrank extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockCrank()
|
||||
{
|
||||
super( BlockCrank.class, Material.wood );
|
||||
super( Material.wood );
|
||||
|
||||
this.setTileEntity( TileCrank.class );
|
||||
this.setLightOpacity( 0 );
|
||||
this.setHarvestLevel( "axe", 0 );
|
||||
@@ -61,7 +62,7 @@ public class BlockCrank extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player instanceof FakePlayer || player == null )
|
||||
{
|
||||
@@ -69,7 +70,7 @@ public class BlockCrank extends AEBaseBlock
|
||||
return true;
|
||||
}
|
||||
|
||||
AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile instanceof TileCrank )
|
||||
{
|
||||
if( ( (TileCrank) tile ).power() )
|
||||
@@ -81,19 +82,19 @@ public class BlockCrank extends AEBaseBlock
|
||||
return true;
|
||||
}
|
||||
|
||||
private void dropCrank( World world, int x, int y, int z )
|
||||
private void dropCrank( final World world, final int x, final int y, final int z )
|
||||
{
|
||||
world.func_147480_a( x, y, z, true ); // w.destroyBlock( x, y, z, true );
|
||||
world.markBlockForUpdate( x, y, z );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockPlacedBy( World world, int x, int y, int z, EntityLivingBase placer, ItemStack itemStack )
|
||||
public void onBlockPlacedBy( final World world, final int x, final int y, final int z, final EntityLivingBase placer, final ItemStack itemStack )
|
||||
{
|
||||
AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
ForgeDirection mnt = this.findCrankable( world, x, y, z );
|
||||
final ForgeDirection mnt = this.findCrankable( world, x, y, z );
|
||||
ForgeDirection forward = ForgeDirection.UP;
|
||||
if( mnt == ForgeDirection.UP || mnt == ForgeDirection.DOWN )
|
||||
{
|
||||
@@ -108,15 +109,15 @@ public class BlockCrank extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidOrientation( World world, int x, int y, int z, ForgeDirection forward, ForgeDirection up )
|
||||
public boolean isValidOrientation( final World world, final int x, final int y, final int z, final ForgeDirection forward, final ForgeDirection up )
|
||||
{
|
||||
TileEntity te = world.getTileEntity( x, y, z );
|
||||
final TileEntity te = world.getTileEntity( x, y, z );
|
||||
return !( te instanceof TileCrank ) || this.isCrankable( world, x, y, z, up.getOpposite() );
|
||||
}
|
||||
|
||||
private ForgeDirection findCrankable( World world, int x, int y, int z )
|
||||
private ForgeDirection findCrankable( final World world, final int x, final int y, final int z )
|
||||
{
|
||||
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
for( final ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
if( this.isCrankable( world, x, y, z, dir ) )
|
||||
{
|
||||
@@ -126,17 +127,17 @@ public class BlockCrank extends AEBaseBlock
|
||||
return ForgeDirection.UNKNOWN;
|
||||
}
|
||||
|
||||
private boolean isCrankable( World world, int x, int y, int z, ForgeDirection offset )
|
||||
private boolean isCrankable( final World world, final int x, final int y, final int z, final ForgeDirection offset )
|
||||
{
|
||||
TileEntity te = world.getTileEntity( x + offset.offsetX, y + offset.offsetY, z + offset.offsetZ );
|
||||
final TileEntity te = world.getTileEntity( x + offset.offsetX, y + offset.offsetY, z + offset.offsetZ );
|
||||
|
||||
return te instanceof ICrankable && ( (ICrankable) te ).canCrankAttach( offset.getOpposite() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World world, int x, int y, int z, Block block )
|
||||
public void onNeighborBlockChange( final World world, final int x, final int y, final int z, final Block block )
|
||||
{
|
||||
AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
if( !this.isCrankable( world, x, y, z, tile.getUp().getOpposite() ) )
|
||||
@@ -151,7 +152,7 @@ public class BlockCrank extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt( World world, int x, int y, int z )
|
||||
public boolean canPlaceBlockAt( final World world, final int x, final int y, final int z )
|
||||
{
|
||||
return this.findCrankable( world, x, y, z ) != ForgeDirection.UNKNOWN;
|
||||
}
|
||||
|
||||
@@ -26,28 +26,29 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.grindstone.TileGrinder;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockGrinder extends AEBaseBlock
|
||||
public class BlockGrinder extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockGrinder()
|
||||
{
|
||||
super( BlockGrinder.class, Material.rock );
|
||||
super( Material.rock );
|
||||
|
||||
this.setTileEntity( TileGrinder.class );
|
||||
this.setHardness( 3.2F );
|
||||
this.setFeature( EnumSet.of( AEFeature.GrindStone ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
TileGrinder tg = this.getTileEntity( w, x, y, z );
|
||||
final TileGrinder tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null && !p.isSneaking() )
|
||||
{
|
||||
Platform.openGUI( p, tg, ForgeDirection.getOrientation( side ), GuiBridge.GUI_GRINDER );
|
||||
|
||||
@@ -26,32 +26,33 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.misc.TileCellWorkbench;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockCellWorkbench extends AEBaseBlock
|
||||
public class BlockCellWorkbench extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockCellWorkbench()
|
||||
{
|
||||
super( BlockCellWorkbench.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
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 )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( p.isSneaking() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TileCellWorkbench tg = this.getTileEntity( w, x, y, z );
|
||||
final TileCellWorkbench tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
|
||||
@@ -36,7 +36,7 @@ import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.AEApi;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockCharger;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
@@ -49,12 +49,13 @@ import appeng.tile.misc.TileCharger;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
public class BlockCharger extends AEBaseTileBlock implements ICustomCollision
|
||||
{
|
||||
|
||||
public BlockCharger()
|
||||
{
|
||||
super( BlockCharger.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.setTileEntity( TileCharger.class );
|
||||
this.setLightOpacity( 2 );
|
||||
this.isFullSize = this.isOpaque = false;
|
||||
@@ -68,7 +69,7 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player.isSneaking() )
|
||||
{
|
||||
@@ -77,7 +78,7 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
|
||||
if( Platform.isServer() )
|
||||
{
|
||||
TileCharger tc = this.getTileEntity( w, x, y, z );
|
||||
final TileCharger tc = this.getTileEntity( w, x, y, z );
|
||||
if( tc != null )
|
||||
{
|
||||
tc.activate( player );
|
||||
@@ -89,7 +90,7 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void randomDisplayTick( World w, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World w, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
if( !AEConfig.instance.enableEffects )
|
||||
{
|
||||
@@ -101,22 +102,22 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
return;
|
||||
}
|
||||
|
||||
AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile instanceof TileCharger )
|
||||
{
|
||||
TileCharger tc = (TileCharger) tile;
|
||||
final TileCharger tc = (TileCharger) tile;
|
||||
|
||||
if( AEApi.instance().definitions().materials().certusQuartzCrystalCharged().isSameAs( tc.getStackInSlot( 0 ) ) )
|
||||
{
|
||||
double xOff = 0.0;
|
||||
double yOff = 0.0;
|
||||
double zOff = 0.0;
|
||||
final double xOff = 0.0;
|
||||
final double yOff = 0.0;
|
||||
final double zOff = 0.0;
|
||||
|
||||
for( int bolts = 0; bolts < 3; bolts++ )
|
||||
{
|
||||
if( CommonHelper.proxy.shouldAddParticles( r ) )
|
||||
{
|
||||
LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D );
|
||||
final LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D );
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect( fx );
|
||||
}
|
||||
}
|
||||
@@ -125,15 +126,15 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual )
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
TileCharger tile = this.getTileEntity( w, x, y, z );
|
||||
final TileCharger tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
double twoPixels = 2.0 / 16.0;
|
||||
ForgeDirection up = tile.getUp();
|
||||
ForgeDirection forward = tile.getForward();
|
||||
AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( twoPixels, twoPixels, twoPixels, 1.0 - twoPixels, 1.0 - twoPixels, 1.0 - twoPixels );
|
||||
final double twoPixels = 2.0 / 16.0;
|
||||
final ForgeDirection up = tile.getUp();
|
||||
final ForgeDirection forward = tile.getForward();
|
||||
final AxisAlignedBB bb = AxisAlignedBB.getBoundingBox( twoPixels, twoPixels, twoPixels, 1.0 - twoPixels, 1.0 - twoPixels, 1.0 - twoPixels );
|
||||
|
||||
if( up.offsetX != 0 )
|
||||
{
|
||||
@@ -181,7 +182,7 @@ public class BlockCharger extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List<AxisAlignedBB> out, Entity e )
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List<AxisAlignedBB> out, final Entity e )
|
||||
{
|
||||
out.add( AxisAlignedBB.getBoundingBox( 0.0, 0.0, 0.0, 1.0, 1.0, 1.0 ) );
|
||||
}
|
||||
|
||||
@@ -26,25 +26,26 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.core.sync.GuiBridge;
|
||||
import appeng.tile.misc.TileCondenser;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockCondenser extends AEBaseBlock
|
||||
public class BlockCondenser extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockCondenser()
|
||||
{
|
||||
super( BlockCondenser.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
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 )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player.isSneaking() )
|
||||
{
|
||||
@@ -53,7 +54,7 @@ public class BlockCondenser extends AEBaseBlock
|
||||
|
||||
if( Platform.isServer() )
|
||||
{
|
||||
TileCondenser tc = this.getTileEntity( w, x, y, z );
|
||||
final TileCondenser tc = this.getTileEntity( w, x, y, z );
|
||||
if( tc != null && !player.isSneaking() )
|
||||
{
|
||||
Platform.openGUI( player, tc, ForgeDirection.getOrientation( side ), GuiBridge.GUI_CONDENSER );
|
||||
|
||||
@@ -26,7 +26,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockInscriber;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -35,12 +35,13 @@ import appeng.tile.misc.TileInscriber;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockInscriber extends AEBaseBlock
|
||||
public class BlockInscriber extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockInscriber()
|
||||
{
|
||||
super( BlockInscriber.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.setTileEntity( TileInscriber.class );
|
||||
this.setLightOpacity( 2 );
|
||||
this.isFullSize = this.isOpaque = false;
|
||||
@@ -54,14 +55,14 @@ public class BlockInscriber extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( p.isSneaking() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TileInscriber tg = this.getTileEntity( w, x, y, z );
|
||||
final TileInscriber tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
|
||||
@@ -27,7 +27,7 @@ import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockInterface;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -36,12 +36,13 @@ import appeng.tile.misc.TileInterface;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockInterface extends AEBaseBlock
|
||||
public class BlockInterface extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockInterface()
|
||||
{
|
||||
super( BlockInterface.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.setTileEntity( TileInterface.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||
}
|
||||
@@ -53,14 +54,14 @@ public class BlockInterface extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( p.isSneaking() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TileInterface tg = this.getTileEntity( w, x, y, z );
|
||||
final TileInterface tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
@@ -79,7 +80,7 @@ public class BlockInterface extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void customRotateBlock( IOrientable rotatable, ForgeDirection axis )
|
||||
protected void customRotateBlock( final IOrientable rotatable, final ForgeDirection axis )
|
||||
{
|
||||
if( rotatable instanceof TileInterface )
|
||||
{
|
||||
|
||||
@@ -19,31 +19,49 @@
|
||||
package appeng.block.misc;
|
||||
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.EnumSet;
|
||||
import java.util.List;
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.entity.Entity;
|
||||
import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.api.util.IOrientableBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.blocks.RenderQuartzTorch;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.ICustomCollision;
|
||||
import appeng.helpers.MetaRotation;
|
||||
import appeng.tile.misc.TileLightDetector;
|
||||
|
||||
|
||||
public class BlockLightDetector extends BlockQuartzTorch
|
||||
public class BlockLightDetector extends AEBaseTileBlock implements IOrientableBlock, ICustomCollision
|
||||
{
|
||||
|
||||
public BlockLightDetector()
|
||||
{
|
||||
super( BlockLightDetector.class );
|
||||
super( Material.circuits );
|
||||
|
||||
this.setLightOpacity( 0 );
|
||||
this.isFullSize = false;
|
||||
this.isOpaque = false;
|
||||
|
||||
this.setTileEntity( TileLightDetector.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.LightDetector ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int isProvidingWeakPower( IBlockAccess w, int x, int y, int z, int side )
|
||||
public int isProvidingWeakPower( final IBlockAccess w, final int x, final int y, final int z, final int side )
|
||||
{
|
||||
if( w instanceof World && ( (TileLightDetector) this.getTileEntity( w, x, y, z ) ).isReady() )
|
||||
{
|
||||
@@ -54,11 +72,11 @@ public class BlockLightDetector extends BlockQuartzTorch
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborChange( IBlockAccess world, int x, int y, int z, int tileX, int tileY, int tileZ )
|
||||
public void onNeighborChange( final IBlockAccess world, final int x, final int y, final int z, final int tileX, final int tileY, final int tileZ )
|
||||
{
|
||||
super.onNeighborChange( world, x, y, z, tileX, tileY, tileZ );
|
||||
|
||||
TileLightDetector tld = this.getTileEntity( world, x, y, z );
|
||||
final TileLightDetector tld = this.getTileEntity( world, x, y, z );
|
||||
if( tld != null )
|
||||
{
|
||||
tld.updateLight();
|
||||
@@ -67,8 +85,86 @@ public class BlockLightDetector extends BlockQuartzTorch
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void randomDisplayTick( World w, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World w, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
// cancel out lightning
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends RenderQuartzTorch> getRenderer()
|
||||
{
|
||||
return RenderQuartzTorch.class;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidOrientation( final World w, final int x, final int y, final int z, final ForgeDirection forward, final ForgeDirection up )
|
||||
{
|
||||
return this.canPlaceAt( w, x, y, z, up.getOpposite() );
|
||||
}
|
||||
|
||||
private boolean canPlaceAt( final World w, final int x, final int y, final int z, final ForgeDirection dir )
|
||||
{
|
||||
return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false );
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
final ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
final double xOff = -0.3 * up.offsetX;
|
||||
final double yOff = -0.3 * up.offsetY;
|
||||
final double zOff = -0.3 * up.offsetZ;
|
||||
return Collections.singletonList( AxisAlignedBB.getBoundingBox( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List out, final Entity e )
|
||||
{/*
|
||||
* double xOff = -0.15 * getUp().offsetX; double yOff = -0.15 * getUp().offsetY; double zOff = -0.15 *
|
||||
* getUp().offsetZ; out.add( AxisAlignedBB.getBoundingBox( xOff + (double) x + 0.15, yOff + (double) y + 0.15, zOff
|
||||
* + (double) z + 0.15,// ahh xOff + (double) x + 0.85, yOff + (double) y + 0.85, zOff + (double) z + 0.85 ) );
|
||||
*/
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block id )
|
||||
{
|
||||
final 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( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
w.func_147480_a( x, y, z, true );
|
||||
// w.destroyBlock( x, y, z, true );
|
||||
w.markBlockForUpdate( x, y, z );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
for( final ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
if( this.canPlaceAt( w, x, y, z, dir ) )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean usesMetadata()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
return new MetaRotation( w, x, y, z );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.minecraft.world.World;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockPaint;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -44,12 +44,13 @@ import appeng.tile.misc.TilePaint;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockPaint extends AEBaseBlock
|
||||
public class BlockPaint extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockPaint()
|
||||
{
|
||||
super( BlockPaint.class, new MaterialLiquid( MapColor.airColor ) );
|
||||
super( new MaterialLiquid( MapColor.airColor ) );
|
||||
|
||||
this.setTileEntity( TilePaint.class );
|
||||
this.setLightOpacity( 0 );
|
||||
this.isFullSize = false;
|
||||
@@ -65,27 +66,27 @@ public class BlockPaint extends AEBaseBlock
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool( World p_149668_1_, int p_149668_2_, int p_149668_3_, int p_149668_4_ )
|
||||
public AxisAlignedBB getCollisionBoundingBoxFromPool( final World world, final int x, final int y, final int z )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canCollideCheck( int p_149678_1_, boolean p_149678_2_ )
|
||||
public boolean canCollideCheck( final int metadata, final boolean isHoldingRightClick )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block junk )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block junk )
|
||||
{
|
||||
TilePaint tp = this.getTileEntity( w, x, y, z );
|
||||
final TilePaint tp = this.getTileEntity( w, x, y, z );
|
||||
|
||||
if( tp != null )
|
||||
{
|
||||
@@ -94,30 +95,30 @@ public class BlockPaint extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped( int p_149650_1_, Random p_149650_2_, int p_149650_3_ )
|
||||
public Item getItemDropped( final int meta, final Random random, final int fortune )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void dropBlockAsItemWithChance( World p_149690_1_, int p_149690_2_, int p_149690_3_, int p_149690_4_, int p_149690_5_, float p_149690_6_, int p_149690_7_ )
|
||||
public void dropBlockAsItemWithChance( final World world, final int x, final int y, final int z, final int meta, final float chance, final int fortune )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void fillWithRain( World w, int x, int y, int z )
|
||||
public void fillWithRain( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
{
|
||||
w.setBlock( x, y, z, Platform.AIR, 0, 3 );
|
||||
w.setBlock( x, y, z, Platform.AIR_BLOCK, 0, 3 );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightValue( IBlockAccess w, int x, int y, int z )
|
||||
public int getLightValue( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
TilePaint tp = this.getTileEntity( w, x, y, z );
|
||||
final TilePaint tp = this.getTileEntity( w, x, y, z );
|
||||
|
||||
if( tp != null )
|
||||
{
|
||||
@@ -128,13 +129,13 @@ public class BlockPaint extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReplaceable( IBlockAccess world, int x, int y, int z )
|
||||
public boolean isReplaceable( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAir( IBlockAccess world, int x, int y, int z )
|
||||
public boolean isAir( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -25,33 +25,30 @@ import java.util.Random;
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.util.IOrientable;
|
||||
import appeng.api.util.IOrientableBlock;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockQuartzAccelerator;
|
||||
import appeng.client.render.effects.LightningFX;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.core.CommonHelper;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.MetaRotation;
|
||||
import appeng.tile.misc.TileQuartzGrowthAccelerator;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrientableBlock
|
||||
public class BlockQuartzGrowthAccelerator extends AEBaseTileBlock implements IOrientableBlock
|
||||
{
|
||||
|
||||
public BlockQuartzGrowthAccelerator()
|
||||
{
|
||||
super( BlockQuartzGrowthAccelerator.class, Material.rock );
|
||||
super( Material.rock );
|
||||
this.setStepSound( Block.soundTypeMetal );
|
||||
this.setTileEntity( TileQuartzGrowthAccelerator.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||
@@ -65,35 +62,34 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void randomDisplayTick( World w, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World w, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
if( !AEConfig.instance.enableEffects )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
TileQuartzGrowthAccelerator tileQuartzGrowthAccelerator = this.getTileEntity( w, x, y, z );
|
||||
final TileQuartzGrowthAccelerator cga = this.getTileEntity( w, x, y, z );
|
||||
|
||||
if( tileQuartzGrowthAccelerator != null && tileQuartzGrowthAccelerator.hasPower && CommonHelper.proxy.shouldAddParticles( r ) )
|
||||
if( cga != null && cga.hasPower && CommonHelper.proxy.shouldAddParticles( r ) )
|
||||
{
|
||||
double d0 = r.nextFloat() - 0.5F;
|
||||
double d1 = r.nextFloat() - 0.5F;
|
||||
final double d0 = r.nextFloat() - 0.5F;
|
||||
final double d1 = r.nextFloat() - 0.5F;
|
||||
|
||||
ForgeDirection up = tileQuartzGrowthAccelerator.getUp();
|
||||
ForgeDirection forward = tileQuartzGrowthAccelerator.getForward();
|
||||
ForgeDirection west = Platform.crossProduct( forward, up );
|
||||
final ForgeDirection up = cga.getUp();
|
||||
final ForgeDirection forward = cga.getForward();
|
||||
final ForgeDirection west = Platform.crossProduct( forward, up );
|
||||
|
||||
double rx = 0.5 + x;
|
||||
double ry = 0.5 + y;
|
||||
double rz = 0.5 + z;
|
||||
|
||||
double dx = 0;
|
||||
double dz = 0;
|
||||
|
||||
rx += up.offsetX * d0;
|
||||
ry += up.offsetY * d0;
|
||||
rz += up.offsetZ * d0;
|
||||
|
||||
double dz = 0;
|
||||
double dx = 0;
|
||||
switch( r.nextInt( 4 ) )
|
||||
{
|
||||
case 0:
|
||||
@@ -138,20 +134,20 @@ public class BlockQuartzGrowthAccelerator extends AEBaseBlock implements IOrient
|
||||
ry += dz * forward.offsetY;
|
||||
rz += dz * forward.offsetZ;
|
||||
|
||||
LightningFX fx = new LightningFX( w, rx, ry, rz, 0.0D, 0.0D, 0.0D );
|
||||
final LightningFX fx = new LightningFX( w, rx, ry, rz, 0.0D, 0.0D, 0.0D );
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect( fx );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
/**
|
||||
* TODO: remove with 1.8 or later
|
||||
*
|
||||
* @Deprecated no longer true, only kept to prevent missing blocks.
|
||||
*/
|
||||
@Deprecated
|
||||
public boolean usesMetadata()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public IOrientable getOrientable( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
return new MetaRotation( w, x, y, z );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -51,19 +51,15 @@ import appeng.helpers.MetaRotation;
|
||||
|
||||
public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, ICustomCollision
|
||||
{
|
||||
|
||||
public BlockQuartzTorch()
|
||||
{
|
||||
this( BlockQuartzTorch.class );
|
||||
this.setLightLevel( 0.9375F );
|
||||
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
|
||||
}
|
||||
super( Material.circuits );
|
||||
|
||||
protected BlockQuartzTorch( Class which )
|
||||
{
|
||||
super( which, Material.circuits );
|
||||
this.setFeature( EnumSet.of( AEFeature.DecorativeLights ) );
|
||||
this.setLightLevel( 0.9375F );
|
||||
this.setLightOpacity( 0 );
|
||||
this.isFullSize = this.isOpaque = false;
|
||||
this.isFullSize = false;
|
||||
this.isOpaque = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -73,28 +69,28 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up )
|
||||
public boolean isValidOrientation( final World w, final int x, final int y, final int z, final ForgeDirection forward, final ForgeDirection up )
|
||||
{
|
||||
return this.canPlaceAt( w, x, y, z, up.getOpposite() );
|
||||
}
|
||||
|
||||
private boolean canPlaceAt( World w, int x, int y, int z, ForgeDirection dir )
|
||||
private boolean canPlaceAt( final World w, final int x, final int y, final int z, final ForgeDirection dir )
|
||||
{
|
||||
return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false );
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual )
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
double xOff = -0.3 * up.offsetX;
|
||||
double yOff = -0.3 * up.offsetY;
|
||||
double zOff = -0.3 * up.offsetZ;
|
||||
final ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
final double xOff = -0.3 * up.offsetX;
|
||||
final double yOff = -0.3 * up.offsetY;
|
||||
final double zOff = -0.3 * up.offsetZ;
|
||||
return Collections.singletonList( AxisAlignedBB.getBoundingBox( xOff + 0.3, yOff + 0.3, zOff + 0.3, xOff + 0.7, yOff + 0.7, zOff + 0.7 ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e )
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List out, final Entity e )
|
||||
{/*
|
||||
* double xOff = -0.15 * getUp().offsetX; double yOff = -0.15 * getUp().offsetY; double zOff = -0.15 *
|
||||
* getUp().offsetZ; out.add( AxisAlignedBB.getBoundingBox( xOff + (double) x + 0.15, yOff + (double) y + 0.15, zOff
|
||||
@@ -104,7 +100,7 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void randomDisplayTick( World w, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World w, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
if( !AEConfig.instance.enableEffects )
|
||||
{
|
||||
@@ -116,15 +112,15 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
return;
|
||||
}
|
||||
|
||||
ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
double xOff = -0.3 * up.offsetX;
|
||||
double yOff = -0.3 * up.offsetY;
|
||||
double zOff = -0.3 * up.offsetZ;
|
||||
final ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
final double xOff = -0.3 * up.offsetX;
|
||||
final double yOff = -0.3 * up.offsetY;
|
||||
final double zOff = -0.3 * up.offsetZ;
|
||||
for( int bolts = 0; bolts < 3; bolts++ )
|
||||
{
|
||||
if( CommonHelper.proxy.shouldAddParticles( r ) )
|
||||
{
|
||||
LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D );
|
||||
final LightningFX fx = new LightningFX( w, xOff + 0.5 + x, yOff + 0.5 + y, zOff + 0.5 + z, 0.0D, 0.0D, 0.0D );
|
||||
|
||||
Minecraft.getMinecraft().effectRenderer.addEffect( fx );
|
||||
}
|
||||
@@ -132,16 +128,16 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block id )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block id )
|
||||
{
|
||||
ForgeDirection up = this.getOrientable( w, x, y, z ).getUp();
|
||||
final 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 )
|
||||
private void dropTorch( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
w.func_147480_a( x, y, z, true );
|
||||
// w.destroyBlock( x, y, z, true );
|
||||
@@ -149,9 +145,9 @@ public class BlockQuartzTorch extends AEBaseBlock implements IOrientableBlock, I
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt( World w, int x, int y, int z )
|
||||
public boolean canPlaceBlockAt( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
for( final ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
if( this.canPlaceAt( w, x, y, z, dir ) )
|
||||
{
|
||||
|
||||
@@ -26,7 +26,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RendererSecurity;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -35,12 +35,13 @@ import appeng.tile.misc.TileSecurity;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockSecurity extends AEBaseBlock
|
||||
public class BlockSecurity extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockSecurity()
|
||||
{
|
||||
super( BlockSecurity.class, Material.iron );
|
||||
super( Material.iron );
|
||||
|
||||
this.setTileEntity( TileSecurity.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Security ) );
|
||||
}
|
||||
@@ -52,14 +53,14 @@ public class BlockSecurity extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( p.isSneaking() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TileSecurity tg = this.getTileEntity( w, x, y, z );
|
||||
final TileSecurity tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null )
|
||||
{
|
||||
if( Platform.isClient() )
|
||||
|
||||
@@ -36,7 +36,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockSkyCompass;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -44,12 +44,12 @@ import appeng.helpers.ICustomCollision;
|
||||
import appeng.tile.misc.TileSkyCompass;
|
||||
|
||||
|
||||
public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
public class BlockSkyCompass extends AEBaseTileBlock implements ICustomCollision
|
||||
{
|
||||
|
||||
public BlockSkyCompass()
|
||||
{
|
||||
super( BlockSkyCompass.class, Material.iron );
|
||||
super( Material.iron );
|
||||
this.setTileEntity( TileSkyCompass.class );
|
||||
this.isOpaque = this.isFullSize = false;
|
||||
this.lightOpacity = 0;
|
||||
@@ -64,21 +64,21 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
return Blocks.iron_block.getIcon( direction, metadata );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons( IIconRegister iconRegistry )
|
||||
public void registerBlockIcons( final IIconRegister iconRegistry )
|
||||
{
|
||||
// :P
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isValidOrientation( World w, int x, int y, int z, ForgeDirection forward, ForgeDirection up )
|
||||
public boolean isValidOrientation( final World w, final int x, final int y, final int z, final ForgeDirection forward, final ForgeDirection up )
|
||||
{
|
||||
TileSkyCompass sc = this.getTileEntity( w, x, y, z );
|
||||
final TileSkyCompass sc = this.getTileEntity( w, x, y, z );
|
||||
if( sc != null )
|
||||
{
|
||||
return false;
|
||||
@@ -86,23 +86,23 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
return this.canPlaceAt( w, x, y, z, forward.getOpposite() );
|
||||
}
|
||||
|
||||
private boolean canPlaceAt( World w, int x, int y, int z, ForgeDirection dir )
|
||||
private boolean canPlaceAt( final World w, final int x, final int y, final int z, final ForgeDirection dir )
|
||||
{
|
||||
return w.isSideSolid( x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ, dir.getOpposite(), false );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block id )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block id )
|
||||
{
|
||||
TileSkyCompass sc = this.getTileEntity( w, x, y, z );
|
||||
ForgeDirection up = sc.getForward();
|
||||
final TileSkyCompass sc = this.getTileEntity( w, x, y, z );
|
||||
final 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 )
|
||||
private void dropTorch( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
w.func_147480_a( x, y, z, true );
|
||||
// w.destroyBlock( x, y, z, true );
|
||||
@@ -110,9 +110,9 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canPlaceBlockAt( World w, int x, int y, int z )
|
||||
public boolean canPlaceBlockAt( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
for( ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
for( final ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS )
|
||||
{
|
||||
if( this.canPlaceAt( w, x, y, z, dir ) )
|
||||
{
|
||||
@@ -123,12 +123,12 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual )
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
TileSkyCompass tile = this.getTileEntity( w, x, y, z );
|
||||
final TileSkyCompass tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
ForgeDirection forward = tile.getForward();
|
||||
final ForgeDirection forward = tile.getForward();
|
||||
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
@@ -185,7 +185,7 @@ public class BlockSkyCompass extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List out, Entity e )
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List out, final Entity e )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
@@ -58,7 +58,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
|
||||
public BlockTinyTNT()
|
||||
{
|
||||
super( BlockTinyTNT.class, Material.tnt );
|
||||
super( Material.tnt );
|
||||
this.setLightOpacity( 1 );
|
||||
this.setBlockBounds( 0.25f, 0.0f, 0.25f, 0.75f, 0.5f, 0.75f );
|
||||
this.isFullSize = this.isOpaque = false;
|
||||
@@ -66,7 +66,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
this.setHardness( 0F );
|
||||
this.setFeature( EnumSet.of( AEFeature.TinyTNT ) );
|
||||
|
||||
EntityRegistry.registerModEntity( EntityTinyTNTPrimed.class, "EntityTinyTNTPrimed", EntityIds.TINY_TNT, AppEng.instance, 16, 4, true );
|
||||
EntityRegistry.registerModEntity( EntityTinyTNTPrimed.class, "EntityTinyTNTPrimed", EntityIds.TINY_TNT, AppEng.instance(), 16, 4, true );
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -83,13 +83,13 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
return new FullIcon( Blocks.tnt.getIcon( direction, metadata ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player.getCurrentEquippedItem() != null && player.getCurrentEquippedItem().getItem() == Items.flint_and_steel )
|
||||
{
|
||||
@@ -105,23 +105,23 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons( IIconRegister iconRegistry )
|
||||
public void registerBlockIcons( final IIconRegister iconRegistry )
|
||||
{
|
||||
// no images required.
|
||||
}
|
||||
|
||||
public void startFuse( World w, int x, int y, int z, EntityLivingBase igniter )
|
||||
public void startFuse( final World w, final int x, final int y, final int z, final EntityLivingBase igniter )
|
||||
{
|
||||
if( !w.isRemote )
|
||||
{
|
||||
EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, igniter );
|
||||
final EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, igniter );
|
||||
w.spawnEntityInWorld( primedTinyTNTEntity );
|
||||
w.playSoundAtEntity( primedTinyTNTEntity, "game.tnt.primed", 1.0F, 1.0F );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockAdded( World w, int x, int y, int z )
|
||||
public void onBlockAdded( final World w, final int x, final int y, final int z )
|
||||
{
|
||||
super.onBlockAdded( w, x, y, z );
|
||||
|
||||
@@ -133,7 +133,7 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block id )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block id )
|
||||
{
|
||||
if( w.isBlockIndirectlyGettingPowered( x, y, z ) )
|
||||
{
|
||||
@@ -143,22 +143,22 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBlockDestroyedByExplosion( World w, int x, int y, int z, Explosion exp )
|
||||
public void onBlockDestroyedByExplosion( final World w, final int x, final int y, final int z, final Explosion exp )
|
||||
{
|
||||
if( !w.isRemote )
|
||||
{
|
||||
EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, exp.getExplosivePlacedBy() );
|
||||
final EntityTinyTNTPrimed primedTinyTNTEntity = new EntityTinyTNTPrimed( w, x + 0.5F, y + 0.5F, z + 0.5F, exp.getExplosivePlacedBy() );
|
||||
primedTinyTNTEntity.fuse = w.rand.nextInt( primedTinyTNTEntity.fuse / 4 ) + primedTinyTNTEntity.fuse / 8;
|
||||
w.spawnEntityInWorld( primedTinyTNTEntity );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock( World w, int x, int y, int z, Entity entity )
|
||||
public void onEntityCollidedWithBlock( final World w, final int x, final int y, final int z, final Entity entity )
|
||||
{
|
||||
if( entity instanceof EntityArrow && !w.isRemote )
|
||||
{
|
||||
EntityArrow entityarrow = (EntityArrow) entity;
|
||||
final EntityArrow entityarrow = (EntityArrow) entity;
|
||||
|
||||
if( entityarrow.isBurning() )
|
||||
{
|
||||
@@ -169,19 +169,19 @@ public class BlockTinyTNT extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canDropFromExplosion( Explosion exp )
|
||||
public boolean canDropFromExplosion( final Explosion exp )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual )
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
return Collections.singletonList( AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List<AxisAlignedBB> out, Entity e )
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List<AxisAlignedBB> out, final Entity e )
|
||||
{
|
||||
out.add( AxisAlignedBB.getBoundingBox( 0.25, 0, 0.25, 0.75, 0.5, 0.75 ) );
|
||||
}
|
||||
|
||||
@@ -29,7 +29,7 @@ import net.minecraft.world.IBlockAccess;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -39,22 +39,22 @@ import appeng.tile.misc.TileVibrationChamber;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public final class BlockVibrationChamber extends AEBaseBlock
|
||||
public final class BlockVibrationChamber extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockVibrationChamber()
|
||||
{
|
||||
super( BlockVibrationChamber.class, Material.iron );
|
||||
super( Material.iron );
|
||||
this.setTileEntity( TileVibrationChamber.class );
|
||||
this.setHardness( 4.2F );
|
||||
this.setFeature( EnumSet.of( AEFeature.PowerGen ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s )
|
||||
public IIcon getIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
IIcon ico = super.getIcon( w, x, y, z, s );
|
||||
TileVibrationChamber tvc = this.getTileEntity( w, x, y, z );
|
||||
final IIcon ico = super.getIcon( w, x, y, z, s );
|
||||
final TileVibrationChamber tvc = this.getTileEntity( w, x, y, z );
|
||||
|
||||
if( tvc != null && tvc.isOn && ico == this.getRendererInstance().getTexture( ForgeDirection.SOUTH ) )
|
||||
{
|
||||
@@ -65,7 +65,7 @@ public final class BlockVibrationChamber extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( player.isSneaking() )
|
||||
{
|
||||
@@ -74,7 +74,7 @@ public final class BlockVibrationChamber extends AEBaseBlock
|
||||
|
||||
if( Platform.isServer() )
|
||||
{
|
||||
TileVibrationChamber tc = this.getTileEntity( w, x, y, z );
|
||||
final TileVibrationChamber tc = this.getTileEntity( w, x, y, z );
|
||||
if( tc != null && !player.isSneaking() )
|
||||
{
|
||||
Platform.openGUI( player, tc, ForgeDirection.getOrientation( side ), GuiBridge.GUI_VIBRATION_CHAMBER );
|
||||
@@ -86,36 +86,36 @@ public final class BlockVibrationChamber extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public void randomDisplayTick( World w, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World w, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
if( !AEConfig.instance.enableEffects )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile instanceof TileVibrationChamber )
|
||||
{
|
||||
TileVibrationChamber tc = (TileVibrationChamber) tile;
|
||||
final TileVibrationChamber tc = (TileVibrationChamber) tile;
|
||||
if( tc.isOn )
|
||||
{
|
||||
float f1 = x + 0.5F;
|
||||
float f2 = y + 0.5F;
|
||||
float f3 = z + 0.5F;
|
||||
|
||||
ForgeDirection forward = tc.getForward();
|
||||
ForgeDirection up = tc.getUp();
|
||||
final ForgeDirection forward = tc.getForward();
|
||||
final ForgeDirection up = tc.getUp();
|
||||
|
||||
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;
|
||||
final int west_x = forward.offsetY * up.offsetZ - forward.offsetZ * up.offsetY;
|
||||
final int west_y = forward.offsetZ * up.offsetX - forward.offsetX * up.offsetZ;
|
||||
final int west_z = forward.offsetX * up.offsetY - forward.offsetY * up.offsetX;
|
||||
|
||||
f1 += forward.offsetX * 0.6;
|
||||
f2 += forward.offsetY * 0.6;
|
||||
f3 += forward.offsetZ * 0.6;
|
||||
|
||||
float ox = r.nextFloat();
|
||||
float oy = r.nextFloat() * 0.2f;
|
||||
final float ox = r.nextFloat();
|
||||
final float oy = r.nextFloat() * 0.2f;
|
||||
|
||||
f1 += up.offsetX * ( -0.3 + oy );
|
||||
f2 += up.offsetY * ( -0.3 + oy );
|
||||
|
||||
@@ -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
|
||||
@@ -53,17 +53,18 @@ import appeng.api.parts.IPartHost;
|
||||
import appeng.api.parts.PartItemStack;
|
||||
import appeng.api.parts.SelectedPart;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.BusRenderHelper;
|
||||
import appeng.client.render.blocks.RendererCableBus;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
import appeng.core.AEConfig;
|
||||
import appeng.core.Api;
|
||||
import appeng.core.AppEng;
|
||||
import appeng.core.CommonHelper;
|
||||
import appeng.core.features.AECableBusFeatureHandler;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
import appeng.integration.IntegrationRegistry;
|
||||
import appeng.integration.IntegrationType;
|
||||
import appeng.integration.abstraction.IFMP;
|
||||
import appeng.parts.ICableBusContainer;
|
||||
@@ -76,8 +77,8 @@ import appeng.transformer.annotations.Integration.Method;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
@Interface( iface = "powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection", iname = "MFR" )
|
||||
public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
@Interface( iface = "powercrystals.minefactoryreloaded.api.rednet.connectivity.IRedNetConnection", iname = IntegrationType.MFR )
|
||||
public class BlockCableBus extends AEBaseTileBlock implements IRedNetConnection
|
||||
{
|
||||
|
||||
private static final ICableBusContainer NULL_CABLE_BUS = new NullCableBusContainer();
|
||||
@@ -91,26 +92,29 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
|
||||
public BlockCableBus()
|
||||
{
|
||||
super( BlockCableBus.class, AEGlassMaterial.INSTANCE );
|
||||
super( AEGlassMaterial.INSTANCE );
|
||||
this.setLightOpacity( 0 );
|
||||
this.isFullSize = this.isOpaque = false;
|
||||
|
||||
// this will actually be overwritten later through setupTile and the combined layers
|
||||
this.setTileEntity( TileCableBus.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void randomDisplayTick( World world, int x, int y, int z, Random r )
|
||||
public void randomDisplayTick( final World world, final int x, final int y, final int z, final Random r )
|
||||
{
|
||||
this.cb( world, x, y, z ).randomDisplayTick( world, x, y, z, r );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block meh )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block meh )
|
||||
{
|
||||
this.cb( w, x, y, z ).onNeighborChanged();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item getItemDropped( int i, Random r, int k )
|
||||
public Item getItemDropped( final int i, final Random r, final int k )
|
||||
{
|
||||
return null;
|
||||
}
|
||||
@@ -126,13 +130,13 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public int colorMultiplier( IBlockAccess p_149720_1_, int p_149720_2_, int p_149720_3_, int p_149720_4_ )
|
||||
public int colorMultiplier( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
return this.myColorMultiplier;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int isProvidingWeakPower( IBlockAccess w, int x, int y, int z, int side )
|
||||
public int isProvidingWeakPower( final IBlockAccess w, final int x, final int y, final int z, final int side )
|
||||
{
|
||||
return this.cb( w, x, y, z ).isProvidingWeakPower( ForgeDirection.getOrientation( side ).getOpposite() );
|
||||
}
|
||||
@@ -144,21 +148,21 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onEntityCollidedWithBlock( World w, int x, int y, int z, Entity e )
|
||||
public void onEntityCollidedWithBlock( final World w, final int x, final int y, final int z, final Entity e )
|
||||
{
|
||||
this.cb( w, x, y, z ).onEntityCollision( e );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int isProvidingStrongPower( IBlockAccess w, int x, int y, int z, int side )
|
||||
public int isProvidingStrongPower( final IBlockAccess w, final int x, final int y, final int z, final int side )
|
||||
{
|
||||
return this.cb( w, x, y, z ).isProvidingStrongPower( ForgeDirection.getOrientation( side ).getOpposite() );
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getLightValue( IBlockAccess world, int x, int y, int z )
|
||||
public int getLightValue( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
Block block = world.getBlock( x, y, z );
|
||||
final Block block = world.getBlock( x, y, z );
|
||||
if( block != null && block != this )
|
||||
{
|
||||
return block.getLightValue( world, x, y, z );
|
||||
@@ -171,30 +175,30 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isLadder( IBlockAccess world, int x, int y, int z, EntityLivingBase entity )
|
||||
public boolean isLadder( final IBlockAccess world, final int x, final int y, final int z, final EntityLivingBase entity )
|
||||
{
|
||||
return this.cb( world, x, y, z ).isLadder( entity );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSideSolid( IBlockAccess w, int x, int y, int z, ForgeDirection side )
|
||||
public boolean isSideSolid( final IBlockAccess w, final int x, final int y, final int z, final ForgeDirection side )
|
||||
{
|
||||
return this.cb( w, x, y, z ).isSolidOnSide( side );
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isReplaceable( IBlockAccess world, int x, int y, int z )
|
||||
public boolean isReplaceable( final IBlockAccess world, final int x, final int y, final int z )
|
||||
{
|
||||
return this.cb( world, x, y, z ).isEmpty();
|
||||
}
|
||||
|
||||
@SuppressWarnings( "deprecation" )
|
||||
@Override
|
||||
public boolean removedByPlayer( World world, EntityPlayer player, int x, int y, int z )
|
||||
public boolean removedByPlayer( final World world, final EntityPlayer player, final int x, final int y, final int z )
|
||||
{
|
||||
if( player.capabilities.isCreativeMode )
|
||||
{
|
||||
AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
final AEBaseTile tile = this.getTileEntity( world, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
tile.disableDrops();
|
||||
@@ -205,7 +209,7 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canConnectRedstone( IBlockAccess w, int x, int y, int z, int side )
|
||||
public boolean canConnectRedstone( final IBlockAccess w, final int x, final int y, final int z, final int side )
|
||||
{
|
||||
switch( side )
|
||||
{
|
||||
@@ -225,7 +229,7 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean canRenderInPass( int pass )
|
||||
public boolean canRenderInPass( final int pass )
|
||||
{
|
||||
BusRenderHelper.INSTANCE.setPass( pass );
|
||||
|
||||
@@ -238,10 +242,10 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack getPickBlock( MovingObjectPosition target, World world, int x, int y, int z, EntityPlayer player )
|
||||
public ItemStack getPickBlock( final MovingObjectPosition target, final World world, final int x, final int y, final int z, final EntityPlayer player )
|
||||
{
|
||||
Vec3 v3 = target.hitVec.addVector( -x, -y, -z );
|
||||
SelectedPart sp = this.cb( world, x, y, z ).selectPart( v3 );
|
||||
final Vec3 v3 = target.hitVec.addVector( -x, -y, -z );
|
||||
final SelectedPart sp = this.cb( world, x, y, z ).selectPart( v3 );
|
||||
|
||||
if( sp.part != null )
|
||||
{
|
||||
@@ -257,24 +261,24 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public boolean addHitEffects( World world, MovingObjectPosition target, EffectRenderer effectRenderer )
|
||||
public boolean addHitEffects( final World world, final MovingObjectPosition target, final EffectRenderer effectRenderer )
|
||||
{
|
||||
Object object = this.cb( world, target.blockX, target.blockY, target.blockZ );
|
||||
final Object object = this.cb( world, target.blockX, target.blockY, target.blockZ );
|
||||
if( object instanceof IPartHost )
|
||||
{
|
||||
IPartHost host = (IPartHost) object;
|
||||
final IPartHost host = (IPartHost) object;
|
||||
|
||||
for( ForgeDirection side : ForgeDirection.values() )
|
||||
for( final ForgeDirection side : ForgeDirection.values() )
|
||||
{
|
||||
IPart p = host.getPart( side );
|
||||
IIcon ico = this.getIcon( p );
|
||||
final IPart p = host.getPart( side );
|
||||
final IIcon ico = this.getIcon( p );
|
||||
|
||||
if( ico == null )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
byte b0 = (byte) ( Platform.getRandomInt() % 2 == 0 ? 1 : 0 );
|
||||
final byte b0 = (byte) ( Platform.getRandomInt() % 2 == 0 ? 1 : 0 );
|
||||
|
||||
for( int i1 = 0; i1 < b0; ++i1 )
|
||||
{
|
||||
@@ -282,14 +286,14 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
{
|
||||
for( int k1 = 0; k1 < b0; ++k1 )
|
||||
{
|
||||
double d0 = target.blockX + ( i1 + 0.5D ) / b0;
|
||||
double d1 = target.blockY + ( j1 + 0.5D ) / b0;
|
||||
double d2 = target.blockZ + ( k1 + 0.5D ) / b0;
|
||||
final double d0 = target.blockX + ( i1 + 0.5D ) / b0;
|
||||
final double d1 = target.blockY + ( j1 + 0.5D ) / b0;
|
||||
final double d2 = target.blockZ + ( k1 + 0.5D ) / b0;
|
||||
|
||||
double dd0 = target.hitVec.xCoord;
|
||||
double dd1 = target.hitVec.yCoord;
|
||||
double dd2 = target.hitVec.zCoord;
|
||||
EntityDiggingFX fx = ( new EntityDiggingFX( world, dd0, dd1, dd2, d0 - target.blockX - 0.5D, d1 - target.blockY - 0.5D, d2 - target.blockZ - 0.5D, this, 0 ) ).applyColourMultiplier( target.blockX, target.blockY, target.blockZ );
|
||||
final double dd0 = target.hitVec.xCoord;
|
||||
final double dd1 = target.hitVec.yCoord;
|
||||
final double dd2 = target.hitVec.zCoord;
|
||||
final EntityDiggingFX fx = ( new EntityDiggingFX( world, dd0, dd1, dd2, d0 - target.blockX - 0.5D, d1 - target.blockY - 0.5D, d2 - target.blockZ - 0.5D, this, 0 ) ).applyColourMultiplier( target.blockX, target.blockY, target.blockZ );
|
||||
|
||||
fx.setParticleIcon( ico );
|
||||
|
||||
@@ -305,24 +309,24 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public boolean addDestroyEffects( World world, int x, int y, int z, int meta, EffectRenderer effectRenderer )
|
||||
public boolean addDestroyEffects( final World world, final int x, final int y, final int z, final int meta, final EffectRenderer effectRenderer )
|
||||
{
|
||||
Object object = this.cb( world, x, y, z );
|
||||
final Object object = this.cb( world, x, y, z );
|
||||
if( object instanceof IPartHost )
|
||||
{
|
||||
IPartHost host = (IPartHost) object;
|
||||
final IPartHost host = (IPartHost) object;
|
||||
|
||||
for( ForgeDirection side : ForgeDirection.values() )
|
||||
for( final ForgeDirection side : ForgeDirection.values() )
|
||||
{
|
||||
IPart p = host.getPart( side );
|
||||
IIcon ico = this.getIcon( p );
|
||||
final IPart p = host.getPart( side );
|
||||
final IIcon ico = this.getIcon( p );
|
||||
|
||||
if( ico == null )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
byte b0 = 3;
|
||||
final byte b0 = 3;
|
||||
|
||||
for( int i1 = 0; i1 < b0; ++i1 )
|
||||
{
|
||||
@@ -330,10 +334,10 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
{
|
||||
for( int k1 = 0; k1 < b0; ++k1 )
|
||||
{
|
||||
double d0 = x + ( i1 + 0.5D ) / b0;
|
||||
double d1 = y + ( j1 + 0.5D ) / b0;
|
||||
double d2 = z + ( k1 + 0.5D ) / b0;
|
||||
EntityDiggingFX fx = ( new EntityDiggingFX( world, d0, d1, d2, d0 - x - 0.5D, d1 - y - 0.5D, d2 - z - 0.5D, this, meta ) ).applyColourMultiplier( x, y, z );
|
||||
final double d0 = x + ( i1 + 0.5D ) / b0;
|
||||
final double d1 = y + ( j1 + 0.5D ) / b0;
|
||||
final double d2 = z + ( k1 + 0.5D ) / b0;
|
||||
final EntityDiggingFX fx = ( new EntityDiggingFX( world, d0, d1, d2, d0 - x - 0.5D, d1 - y - 0.5D, d2 - z - 0.5D, this, meta ) ).applyColourMultiplier( x, y, z );
|
||||
|
||||
fx.setParticleIcon( ico );
|
||||
|
||||
@@ -348,7 +352,7 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborChange( IBlockAccess w, int x, int y, int z, int tileX, int tileY, int tileZ )
|
||||
public void onNeighborChange( final IBlockAccess w, final int x, final int y, final int z, final int tileX, final int tileY, final int tileZ )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
{
|
||||
@@ -356,7 +360,7 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
}
|
||||
|
||||
private IIcon getIcon( IPart p )
|
||||
private IIcon getIcon( final IPart p )
|
||||
{
|
||||
if( p == null )
|
||||
{
|
||||
@@ -365,18 +369,18 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
|
||||
try
|
||||
{
|
||||
IIcon ico = p.getBreakingTexture();
|
||||
final IIcon ico = p.getBreakingTexture();
|
||||
if( ico != null )
|
||||
{
|
||||
return ico;
|
||||
}
|
||||
}
|
||||
catch( Throwable t )
|
||||
catch( final Throwable t )
|
||||
{
|
||||
// nothing.
|
||||
}
|
||||
|
||||
ItemStack is = p.getItemStack( PartItemStack.Network );
|
||||
final ItemStack is = p.getItemStack( PartItemStack.Network );
|
||||
if( is == null || is.getItem() == null )
|
||||
{
|
||||
return null;
|
||||
@@ -385,18 +389,18 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
return is.getItem().getIcon( is, 0 );
|
||||
}
|
||||
|
||||
private ICableBusContainer cb( IBlockAccess w, int x, int y, int z )
|
||||
private ICableBusContainer cb( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
TileEntity te = w.getTileEntity( x, y, z );
|
||||
final TileEntity te = w.getTileEntity( x, y, z );
|
||||
ICableBusContainer out = null;
|
||||
|
||||
if( te instanceof TileCableBus )
|
||||
{
|
||||
out = ( (TileCableBus) te ).cb;
|
||||
}
|
||||
else if( AppEng.instance.isIntegrationEnabled( IntegrationType.FMP ) )
|
||||
else if( IntegrationRegistry.INSTANCE.isEnabled( IntegrationType.FMP ) )
|
||||
{
|
||||
out = ( (IFMP) AppEng.instance.getIntegration( IntegrationType.FMP ) ).getCableContainer( te );
|
||||
out = ( (IFMP) IntegrationRegistry.INSTANCE.getInstance( IntegrationType.FMP ) ).getCableContainer( te );
|
||||
}
|
||||
|
||||
return out == null ? NULL_CABLE_BUS : out;
|
||||
@@ -409,15 +413,15 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( IBlockAccess w, int x, int y, int z, int s )
|
||||
public IIcon getIcon( final IBlockAccess w, final int x, final int y, final int z, final int s )
|
||||
{
|
||||
return this.getIcon( s, 0 );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
IIcon i = super.getIcon( direction, metadata );
|
||||
final IIcon i = super.getIcon( direction, metadata );
|
||||
if( i != null )
|
||||
{
|
||||
return i;
|
||||
@@ -427,30 +431,30 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer player, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
return this.cb( w, x, y, z ).activate( player, Vec3.createVectorHelper( hitX, hitY, hitZ ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerBlockIcons( IIconRegister iconRegistry )
|
||||
public void registerBlockIcons( final IIconRegister iconRegistry )
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour )
|
||||
public boolean recolourBlock( final World world, final int x, final int y, final int z, final ForgeDirection side, final int colour )
|
||||
{
|
||||
return this.recolourBlock( world, x, y, z, side, colour, null );
|
||||
}
|
||||
|
||||
public boolean recolourBlock( World world, int x, int y, int z, ForgeDirection side, int colour, EntityPlayer who )
|
||||
public boolean recolourBlock( final World world, final int x, final int y, final int z, final ForgeDirection side, final int colour, final EntityPlayer who )
|
||||
{
|
||||
try
|
||||
{
|
||||
return this.cb( world, x, y, z ).recolourBlock( side, AEColor.values()[colour], who );
|
||||
}
|
||||
catch( Throwable ignored )
|
||||
catch( final Throwable ignored )
|
||||
{
|
||||
}
|
||||
return false;
|
||||
@@ -458,15 +462,15 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
@Override
|
||||
public <T extends TileEntity> T getTileEntity( IBlockAccess w, int x, int y, int z )
|
||||
public <T extends AEBaseTile> T getTileEntity( final IBlockAccess w, final int x, final int y, final int z )
|
||||
{
|
||||
TileEntity te = w.getTileEntity( x, y, z );
|
||||
final TileEntity te = w.getTileEntity( x, y, z );
|
||||
|
||||
if( noTesrTile.isInstance( te ) )
|
||||
{
|
||||
@@ -481,9 +485,18 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setFeature( final EnumSet<AEFeature> f )
|
||||
{
|
||||
final AECableBusFeatureHandler featureHandler = new AECableBusFeatureHandler( f, this, this.featureSubName );
|
||||
this.setHandler( featureHandler );
|
||||
}
|
||||
|
||||
public void setupTile()
|
||||
{
|
||||
this.setTileEntity( noTesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBus.class.getName() ) );
|
||||
noTesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBus.class.getName() );
|
||||
this.setTileEntity( noTesrTile );
|
||||
GameRegistry.registerTileEntity( noTesrTile, "BlockCableBus" );
|
||||
if( Platform.isClient() )
|
||||
{
|
||||
tesrTile = Api.INSTANCE.partHelper().getCombinedInstance( TileCableBusTESR.class.getName() );
|
||||
@@ -493,13 +506,13 @@ public class BlockCableBus extends AEBaseBlock implements IRedNetConnection
|
||||
}
|
||||
|
||||
@Override
|
||||
@Method( iname = "MFR" )
|
||||
public RedNetConnectionType getConnectionType( World world, int x, int y, int z, ForgeDirection side )
|
||||
@Method( iname = IntegrationType.MFR )
|
||||
public RedNetConnectionType getConnectionType( final World world, final int x, final int y, final int z, final ForgeDirection side )
|
||||
{
|
||||
return this.cb( world, x, y, z ).canConnectRedstone( EnumSet.allOf( ForgeDirection.class ) ) ? RedNetConnectionType.CableSingle : RedNetConnectionType.None;
|
||||
}
|
||||
|
||||
public void setRenderColor( int color )
|
||||
public void setRenderColor( final int color )
|
||||
{
|
||||
this.myColorMultiplier = color;
|
||||
}
|
||||
|
||||
@@ -25,28 +25,28 @@ import net.minecraft.block.Block;
|
||||
import net.minecraft.block.material.Material;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockController;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.networking.TileController;
|
||||
|
||||
|
||||
public class BlockController extends AEBaseBlock
|
||||
public class BlockController extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockController()
|
||||
{
|
||||
super( BlockController.class, Material.iron );
|
||||
super( Material.iron );
|
||||
this.setTileEntity( TileController.class );
|
||||
this.setHardness( 6 );
|
||||
this.setFeature( EnumSet.of( AEFeature.Channels ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onNeighborBlockChange( World w, int x, int y, int z, Block id_junk )
|
||||
public void onNeighborBlockChange( final World w, final int x, final int y, final int z, final Block neighborBlock )
|
||||
{
|
||||
TileController tc = this.getTileEntity( w, x, y, z );
|
||||
final TileController tc = this.getTileEntity( w, x, y, z );
|
||||
if( tc != null )
|
||||
{
|
||||
tc.onNeighborChange( false );
|
||||
|
||||
@@ -21,18 +21,18 @@ package appeng.block.networking;
|
||||
|
||||
import java.util.EnumSet;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.helpers.AEGlassMaterial;
|
||||
import appeng.tile.networking.TileCreativeEnergyCell;
|
||||
|
||||
|
||||
public class BlockCreativeEnergyCell extends AEBaseBlock
|
||||
public class BlockCreativeEnergyCell extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockCreativeEnergyCell()
|
||||
{
|
||||
super( BlockCreativeEnergyCell.class, AEGlassMaterial.INSTANCE );
|
||||
super( AEGlassMaterial.INSTANCE );
|
||||
this.setTileEntity( TileCreativeEnergyCell.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Creative ) );
|
||||
}
|
||||
|
||||
@@ -33,13 +33,12 @@ public class BlockDenseEnergyCell extends BlockEnergyCell
|
||||
|
||||
public BlockDenseEnergyCell()
|
||||
{
|
||||
super( BlockDenseEnergyCell.class );
|
||||
this.setTileEntity( TileDenseEnergyCell.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.DenseEnergyCells ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
switch( metadata )
|
||||
{
|
||||
|
||||
@@ -23,17 +23,17 @@ import java.util.EnumSet;
|
||||
|
||||
import net.minecraft.block.material.Material;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.core.features.AEFeature;
|
||||
import appeng.tile.networking.TileEnergyAcceptor;
|
||||
|
||||
|
||||
public class BlockEnergyAcceptor extends AEBaseBlock
|
||||
public class BlockEnergyAcceptor extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockEnergyAcceptor()
|
||||
{
|
||||
super( BlockEnergyAcceptor.class, Material.iron );
|
||||
super( Material.iron );
|
||||
this.setTileEntity( TileEnergyAcceptor.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||
}
|
||||
|
||||
@@ -31,9 +31,9 @@ import net.minecraft.util.IIcon;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseItemBlock;
|
||||
import appeng.block.AEBaseItemBlockChargeable;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockEnergyCube;
|
||||
import appeng.client.texture.ExtraBlockTextures;
|
||||
@@ -43,21 +43,17 @@ import appeng.tile.networking.TileEnergyCell;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockEnergyCell extends AEBaseBlock
|
||||
public class BlockEnergyCell extends AEBaseTileBlock
|
||||
{
|
||||
|
||||
public BlockEnergyCell()
|
||||
{
|
||||
this( BlockEnergyCell.class );
|
||||
super( AEGlassMaterial.INSTANCE );
|
||||
|
||||
this.setTileEntity( TileEnergyCell.class );
|
||||
this.setFeature( EnumSet.of( AEFeature.Core ) );
|
||||
}
|
||||
|
||||
public BlockEnergyCell( Class c )
|
||||
{
|
||||
super( c, AEGlassMaterial.INSTANCE );
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Class<? extends BaseBlockRender> getRenderer()
|
||||
{
|
||||
@@ -65,7 +61,7 @@ public class BlockEnergyCell extends AEBaseBlock
|
||||
}
|
||||
|
||||
@Override
|
||||
public IIcon getIcon( int direction, int metadata )
|
||||
public IIcon getIcon( final int direction, final int metadata )
|
||||
{
|
||||
switch( metadata )
|
||||
{
|
||||
@@ -91,12 +87,12 @@ public class BlockEnergyCell extends AEBaseBlock
|
||||
|
||||
@Override
|
||||
@SideOnly( Side.CLIENT )
|
||||
public void getCheckedSubBlocks( Item item, CreativeTabs tabs, List<ItemStack> itemStacks )
|
||||
public void getCheckedSubBlocks( final Item item, final CreativeTabs tabs, final List<ItemStack> itemStacks )
|
||||
{
|
||||
super.getCheckedSubBlocks( item, tabs, itemStacks );
|
||||
|
||||
ItemStack charged = new ItemStack( this, 1 );
|
||||
NBTTagCompound tag = Platform.openNbtData( charged );
|
||||
final ItemStack charged = new ItemStack( this, 1 );
|
||||
final NBTTagCompound tag = Platform.openNbtData( charged );
|
||||
tag.setDouble( "internalCurrentPower", this.getMaxPower() );
|
||||
tag.setDouble( "internalMaxPower", this.getMaxPower() );
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ import net.minecraft.util.AxisAlignedBB;
|
||||
import net.minecraft.world.World;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.block.AEBaseBlock;
|
||||
import appeng.block.AEBaseTileBlock;
|
||||
import appeng.client.render.BaseBlockRender;
|
||||
import appeng.client.render.blocks.RenderBlockWireless;
|
||||
import appeng.core.features.AEFeature;
|
||||
@@ -40,12 +40,12 @@ import appeng.tile.networking.TileWireless;
|
||||
import appeng.util.Platform;
|
||||
|
||||
|
||||
public class BlockWireless extends AEBaseBlock implements ICustomCollision
|
||||
public class BlockWireless extends AEBaseTileBlock implements ICustomCollision
|
||||
{
|
||||
|
||||
public BlockWireless()
|
||||
{
|
||||
super( BlockWireless.class, AEGlassMaterial.INSTANCE );
|
||||
super( AEGlassMaterial.INSTANCE );
|
||||
this.setTileEntity( TileWireless.class );
|
||||
this.setLightOpacity( 0 );
|
||||
this.isFullSize = false;
|
||||
@@ -60,14 +60,14 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onActivated( World w, int x, int y, int z, EntityPlayer p, int side, float hitX, float hitY, float hitZ )
|
||||
public boolean onActivated( final World w, final int x, final int y, final int z, final EntityPlayer p, final int side, final float hitX, final float hitY, final float hitZ )
|
||||
{
|
||||
if( p.isSneaking() )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
TileWireless tg = this.getTileEntity( w, x, y, z );
|
||||
final TileWireless tg = this.getTileEntity( w, x, y, z );
|
||||
if( tg != null )
|
||||
{
|
||||
if( Platform.isServer() )
|
||||
@@ -80,12 +80,12 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( World w, int x, int y, int z, Entity e, boolean isVisual )
|
||||
public Iterable<AxisAlignedBB> getSelectedBoundingBoxesFromPool( final World w, final int x, final int y, final int z, final Entity e, final boolean isVisual )
|
||||
{
|
||||
TileWireless tile = this.getTileEntity( w, x, y, z );
|
||||
final TileWireless tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
ForgeDirection forward = tile.getForward();
|
||||
final ForgeDirection forward = tile.getForward();
|
||||
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
@@ -142,12 +142,12 @@ public class BlockWireless extends AEBaseBlock implements ICustomCollision
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCollidingBlockToList( World w, int x, int y, int z, AxisAlignedBB bb, List<AxisAlignedBB> out, Entity e )
|
||||
public void addCollidingBlockToList( final World w, final int x, final int y, final int z, final AxisAlignedBB bb, final List<AxisAlignedBB> out, final Entity e )
|
||||
{
|
||||
TileWireless tile = this.getTileEntity( w, x, y, z );
|
||||
final TileWireless tile = this.getTileEntity( w, x, y, z );
|
||||
if( tile != null )
|
||||
{
|
||||
ForgeDirection forward = tile.getForward();
|
||||
final ForgeDirection forward = tile.getForward();
|
||||
|
||||
double minX = 0;
|
||||
double minY = 0;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user