Compare commits
141 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 200e56a509 | |||
| 9540bbce49 | |||
| c6d932da04 | |||
| 6e7100361c | |||
| ca50ee0762 | |||
| f00d5c297f | |||
| b13f5ced01 | |||
| 1c0f1ea243 | |||
| b612ff47a3 | |||
| e8a68cc531 | |||
| d9f362270b | |||
| 37aef15a02 | |||
| 2d8728f0e1 | |||
| 3498a0902b | |||
| bb4b6719fe | |||
| 34f78a7ce4 | |||
| 064acc21ee | |||
| deeb67f07d | |||
| 2eeaa80b59 | |||
| 1710894edc | |||
| 7cb485aa48 | |||
| 65d0ae9290 | |||
| 1baed48b0a | |||
| da6b31cdb1 | |||
| 013c8d882c | |||
| 503d325021 | |||
| 875214c166 | |||
| 2eec5309ac | |||
| a9ec31d72f | |||
| e392ecd08d | |||
| 03f9436ef9 | |||
| 8917a331eb | |||
| 8fbb317f6e | |||
| f15561c4dc | |||
| ee431b3269 | |||
| ba97dacfdd | |||
| ce6a2e8487 | |||
| 64ed05a1b4 | |||
| 23aa8fd72d | |||
| 332ea089e3 | |||
| 106003ebf9 | |||
| 8271597394 | |||
| 9210069d9b | |||
| f364359905 | |||
| fb618b939f | |||
| 43a47f8971 | |||
| e85acf2bee | |||
| bbde2443e1 | |||
| ad2f63ba0d | |||
| ee977720ca | |||
| ca953f4596 | |||
| 2adc055536 | |||
| 399934ac2b | |||
| 9451106c81 | |||
| 8e75de8fb9 | |||
| eca598516e | |||
| 2c5a54c210 | |||
| 1ac2ab0c10 | |||
| 199b17b9c6 | |||
| f582c8081b | |||
| 77d66b1817 | |||
| df370396b1 | |||
| ceeb84a439 | |||
| 9af6b50347 | |||
| d151313253 | |||
| 6d935cc8ae | |||
| 1396dbf600 | |||
| 8087a43df5 | |||
| c2cd395ca1 | |||
| a6e2975677 | |||
| 3783ae8619 | |||
| be17616836 | |||
| 36c72d641f | |||
| f878a7598d | |||
| 071ae6d680 | |||
| cc29230ce5 | |||
| b282e5d968 | |||
| 3410db7b45 | |||
| 800c30e91c | |||
| 817163dbf6 | |||
| d164e279ef | |||
| 4f9b8db6fc | |||
| b58c92ebb6 | |||
| 2667b8eac6 | |||
| 235fad439d | |||
| fcea444041 | |||
| 80f56d4359 | |||
| f14bfa7d53 | |||
| a7d55ee520 | |||
| 7382897e8e | |||
| aac2b598ea | |||
| 0f31cd43d2 | |||
| 788de6d432 | |||
| 04a6a683bc | |||
| 25e433f7bd | |||
| fbc44f47c8 | |||
| 06bca227d0 | |||
| 8321a5fe1c | |||
| 1bb8de3570 | |||
| 8666937117 | |||
| eaf57bedf6 | |||
| a30ef4679c | |||
| 0ee2ca72ac | |||
| 881bb919da | |||
| 5ecd68d5b6 | |||
| e2d0e5d424 | |||
| e3bf7d63c0 | |||
| 3fedcf273b | |||
| 8042dbb3db | |||
| e7e397c412 | |||
| ecc472a692 | |||
| 9790d9fd93 | |||
| f3f89344b4 | |||
| bac94b67b8 | |||
| ba1afcca38 | |||
| bb1c341c95 | |||
| 2ef04f1303 | |||
| 632d048ee2 | |||
| adea6b3dec | |||
| 5416ea2365 | |||
| a081a4f066 | |||
| b54676793e | |||
| d34c988c88 | |||
| 4ff1631f89 | |||
| dc6a325392 | |||
| 4f364a46df | |||
| c699ed44aa | |||
| 6bd4472229 | |||
| c9d67e40af | |||
| 9a7329598e | |||
| 278cfc076b | |||
| 5c908c7404 | |||
| 65aceeffa8 | |||
| 08505e1fa3 | |||
| b75e8d5824 | |||
| fbda2c571b | |||
| 2a89bdf52a | |||
| 67d9a48d75 | |||
| 07084939a0 | |||
| a7b0872697 | |||
| 371588ed79 |
+1
-1
@@ -7,7 +7,7 @@
|
||||
!gradlew
|
||||
!gradlew.bat
|
||||
!build.gradle
|
||||
!build.properties
|
||||
!gradle.properties
|
||||
|
||||
# include markdowns
|
||||
!README.md
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
<!--[](https://github.com/AppliedEnergistics/Applied-Energistics-2/releases) -->
|
||||
[](http://ci.tsr.me/viewType.html?buildTypeId=AppliedEnergistics_AutoHeadBuild&tab=buildTypeStatusDiv)
|
||||
|
||||
# Applied Energistics 2
|
||||
|
||||
## Table of Contents
|
||||
@@ -26,12 +29,17 @@ A Mod about Matter, Energy and using them to conquer the world..
|
||||
|
||||
## License
|
||||
|
||||
Applied Energistics 2 API is (c) 2013 - 2014 AlgorithmX2 and licensed under MIT.
|
||||
|
||||
Applied Energistics 2 is (c) 2013 - 2014 AlgorithmX2 and licensed under LGPL v3.
|
||||
See the LICENSE.txt for details or go to http://www.gnu.org/licenses/lgpl-3.0.txt for more information.
|
||||
|
||||
Textures and Models are licensed under [Creative Commons, Attribution-NonCommercial-ShareAlike 3.0]( https://creativecommons.org/licenses/by-nc-sa/3.0/).
|
||||
* Applied Energistics 2 API
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- 
|
||||
* Applied Energistics 2
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- [](https://raw.githubusercontent.com/AppliedEnergistics/Applied-Energistics-2/rv2/LICENSE)
|
||||
* Textures and Models
|
||||
- (c) 2013 - 2015 AlgorithmX2 et al
|
||||
- [](https://creativecommons.org/licenses/by-nc-sa/3.0/)
|
||||
* Text and Translations
|
||||
- 
|
||||
|
||||
## Downloads
|
||||
|
||||
@@ -103,7 +111,7 @@ Getting Started
|
||||
6. Push to your fork `git push`
|
||||
7. Create a Pull-Request on GitHub
|
||||
8. Wait for review
|
||||
9. Suqash commits for cleaner history
|
||||
9. Squash commits for cleaner history
|
||||
|
||||
If you are only doing single file pull requests, GitHub supports using a quick way without the need of cloning your fork. Also read up about [synching](https://help.github.com/articles/syncing-a-fork) if you plan to contribute on regular basis.
|
||||
|
||||
@@ -137,10 +145,6 @@ An example string would be `appeng:appliedenergistics2:rv2-alpha-30:dev`
|
||||
|
||||
Files must be encoded as UTF-8.
|
||||
|
||||
### License
|
||||
|
||||
All Text and Translations submitted here can be used for any purpose, and may be re-distributed or used without any limitations.
|
||||
|
||||
### New Translations
|
||||
|
||||
You can provide any additional languages by creating a new file with the [appropriate language code](http://download1.parallels.com/SiteBuilder/Windows/docs/3.2/en_US/sitebulder-3.2-win-sdk-localization-pack-creation-guide/30801.htm).
|
||||
|
||||
+10
-7
@@ -18,13 +18,15 @@
|
||||
|
||||
apply plugin: 'forge'
|
||||
|
||||
apply from: 'gradle/scripts/propertyloader.gradle'
|
||||
apply from: 'gradle/scripts/dependencies.gradle'
|
||||
apply from: 'gradle/scripts/artifacts.gradle'
|
||||
apply from: 'gradle/scripts/autoinstallruntime.gradle'
|
||||
apply from: 'gradle/scripts/integration.gradle'
|
||||
apply from: 'gradle/scripts/optional.gradle'
|
||||
|
||||
buildscript {
|
||||
repositories {
|
||||
mavenLocal()
|
||||
mavenCentral()
|
||||
|
||||
maven {
|
||||
@@ -50,9 +52,9 @@ configurations.all {
|
||||
sourceCompatibility = JavaVersion.VERSION_1_6
|
||||
targetCompatibility = JavaVersion.VERSION_1_6
|
||||
|
||||
version = config.version + "-" + config.aechannel + "-" + config.build
|
||||
group = config.group
|
||||
archivesBaseName = config.archivesBaseName
|
||||
version = aeversion + "-" + aechannel + "-" + aebuild
|
||||
group = aegroup
|
||||
archivesBaseName = aebasename
|
||||
|
||||
// If TeamCity is running this build, lets set the version info
|
||||
if (hasProperty("teamcity")) {
|
||||
@@ -77,11 +79,11 @@ jar {
|
||||
}
|
||||
|
||||
minecraft {
|
||||
version = config.minecraft_version + "-" + config.forge_version
|
||||
version = minecraft_version + "-" + forge_version
|
||||
|
||||
replaceIn "AEConfig.java"
|
||||
replace "@version@", project.version
|
||||
replace "@aechannel@", config.aechannel
|
||||
replace "@aechannel@", aechannel
|
||||
|
||||
// used when launching minecraft in dev env
|
||||
runDir = "run"
|
||||
@@ -110,6 +112,7 @@ processResources {
|
||||
// replace stuff in mcmod.info, nothing else
|
||||
from(sourceSets.main.resources.srcDirs) {
|
||||
include 'mcmod.info'
|
||||
expand 'version': project.version, 'mcversion': config.minecraft_version
|
||||
expand 'version': project.version, 'mcversion': minecraft_version
|
||||
include 'pack.mcmeta'
|
||||
}
|
||||
}
|
||||
@@ -1,41 +0,0 @@
|
||||
version=rv2
|
||||
aechannel=beta
|
||||
build=0
|
||||
group=appeng
|
||||
archivesBaseName=appliedenergistics2
|
||||
|
||||
#########################################################
|
||||
# Versions #
|
||||
#########################################################
|
||||
minecraft_version=1.7.10
|
||||
forge_version=10.13.2.1291
|
||||
|
||||
#########################################################
|
||||
# APIs used for development #
|
||||
#########################################################
|
||||
cb_minecraft_version=1.7.10
|
||||
fmp_version=1.1.1.324
|
||||
code_chicken_lib_version=1.1.3.127
|
||||
code_chicken_core_version=1.0.4.35
|
||||
nei_version=1.0.4.90
|
||||
bc_version=6.4.3
|
||||
|
||||
#########################################################
|
||||
# API Stubs #
|
||||
# Note: Do not edit these version numbers as they are #
|
||||
# not the version of the mod, but stub code for AE2 to #
|
||||
# compile #
|
||||
#########################################################
|
||||
api_betterstorage_version=1
|
||||
api_coloredlightscore_version=1
|
||||
api_craftguide_version=1
|
||||
api_ic2_version=1
|
||||
api_immibis_version=1
|
||||
api_invtweaks_version=1
|
||||
api_mekansim_version=1.7.10-8.0.1.198
|
||||
api_mfr_version=1
|
||||
api_railcraft_version=1
|
||||
api_rblocks_version=1
|
||||
api_rf_version=2
|
||||
api_rotarycraft_version=V5c
|
||||
api_waila_version=1.5.10_1.7.10
|
||||
@@ -0,0 +1,57 @@
|
||||
aeversion=rv2
|
||||
aechannel=stable
|
||||
aebuild=0
|
||||
aegroup=appeng
|
||||
aebasename=appliedenergistics2
|
||||
|
||||
#########################################################
|
||||
# Versions #
|
||||
#########################################################
|
||||
minecraft_version=1.7.10
|
||||
forge_version=10.13.2.1291
|
||||
|
||||
#########################################################
|
||||
# Installable #
|
||||
#########################################################
|
||||
waila_version=1.5.10
|
||||
jabba_version=1.2.1a
|
||||
enderstorage_version=1.4.7.33
|
||||
translocator_version=1.1.1.14
|
||||
ic2_version=2.2.717
|
||||
enderio_version=2.3.0.375_beta
|
||||
#cofhlib_version=1.0.1-157
|
||||
#cofhcore_version=3.0.2-270
|
||||
#texpansion_version=4.0.0-176
|
||||
#tfoundation_version=1.0.0-82
|
||||
betterstorage_version=0.11.3.123.20
|
||||
invtweaks_version=1.58
|
||||
|
||||
#########################################################
|
||||
# Provided APIs #
|
||||
#########################################################
|
||||
fmp_version=1.1.1.324
|
||||
code_chicken_lib_version=1.1.3.127
|
||||
code_chicken_core_version=1.0.4.35
|
||||
nei_version=1.0.4.90
|
||||
bc_version=6.4.6
|
||||
|
||||
#########################################################
|
||||
# Self Compiled APIs #
|
||||
#########################################################
|
||||
mekansim_version=8.0.1.198
|
||||
rotarycraft_version=V6e
|
||||
|
||||
|
||||
#########################################################
|
||||
# Self Compiled API Stubs #
|
||||
# Note: Do not edit these version numbers as they are #
|
||||
# not the version of the mod, but stub code for AE2 to #
|
||||
# compile #
|
||||
#########################################################
|
||||
api_coloredlightscore_version=1
|
||||
api_craftguide_version=1
|
||||
api_immibis_version=1
|
||||
api_mfr_version=1
|
||||
api_railcraft_version=1
|
||||
api_rblocks_version=1
|
||||
api_rf_version=2
|
||||
@@ -27,13 +27,13 @@ task devJar(type: Jar) {
|
||||
}
|
||||
|
||||
task apiJar(type: Jar) {
|
||||
from sourceSets.api.java
|
||||
include "appeng/api/**"
|
||||
|
||||
from(sourceSets.api.java) {
|
||||
include "appeng/api/**"
|
||||
}
|
||||
from sourceSets.main.output
|
||||
include "appeng/api/**"
|
||||
|
||||
classifier = 'api'
|
||||
|
||||
}
|
||||
|
||||
artifacts {
|
||||
|
||||
@@ -19,14 +19,14 @@
|
||||
|
||||
|
||||
repositories {
|
||||
|
||||
mavenLocal()
|
||||
maven {
|
||||
name 'CB Maven FS'
|
||||
name "ChickenBones"
|
||||
url "http://chickenbones.net/maven/"
|
||||
}
|
||||
|
||||
maven {
|
||||
name "Waila Mobius Repo"
|
||||
name "Mobius"
|
||||
url "http://mobiusstrip.eu/maven"
|
||||
}
|
||||
|
||||
@@ -34,31 +34,86 @@ repositories {
|
||||
name "FireBall API Depot"
|
||||
url "http://dl.tsr.me/artifactory/libs-release-local"
|
||||
}
|
||||
|
||||
maven {
|
||||
name = "Player"
|
||||
url = "http://maven.ic2.player.to/"
|
||||
}
|
||||
|
||||
maven {
|
||||
name = "Tterrag"
|
||||
url = "http://maven.tterrag.com/"
|
||||
}
|
||||
|
||||
maven {
|
||||
name = "RX14 Proxy"
|
||||
url = "http://mvn.rx14.co.uk/repo/"
|
||||
}
|
||||
// CurseForge DNS for TE is not available or I am just being unlucky, code part can stay since this is applicable to any other curseforge mod though
|
||||
// ivy {
|
||||
// name = "CoFHLib"
|
||||
// artifactPattern "http://addons.cursecdn.com/files/2212/893/[module]-[revision].[ext]"
|
||||
// }
|
||||
//
|
||||
// ivy {
|
||||
// name = "CoFHCore"
|
||||
// artifactPattern "http://addons.cursecdn.com/files/2212/895/[module]-[revision].[ext]"
|
||||
// }
|
||||
|
||||
// ivy {
|
||||
// name = "ThermalExpansion"
|
||||
// artifactPattern "http://addons.curse.cursecdn.com/files/2212/446/[module]-[revision].[ext]"
|
||||
// }
|
||||
|
||||
// ivy {
|
||||
// name = "ThermalFoundation"
|
||||
// artifactPattern "http://addons.curse.cursecdn.com/files/2212/444/[module]-[revision].[ext]"
|
||||
// }
|
||||
}
|
||||
|
||||
configurations {
|
||||
mods
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// installable
|
||||
mods "mcp.mobius.waila:Waila:${waila_version}_${minecraft_version}:dev"
|
||||
mods "mcp.mobius.jabba:Jabba:${jabba_version}_${minecraft_version}:dev"
|
||||
mods "codechicken:EnderStorage:${minecraft_version}-${enderstorage_version}:dev"
|
||||
mods "codechicken:Translocator:${minecraft_version}-${translocator_version}:dev"
|
||||
mods "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:dev"
|
||||
mods "com.enderio:EnderIO:${minecraft_version}-${enderio_version}:dev"
|
||||
mods "net.mcft.copy.betterstorage:BetterStorage:${minecraft_version}-${betterstorage_version}:deobf"
|
||||
mods "inventorytweaks:InventoryTweaks:${invtweaks_version}:deobf"
|
||||
// mods name: 'CoFHLib', version: "[${minecraft_version}]${cofhlib_version}-dev", ext: 'jar'
|
||||
// mods name: 'CoFHCore', version: "[${minecraft_version}]${cofhcore_version}-dev", ext: 'jar'
|
||||
// mods name: 'ThermalExpansion', version: "[${minecraft_version}]${texpansion_version}-dev", ext: 'jar'
|
||||
// mods name: 'ThermalFoundation', version: "[${minecraft_version}]${tfoundation_version}-dev", ext: 'jar'
|
||||
|
||||
compile "codechicken:ForgeMultipart:${config.cb_minecraft_version}-${config.fmp_version}:dev"
|
||||
compile "codechicken:CodeChickenLib:${config.cb_minecraft_version}-${config.code_chicken_lib_version}:dev"
|
||||
compile "codechicken:CodeChickenCore:${config.cb_minecraft_version}-${config.code_chicken_core_version}:dev"
|
||||
compile "codechicken:NotEnoughItems:${config.cb_minecraft_version}-${config.nei_version}:dev"
|
||||
compile "codechicken:ForgeMultipart:${minecraft_version}-${fmp_version}:dev"
|
||||
compile "codechicken:CodeChickenLib:${minecraft_version}-${code_chicken_lib_version}:dev"
|
||||
compile "codechicken:CodeChickenCore:${minecraft_version}-${code_chicken_core_version}:dev"
|
||||
compile "codechicken:NotEnoughItems:${minecraft_version}-${nei_version}:dev"
|
||||
compile "com.mod-buildcraft:buildcraft:${bc_version}:dev"
|
||||
|
||||
compile "com.mod-buildcraft:buildcraft:${config.bc_version}:dev"
|
||||
// provided APIs
|
||||
compile "net.industrial-craft:industrialcraft-2:${ic2_version}-experimental:api"
|
||||
compile "net.mcft.copy.betterstorage:BetterStorage:${minecraft_version}-${betterstorage_version}:api"
|
||||
|
||||
// self compiled APIs
|
||||
compile(group: 'api', name: 'betterstorage', version: "${config.api_betterstorage_version}")
|
||||
compile(group: 'api', name: 'coloredlightscore', version: "${config.api_coloredlightscore_version}")
|
||||
compile(group: 'api', name: 'craftguide', version: "${config.api_craftguide_version}")
|
||||
compile(group: 'api', name: 'ic2', version: "${config.api_ic2_version}")
|
||||
compile(group: 'api', name: 'immibis', version: "${config.api_immibis_version}")
|
||||
compile(group: 'api', name: 'invtweaks', version: "${config.api_invtweaks_version}")
|
||||
compile(group: 'api', name: 'mekanism', version: "${config.api_mekansim_version}", classifier: 'api')
|
||||
compile(group: 'api', name: 'mfr', version: "${config.api_mfr_version}")
|
||||
compile(group: 'api', name: 'railcraft', version: "${config.api_railcraft_version}")
|
||||
compile(group: 'api', name: 'rblocks', version: "${config.api_rblocks_version}")
|
||||
compile(group: 'api', name: 'rf', version: "${config.api_rf_version}")
|
||||
compile "appeng:Waila:${config.api_waila_version}:api"
|
||||
compile "appeng:RotaryCraft:${config.api_rotarycraft_version}:api"
|
||||
compile "appeng:Waila:${waila_version}_${minecraft_version}:api"
|
||||
compile "appeng:RotaryCraft:${rotarycraft_version}:api"
|
||||
compile "appeng:mekanism:${minecraft_version}-${mekansim_version}:api"
|
||||
compile "appeng:InventoryTweaks:${invtweaks_version}:api"
|
||||
|
||||
// self compiled stubs
|
||||
compile(group: 'api', name: 'coloredlightscore', version: "${api_coloredlightscore_version}")
|
||||
compile(group: 'api', name: 'craftguide', version: "${api_craftguide_version}")
|
||||
compile(group: 'api', name: 'immibis', version: "${api_immibis_version}")
|
||||
compile(group: 'api', name: 'mfr', version: "${api_mfr_version}")
|
||||
compile(group: 'api', name: 'railcraft', version: "${api_railcraft_version}")
|
||||
compile(group: 'api', name: 'rblocks', version: "${api_rblocks_version}")
|
||||
compile(group: 'api', name: 'rf', version: "${api_rf_version}")
|
||||
|
||||
testCompile "junit:junit:4.11"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
apply plugin: 'idea'
|
||||
|
||||
idea {
|
||||
module {
|
||||
inheritOutputDirs = true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
task wrapper(type: Wrapper) {
|
||||
gradleVersion = "2.3"
|
||||
}
|
||||
|
||||
// WAILA
|
||||
task installWaila(type: Copy, dependsOn: "deinstallWaila") {
|
||||
from { configurations.mods }
|
||||
include "**/*Waila*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallWaila(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Waila*.jar")
|
||||
}
|
||||
|
||||
// JABBA
|
||||
task installJabba(type: Copy, dependsOn: "deinstallJabba") {
|
||||
from { configurations.mods }
|
||||
include "**/*Jabba*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallJabba(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Jabba*.jar")
|
||||
}
|
||||
|
||||
// ENDER STORAGE
|
||||
task installEnderStorage(type: Copy, dependsOn: "deinstallEnderStorage") {
|
||||
from { configurations.mods }
|
||||
include "**/*EnderStorage*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallEnderStorage(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*EnderStorage*.jar")
|
||||
}
|
||||
|
||||
// TRANSLOCATOR
|
||||
task installTranslocator(type: Copy, dependsOn: "deinstallTranslocator") {
|
||||
from { configurations.mods }
|
||||
include "**/*Translocator*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallTranslocator(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*Translocator*.jar")
|
||||
}
|
||||
|
||||
// INDUSTRIALCRAFT
|
||||
task installIC2(type: Copy, dependsOn: "deinstallIC2") {
|
||||
from { configurations.mods }
|
||||
include "**/*industrialcraft*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallIC2(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*industrialcraft*.jar")
|
||||
}
|
||||
|
||||
// ENDER IO
|
||||
task installEnderIO(type: Copy, dependsOn: "deinstallEnderIO") {
|
||||
from { configurations.mods }
|
||||
include "**/*EnderIO*dev.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallEnderIO(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*EnderIO*.jar")
|
||||
}
|
||||
|
||||
// TE
|
||||
//task installTE(type: Copy, dependsOn: "deinstallTE") {
|
||||
// from { configurations.mods }
|
||||
// include "**/*CoFHLib*.jar"
|
||||
// include "**/*CoFHCore*.jar"
|
||||
// include "**/*ThermalFoundation*.jar"
|
||||
// include "**/*ThermalExpansion*.jar"
|
||||
//
|
||||
// into file(minecraft.runDir + "/mods")
|
||||
//}
|
||||
//
|
||||
//task deinstallTE(type: Delete) {
|
||||
// delete fileTree(dir: minecraft.runDir + "/mods", includes: ["*CoFHLib*.jar", "*CoFHCore*.jar", "*ThermalFoundation*.jar", "*ThermalExpansion*.jar"])
|
||||
//}
|
||||
|
||||
// INV TWEAKS
|
||||
task installInvTweaks(type: Copy, dependsOn: "deinstallInvTweaks") {
|
||||
from { configurations.mods }
|
||||
include "**/*InventoryTweaks*dev*.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallInvTweaks(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*InventoryTweaks*.jar")
|
||||
}
|
||||
|
||||
// BETTER STORAGE
|
||||
task installBetterStorage(type: Copy, dependsOn: "deinstallBetterStorage") {
|
||||
from { configurations.mods }
|
||||
include "**/*BetterStorage*deobf*.jar"
|
||||
into file(minecraft.runDir + "/mods")
|
||||
}
|
||||
|
||||
task deinstallBetterStorage(type: Delete) {
|
||||
delete fileTree(dir: minecraft.runDir + "/mods", include: "*BetterStorage*.jar")
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
// define the properties file
|
||||
ext.configFile = file "build.properties"
|
||||
|
||||
configFile.withReader {
|
||||
// read config. it shall from now on be referenced as simply config or as project.config
|
||||
def prop = new Properties()
|
||||
prop.load(it)
|
||||
project.ext.config = new ConfigSlurper().parse prop
|
||||
}
|
||||
Vendored
BIN
Binary file not shown.
+2
-2
@@ -1,6 +1,6 @@
|
||||
#Sat Sep 13 21:58:22 CEST 2014
|
||||
#Sat May 02 19:28:20 CEST 2015
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.1-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-2.3-bin.zip
|
||||
|
||||
@@ -24,7 +24,9 @@
|
||||
package appeng.api;
|
||||
|
||||
|
||||
import appeng.api.exceptions.CouldNotAccessCoreAPI;
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import appeng.api.exceptions.CoreInaccessibleException;
|
||||
|
||||
|
||||
/**
|
||||
@@ -35,34 +37,42 @@ import appeng.api.exceptions.CouldNotAccessCoreAPI;
|
||||
public enum AEApi
|
||||
{
|
||||
;
|
||||
private static final String CORE_API_PATH = "appeng.core.Api";
|
||||
private static final String API_INSTANCE_NAME = "INSTANCE";
|
||||
|
||||
private static IAppEngApi instance = null;
|
||||
private static final String CORE_API_FQN = "appeng.core.Api";
|
||||
private static final String CORE_API_FIELD = "INSTANCE";
|
||||
private static final IAppEngApi HELD_API;
|
||||
|
||||
static
|
||||
{
|
||||
try
|
||||
{
|
||||
final Class<?> apiClass = Class.forName( CORE_API_FQN );
|
||||
final Field apiField = apiClass.getField( CORE_API_FIELD );
|
||||
|
||||
HELD_API = (IAppEngApi) apiField.get( apiClass );
|
||||
}
|
||||
catch( ClassNotFoundException e )
|
||||
{
|
||||
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FQN + " class, without it being declared." );
|
||||
}
|
||||
catch( 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 )
|
||||
{
|
||||
throw new CoreInaccessibleException( "AE2 API tried to access the " + CORE_API_FIELD + " field in " + CORE_API_FQN + " without enough access permissions." );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* API Entry Point.
|
||||
*
|
||||
* @return the {@link IAppEngApi}
|
||||
*
|
||||
* @throws CouldNotAccessCoreAPI if the INSTANCE could not be retrieved
|
||||
*/
|
||||
public static IAppEngApi instance()
|
||||
|
||||
{
|
||||
if ( instance == null )
|
||||
{
|
||||
try
|
||||
{
|
||||
Class<?> c = Class.forName( CORE_API_PATH );
|
||||
instance = (IAppEngApi) c.getField( API_INSTANCE_NAME ).get( c );
|
||||
}
|
||||
catch ( Throwable e )
|
||||
{
|
||||
throw new CouldNotAccessCoreAPI( "Either core API was not in " + CORE_API_PATH + " or " + API_INSTANCE_NAME + " was not accessible" );
|
||||
}
|
||||
}
|
||||
|
||||
return instance;
|
||||
return HELD_API;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,7 +30,8 @@ public enum AccessRestriction
|
||||
|
||||
private final int permissionBit;
|
||||
|
||||
AccessRestriction( int v ) {
|
||||
AccessRestriction( int v )
|
||||
{
|
||||
this.permissionBit = v;
|
||||
}
|
||||
|
||||
@@ -44,19 +45,9 @@ public enum AccessRestriction
|
||||
return this.getPermByBit( this.permissionBit & ar.permissionBit );
|
||||
}
|
||||
|
||||
public AccessRestriction addPermissions( AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit | ar.permissionBit );
|
||||
}
|
||||
|
||||
public AccessRestriction removePermissions( AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit & ( ~ar.permissionBit ) );
|
||||
}
|
||||
|
||||
private AccessRestriction getPermByBit( int bit )
|
||||
{
|
||||
switch ( bit )
|
||||
switch( bit )
|
||||
{
|
||||
default:
|
||||
case 0:
|
||||
@@ -69,4 +60,14 @@ public enum AccessRestriction
|
||||
return READ_WRITE;
|
||||
}
|
||||
}
|
||||
|
||||
public AccessRestriction addPermissions( AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit | ar.permissionBit );
|
||||
}
|
||||
|
||||
public AccessRestriction removePermissions( AccessRestriction ar )
|
||||
{
|
||||
return this.getPermByBit( this.permissionBit & ( ~ar.permissionBit ) );
|
||||
}
|
||||
}
|
||||
@@ -29,10 +29,11 @@ public enum FuzzyMode
|
||||
// Note that percentage damaged, is the inverse of percentage durability.
|
||||
IGNORE_ALL( -1 ), PERCENT_99( 0 ), PERCENT_75( 25 ), PERCENT_50( 50 ), PERCENT_25( 75 );
|
||||
|
||||
final public float breakPoint;
|
||||
final public float percentage;
|
||||
public final float breakPoint;
|
||||
public final float percentage;
|
||||
|
||||
FuzzyMode( float p ) {
|
||||
FuzzyMode( float p )
|
||||
{
|
||||
this.percentage = p;
|
||||
this.breakPoint = p / 100.0f;
|
||||
}
|
||||
|
||||
@@ -32,19 +32,19 @@ public enum PowerUnits
|
||||
RF( "gui.appliedenergistics2.units.thermalexpansion" ), // ThermalExpansion - Redstone Flux
|
||||
MK( "gui.appliedenergistics2.units.mekanism" ); // Mekanism - Joules
|
||||
|
||||
PowerUnits( String un ) {
|
||||
this.unlocalizedName = un;
|
||||
}
|
||||
|
||||
/**
|
||||
* unlocalized name for the power unit.
|
||||
*/
|
||||
public final String unlocalizedName;
|
||||
/**
|
||||
* please do not edit this value, it is set when AE loads its config files.
|
||||
*/
|
||||
public double conversionRatio = 1.0;
|
||||
|
||||
/**
|
||||
* unlocalized name for the power unit.
|
||||
*/
|
||||
final public String unlocalizedName;
|
||||
PowerUnits( String un )
|
||||
{
|
||||
this.unlocalizedName = un;
|
||||
}
|
||||
|
||||
/**
|
||||
* do power conversion using AE's conversion rates.
|
||||
|
||||
@@ -57,7 +57,7 @@ public enum SecurityPermissions
|
||||
*/
|
||||
SECURITY;
|
||||
|
||||
final private String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
|
||||
private final String unlocalizedName = "gui.appliedenergistics2.security." + this.name().toLowerCase();
|
||||
|
||||
public String getUnlocalizedName()
|
||||
{
|
||||
|
||||
@@ -25,6 +25,7 @@ package appeng.api.config;
|
||||
|
||||
|
||||
import java.util.EnumSet;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
|
||||
public enum Settings
|
||||
@@ -55,18 +56,21 @@ public enum Settings
|
||||
|
||||
STORAGE_FILTER( EnumSet.allOf( StorageFilter.class ) ), PLACE_BLOCK( EnumSet.of( YesNo.YES, YesNo.NO ) );
|
||||
|
||||
private final EnumSet values;
|
||||
private final EnumSet<? extends Enum<?>> values;
|
||||
|
||||
public EnumSet getPossibleValues()
|
||||
Settings( @Nonnull EnumSet<? extends Enum<?>> possibleOptions )
|
||||
{
|
||||
if ( possibleOptions.isEmpty() )
|
||||
{
|
||||
throw new IllegalArgumentException( "Tried to instantiate an empty setting." );
|
||||
}
|
||||
|
||||
this.values = possibleOptions;
|
||||
}
|
||||
|
||||
public EnumSet<? extends Enum<?>> getPossibleValues()
|
||||
{
|
||||
return this.values;
|
||||
}
|
||||
|
||||
Settings( EnumSet set )
|
||||
{
|
||||
if ( set == null || set.isEmpty() )
|
||||
throw new RuntimeException( "Invalid configuration." );
|
||||
this.values = set;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -75,13 +75,13 @@ public enum Upgrades
|
||||
/**
|
||||
* Registers a specific amount of this upgrade into a specific machine
|
||||
*
|
||||
* @param item machine in which this upgrade can be installed
|
||||
* @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 )
|
||||
{
|
||||
final Optional<ItemStack> maybeStack = item.maybeStack( 1 );
|
||||
for ( ItemStack stack : maybeStack.asSet() )
|
||||
for( ItemStack stack : maybeStack.asSet() )
|
||||
{
|
||||
this.registerItem( stack, maxSupported );
|
||||
}
|
||||
@@ -90,7 +90,21 @@ public enum Upgrades
|
||||
/**
|
||||
* Registers a specific amount of this upgrade into a specific machine
|
||||
*
|
||||
* @param item machine in which this upgrade can be installed
|
||||
* @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 )
|
||||
{
|
||||
if( stack != null )
|
||||
{
|
||||
this.supportedMax.put( stack, maxSupported );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a specific amount of this upgrade into a specific machine
|
||||
*
|
||||
* @param item machine in which this upgrade can be installed
|
||||
* @param maxSupported amount how many upgrades can be installed
|
||||
*
|
||||
* @deprecated use {@link Upgrades#registerItem(IItemDefinition, int)}
|
||||
@@ -98,31 +112,17 @@ public enum Upgrades
|
||||
@Deprecated
|
||||
public void registerItem( AEItemDefinition item, int maxSupported )
|
||||
{
|
||||
if ( item != null )
|
||||
if( item != null )
|
||||
{
|
||||
final ItemStack stack = item.stack( 1 );
|
||||
|
||||
if ( stack != null )
|
||||
if( stack != null )
|
||||
{
|
||||
this.registerItem( stack, maxSupported );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers a specific amount of this upgrade into a specific machine
|
||||
*
|
||||
* @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 )
|
||||
{
|
||||
if ( stack != null )
|
||||
{
|
||||
this.supportedMax.put( stack, maxSupported );
|
||||
}
|
||||
}
|
||||
|
||||
public int getTier()
|
||||
{
|
||||
return this.tier;
|
||||
|
||||
@@ -3,6 +3,7 @@ package appeng.api.definitions;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.item.ItemBlock;
|
||||
import net.minecraft.world.IBlockAccess;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
@@ -18,4 +19,16 @@ public interface IBlockDefinition extends IItemDefinition
|
||||
* @return the {@link ItemBlock} implementation if applicable
|
||||
*/
|
||||
Optional<ItemBlock> maybeItemBlock();
|
||||
|
||||
/**
|
||||
* Compare Block with world.
|
||||
*
|
||||
* @param world world of block
|
||||
* @param x x pos of block
|
||||
* @param y y pos of block
|
||||
* @param z z pos of block
|
||||
*
|
||||
* @return if the block is placed in the world at the specific location.
|
||||
*/
|
||||
boolean isSameAs( IBlockAccess world, int x, int y, int z );
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
* 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;
|
||||
|
||||
|
||||
|
||||
@@ -7,6 +7,10 @@ import net.minecraft.world.IBlockAccess;
|
||||
|
||||
/**
|
||||
* Interface to compare a definition with an itemstack or a block
|
||||
*
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @since rv2
|
||||
*/
|
||||
public interface IComparableDefinition
|
||||
{
|
||||
@@ -14,6 +18,7 @@ public interface IComparableDefinition
|
||||
* Compare {@link ItemStack} with this
|
||||
*
|
||||
* @param comparableStack compared item
|
||||
*
|
||||
* @return true if the item stack is a matching item.
|
||||
*/
|
||||
boolean isSameAs( ItemStack comparableStack );
|
||||
@@ -22,11 +27,14 @@ public interface IComparableDefinition
|
||||
* Compare Block with world.
|
||||
*
|
||||
* @param world world of block
|
||||
* @param x x pos of block
|
||||
* @param y y pos of block
|
||||
* @param z z pos of block
|
||||
* @param x x pos of block
|
||||
* @param y y pos of block
|
||||
* @param z z pos of block
|
||||
*
|
||||
* @return if the block is placed in the world at the specific location.
|
||||
*
|
||||
* @deprecated moved to {@link IBlockDefinition}. Is removed in the next major release rv3
|
||||
*/
|
||||
@Deprecated
|
||||
boolean isSameAs( IBlockAccess world, int x, int y, int z );
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
* 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;
|
||||
|
||||
|
||||
|
||||
@@ -17,5 +17,5 @@ public interface IItemDefinition extends IComparableDefinition
|
||||
/**
|
||||
* @return an {@link ItemStack} with specified quantity of this item.
|
||||
*/
|
||||
Optional<ItemStack> maybeStack(int stackSize);
|
||||
Optional<ItemStack> maybeStack( int stackSize );
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
* 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;
|
||||
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
* 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;
|
||||
|
||||
|
||||
|
||||
@@ -31,25 +31,24 @@ import appeng.api.features.ILocatable;
|
||||
|
||||
/**
|
||||
* Input Event:
|
||||
*
|
||||
*
|
||||
* Used to Notify the Location Registry of objects, and their availability.
|
||||
*/
|
||||
public class LocatableEventAnnounce extends Event
|
||||
{
|
||||
|
||||
public enum LocatableEvent
|
||||
{
|
||||
Register, // Adds the locatable to the registry
|
||||
Unregister // Removes the locatable from the registry
|
||||
}
|
||||
|
||||
|
||||
final public ILocatable target;
|
||||
final public LocatableEvent change;
|
||||
public final ILocatable target;
|
||||
public final LocatableEvent change;
|
||||
|
||||
public LocatableEventAnnounce( ILocatable o, LocatableEvent ev )
|
||||
{
|
||||
this.target = o;
|
||||
this.change = ev;
|
||||
}
|
||||
|
||||
public enum LocatableEvent
|
||||
{
|
||||
Register, // Adds the locatable to the registry
|
||||
Unregister // Removes the locatable from the registry
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
public class CoreInaccessibleException extends RuntimeException
|
||||
{
|
||||
public CoreInaccessibleException( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
package appeng.api.exceptions;
|
||||
|
||||
|
||||
public class CouldNotAccessCoreAPI extends RuntimeException
|
||||
{
|
||||
public CouldNotAccessCoreAPI( String message )
|
||||
{
|
||||
super( message );
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,13 @@ public interface IGrinderEntry
|
||||
*/
|
||||
ItemStack getOutput();
|
||||
|
||||
/**
|
||||
* allows you to change the output.
|
||||
*
|
||||
* @param output output item
|
||||
*/
|
||||
void setOutput( ItemStack output );
|
||||
|
||||
/**
|
||||
* gets the current output
|
||||
*
|
||||
@@ -68,13 +75,6 @@ public interface IGrinderEntry
|
||||
*/
|
||||
ItemStack getSecondOptionalOutput();
|
||||
|
||||
/**
|
||||
* allows you to change the output.
|
||||
*
|
||||
* @param output output item
|
||||
*/
|
||||
void setOutput( ItemStack output );
|
||||
|
||||
/**
|
||||
* stack, and 0.0-1.0 chance that it will be generated.
|
||||
*
|
||||
|
||||
@@ -45,8 +45,8 @@ public interface IGrinderRegistry
|
||||
/**
|
||||
* add a new recipe the easy way, in → out, how many turns., duplicates will not be added.
|
||||
*
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param turns amount of turns to turn the input into the output
|
||||
*/
|
||||
void addRecipe( ItemStack in, ItemStack out, int turns );
|
||||
@@ -54,8 +54,8 @@ public interface IGrinderRegistry
|
||||
/**
|
||||
* add a new recipe with optional outputs, duplicates will not be added.
|
||||
*
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param optional optional output
|
||||
* @param chance chance to get the optional output within 0.0 - 1.0
|
||||
* @param turns amount of turns to turn the input into the outputs
|
||||
@@ -64,11 +64,11 @@ public interface IGrinderRegistry
|
||||
|
||||
/**
|
||||
* add a new recipe with optional outputs, duplicates will not be added.
|
||||
*
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param optional optional output
|
||||
* @param chance chance to get the optional output within 0.0 - 1.0
|
||||
*
|
||||
* @param in input
|
||||
* @param out output
|
||||
* @param optional optional output
|
||||
* @param chance chance to get the optional output within 0.0 - 1.0
|
||||
* @param optional2 second optional output
|
||||
* @param chance2 chance to get the second optional output within 0.0 - 1.0
|
||||
* @param turns amount of turns to turn the input into the outputs
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
import com.google.common.base.Optional;
|
||||
|
||||
|
||||
/**
|
||||
* Registration Records for {@link IInscriberRegistry}
|
||||
*
|
||||
* You have to pay attention though, that recipes are not mirrored,
|
||||
* where the top and bottom slots are switching places.
|
||||
*
|
||||
* This is applied on runtime.
|
||||
*
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @since rv2
|
||||
*/
|
||||
public interface IInscriberRecipe
|
||||
{
|
||||
/**
|
||||
* the current inputs
|
||||
*
|
||||
* @return inputs the inscriber will accept
|
||||
*/
|
||||
@Nonnull
|
||||
List<ItemStack> getInputs();
|
||||
|
||||
/**
|
||||
* gets the current output
|
||||
*
|
||||
* @return output that the recipe will produce
|
||||
*/
|
||||
@Nonnull
|
||||
ItemStack getOutput();
|
||||
|
||||
/**
|
||||
* gets the top optional
|
||||
*
|
||||
* @return item which is used top
|
||||
*/
|
||||
@Nonnull
|
||||
Optional<ItemStack> getTopOptional();
|
||||
|
||||
/**
|
||||
* gets the bottom optional
|
||||
*
|
||||
* @return item which is used bottom
|
||||
*/
|
||||
@Nonnull
|
||||
Optional<ItemStack> getBottomOptional();
|
||||
|
||||
/**
|
||||
* type of inscriber process
|
||||
*
|
||||
* @return type of process the inscriber is doing
|
||||
*/
|
||||
@Nonnull
|
||||
InscriberProcessType getProcessType();
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import java.util.Collection;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
||||
/**
|
||||
* Builder for an inscriber recipe
|
||||
*
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @since rv2
|
||||
*/
|
||||
public interface IInscriberRecipeBuilder
|
||||
{
|
||||
/**
|
||||
* Creates an inscriber recipe with inputs.
|
||||
* Needs to be invoked.
|
||||
*
|
||||
* @param inputs new inputs for the recipe
|
||||
*
|
||||
* @return currently used builder
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder withInputs( @Nonnull Collection<ItemStack> inputs );
|
||||
|
||||
/**
|
||||
* Creates an inscriber recipe with output.
|
||||
* Needs to be invoked.
|
||||
*
|
||||
* @param output new output for the recipe
|
||||
*
|
||||
* @return currently used builder
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder withOutput( @Nonnull ItemStack output );
|
||||
|
||||
/**
|
||||
* Creates an inscriber recipe with top.
|
||||
* Either this or bot needs to be invoked.
|
||||
*
|
||||
* @param topOptional new top for the recipe
|
||||
*
|
||||
* @return currently used builder
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder withTopOptional( @Nonnull ItemStack topOptional );
|
||||
|
||||
/**
|
||||
* Creates an inscriber recipe with bot.
|
||||
* Either this or top needs to be invoked.
|
||||
*
|
||||
* @param bottomOptional new bot for the recipe
|
||||
*
|
||||
* @return currently used builder
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder withBottomOptional( @Nonnull ItemStack bottomOptional );
|
||||
|
||||
/**
|
||||
* Creates an inscriber recipe with type.
|
||||
* Needs to be invoked.
|
||||
*
|
||||
* @param type new type for the recipe
|
||||
*
|
||||
* @return currently used builder
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder withProcessType( @Nonnull InscriberProcessType type );
|
||||
|
||||
/**
|
||||
* Finalizes the process of making the recipe.
|
||||
* Needs to be invoked to fetch inscriber recipe.
|
||||
*
|
||||
* @return legal inscriber recipe
|
||||
*
|
||||
* @throws IllegalStateException when input is not defined
|
||||
* @throws IllegalStateException when input has no size
|
||||
* @throws IllegalStateException when output is not defined
|
||||
* @throws IllegalStateException when both optionals are not defined
|
||||
* @throws IllegalStateException when process type is not defined
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipe build();
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import javax.annotation.Nonnull;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
||||
/**
|
||||
* Lets you manipulate Inscriber Recipes, by adding or editing existing ones.
|
||||
*
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @since rv2
|
||||
*/
|
||||
public interface IInscriberRegistry
|
||||
{
|
||||
/**
|
||||
* Current list of registered recipes, you can modify this if you want too.
|
||||
* Will never contain a null recipe
|
||||
*
|
||||
* @return currentlyRegisteredRecipes
|
||||
*/
|
||||
@Nonnull
|
||||
List<IInscriberRecipe> getRecipes();
|
||||
|
||||
/**
|
||||
* Optional items which are used in the top or bottom slot
|
||||
*
|
||||
* @return set of all optional items
|
||||
*/
|
||||
@Nonnull
|
||||
Set<ItemStack> getOptionals();
|
||||
|
||||
/**
|
||||
* Get all registered items which are valid inputs
|
||||
*
|
||||
* @return set of all input items
|
||||
*/
|
||||
@Nonnull
|
||||
Set<ItemStack> getInputs();
|
||||
|
||||
/**
|
||||
* Extensible way to create an inscriber recipe
|
||||
*
|
||||
* @return builder for inscriber recipes
|
||||
*/
|
||||
@Nonnull
|
||||
IInscriberRecipeBuilder builder();
|
||||
|
||||
/**
|
||||
* add a new recipe the easy way, duplicates will not be added.
|
||||
* Added recipes will be automatically added to the optionals and inputs.
|
||||
*
|
||||
* @param recipe new recipe
|
||||
*
|
||||
* @throws IllegalArgumentException if null is added
|
||||
*/
|
||||
void addRecipe( IInscriberRecipe recipe );
|
||||
|
||||
/**
|
||||
* Removes a recipe from the registry
|
||||
*
|
||||
* @param toBeRemovedRecipe to be removed recipe, can be null, makes just no sense
|
||||
*/
|
||||
void removeRecipe( IInscriberRecipe toBeRemovedRecipe );
|
||||
}
|
||||
@@ -32,8 +32,8 @@ public interface IMatterCannonAmmoRegistry
|
||||
|
||||
/**
|
||||
* register a new ammo, generally speaking this is based off of atomic weight to make it easier to guess at
|
||||
*
|
||||
* @param ammo new ammo
|
||||
*
|
||||
* @param ammo new ammo
|
||||
* @param weight atomic weight
|
||||
*/
|
||||
void registerAmmo( ItemStack ammo, double weight );
|
||||
|
||||
@@ -41,13 +41,10 @@ public interface INetworkEncodable
|
||||
|
||||
/**
|
||||
* Encode the wireless frequency via the Controller.
|
||||
*
|
||||
* @param item
|
||||
* the wireless terminal.
|
||||
* @param encKey
|
||||
* the wireless encryption key.
|
||||
* @param name
|
||||
* null for now.
|
||||
*
|
||||
* @param item the wireless terminal.
|
||||
* @param encKey the wireless encryption key.
|
||||
* @param name null for now.
|
||||
*/
|
||||
void setEncryptionKey( ItemStack item, String encKey, String name );
|
||||
}
|
||||
|
||||
@@ -38,11 +38,9 @@ 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
|
||||
* @param type - the type of tunnel
|
||||
*/
|
||||
void addNewAttunement( ItemStack trigger, TunnelType type );
|
||||
|
||||
|
||||
@@ -34,17 +34,17 @@ public interface IRecipeHandlerRegistry
|
||||
|
||||
/**
|
||||
* Add a new Recipe Handler to the parser.
|
||||
*
|
||||
*
|
||||
* 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 );
|
||||
|
||||
/**
|
||||
* Add a new resolver to the parser.
|
||||
*
|
||||
*
|
||||
* MUST BE CALLED IN PRE-INIT
|
||||
*
|
||||
* @param sir sub item resolver
|
||||
|
||||
@@ -30,6 +30,12 @@ import appeng.api.storage.ICellRegistry;
|
||||
import appeng.api.storage.IExternalStorageRegistry;
|
||||
|
||||
|
||||
/**
|
||||
* @author AlgorithmX2
|
||||
* @author thatsIch
|
||||
* @version rv2
|
||||
* @since rv0
|
||||
*/
|
||||
public interface IRegistryContainer
|
||||
{
|
||||
|
||||
@@ -69,6 +75,11 @@ public interface IRegistryContainer
|
||||
*/
|
||||
IGrinderRegistry grinder();
|
||||
|
||||
/**
|
||||
* Manage inscriber recipes via API
|
||||
*/
|
||||
IInscriberRegistry inscriber();
|
||||
|
||||
/**
|
||||
* get access to the locatable registry
|
||||
*/
|
||||
|
||||
@@ -45,11 +45,11 @@ public interface IWirelessTermHandler extends INetworkEncodable
|
||||
|
||||
/**
|
||||
* use an amount of power, in AE units
|
||||
*
|
||||
* @param amount
|
||||
* is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
|
||||
* hasPower
|
||||
* @param is wireless terminal
|
||||
*
|
||||
* @param amount is in AE units ( 5 per MJ ), if you return false, the item should be dead and return false for
|
||||
* hasPower
|
||||
* @param is wireless terminal
|
||||
*
|
||||
* @return true if wireless terminal uses power
|
||||
*/
|
||||
boolean usePower( EntityPlayer player, double amount, ItemStack is );
|
||||
|
||||
@@ -31,11 +31,6 @@ import net.minecraft.world.WorldProvider;
|
||||
public interface IWorldGen
|
||||
{
|
||||
|
||||
enum WorldGenType
|
||||
{
|
||||
CertusQuartz, ChargedCertusQuartz, Meteorites
|
||||
}
|
||||
|
||||
void disableWorldGenForProviderID( WorldGenType type, Class<? extends WorldProvider> provider );
|
||||
|
||||
void enableWorldGenForDimension( WorldGenType type, int dimID );
|
||||
@@ -43,4 +38,9 @@ public interface IWorldGen
|
||||
void disableWorldGenForDimension( WorldGenType type, int dimID );
|
||||
|
||||
boolean isWorldGenEnabled( WorldGenType type, World w );
|
||||
|
||||
enum WorldGenType
|
||||
{
|
||||
CertusQuartz, ChargedCertusQuartz, Meteorites
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
package appeng.api.features;
|
||||
|
||||
|
||||
public enum InscriberProcessType
|
||||
{
|
||||
/**
|
||||
* uses the optionals as catalyst
|
||||
*/
|
||||
Inscribe,
|
||||
|
||||
/**
|
||||
* spends the optionals
|
||||
*/
|
||||
Press
|
||||
}
|
||||
@@ -66,16 +66,16 @@ public interface IBiometricCard
|
||||
|
||||
/**
|
||||
* remove a permission from the item stack.
|
||||
*
|
||||
* @param itemStack card
|
||||
*
|
||||
* @param itemStack card
|
||||
* @param permission to be removed permission
|
||||
*/
|
||||
void removePermission( ItemStack itemStack, SecurityPermissions permission );
|
||||
|
||||
/**
|
||||
* add a permission to the item stack.
|
||||
*
|
||||
* @param itemStack card
|
||||
*
|
||||
* @param itemStack card
|
||||
* @param permission to be added permission
|
||||
*/
|
||||
void addPermission( ItemStack itemStack, SecurityPermissions permission );
|
||||
|
||||
@@ -31,7 +31,7 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
|
||||
/**
|
||||
* Memory Card API
|
||||
*
|
||||
*
|
||||
* AE's Memory Card Item Class implements this interface.
|
||||
*/
|
||||
public interface IMemoryCard
|
||||
@@ -40,14 +40,12 @@ public interface IMemoryCard
|
||||
/**
|
||||
* Configures the data stored on the memory card, the SettingsName, will be
|
||||
* localized when displayed.
|
||||
*
|
||||
* @param is item
|
||||
* @param SettingsName
|
||||
* unlocalized string that represents the tile entity.
|
||||
* @param data
|
||||
* may contain a String called "tooltip" which is is a
|
||||
* unlocalized string displayed after the settings name, optional
|
||||
* but can be used to add details to the card for later.
|
||||
*
|
||||
* @param is item
|
||||
* @param SettingsName unlocalized string that represents the tile entity.
|
||||
* @param data may contain a String called "tooltip" which is is a
|
||||
* unlocalized string displayed after the settings name, optional
|
||||
* but can be used to add details to the card for later.
|
||||
*/
|
||||
void setMemoryCardContents( ItemStack is, String SettingsName, NBTTagCompound data );
|
||||
|
||||
@@ -72,11 +70,9 @@ public interface IMemoryCard
|
||||
|
||||
/**
|
||||
* notify the user of a outcome related to the memory card.
|
||||
*
|
||||
* @param player
|
||||
* that used the card.
|
||||
* @param msg
|
||||
* which message to send.
|
||||
*
|
||||
* @param player that used the card.
|
||||
* @param msg which message to send.
|
||||
*/
|
||||
void notifyUser( EntityPlayer player, MemoryCardMessages msg );
|
||||
}
|
||||
|
||||
@@ -88,11 +88,11 @@ public interface ISpatialStorageCell
|
||||
|
||||
/**
|
||||
* Perform a spatial swap with the contents of the cell, and the world.
|
||||
*
|
||||
* @param is spatial storage cell
|
||||
* @param w world of spatial
|
||||
* @param min min coord
|
||||
* @param max max coord
|
||||
*
|
||||
* @param is spatial storage cell
|
||||
* @param w world of spatial
|
||||
* @param min min coord
|
||||
* @param max max coord
|
||||
* @param doTransition transition
|
||||
*
|
||||
* @return result of transition
|
||||
|
||||
@@ -34,10 +34,10 @@ import appeng.api.storage.data.IAEItemStack;
|
||||
* Any item which implements this can be treated as an IMEInventory via
|
||||
* Util.getCell / Util.isCell It automatically handles the internals and NBT
|
||||
* data, which is both nice, and bad for you!
|
||||
*
|
||||
*
|
||||
* Good cause it means you don't have to do anything, bad because you have
|
||||
* little to no control over it.
|
||||
*
|
||||
*
|
||||
* The standard AE implementation only provides 1-63 Types
|
||||
*/
|
||||
public interface IStorageCell extends ICellWorkbenchItem
|
||||
@@ -59,9 +59,21 @@ public interface IStorageCell extends ICellWorkbenchItem
|
||||
* @param cellItem item
|
||||
*
|
||||
* @return number of bytes
|
||||
*
|
||||
* @deprecated use {@link IStorageCell#getBytesPerType(ItemStack)}
|
||||
*/
|
||||
@Deprecated
|
||||
int BytePerType( ItemStack cellItem );
|
||||
|
||||
/**
|
||||
* Determines the number of bytes used for any type included on the cell.
|
||||
*
|
||||
* @param cellItem item
|
||||
*
|
||||
* @return number of bytes
|
||||
*/
|
||||
int getBytesPerType( ItemStack cellItem );
|
||||
|
||||
/**
|
||||
* Must be between 1 and 63, indicates how many types you want to store on
|
||||
* the item.
|
||||
@@ -76,8 +88,8 @@ public interface IStorageCell extends ICellWorkbenchItem
|
||||
* Allows you to fine tune which items are allowed on a given cell, if you
|
||||
* don't care, just return false; As the handler for this type of cell is
|
||||
* still the default cells, the normal AE black list is also applied.
|
||||
*
|
||||
* @param cellItem item
|
||||
*
|
||||
* @param cellItem item
|
||||
* @param requestedAddition requested addition
|
||||
*
|
||||
* @return true to preventAdditionOfItem
|
||||
|
||||
@@ -70,7 +70,7 @@ public interface IPartCable extends IPart, IGridHost
|
||||
|
||||
/**
|
||||
* Change sides on the cables node.
|
||||
*
|
||||
*
|
||||
* Called by AE, do not invoke.
|
||||
*
|
||||
* @param sides sides of cable
|
||||
|
||||
@@ -23,10 +23,12 @@
|
||||
|
||||
package appeng.api.implementations.tiles;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.storage.ICellContainer;
|
||||
import appeng.api.util.IOrientable;
|
||||
|
||||
|
||||
public interface IChestOrDrive extends ICellContainer, IGridHost, IOrientable
|
||||
{
|
||||
|
||||
@@ -45,9 +47,10 @@ public interface IChestOrDrive extends ICellContainer, IGridHost, IOrientable
|
||||
* 3 - red
|
||||
*
|
||||
* @param slot slot index
|
||||
*
|
||||
* @return status of the slot, one of the above indices.
|
||||
*/
|
||||
int getCellStatus(int slot);
|
||||
int getCellStatus( int slot );
|
||||
|
||||
/**
|
||||
* @return if the device is online you should check this before providing any other information.
|
||||
@@ -56,8 +59,8 @@ public interface IChestOrDrive extends ICellContainer, IGridHost, IOrientable
|
||||
|
||||
/**
|
||||
* @param slot slot index
|
||||
*
|
||||
* @return is the cell currently blinking to show activity.
|
||||
*/
|
||||
boolean isCellBlinking(int slot);
|
||||
|
||||
boolean isCellBlinking( int slot );
|
||||
}
|
||||
|
||||
@@ -29,19 +29,20 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
import appeng.api.networking.crafting.ICraftingPatternDetails;
|
||||
|
||||
|
||||
public interface ICraftingMachine
|
||||
{
|
||||
|
||||
/**
|
||||
* inserts a crafting plan, and the necessary items into the crafting machine.
|
||||
*
|
||||
* @param patternDetails details of pattern
|
||||
* @param table crafting table
|
||||
* @param patternDetails details of pattern
|
||||
* @param table crafting table
|
||||
* @param ejectionDirection ejection direction
|
||||
*
|
||||
* @return if it was accepted, all or nothing.
|
||||
*/
|
||||
boolean pushPattern(ICraftingPatternDetails patternDetails, InventoryCrafting table, ForgeDirection ejectionDirection);
|
||||
boolean pushPattern( ICraftingPatternDetails patternDetails, InventoryCrafting table, ForgeDirection ejectionDirection );
|
||||
|
||||
/**
|
||||
* check if the crafting machine is accepting pushes via pushPattern, if this is false, all calls to push will fail,
|
||||
@@ -50,5 +51,4 @@ public interface ICraftingMachine
|
||||
* @return true, if pushPattern can complete, if its false push will always be false.
|
||||
*/
|
||||
boolean acceptsPlans();
|
||||
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.implementations.tiles;
|
||||
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
/**
|
||||
* Crank/Crankable API,
|
||||
*
|
||||
@@ -53,6 +55,5 @@ public interface ICrankable
|
||||
/**
|
||||
* @return true if the crank can attach on the given side.
|
||||
*/
|
||||
boolean canCrankAttach(ForgeDirection directionToCrank);
|
||||
|
||||
boolean canCrankAttach( ForgeDirection directionToCrank );
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
package appeng.api.integration;
|
||||
|
||||
|
||||
/**
|
||||
* An interface to get access to the individual settings for AE's Internal Bee
|
||||
* Comparison handler.
|
||||
@@ -39,5 +40,4 @@ public interface IBeeComparison
|
||||
* @return the Forestry IIndividual for this comparison object - cast this to a IIndividual if you want to use it.
|
||||
*/
|
||||
Object getIndividual();
|
||||
|
||||
}
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.movable;
|
||||
|
||||
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
|
||||
public interface IMovableHandler
|
||||
{
|
||||
|
||||
@@ -34,10 +36,11 @@ public interface IMovableHandler
|
||||
* that single entity, you cannot opt out of single entities.
|
||||
*
|
||||
* @param myClass tile entity class
|
||||
* @param tile tile entity
|
||||
* @param tile tile entity
|
||||
*
|
||||
* @return true if it can handle moving
|
||||
*/
|
||||
boolean canHandle(Class<? extends TileEntity> myClass, TileEntity tile);
|
||||
boolean canHandle( Class<? extends TileEntity> myClass, TileEntity tile );
|
||||
|
||||
/**
|
||||
* request that the handler move the the tile from its current location to
|
||||
@@ -56,12 +59,11 @@ public interface IMovableHandler
|
||||
* }
|
||||
* </pre>
|
||||
*
|
||||
* @param tile to be moved tile
|
||||
* @param tile to be moved tile
|
||||
* @param world world of tile
|
||||
* @param x x coord of tile
|
||||
* @param y y coord of tile
|
||||
* @param z z coord of tile
|
||||
* @param x x coord of tile
|
||||
* @param y y coord of tile
|
||||
* @param z z coord of tile
|
||||
*/
|
||||
void moveTile(TileEntity tile, World world, int x, int y, int z);
|
||||
|
||||
void moveTile( TileEntity tile, World world, int x, int y, int z );
|
||||
}
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.movable;
|
||||
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
|
||||
|
||||
/**
|
||||
* Used to determine if a tile is marked as movable, a block will be considered movable, if...
|
||||
*
|
||||
@@ -64,7 +66,7 @@ public interface IMovableRegistry
|
||||
*
|
||||
* @param blk block
|
||||
*/
|
||||
void blacklistBlock(Block blk);
|
||||
void blacklistBlock( Block blk );
|
||||
|
||||
/**
|
||||
* White list your tile entity with the registry.
|
||||
@@ -74,27 +76,28 @@ public interface IMovableRegistry
|
||||
*
|
||||
* If you tile is handled with IMovableHandler or IMovableTile you do not need to white list it.
|
||||
*/
|
||||
void whiteListTileEntity(Class<? extends TileEntity> c);
|
||||
void whiteListTileEntity( Class<? extends TileEntity> c );
|
||||
|
||||
/**
|
||||
* @param te to be moved tile entity
|
||||
*
|
||||
* @return true if the tile has accepted your request to move it
|
||||
*/
|
||||
boolean askToMove(TileEntity te);
|
||||
boolean askToMove( TileEntity te );
|
||||
|
||||
/**
|
||||
* tells the tile you are done moving it.
|
||||
*
|
||||
* @param te moved tile entity
|
||||
*/
|
||||
void doneMoving(TileEntity te);
|
||||
void doneMoving( TileEntity te );
|
||||
|
||||
/**
|
||||
* add a new handler movable handler.
|
||||
*
|
||||
* @param handler moving handler
|
||||
*/
|
||||
void addHandler(IMovableHandler handler);
|
||||
void addHandler( IMovableHandler handler );
|
||||
|
||||
/**
|
||||
* handlers are used to perform movement, this allows you to override AE's internal version.
|
||||
@@ -102,9 +105,10 @@ public interface IMovableRegistry
|
||||
* only valid after askToMove(...) = true
|
||||
*
|
||||
* @param te tile entity
|
||||
*
|
||||
* @return moving handler of tile entity
|
||||
*/
|
||||
IMovableHandler getHandler(TileEntity te);
|
||||
IMovableHandler getHandler( TileEntity te );
|
||||
|
||||
/**
|
||||
* @return a copy of the default handler
|
||||
@@ -113,8 +117,8 @@ public interface IMovableRegistry
|
||||
|
||||
/**
|
||||
* @param blk block
|
||||
*
|
||||
* @return true if this block is blacklisted
|
||||
*/
|
||||
boolean isBlacklisted(Block blk);
|
||||
|
||||
boolean isBlacklisted( Block blk );
|
||||
}
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.networking;
|
||||
|
||||
|
||||
import appeng.api.networking.events.MENetworkEvent;
|
||||
import appeng.api.util.IReadOnlyCollection;
|
||||
|
||||
|
||||
/**
|
||||
* Gives you access to Grid based information.
|
||||
*
|
||||
@@ -38,6 +40,7 @@ public interface IGrid
|
||||
* Get Access to various grid modules
|
||||
*
|
||||
* @param iface face
|
||||
*
|
||||
* @return the IGridCache you requested.
|
||||
*/
|
||||
<C extends IGridCache> C getCache( Class<? extends IGridCache> iface );
|
||||
@@ -45,8 +48,8 @@ public interface IGrid
|
||||
/**
|
||||
* Post an event into the network event bus.
|
||||
*
|
||||
* @param ev
|
||||
* - event to post
|
||||
* @param ev - event to post
|
||||
*
|
||||
* @return returns ev back to original poster
|
||||
*/
|
||||
MENetworkEvent postEvent( MENetworkEvent ev );
|
||||
@@ -54,8 +57,8 @@ public interface IGrid
|
||||
/**
|
||||
* Post an event into the network event bus, but direct it at a single node.
|
||||
*
|
||||
* @param ev
|
||||
* event to post
|
||||
* @param ev event to post
|
||||
*
|
||||
* @return returns ev back to original poster
|
||||
*/
|
||||
MENetworkEvent postEventTo( IGridNode node, MENetworkEvent ev );
|
||||
@@ -72,6 +75,7 @@ public interface IGrid
|
||||
* Get machines on the network.
|
||||
*
|
||||
* @param gridHostClass class of the grid host
|
||||
*
|
||||
* @return IMachineSet of all nodes belonging to hosts of specified class.
|
||||
*/
|
||||
IMachineSet getMachines( Class<? extends IGridHost> gridHostClass );
|
||||
@@ -90,5 +94,4 @@ public interface IGrid
|
||||
* @return the node considered the pivot point of the grid.
|
||||
*/
|
||||
IGridNode getPivot();
|
||||
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,7 @@ import appeng.api.parts.IPart;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
|
||||
|
||||
/**
|
||||
* An Implementation is required to create your node for IGridHost
|
||||
*
|
||||
@@ -79,12 +80,12 @@ public interface IGridBlock
|
||||
/**
|
||||
* Notifies your IGridBlock that changes were made to your connections
|
||||
*/
|
||||
void onGridNotification(GridNotification notification);
|
||||
void onGridNotification( GridNotification notification );
|
||||
|
||||
/**
|
||||
* Update Blocks network/connection/booting status. grid,
|
||||
*
|
||||
* @param grid grid
|
||||
* @param grid grid
|
||||
* @param channelsInUse used channels
|
||||
*/
|
||||
void setNetworkStatus( IGrid grid, int channelsInUse );
|
||||
|
||||
@@ -23,14 +23,13 @@
|
||||
|
||||
package appeng.api.networking;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Allows you to create a network wise service, AE2 uses these for providing
|
||||
* item, spatial, and tunnel services.
|
||||
*
|
||||
* Any Class that implements this, should have a public default constructor that
|
||||
* takes a single argument of type IGrid.
|
||||
*
|
||||
*/
|
||||
public interface IGridCache
|
||||
{
|
||||
@@ -38,7 +37,6 @@ public interface IGridCache
|
||||
/**
|
||||
* Called each tick for the network, allows you to have active network wide
|
||||
* behaviors.
|
||||
*
|
||||
*/
|
||||
void onUpdateTick();
|
||||
|
||||
@@ -50,9 +48,9 @@ public interface IGridCache
|
||||
* information, do it on the next updateTick.
|
||||
*
|
||||
* @param gridNode removed from that grid
|
||||
* @param machine to be removed machine
|
||||
* @param machine to be removed machine
|
||||
*/
|
||||
void removeNode(IGridNode gridNode, IGridHost machine);
|
||||
void removeNode( IGridNode gridNode, IGridHost machine );
|
||||
|
||||
/**
|
||||
* informs you cache that a machine was added to the grid.
|
||||
@@ -62,9 +60,9 @@ public interface IGridCache
|
||||
* information, do it on the next updateTick.
|
||||
*
|
||||
* @param gridNode added to grid node
|
||||
* @param machine to be added machine
|
||||
* @param machine to be added machine
|
||||
*/
|
||||
void addNode(IGridNode gridNode, IGridHost machine);
|
||||
void addNode( IGridNode gridNode, IGridHost machine );
|
||||
|
||||
/**
|
||||
* Called when a grid splits into two grids, AE will call a split as it
|
||||
@@ -73,7 +71,7 @@ public interface IGridCache
|
||||
*
|
||||
* @param destinationStorage storage which receives half of old grid
|
||||
*/
|
||||
void onSplit(IGridStorage destinationStorage);
|
||||
void onSplit( IGridStorage destinationStorage );
|
||||
|
||||
/**
|
||||
* Called when two grids merge into one, AE will call a join as it
|
||||
@@ -82,13 +80,12 @@ public interface IGridCache
|
||||
*
|
||||
* @param sourceStorage old storage
|
||||
*/
|
||||
void onJoin(IGridStorage sourceStorage);
|
||||
void onJoin( IGridStorage sourceStorage );
|
||||
|
||||
/**
|
||||
* Called when saving changes,
|
||||
*
|
||||
* @param destinationStorage storage
|
||||
*/
|
||||
void populateGridStorage(IGridStorage destinationStorage);
|
||||
|
||||
void populateGridStorage( IGridStorage destinationStorage );
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking;
|
||||
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
/**
|
||||
* Access to AE's internal grid connections.
|
||||
*
|
||||
@@ -40,17 +42,19 @@ public interface IGridConnection
|
||||
* lets you get the opposing node of the connection by passing your own node.
|
||||
*
|
||||
* @param gridNode current grid node
|
||||
*
|
||||
* @return the IGridNode which represents the opposite side of the connection.
|
||||
*/
|
||||
IGridNode getOtherSide(IGridNode gridNode);
|
||||
IGridNode getOtherSide( IGridNode gridNode );
|
||||
|
||||
/**
|
||||
* determine the direction of the connection based on your node.
|
||||
*
|
||||
* @param gridNode current grid node
|
||||
*
|
||||
* @return the direction of the connection, only valid for in world connections.
|
||||
*/
|
||||
ForgeDirection getDirection(IGridNode gridNode);
|
||||
ForgeDirection getDirection( IGridNode gridNode );
|
||||
|
||||
/**
|
||||
* by destroying a connection you may create new grids, and trigger un-expected behavior, you should only destroy
|
||||
@@ -77,5 +81,4 @@ public interface IGridConnection
|
||||
* @return how many channels pass over this connections.
|
||||
*/
|
||||
int getUsedChannels();
|
||||
|
||||
}
|
||||
@@ -23,15 +23,14 @@
|
||||
|
||||
package appeng.api.networking;
|
||||
|
||||
|
||||
public interface IGridConnectionVisitor extends IGridVisitor
|
||||
{
|
||||
|
||||
/**
|
||||
* Called for each connection on the network.
|
||||
*
|
||||
* @param n
|
||||
* the connection.
|
||||
* @param n the connection.
|
||||
*/
|
||||
void visitConnection( IGridConnection n );
|
||||
|
||||
}
|
||||
|
||||
@@ -30,11 +30,10 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import appeng.api.parts.IPart;
|
||||
import appeng.api.util.AECableType;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Implement to create a networked {@link TileEntity} or {@link IPart} must
|
||||
* be implemented for a part, or tile entity to become part of a grid.
|
||||
*
|
||||
*/
|
||||
public interface IGridHost
|
||||
{
|
||||
@@ -44,11 +43,11 @@ public interface IGridHost
|
||||
* by returning a valid node later and calling updateState, you can join the
|
||||
* Grid when your block is ready.
|
||||
*
|
||||
* @param dir
|
||||
* feel free to ignore this, most blocks will use the same node
|
||||
* @param dir feel free to ignore this, most blocks will use the same node
|
||||
* for every side.
|
||||
*
|
||||
* @return a new IGridNode, create these with
|
||||
* AEApi.INSTANCE().createGridNode( MyIGridBlock )
|
||||
* AEApi.INSTANCE().createGridNode( MyIGridBlock )
|
||||
*/
|
||||
IGridNode getGridNode( ForgeDirection dir );
|
||||
|
||||
@@ -64,5 +63,4 @@ public interface IGridHost
|
||||
* break this host, its violating security rules, just break your block, or part.
|
||||
*/
|
||||
void securityBreak();
|
||||
|
||||
}
|
||||
|
||||
@@ -33,14 +33,13 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import appeng.api.IAppEngApi;
|
||||
import appeng.api.util.IReadOnlyCollection;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Gives you a view into your Nodes connections and information.
|
||||
*
|
||||
* updateState, getGrid, destroy are required to implement a proper IGridHost.
|
||||
*
|
||||
* Don't Implement; Acquire from {@link IAppEngApi}.createGridNode
|
||||
*
|
||||
*/
|
||||
public interface IGridNode
|
||||
{
|
||||
@@ -51,7 +50,7 @@ public interface IGridNode
|
||||
*
|
||||
* @param visitor visitor
|
||||
*/
|
||||
void beginVisit(IGridVisitor visitor);
|
||||
void beginVisit( IGridVisitor visitor );
|
||||
|
||||
/**
|
||||
* inform the node that your IGridBlock has changed its internal state, and force the node to update.
|
||||
@@ -61,7 +60,6 @@ public interface IGridNode
|
||||
*
|
||||
* If your entity is not in the world, or if you IGridHost returns a different node for the same side you will
|
||||
* likely crash the game.
|
||||
*
|
||||
*/
|
||||
void updateState();
|
||||
|
||||
@@ -91,7 +89,6 @@ public interface IGridNode
|
||||
World getWorld();
|
||||
|
||||
/**
|
||||
*
|
||||
* @return a set of the connected sides, UNKNOWN represents an invisible connection
|
||||
*/
|
||||
EnumSet<ForgeDirection> getConnectedSides();
|
||||
@@ -122,23 +119,23 @@ public interface IGridNode
|
||||
*
|
||||
* Important: You must call this before updateState.
|
||||
*
|
||||
* @param name nbt name
|
||||
* @param name nbt name
|
||||
* @param nodeData to be loaded data
|
||||
*/
|
||||
void loadFromNBT(String name, NBTTagCompound nodeData);
|
||||
void loadFromNBT( String name, NBTTagCompound nodeData );
|
||||
|
||||
/**
|
||||
* this should be called for each node you maintain, you can save all your nodes to the same tag with different
|
||||
* names, if you fail to complete the load / save procedure, network state may be lost between game load/saves.
|
||||
*
|
||||
* @param name nbt name
|
||||
* @param name nbt name
|
||||
* @param nodeData to be saved data
|
||||
*/
|
||||
void saveToNBT(String name, NBTTagCompound nodeData);
|
||||
void saveToNBT( String name, NBTTagCompound nodeData );
|
||||
|
||||
/**
|
||||
* @return if the node's channel requirements are currently met, use this for display purposes, use isActive for
|
||||
* status.
|
||||
* status.
|
||||
*/
|
||||
boolean meetsChannelRequirements();
|
||||
|
||||
@@ -146,9 +143,15 @@ public interface IGridNode
|
||||
* see if this node has a certain flag
|
||||
*
|
||||
* @param flag flags
|
||||
*
|
||||
* @return true if has flag
|
||||
*/
|
||||
boolean hasFlag(GridFlags flag);
|
||||
boolean hasFlag( GridFlags flag );
|
||||
|
||||
/**
|
||||
* @return the ownerID this represents the person who placed the node.
|
||||
*/
|
||||
int getPlayerID();
|
||||
|
||||
/**
|
||||
* tell the node who was responsible for placing it, failure to do this may result in in-compatibility with the
|
||||
@@ -156,11 +159,5 @@ public interface IGridNode
|
||||
*
|
||||
* @param playerID new player id
|
||||
*/
|
||||
void setPlayerID(int playerID);
|
||||
|
||||
/**
|
||||
* @return the ownerID this represents the person who placed the node.
|
||||
*/
|
||||
int getPlayerID();
|
||||
|
||||
void setPlayerID( int playerID );
|
||||
}
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
package appeng.api.networking;
|
||||
|
||||
|
||||
/**
|
||||
* Simple Visitor pattern access to network nodes.
|
||||
*/
|
||||
@@ -34,11 +35,9 @@ public interface IGridVisitor
|
||||
*
|
||||
* By returning false your informing the host to stop visiting nodes beyond the current node.
|
||||
*
|
||||
* @param n
|
||||
* the current node.
|
||||
* @param n the current node.
|
||||
*
|
||||
* @return true to continue visiting nodes beyond this node.
|
||||
*/
|
||||
boolean visitNode( IGridNode n );
|
||||
|
||||
}
|
||||
|
||||
@@ -23,15 +23,14 @@
|
||||
|
||||
package appeng.api.networking.crafting;
|
||||
|
||||
|
||||
public interface ICraftingCallback
|
||||
{
|
||||
|
||||
/**
|
||||
* this call back is synchronized with the world you passed.
|
||||
*
|
||||
* @param job
|
||||
* - final job
|
||||
* @param job - final job
|
||||
*/
|
||||
void calculationComplete( ICraftingJob job );
|
||||
|
||||
}
|
||||
|
||||
@@ -36,57 +36,52 @@ import appeng.api.networking.IGridCache;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
|
||||
|
||||
public interface ICraftingGrid extends IGridCache
|
||||
{
|
||||
|
||||
/**
|
||||
* @param whatToCraft requested craft
|
||||
* @param world crafting world
|
||||
* @param slot slot index
|
||||
* @param details pattern details
|
||||
* @param world crafting world
|
||||
* @param slot slot index
|
||||
* @param details pattern details
|
||||
*
|
||||
* @return a collection of crafting patterns for the item in question.
|
||||
*/
|
||||
ImmutableCollection<ICraftingPatternDetails> getCraftingFor(IAEItemStack whatToCraft, ICraftingPatternDetails details, int slot, World world);
|
||||
ImmutableCollection<ICraftingPatternDetails> getCraftingFor( IAEItemStack whatToCraft, ICraftingPatternDetails details, int slot, World world );
|
||||
|
||||
/**
|
||||
* Begin calculating a crafting job.
|
||||
*
|
||||
* @param world crafting world
|
||||
* @param grid network
|
||||
* @param world crafting world
|
||||
* @param grid network
|
||||
* @param actionSrc source
|
||||
* @param craftWhat result
|
||||
* @param callback callback
|
||||
* -- optional
|
||||
* @param callback callback
|
||||
* -- optional
|
||||
*
|
||||
* @return a future which will at an undetermined point in the future get you the {@link ICraftingJob} do not wait
|
||||
* on this, your be waiting forever.
|
||||
* on this, your be waiting forever.
|
||||
*/
|
||||
Future<ICraftingJob> beginCraftingJob(World world, IGrid grid, BaseActionSource actionSrc, IAEItemStack craftWhat, ICraftingCallback callback);
|
||||
Future<ICraftingJob> beginCraftingJob( World world, IGrid grid, BaseActionSource actionSrc, IAEItemStack craftWhat, ICraftingCallback callback );
|
||||
|
||||
/**
|
||||
* Submit the job to the Crafting system for processing.
|
||||
*
|
||||
* @param job
|
||||
* - the crafting job from beginCraftingJob
|
||||
* @param requestingMachine
|
||||
* - a machine if its being requested via automation, may be null.
|
||||
* @param target
|
||||
* - can be null
|
||||
*
|
||||
* @param prioritizePower
|
||||
* - if cpu is null, this determine if the system should prioritize power, or if it should find the lower
|
||||
* end cpus, automatic processes generally should pick lower end cpus.
|
||||
*
|
||||
* @param src
|
||||
* - the action source to use when starting the job, this will be used for extracting items, should
|
||||
* usually be the same as the one provided to beginCraftingJob.
|
||||
* @param job - the crafting job from beginCraftingJob
|
||||
* @param requestingMachine - a machine if its being requested via automation, may be null.
|
||||
* @param target - can be null
|
||||
* @param prioritizePower - if cpu is null, this determine if the system should prioritize power, or if it should find the lower
|
||||
* end cpus, automatic processes generally should pick lower end cpus.
|
||||
* @param src - the action source to use when starting the job, this will be used for extracting items, should
|
||||
* usually be the same as the one provided to beginCraftingJob.
|
||||
*
|
||||
* @return null ( if failed ) or an {@link ICraftingLink} other wise, if you send requestingMachine you need to
|
||||
* properly keep track of this and handle the nbt saving and loading of the object as well as the
|
||||
* {@link ICraftingRequester} methods. if you send null, this object should be discarded after verifying the
|
||||
* return state.
|
||||
* properly keep track of this and handle the nbt saving and loading of the object as well as the
|
||||
* {@link ICraftingRequester} methods. if you send null, this object should be discarded after verifying the
|
||||
* return state.
|
||||
*/
|
||||
ICraftingLink submitJob(ICraftingJob job, ICraftingRequester requestingMachine, ICraftingCPU target, boolean prioritizePower, BaseActionSource src);
|
||||
ICraftingLink submitJob( ICraftingJob job, ICraftingRequester requestingMachine, ICraftingCPU target, boolean prioritizePower, BaseActionSource src );
|
||||
|
||||
/**
|
||||
* @return list of all the crafting cpus on the grid
|
||||
@@ -95,16 +90,17 @@ public interface ICraftingGrid extends IGridCache
|
||||
|
||||
/**
|
||||
* @param what to be requested item
|
||||
*
|
||||
* @return true if the item can be requested via a crafting emitter.
|
||||
*/
|
||||
boolean canEmitFor(IAEItemStack what);
|
||||
boolean canEmitFor( IAEItemStack what );
|
||||
|
||||
/**
|
||||
* is this item being crafted?
|
||||
*
|
||||
* @param aeStackInSlot item being crafted
|
||||
*
|
||||
* @return true if it is being crafting
|
||||
*/
|
||||
boolean isRequesting(IAEItemStack aeStackInSlot);
|
||||
|
||||
boolean isRequesting( IAEItemStack aeStackInSlot );
|
||||
}
|
||||
|
||||
@@ -31,6 +31,7 @@ import net.minecraft.world.World;
|
||||
import appeng.api.implementations.ICraftingPatternItem;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
|
||||
|
||||
/**
|
||||
* do not implement provided by {@link ICraftingPatternItem}
|
||||
*
|
||||
@@ -47,11 +48,11 @@ public interface ICraftingPatternDetails
|
||||
/**
|
||||
* @param slotIndex specific slot index
|
||||
* @param itemStack item in slot
|
||||
* @param world crafting world
|
||||
* @param world crafting world
|
||||
*
|
||||
* @return if an item can be used in the specific slot for this pattern.
|
||||
*/
|
||||
boolean isValidItemForSlot(int slotIndex, ItemStack itemStack, World world);
|
||||
boolean isValidItemForSlot( int slotIndex, ItemStack itemStack, World world );
|
||||
|
||||
/**
|
||||
* @return if this pattern is a crafting pattern ( work bench )
|
||||
@@ -87,17 +88,11 @@ public interface ICraftingPatternDetails
|
||||
* Allow using this INSTANCE of the pattern details to preform the crafting action with performance enhancements.
|
||||
*
|
||||
* @param craftingInv inventory
|
||||
* @param world crafting world
|
||||
* @param world crafting world
|
||||
*
|
||||
* @return the crafted ( work bench ) item.
|
||||
*/
|
||||
ItemStack getOutput(InventoryCrafting craftingInv, World world);
|
||||
|
||||
/**
|
||||
* Set the priority the of this pattern.
|
||||
*
|
||||
* @param priority priority of pattern
|
||||
*/
|
||||
void setPriority(int priority);
|
||||
ItemStack getOutput( InventoryCrafting craftingInv, World world );
|
||||
|
||||
/**
|
||||
* Get the priority of this pattern
|
||||
@@ -105,4 +100,11 @@ public interface ICraftingPatternDetails
|
||||
* @return the priority of this pattern
|
||||
*/
|
||||
int getPriority();
|
||||
|
||||
/**
|
||||
* Set the priority the of this pattern.
|
||||
*
|
||||
* @param priority priority of pattern
|
||||
*/
|
||||
void setPriority( int priority );
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.security.IActionHost;
|
||||
import appeng.api.storage.data.IAEItemStack;
|
||||
|
||||
|
||||
public interface ICraftingRequester extends IActionHost
|
||||
{
|
||||
|
||||
@@ -46,16 +47,16 @@ public interface ICraftingRequester extends IActionHost
|
||||
* be returned.
|
||||
*
|
||||
* @param items item
|
||||
* @param mode action mode
|
||||
* @param mode action mode
|
||||
*
|
||||
* @return unwanted item
|
||||
*/
|
||||
IAEItemStack injectCraftedItems(ICraftingLink link, IAEItemStack items, Actionable mode);
|
||||
IAEItemStack injectCraftedItems( ICraftingLink link, IAEItemStack items, Actionable mode );
|
||||
|
||||
/**
|
||||
* called when the job changes from in progress, to either complete, or canceled.
|
||||
*
|
||||
* after this call the crafting link is "dead" and should be discarded.
|
||||
*/
|
||||
void jobStateChange(ICraftingLink link);
|
||||
|
||||
void jobStateChange( ICraftingLink link );
|
||||
}
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.networking.energy;
|
||||
|
||||
|
||||
import appeng.api.config.AccessRestriction;
|
||||
import appeng.api.config.Actionable;
|
||||
|
||||
|
||||
/**
|
||||
* Used to access information about AE's various power accepting blocks for monitoring purposes.
|
||||
*/
|
||||
@@ -35,7 +37,7 @@ public interface IAEPowerStorage extends IEnergySource
|
||||
/**
|
||||
* Inject amt, power into the device, it will store what it can, and return the amount unable to be stored.
|
||||
*
|
||||
* @param amt to be injected amount
|
||||
* @param amt to be injected amount
|
||||
* @param mode action mode
|
||||
*
|
||||
* @return amount of power which was unable to be stored
|
||||
@@ -66,5 +68,4 @@ public interface IAEPowerStorage extends IEnergySource
|
||||
* @return access restriction what the network can do
|
||||
*/
|
||||
AccessRestriction getPowerFlow();
|
||||
|
||||
}
|
||||
@@ -23,10 +23,12 @@
|
||||
|
||||
package appeng.api.networking.energy;
|
||||
|
||||
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.networking.IGridCache;
|
||||
import appeng.api.networking.events.MENetworkPowerStatusChange;
|
||||
|
||||
|
||||
/**
|
||||
* AE's Power system.
|
||||
*/
|
||||
@@ -40,7 +42,7 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
||||
|
||||
/**
|
||||
* @return the average power drain over the past 10 ticks, includes idle usage during this time, and all use of
|
||||
* extractPower.
|
||||
* extractPower.
|
||||
*/
|
||||
double getAvgPowerUsage();
|
||||
|
||||
@@ -72,10 +74,9 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
||||
* Another important note, is that if a network that had overflow is deleted, its power is gone, this is one of the
|
||||
* reasons why keeping overflow to a minimum is important.
|
||||
*
|
||||
* @param amt
|
||||
* power to inject into the network
|
||||
* @param mode
|
||||
* should the action be simulated or performed?
|
||||
* @param amt power to inject into the network
|
||||
* @param mode should the action be simulated or performed?
|
||||
*
|
||||
* @return the amount of power that the network has OVER the limit.
|
||||
*/
|
||||
double injectPower( double amt, Actionable mode );
|
||||
@@ -101,5 +102,4 @@ public interface IEnergyGrid extends IGridCache, IEnergySource, IEnergyGridProvi
|
||||
* @return Amount of power required to charge the grid, in AE.
|
||||
*/
|
||||
double getEnergyDemand( double maxRequired );
|
||||
|
||||
}
|
||||
|
||||
@@ -23,19 +23,21 @@
|
||||
|
||||
package appeng.api.networking.energy;
|
||||
|
||||
|
||||
import appeng.api.config.Actionable;
|
||||
import appeng.api.config.PowerMultiplier;
|
||||
|
||||
|
||||
public interface IEnergySource
|
||||
{
|
||||
|
||||
/**
|
||||
* Extract power from the network.
|
||||
*
|
||||
* @param amt extracted power
|
||||
* @param amt extracted power
|
||||
* @param mode should the action be simulated or performed?
|
||||
*
|
||||
* @return returns extracted power.
|
||||
*/
|
||||
double extractAEPower( double amt, Actionable mode, PowerMultiplier usePowerMultiplier );
|
||||
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
* Posted by the network when the booting status of the network goes up
|
||||
* or down, the change is reflected via {@link IGridNode}.isActive()
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
/**
|
||||
* Posted by storage devices to inform AE to refresh its storage structure.
|
||||
*
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridHost;
|
||||
|
||||
|
||||
/**
|
||||
* Posted to the {@link IGridHost} when the channels on the node connections are altered.
|
||||
*
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.IGrid;
|
||||
|
||||
|
||||
/**
|
||||
* Part of AE's Event Bus.
|
||||
*
|
||||
@@ -69,7 +71,7 @@ public class MENetworkEvent
|
||||
*
|
||||
* @param v current number of visitors
|
||||
*/
|
||||
public void setVisitedObjects(int v)
|
||||
public void setVisitedObjects( int v )
|
||||
{
|
||||
this.visited = v;
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
* Implementers of a IGridBlock must post this event when your getIdlePowerUsage
|
||||
* starts returning a new value, if you do not post this event the network will
|
||||
@@ -37,8 +39,8 @@ public class MENetworkPowerIdleChange extends MENetworkEvent
|
||||
|
||||
public final IGridNode node;
|
||||
|
||||
public MENetworkPowerIdleChange(IGridNode nodeThatChanged) {
|
||||
public MENetworkPowerIdleChange( IGridNode nodeThatChanged )
|
||||
{
|
||||
this.node = nodeThatChanged;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
import appeng.api.networking.energy.IEnergyGrid;
|
||||
|
||||
|
||||
/**
|
||||
* Posted by the network when the power status of the network goes up or down,
|
||||
* the change is reflected via the {@link IEnergyGrid}.isNetworkPowered() or via
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.networking.energy.IAEPowerStorage;
|
||||
|
||||
|
||||
/**
|
||||
* informs the network, that a {@link IAEPowerStorage} block that had either run,
|
||||
* out of power, or was full, is no longer in that state.
|
||||
@@ -37,6 +39,15 @@ import appeng.api.networking.energy.IAEPowerStorage;
|
||||
public class MENetworkPowerStorage extends MENetworkEvent
|
||||
{
|
||||
|
||||
public final IAEPowerStorage storage;
|
||||
public final PowerEventType type;
|
||||
|
||||
public MENetworkPowerStorage( IAEPowerStorage t, PowerEventType y )
|
||||
{
|
||||
this.storage = t;
|
||||
this.type = y;
|
||||
}
|
||||
|
||||
public enum PowerEventType
|
||||
{
|
||||
/**
|
||||
@@ -49,13 +60,4 @@ public class MENetworkPowerStorage extends MENetworkEvent
|
||||
*/
|
||||
PROVIDE_POWER
|
||||
}
|
||||
|
||||
public final IAEPowerStorage storage;
|
||||
public final PowerEventType type;
|
||||
|
||||
public MENetworkPowerStorage(IAEPowerStorage t, PowerEventType y) {
|
||||
this.storage = t;
|
||||
this.type = y;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
* 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.networking.events;
|
||||
|
||||
|
||||
|
||||
@@ -23,9 +23,11 @@
|
||||
|
||||
package appeng.api.networking.events;
|
||||
|
||||
|
||||
import appeng.api.storage.IMEMonitor;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
|
||||
|
||||
/**
|
||||
* posted by the network when the networks Storage Changes, you can use the currentItems list to check levels, and
|
||||
* update status.
|
||||
@@ -40,9 +42,9 @@ public class MENetworkStorageEvent extends MENetworkEvent
|
||||
public final IMEMonitor monitor;
|
||||
public final StorageChannel channel;
|
||||
|
||||
public MENetworkStorageEvent(IMEMonitor o, StorageChannel chan) {
|
||||
public MENetworkStorageEvent( IMEMonitor o, StorageChannel chan )
|
||||
{
|
||||
this.monitor = o;
|
||||
this.channel = chan;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import net.minecraft.entity.player.EntityPlayer;
|
||||
import appeng.api.config.SecurityPermissions;
|
||||
import appeng.api.networking.IGridCache;
|
||||
|
||||
|
||||
public interface ISecurityGrid extends IGridCache
|
||||
{
|
||||
|
||||
@@ -41,25 +42,24 @@ public interface ISecurityGrid extends IGridCache
|
||||
* Check if a player has permissions.
|
||||
*
|
||||
* @param player to be checked player
|
||||
* @param perm checked permissions
|
||||
* @param perm checked permissions
|
||||
*
|
||||
* @return true if the player has permissions.
|
||||
*/
|
||||
boolean hasPermission(EntityPlayer player, SecurityPermissions perm);
|
||||
boolean hasPermission( EntityPlayer player, SecurityPermissions perm );
|
||||
|
||||
/**
|
||||
* Check if a player has permissions.
|
||||
*
|
||||
* @param playerID id of player
|
||||
* @param perm checked permissions
|
||||
* @param perm checked permissions
|
||||
*
|
||||
* @return true if the player has permissions.
|
||||
*/
|
||||
boolean hasPermission(int playerID, SecurityPermissions perm);
|
||||
boolean hasPermission( int playerID, SecurityPermissions perm );
|
||||
|
||||
/**
|
||||
* @return PlayerID of the admin, or owner, this is the person who placed the security block.
|
||||
*/
|
||||
int getOwner();
|
||||
|
||||
}
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.EnumSet;
|
||||
|
||||
import appeng.api.config.SecurityPermissions;
|
||||
|
||||
|
||||
/**
|
||||
* Used by vanilla Security Terminal to post biometric data into the security cache.
|
||||
*/
|
||||
@@ -37,9 +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,14 +29,14 @@ public class MachineSource extends BaseActionSource
|
||||
|
||||
public final IActionHost via;
|
||||
|
||||
public MachineSource( IActionHost v )
|
||||
{
|
||||
this.via = v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isMachine()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public MachineSource( IActionHost v )
|
||||
{
|
||||
this.via = v;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,15 +33,15 @@ public class PlayerSource extends BaseActionSource
|
||||
public final EntityPlayer player;
|
||||
public final IActionHost via;
|
||||
|
||||
@Override
|
||||
public boolean isPlayer()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
public PlayerSource( EntityPlayer p, IActionHost v )
|
||||
{
|
||||
this.player = p;
|
||||
this.via = v;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isPlayer()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,11 +23,13 @@
|
||||
|
||||
package appeng.api.networking.storage;
|
||||
|
||||
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
import appeng.api.storage.data.IAEStack;
|
||||
import appeng.api.storage.data.IItemList;
|
||||
|
||||
|
||||
public interface IStackWatcherHost
|
||||
{
|
||||
|
||||
@@ -37,17 +39,16 @@ public interface IStackWatcherHost
|
||||
*
|
||||
* @param newWatcher stack watcher
|
||||
*/
|
||||
void updateWatcher(IStackWatcher newWatcher);
|
||||
void updateWatcher( IStackWatcher newWatcher );
|
||||
|
||||
/**
|
||||
* Called when a watched item changes amounts.
|
||||
*
|
||||
* @param o changed item list
|
||||
* @param o changed item list
|
||||
* @param fullStack old stack
|
||||
* @param diffStack new stack
|
||||
* @param src action source
|
||||
* @param chan storage channel
|
||||
* @param src action source
|
||||
* @param chan storage channel
|
||||
*/
|
||||
void onStackChange(IItemList o, IAEStack fullStack, IAEStack diffStack, BaseActionSource src, StorageChannel chan);
|
||||
|
||||
void onStackChange( IItemList o, IAEStack fullStack, IAEStack diffStack, BaseActionSource src, StorageChannel chan );
|
||||
}
|
||||
|
||||
@@ -23,6 +23,7 @@
|
||||
|
||||
package appeng.api.networking.storage;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridCache;
|
||||
import appeng.api.networking.IGridHost;
|
||||
import appeng.api.networking.security.BaseActionSource;
|
||||
@@ -32,6 +33,7 @@ import appeng.api.storage.IStorageMonitorable;
|
||||
import appeng.api.storage.StorageChannel;
|
||||
import appeng.api.storage.data.IAEStack;
|
||||
|
||||
|
||||
/**
|
||||
* Common base class for item / fluid storage caches.
|
||||
*/
|
||||
@@ -48,7 +50,7 @@ public interface IStorageGrid extends IGridCache, IStorageMonitorable
|
||||
*
|
||||
* @param input injected items
|
||||
*/
|
||||
void postAlterationOfStoredItems(StorageChannel chan, Iterable<? extends IAEStack> input, BaseActionSource src);
|
||||
void postAlterationOfStoredItems( StorageChannel chan, Iterable<? extends IAEStack> input, BaseActionSource src );
|
||||
|
||||
/**
|
||||
* Used to add a cell provider to the storage system
|
||||
@@ -58,11 +60,10 @@ public interface IStorageGrid extends IGridCache, IStorageMonitorable
|
||||
*
|
||||
* @param cc to be added cell provider
|
||||
*/
|
||||
void registerCellProvider(ICellProvider cc);
|
||||
void registerCellProvider( ICellProvider cc );
|
||||
|
||||
/**
|
||||
* remove a provider added with addCellContainer
|
||||
*/
|
||||
void unregisterCellProvider(ICellProvider cc);
|
||||
|
||||
void unregisterCellProvider( ICellProvider cc );
|
||||
}
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.networking.ticking;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
* Implement on IGridHosts which want to use AE's Network Ticking Feature.
|
||||
*/
|
||||
@@ -53,9 +55,8 @@ public interface IGridTickable
|
||||
* reset it.
|
||||
*
|
||||
* @return null or a valid new TickingRequest
|
||||
*
|
||||
*/
|
||||
TickingRequest getTickingRequest(IGridNode node);
|
||||
TickingRequest getTickingRequest( IGridNode node );
|
||||
|
||||
/**
|
||||
* AE lets you adjust your tick rate based on the results of your tick, if
|
||||
@@ -66,14 +67,11 @@ public interface IGridTickable
|
||||
*
|
||||
* Note: this is never called if you return null from getTickingRequest.
|
||||
*
|
||||
* @param TicksSinceLastCall
|
||||
* the number of world ticks that were skipped since your last
|
||||
* tick, you can use this to adjust speed of processing or adjust
|
||||
* your tick rate.
|
||||
* @param TicksSinceLastCall the number of world ticks that were skipped since your last
|
||||
* tick, you can use this to adjust speed of processing or adjust
|
||||
* your tick rate.
|
||||
*
|
||||
* @return tick rate adjustment.
|
||||
*
|
||||
*/
|
||||
TickRateModulation tickingRequest(IGridNode node, int TicksSinceLastCall);
|
||||
|
||||
TickRateModulation tickingRequest( IGridNode node, int TicksSinceLastCall );
|
||||
}
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
|
||||
package appeng.api.networking.ticking;
|
||||
|
||||
|
||||
import appeng.api.networking.IGridCache;
|
||||
import appeng.api.networking.IGridNode;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* The network tick manager.
|
||||
*
|
||||
*/
|
||||
public interface ITickManager extends IGridCache
|
||||
{
|
||||
@@ -42,26 +42,23 @@ public interface ITickManager extends IGridCache
|
||||
*
|
||||
* @param node gridnode
|
||||
*/
|
||||
boolean alertDevice(IGridNode node);
|
||||
boolean alertDevice( IGridNode node );
|
||||
|
||||
/**
|
||||
*
|
||||
* disables ticking for your device.
|
||||
*
|
||||
* @param node gridnode
|
||||
*
|
||||
* @return if the call was successful.
|
||||
*/
|
||||
boolean sleepDevice(IGridNode node);
|
||||
boolean sleepDevice( IGridNode node );
|
||||
|
||||
/**
|
||||
*
|
||||
* enables ticking for your device, undoes a sleepDevice call.
|
||||
*
|
||||
* @param node gridnode
|
||||
*
|
||||
* @return if the call was successful.
|
||||
*/
|
||||
boolean wakeDevice(IGridNode node);
|
||||
|
||||
boolean wakeDevice( IGridNode node );
|
||||
}
|
||||
|
||||
@@ -23,10 +23,9 @@
|
||||
|
||||
package appeng.api.networking.ticking;
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
* Describes how your tiles ticking is executed.
|
||||
*
|
||||
*/
|
||||
public class TickingRequest
|
||||
{
|
||||
@@ -37,7 +36,6 @@ public class TickingRequest
|
||||
* Valid Values are : 1+
|
||||
*
|
||||
* Suggested is 5-20
|
||||
*
|
||||
*/
|
||||
public final int minTickRate;
|
||||
|
||||
@@ -48,30 +46,25 @@ public class TickingRequest
|
||||
* Valid Values are 1+
|
||||
*
|
||||
* Suggested is 20-40
|
||||
*
|
||||
*/
|
||||
public final int maxTickRate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Determines the current expected state of your node, if your node expects
|
||||
* to be sleeping, then return true.
|
||||
*
|
||||
*/
|
||||
public final boolean isSleeping;
|
||||
|
||||
/**
|
||||
*
|
||||
* True only if you call {@link ITickManager}.alertDevice( IGridNode );
|
||||
*
|
||||
*/
|
||||
public final boolean canBeAlerted;
|
||||
|
||||
public TickingRequest(int min, int max, boolean sleep, boolean alertable) {
|
||||
public TickingRequest( int min, int max, boolean sleep, boolean alertable )
|
||||
{
|
||||
this.minTickRate = min;
|
||||
this.maxTickRate = max;
|
||||
this.isSleeping = sleep;
|
||||
this.canBeAlerted = alertable;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ public enum CableRenderMode
|
||||
public final boolean transparentFacades;
|
||||
public final boolean opaqueFacades;
|
||||
|
||||
CableRenderMode( boolean hideFacades )
|
||||
CableRenderMode( boolean hideFacades )
|
||||
{
|
||||
this.transparentFacades = hideFacades;
|
||||
this.opaqueFacades = !hideFacades;
|
||||
|
||||
@@ -31,6 +31,7 @@ import io.netty.buffer.ByteBuf;
|
||||
import net.minecraft.nbt.NBTTagCompound;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
/**
|
||||
* Used Internally.
|
||||
*
|
||||
@@ -44,17 +45,17 @@ public interface IFacadeContainer
|
||||
*
|
||||
* @return true if the facade as successfully added.
|
||||
*/
|
||||
boolean addFacade(IFacadePart a);
|
||||
boolean addFacade( IFacadePart a );
|
||||
|
||||
/**
|
||||
* Removed the facade on the given side, or does nothing.
|
||||
*/
|
||||
void removeFacade(IPartHost host, ForgeDirection side);
|
||||
void removeFacade( IPartHost host, ForgeDirection side );
|
||||
|
||||
/**
|
||||
* @return the {@link IFacadePart} for a given side, or null.
|
||||
*/
|
||||
IFacadePart getFacade(ForgeDirection s);
|
||||
IFacadePart getFacade( ForgeDirection s );
|
||||
|
||||
/**
|
||||
* rotate the facades left.
|
||||
@@ -66,35 +67,37 @@ public interface IFacadeContainer
|
||||
*
|
||||
* @param data to be written data
|
||||
*/
|
||||
void writeToNBT(NBTTagCompound data);
|
||||
void writeToNBT( NBTTagCompound data );
|
||||
|
||||
/**
|
||||
* read from stream
|
||||
*
|
||||
* @param data to be read data
|
||||
*
|
||||
* @return true if it was readable
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
boolean readFromStream(ByteBuf data) throws IOException;
|
||||
boolean readFromStream( ByteBuf data ) throws IOException;
|
||||
|
||||
/**
|
||||
* read from NBT
|
||||
*
|
||||
* @param data to be read data
|
||||
*/
|
||||
void readFromNBT(NBTTagCompound data);
|
||||
void readFromNBT( NBTTagCompound data );
|
||||
|
||||
/**
|
||||
* write to stream
|
||||
*
|
||||
* @param data to be written data
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
void writeToStream(ByteBuf data) throws IOException;
|
||||
void writeToStream( ByteBuf data ) throws IOException;
|
||||
|
||||
/**
|
||||
* @return true if there are no facades.
|
||||
*/
|
||||
boolean isEmpty();
|
||||
|
||||
}
|
||||
|
||||
@@ -34,6 +34,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
||||
/**
|
||||
* Used Internally.
|
||||
*
|
||||
@@ -51,24 +52,24 @@ public interface IFacadePart
|
||||
* used to collide, and pick the part
|
||||
*
|
||||
* @param ch collision helper
|
||||
* @param e colliding entity
|
||||
* @param e colliding entity
|
||||
*/
|
||||
void getBoxes(IPartCollisionHelper ch, Entity e);
|
||||
void getBoxes( IPartCollisionHelper ch, Entity e );
|
||||
|
||||
/**
|
||||
* render the part.
|
||||
*
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param instance render helper
|
||||
* @param renderer renderer
|
||||
* @param fc face container
|
||||
* @param busBounds bounding box
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param instance render helper
|
||||
* @param renderer renderer
|
||||
* @param fc face container
|
||||
* @param busBounds bounding box
|
||||
* @param renderStilt if to render stilt
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderStatic(int x, int y, int z, IPartRenderHelper instance, RenderBlocks renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderStatic( int x, int y, int z, IPartRenderHelper instance, RenderBlocks renderer, IFacadeContainer fc, AxisAlignedBB busBounds, boolean renderStilt );
|
||||
|
||||
/**
|
||||
* render the part in inventory.
|
||||
@@ -76,8 +77,8 @@ public interface IFacadePart
|
||||
* @param instance render helper
|
||||
* @param renderer renderer
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderInventory(IPartRenderHelper instance, RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderInventory( IPartRenderHelper instance, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* @return side the facade is in
|
||||
@@ -95,8 +96,7 @@ public interface IFacadePart
|
||||
|
||||
boolean isBC();
|
||||
|
||||
void setThinFacades(boolean useThinFacades);
|
||||
void setThinFacades( boolean useThinFacades );
|
||||
|
||||
boolean isTransparent();
|
||||
|
||||
}
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.parts;
|
||||
|
||||
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
public interface IPartCollisionHelper
|
||||
{
|
||||
|
||||
@@ -40,7 +42,7 @@ public interface IPartCollisionHelper
|
||||
* @param maxY maximal y collision
|
||||
* @param maxZ maximal z collision
|
||||
*/
|
||||
void addBox(double minX, double minY, double minZ, double maxX, double maxY, double maxZ);
|
||||
void addBox( double minX, double minY, double minZ, double maxX, double maxY, double maxZ );
|
||||
|
||||
/**
|
||||
* @return east in world space.
|
||||
@@ -61,5 +63,4 @@ public interface IPartCollisionHelper
|
||||
* @return true if this test is to get the BB Collision information.
|
||||
*/
|
||||
boolean isBBCollision();
|
||||
|
||||
}
|
||||
|
||||
@@ -23,10 +23,12 @@
|
||||
|
||||
package appeng.api.parts;
|
||||
|
||||
|
||||
import net.minecraft.entity.player.EntityPlayer;
|
||||
import net.minecraft.item.ItemStack;
|
||||
import net.minecraft.world.World;
|
||||
|
||||
|
||||
public interface IPartHelper
|
||||
{
|
||||
|
||||
@@ -54,28 +56,29 @@ public interface IPartHelper
|
||||
* implement that interface on a part get implement it.
|
||||
*
|
||||
* @return true on success, false on failure, usually a error will be logged
|
||||
* as well.
|
||||
* as well.
|
||||
*/
|
||||
boolean registerNewLayer(String string, String layerInterface);
|
||||
boolean registerNewLayer( String string, String layerInterface );
|
||||
|
||||
/**
|
||||
* Register IBusItem with renderer
|
||||
*/
|
||||
void setItemBusRenderer(IPartItem i);
|
||||
void setItemBusRenderer( IPartItem i );
|
||||
|
||||
/**
|
||||
* use in use item, to try and place a IBusItem
|
||||
*
|
||||
* @param is ItemStack of an item which implements {@link IPartItem}
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param side side which the part should be on
|
||||
* @param is ItemStack of an item which implements {@link IPartItem}
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param side side which the part should be on
|
||||
* @param player player placing part
|
||||
* @param world part in world
|
||||
* @param world part in world
|
||||
*
|
||||
* @return true if placing was successful
|
||||
*/
|
||||
boolean placeBus(ItemStack is, int x, int y, int z, int side, EntityPlayer player, World world);
|
||||
boolean placeBus( ItemStack is, int x, int y, int z, int side, EntityPlayer player, World world );
|
||||
|
||||
/**
|
||||
* @return the render mode
|
||||
|
||||
@@ -35,6 +35,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import appeng.api.util.AEColor;
|
||||
import appeng.api.util.DimensionalCoord;
|
||||
|
||||
|
||||
/**
|
||||
* Implemented on AE's TileEntity or AE's FMP Part.
|
||||
*
|
||||
@@ -54,28 +55,31 @@ public interface IPartHost
|
||||
*
|
||||
* @param part to be added part
|
||||
* @param side part placed onto side
|
||||
*
|
||||
* @return returns false if the part cannot be added.
|
||||
*/
|
||||
boolean canAddPart(ItemStack part, ForgeDirection side);
|
||||
boolean canAddPart( ItemStack part, ForgeDirection side );
|
||||
|
||||
/**
|
||||
* try to add a new part to the specified side, returns false if it failed to be added.
|
||||
*
|
||||
* @param is new part
|
||||
* @param side onto side
|
||||
* @param is new part
|
||||
* @param side onto side
|
||||
* @param owner with owning player
|
||||
*
|
||||
* @return null if the item failed to add, the side it was placed on other wise ( may different for cables,
|
||||
* {@link ForgeDirection}.UNKNOWN )
|
||||
* {@link ForgeDirection}.UNKNOWN )
|
||||
*/
|
||||
ForgeDirection addPart(ItemStack is, ForgeDirection side, EntityPlayer owner);
|
||||
ForgeDirection addPart( ItemStack is, ForgeDirection side, EntityPlayer owner );
|
||||
|
||||
/**
|
||||
* Get part by side ( center is {@link ForgeDirection}.UNKNOWN )
|
||||
*
|
||||
* @param side side of part
|
||||
*
|
||||
* @return the part located on the specified side, or null if there is no part.
|
||||
*/
|
||||
IPart getPart(ForgeDirection side);
|
||||
IPart getPart( ForgeDirection side );
|
||||
|
||||
/**
|
||||
* removes the part on the side, this doesn't drop it or anything, if you don't do something with it, its just
|
||||
@@ -83,11 +87,10 @@ public interface IPartHost
|
||||
*
|
||||
* if you want to drop the part you must request it prior to removing it.
|
||||
*
|
||||
* @param side side of part
|
||||
* @param suppressUpdate
|
||||
* - used if you need to replace a part's INSTANCE, without really removing it first.
|
||||
* @param side side of part
|
||||
* @param suppressUpdate - used if you need to replace a part's INSTANCE, without really removing it first.
|
||||
*/
|
||||
void removePart(ForgeDirection side, boolean suppressUpdate);
|
||||
void removePart( ForgeDirection side, boolean suppressUpdate );
|
||||
|
||||
/**
|
||||
* something changed, might want to send a packet to clients to update state.
|
||||
@@ -106,7 +109,7 @@ public interface IPartHost
|
||||
|
||||
/**
|
||||
* @return the color of the host type ( this is determined by the middle cable. ) if no cable is present, it returns
|
||||
* {@link AEColor} .Transparent other wise it returns the color of the cable in the center.
|
||||
* {@link AEColor} .Transparent other wise it returns the color of the cable in the center.
|
||||
*/
|
||||
AEColor getColor();
|
||||
|
||||
@@ -120,15 +123,16 @@ public interface IPartHost
|
||||
*
|
||||
* @return returns if microblocks are blocking this cable path.
|
||||
*/
|
||||
boolean isBlocked(ForgeDirection side);
|
||||
boolean isBlocked( ForgeDirection side );
|
||||
|
||||
/**
|
||||
* finds the part located at the position ( pos must be relative, not global )
|
||||
*
|
||||
* @param pos part position
|
||||
*
|
||||
* @return a new SelectedPart, this is never null.
|
||||
*/
|
||||
SelectedPart selectPart(Vec3 pos);
|
||||
SelectedPart selectPart( Vec3 pos );
|
||||
|
||||
/**
|
||||
* can be used by parts to trigger the tile or part to save.
|
||||
@@ -144,9 +148,10 @@ public interface IPartHost
|
||||
* get the redstone state of host on this side, this value is cached internally.
|
||||
*
|
||||
* @param side side of part
|
||||
*
|
||||
* @return true of the part host is receiving redstone from an external source.
|
||||
*/
|
||||
boolean hasRedstone(ForgeDirection side);
|
||||
boolean hasRedstone( ForgeDirection side );
|
||||
|
||||
/**
|
||||
* returns false if this block contains any parts or facades, true other wise.
|
||||
|
||||
@@ -26,8 +26,9 @@ package appeng.api.parts;
|
||||
|
||||
import net.minecraft.item.ItemStack;
|
||||
|
||||
|
||||
//@formatter:off
|
||||
|
||||
|
||||
/**
|
||||
* This is a pretty basic requirement, once you implement the interface, and createPartFromItemStack
|
||||
*
|
||||
@@ -51,7 +52,6 @@ import net.minecraft.item.ItemStack;
|
||||
* }
|
||||
* </code>
|
||||
* </pre>
|
||||
*
|
||||
*/
|
||||
public interface IPartItem
|
||||
{
|
||||
|
||||
@@ -34,6 +34,7 @@ import net.minecraftforge.common.util.ForgeDirection;
|
||||
import cpw.mods.fml.relauncher.Side;
|
||||
import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
|
||||
public interface IPartRenderHelper
|
||||
{
|
||||
|
||||
@@ -49,83 +50,83 @@ public interface IPartRenderHelper
|
||||
* @param maxY maximal y bound
|
||||
* @param maxZ maximal z bound
|
||||
*/
|
||||
void setBounds(float minX, float minY, float minZ, float maxX, float maxY, float maxZ);
|
||||
void setBounds( float minX, float minY, float minZ, float maxX, float maxY, float maxZ );
|
||||
|
||||
/**
|
||||
* static renderer
|
||||
*
|
||||
* render a single face.
|
||||
*
|
||||
* @param x x coord of part
|
||||
* @param y y coord of part
|
||||
* @param z z coord of part
|
||||
* @param ico icon of part
|
||||
* @param face direction its facing
|
||||
* @param x x coord of part
|
||||
* @param y y coord of part
|
||||
* @param z z coord of part
|
||||
* @param ico icon of part
|
||||
* @param face direction its facing
|
||||
* @param renderer renderer of part
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderFace(int x, int y, int z, IIcon ico, ForgeDirection face, RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderFace( int x, int y, int z, IIcon ico, ForgeDirection face, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* static renderer
|
||||
*
|
||||
* render a box with a cut out box in the center.
|
||||
*
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param ico icon of part
|
||||
* @param face face of part
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param ico icon of part
|
||||
* @param face face of part
|
||||
* @param edgeThickness thickness of the edge
|
||||
* @param renderer renderer
|
||||
* @param renderer renderer
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderFaceCutout(int x, int y, int z, IIcon ico, ForgeDirection face, float edgeThickness, RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderFaceCutout( int x, int y, int z, IIcon ico, ForgeDirection face, float edgeThickness, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* static renderer
|
||||
*
|
||||
* render a block of specified bounds.
|
||||
*
|
||||
* @param x x pos of block
|
||||
* @param y y pos of block
|
||||
* @param z z pos of block
|
||||
* @param x x pos of block
|
||||
* @param y y pos of block
|
||||
* @param z z pos of block
|
||||
* @param renderer renderer
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderBlock(int x, int y, int z, RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderBlock( int x, int y, int z, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* render a single face in inventory renderer.
|
||||
*
|
||||
* @param IIcon icon of part
|
||||
* @param IIcon icon of part
|
||||
* @param direction face of part
|
||||
* @param renderer renderer
|
||||
* @param renderer renderer
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderInventoryFace(IIcon IIcon, ForgeDirection direction, RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderInventoryFace( IIcon IIcon, ForgeDirection direction, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* render a box in inventory renderer.
|
||||
*
|
||||
* @param renderer renderer
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
void renderInventoryBox(RenderBlocks renderer);
|
||||
@SideOnly( Side.CLIENT )
|
||||
void renderInventoryBox( RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* inventory, and static renderer.
|
||||
*
|
||||
* set unique icons for each side of the block.
|
||||
*
|
||||
* @param down down face
|
||||
* @param up up face
|
||||
* @param down down face
|
||||
* @param up up face
|
||||
* @param north north face
|
||||
* @param south south face
|
||||
* @param west west face
|
||||
* @param east east face
|
||||
* @param west west face
|
||||
* @param east east face
|
||||
*/
|
||||
void setTexture(IIcon down, IIcon up, IIcon north, IIcon south, IIcon west, IIcon east);
|
||||
void setTexture( IIcon down, IIcon up, IIcon north, IIcon south, IIcon west, IIcon east );
|
||||
|
||||
/**
|
||||
* inventory, and static renderer.
|
||||
@@ -134,14 +135,14 @@ public interface IPartRenderHelper
|
||||
*
|
||||
* @param ico to be set icon
|
||||
*/
|
||||
void setTexture(IIcon ico);
|
||||
void setTexture( IIcon ico );
|
||||
|
||||
/**
|
||||
* configure the color multiplier for the inventory renderer.
|
||||
*
|
||||
* @param whiteVariant color multiplier
|
||||
*/
|
||||
void setInvColor(int whiteVariant);
|
||||
void setInvColor( int whiteVariant );
|
||||
|
||||
/**
|
||||
* @return the block used for rendering, might need it for some reason...
|
||||
@@ -169,7 +170,7 @@ public interface IPartRenderHelper
|
||||
*
|
||||
* Only worth it if you render more then 1 block.
|
||||
*/
|
||||
ISimplifiedBundle useSimplifiedRendering(int x, int y, int z, IBoxProvider p, ISimplifiedBundle sim);
|
||||
ISimplifiedBundle useSimplifiedRendering( int x, int y, int z, IBoxProvider p, ISimplifiedBundle sim );
|
||||
|
||||
/**
|
||||
* disables, useSimplifiedRendering.
|
||||
@@ -179,25 +180,24 @@ public interface IPartRenderHelper
|
||||
/**
|
||||
* render a block using the current renderer state.
|
||||
*
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param x x pos of part
|
||||
* @param y y pos of part
|
||||
* @param z z pos of part
|
||||
* @param renderer renderer of part
|
||||
*/
|
||||
void renderBlockCurrentBounds(int x, int y, int z, RenderBlocks renderer);
|
||||
void renderBlockCurrentBounds( int x, int y, int z, RenderBlocks renderer );
|
||||
|
||||
/**
|
||||
* allow you to enable your part to render during the alpha pass or the standard pass.
|
||||
*
|
||||
* @param pass render pass
|
||||
*/
|
||||
void renderForPass(int pass);
|
||||
void renderForPass( int pass );
|
||||
|
||||
/**
|
||||
* Set which faces to render, remember to set back to ALL when you are done.
|
||||
*
|
||||
* @param complementOf sides to render
|
||||
*/
|
||||
void setFacesToRender(EnumSet<ForgeDirection> complementOf);
|
||||
|
||||
void setFacesToRender( EnumSet<ForgeDirection> complementOf );
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import java.util.Set;
|
||||
import net.minecraft.tileentity.TileEntity;
|
||||
import net.minecraftforge.common.util.ForgeDirection;
|
||||
|
||||
|
||||
/**
|
||||
* All Layers must extends this, this get part implementation is provided to interface with the parts, however a real
|
||||
* implementation will be used at runtime.
|
||||
@@ -42,9 +43,10 @@ public abstract class LayerBase extends TileEntity // implements IPartHost
|
||||
* This Method looks silly, that is because its not used at runtime, a real implementation will be used instead.
|
||||
*
|
||||
* @param side side of part
|
||||
*
|
||||
* @return the part for the requested side.
|
||||
*/
|
||||
public IPart getPart(ForgeDirection side)
|
||||
public IPart getPart( ForgeDirection side )
|
||||
{
|
||||
return null; // place holder.
|
||||
}
|
||||
@@ -75,5 +77,4 @@ public abstract class LayerBase extends TileEntity // implements IPartHost
|
||||
{
|
||||
// something!
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -30,14 +30,16 @@ import appeng.api.exceptions.MissingIngredientError;
|
||||
import appeng.api.exceptions.RecipeError;
|
||||
import appeng.api.exceptions.RegistrationError;
|
||||
|
||||
|
||||
public interface ICraftHandler
|
||||
{
|
||||
|
||||
/**
|
||||
* Called when your recipe handler receives a newly parsed list of inputs/outputs.
|
||||
*
|
||||
* @param input parsed inputs
|
||||
* @param input parsed inputs
|
||||
* @param output parsed outputs
|
||||
*
|
||||
* @throws RecipeError
|
||||
*/
|
||||
void setup( List<List<IIngredient>> input, List<List<IIngredient>> output ) throws RecipeError;
|
||||
@@ -49,5 +51,4 @@ public interface ICraftHandler
|
||||
* @throws MissingIngredientError
|
||||
*/
|
||||
void register() throws RegistrationError, MissingIngredientError;
|
||||
|
||||
}
|
||||
|
||||
@@ -29,7 +29,9 @@ import net.minecraft.item.ItemStack;
|
||||
import appeng.api.exceptions.MissingIngredientError;
|
||||
import appeng.api.exceptions.RegistrationError;
|
||||
|
||||
public interface IIngredient {
|
||||
|
||||
public interface IIngredient
|
||||
{
|
||||
|
||||
/**
|
||||
* Acquire a single input stack for the current recipe, if more then one ItemStack is possible a
|
||||
@@ -47,6 +49,7 @@ public interface IIngredient {
|
||||
* multiple inputs per slot.
|
||||
*
|
||||
* @return an array of ItemStacks for the recipe handler.
|
||||
*
|
||||
* @throws RegistrationError
|
||||
* @throws MissingIngredientError
|
||||
*/
|
||||
@@ -81,9 +84,9 @@ public interface IIngredient {
|
||||
|
||||
/**
|
||||
* Bakes the lists in for faster runtime look-ups.
|
||||
*
|
||||
* @throws MissingIngredientError
|
||||
* @throws RegistrationError
|
||||
*/
|
||||
void bake() throws RegistrationError, MissingIngredientError;
|
||||
|
||||
}
|
||||
|
||||
@@ -30,9 +30,9 @@ import net.minecraft.nbt.NBTTagCompound;
|
||||
public class ResolverResult
|
||||
{
|
||||
|
||||
final public String itemName;
|
||||
final public int damageValue;
|
||||
final public NBTTagCompound compound;
|
||||
public final String itemName;
|
||||
public final int damageValue;
|
||||
public final NBTTagCompound compound;
|
||||
|
||||
public ResolverResult( String name, int damage )
|
||||
{
|
||||
|
||||
@@ -33,6 +33,7 @@ import cpw.mods.fml.relauncher.SideOnly;
|
||||
|
||||
import appeng.api.implementations.tiles.IChestOrDrive;
|
||||
|
||||
|
||||
/**
|
||||
* Registration record for {@link ICellRegistry}
|
||||
*/
|
||||
@@ -44,63 +45,60 @@ public interface ICellHandler
|
||||
* request a handler )
|
||||
*
|
||||
* @param is to be checked item
|
||||
*
|
||||
* @return return true, if getCellHandler will not return null.
|
||||
*/
|
||||
boolean isCell(ItemStack is);
|
||||
boolean isCell( ItemStack is );
|
||||
|
||||
/**
|
||||
* If you cannot handle the provided item, return null
|
||||
*
|
||||
* @param is
|
||||
* a storage cell item.
|
||||
* @param host
|
||||
* anytime the contents of your storage cell changes it should use this to request a save, please
|
||||
* note, this value can be null.
|
||||
* @param channel
|
||||
* the storage channel requested.
|
||||
* @param is a storage cell item.
|
||||
* @param host anytime the contents of your storage cell changes it should use this to request a save, please
|
||||
* note, this value can be null.
|
||||
* @param channel the storage channel requested.
|
||||
*
|
||||
* @return a new IMEHandler for the provided item
|
||||
*/
|
||||
IMEInventoryHandler getCellInventory(ItemStack is, ISaveProvider host, StorageChannel channel);
|
||||
IMEInventoryHandler getCellInventory( ItemStack is, ISaveProvider host, StorageChannel channel );
|
||||
|
||||
/**
|
||||
* @return the ME Chest texture for light pixels this storage cell type, should be 10x10 with 3px of transparent
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SideOnly( Side.CLIENT )
|
||||
IIcon getTopTexture_Light();
|
||||
|
||||
/**
|
||||
* @return the ME Chest texture for medium pixels this storage cell type, should be 10x10 with 3px of transparent
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SideOnly( Side.CLIENT )
|
||||
IIcon getTopTexture_Medium();
|
||||
|
||||
/**
|
||||
* @return the ME Chest texture for dark pixels this storage cell type, should be 10x10 with 3px of transparent
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
* padding on a 16x16 texture, null is valid if your cell cannot be used in the ME Chest. refer to the
|
||||
* assets for examples.
|
||||
*/
|
||||
@SideOnly(Side.CLIENT)
|
||||
@SideOnly( Side.CLIENT )
|
||||
IIcon getTopTexture_Dark();
|
||||
|
||||
/**
|
||||
*
|
||||
* Called when the storage cell is planed in an ME Chest and the user tries to open the terminal side, if your item
|
||||
* is not available via ME Chests simply tell the user they can't use it, or something, other wise you should open
|
||||
* your gui and display the cell to the user.
|
||||
*
|
||||
* @param player player opening chest gui
|
||||
* @param chest to be opened chest
|
||||
* @param player player opening chest gui
|
||||
* @param chest to be opened chest
|
||||
* @param cellHandler cell handler
|
||||
* @param inv inventory handler
|
||||
* @param is item
|
||||
* @param chan storage channel
|
||||
* @param inv inventory handler
|
||||
* @param is item
|
||||
* @param chan storage channel
|
||||
*/
|
||||
void openChestGui(EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan);
|
||||
void openChestGui( EntityPlayer player, IChestOrDrive chest, ICellHandler cellHandler, IMEInventoryHandler inv, ItemStack is, StorageChannel chan );
|
||||
|
||||
/**
|
||||
* 0 - cell is missing.
|
||||
@@ -111,16 +109,15 @@ public interface ICellHandler
|
||||
*
|
||||
* 3 - red, ( usually means the cell is 100% full )
|
||||
*
|
||||
* @param is the cell item. ( use the handler for any details you can )
|
||||
* @param is the cell item. ( use the handler for any details you can )
|
||||
* @param handler the handler for the cell is provides for reference, you can cast this to your handler.
|
||||
*
|
||||
* @return get the status of the cell based on its contents.
|
||||
*/
|
||||
int getStatusForCell(ItemStack is, IMEInventory handler);
|
||||
int getStatusForCell( ItemStack is, IMEInventory handler );
|
||||
|
||||
/**
|
||||
* @return the ae/t to drain for this storage cell inside a chest/drive.
|
||||
*/
|
||||
double cellIdleDrain(ItemStack is, IMEInventory handler);
|
||||
|
||||
double cellIdleDrain( ItemStack is, IMEInventory handler );
|
||||
}
|
||||
@@ -23,8 +23,10 @@
|
||||
|
||||
package appeng.api.storage;
|
||||
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* Allows you to provide cells via non IGridHosts directly to the storage system, drives, and similar features should go
|
||||
* though {@link ICellContainer} and be automatically handled by the storage system.
|
||||
@@ -40,7 +42,7 @@ public interface ICellProvider
|
||||
*
|
||||
* @return a valid list of handlers, NEVER NULL
|
||||
*/
|
||||
List<IMEInventoryHandler> getCellArray(StorageChannel channel);
|
||||
List<IMEInventoryHandler> getCellArray( StorageChannel channel );
|
||||
|
||||
/**
|
||||
* the storage's priority.
|
||||
@@ -48,5 +50,4 @@ public interface ICellProvider
|
||||
* Positive and negative are supported
|
||||
*/
|
||||
int getPriority();
|
||||
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user