Don't use the cached knowledge provider for ProjectE

This commit is contained in:
raoulvdberge
2017-09-01 11:56:27 +02:00
parent faa8aa717c
commit 4be5ac51d2
2 changed files with 26 additions and 19 deletions

View File

@@ -34,7 +34,7 @@ public interface ISoldererRecipe {
int getDuration(); int getDuration();
/** /**
* @return whether this recipe can be used to calculate the EMC value of the resulting item in the Project E mod * @return whether this recipe can be used to calculate the EMC value of the resulting item in the ProjectE mod
*/ */
default boolean isProjectERecipe() { default boolean isProjectERecipe() {
return true; return true;

View File

@@ -35,10 +35,13 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
if (externalStorage.getOwner() != null) { if (externalStorage.getOwner() != null) {
IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner()); IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner());
// @todo: https://github.com/sinkillerj/ProjectE/issues/1591
if (!provider.getClass().getName().equals("moze_intel.projecte.impl.TransmutationOffline$1")) {
for (ItemStack knowledge : provider.getKnowledge()) { for (ItemStack knowledge : provider.getKnowledge()) {
stored.add(ItemHandlerHelper.copyStackWithSize(knowledge, (int) Math.floor(provider.getEmc() / (double) ProjectEAPI.getEMCProxy().getValue(knowledge)))); stored.add(ItemHandlerHelper.copyStackWithSize(knowledge, (int) Math.floor(provider.getEmc() / (double) ProjectEAPI.getEMCProxy().getValue(knowledge))));
} }
} }
}
return stored; return stored;
} }
@@ -51,6 +54,8 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
if (externalStorage.getOwner() != null) { if (externalStorage.getOwner() != null) {
IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner()); IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner());
// @todo: https://github.com/sinkillerj/ProjectE/issues/1591
if (!provider.getClass().getName().equals("moze_intel.projecte.impl.TransmutationOffline$1")) {
int emc = ProjectEAPI.getEMCProxy().getValue(actualStack) * size; int emc = ProjectEAPI.getEMCProxy().getValue(actualStack) * size;
if (emc == 0) { if (emc == 0) {
@@ -73,6 +78,7 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
return null; return null;
} }
}
return actualStack; return actualStack;
} }
@@ -83,7 +89,8 @@ public class StorageItemTransmutationTable extends StorageItemExternal {
if (externalStorage.getOwner() != null) { if (externalStorage.getOwner() != null) {
IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner()); IKnowledgeProvider provider = ProjectEAPI.getTransmutationProxy().getKnowledgeProviderFor(externalStorage.getOwner());
if (provider.hasKnowledge(stack)) { // @todo: https://github.com/sinkillerj/ProjectE/issues/1591
if (!provider.getClass().getName().equals("moze_intel.projecte.impl.TransmutationOffline$1") && provider.hasKnowledge(stack)) {
double singleEmc = ProjectEAPI.getEMCProxy().getValue(stack); double singleEmc = ProjectEAPI.getEMCProxy().getValue(stack);
int maxExtract = (int) Math.floor(provider.getEmc() / singleEmc); int maxExtract = (int) Math.floor(provider.getEmc() / singleEmc);