Cleanup of wireless energy usage, fixed wireless fluid grid not using up energy

This commit is contained in:
raoulvdberge
2017-07-18 13:46:07 +02:00
parent c9dbd64454
commit 99c6205cfd
8 changed files with 82 additions and 23 deletions

View File

@@ -26,4 +26,6 @@ public interface INetworkItem {
* @return true if the network item can be opened, false otherwise
*/
boolean onOpen(INetwork network, EntityPlayer player, World controllerWorld, EnumHand hand);
void onAction(NetworkItemAction action);
}

View File

@@ -0,0 +1,10 @@
package com.raoulvdberge.refinedstorage.api.network.item;
public enum NetworkItemAction {
ITEM_INSERTED,
ITEM_EXTRACTED,
FLUID_INSERTED,
FLUID_EXTRACTED,
CRAFTING_TASK_CANCELLED,
CRAFTING_TASK_ALL_CANCELLED
}

View File

@@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.apiimpl.network.grid.handler;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.StackUtils;
@@ -63,6 +65,12 @@ public class FluidGridHandler implements IFluidGridHandler {
player.inventory.setItemStack(fluidHandler.getContainer());
player.updateHeldItem();
}
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null) {
networkItem.onAction(NetworkItemAction.FLUID_EXTRACTED);
}
}
}
}
@@ -81,6 +89,12 @@ public class FluidGridHandler implements IFluidGridHandler {
network.insertFluid(result.getValue(), result.getValue().amount, false);
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null) {
networkItem.onAction(NetworkItemAction.FLUID_INSERTED);
}
return result.getLeft();
}

View File

@@ -7,12 +7,11 @@ import com.raoulvdberge.refinedstorage.api.autocrafting.task.ICraftingTask;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.api.util.IStackList;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.apiimpl.network.item.NetworkItemWirelessGrid;
import com.raoulvdberge.refinedstorage.network.MessageGridCraftingPreviewResponse;
import com.raoulvdberge.refinedstorage.network.MessageGridCraftingStartResponse;
import com.raoulvdberge.refinedstorage.util.StackUtils;
@@ -94,8 +93,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getExtractUsage());
if (networkItem != null) {
networkItem.onAction(NetworkItemAction.ITEM_EXTRACTED);
}
}
}
@@ -110,8 +109,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage());
if (networkItem != null) {
networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
}
return remainder;
@@ -144,8 +143,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage());
if (networkItem != null) {
networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
}
}
@@ -226,8 +225,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessCraftingMonitor) {
((NetworkItemWirelessCraftingMonitor) networkItem).drainEnergy(id == -1 ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
if (networkItem != null) {
networkItem.onAction(id == -1 ? NetworkItemAction.CRAFTING_TASK_ALL_CANCELLED : NetworkItemAction.CRAFTING_TASK_CANCELLED);
}
}
}

View File

@@ -5,6 +5,7 @@ import com.raoulvdberge.refinedstorage.RSGui;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.util.WorldUtils;
@@ -53,7 +54,19 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
return true;
}
public void drainEnergy(int energy) {
@Override
public void onAction(NetworkItemAction action) {
switch (action) {
case CRAFTING_TASK_CANCELLED:
drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage);
break;
case CRAFTING_TASK_ALL_CANCELLED:
drainEnergy(RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage);
break;
}
}
private void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);

View File

@@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
@@ -54,7 +55,19 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
return true;
}
public void drainEnergy(int energy) {
@Override
public void onAction(NetworkItemAction action) {
switch (action) {
case FLUID_INSERTED:
drainEnergy(RS.INSTANCE.config.wirelessFluidGridInsertUsage);
break;
case FLUID_EXTRACTED:
drainEnergy(RS.INSTANCE.config.wirelessFluidGridExtractUsage);
break;
}
}
private void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemWirelessFluidGrid.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);

View File

@@ -4,6 +4,7 @@ import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.api.network.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler;
import com.raoulvdberge.refinedstorage.api.network.item.NetworkItemAction;
import com.raoulvdberge.refinedstorage.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
@@ -18,9 +19,9 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessGrid implements INetworkItem {
protected INetworkItemHandler handler;
private INetworkItemHandler handler;
private EntityPlayer player;
protected ItemStack stack;
private ItemStack stack;
public NetworkItemWirelessGrid(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
this.handler = handler;
@@ -54,7 +55,19 @@ public class NetworkItemWirelessGrid implements INetworkItem {
return true;
}
public void drainEnergy(int energy) {
@Override
public void onAction(NetworkItemAction action) {
switch (action) {
case ITEM_INSERTED:
drainEnergy(RS.INSTANCE.config.wirelessGridInsertUsage);
break;
case ITEM_EXTRACTED:
drainEnergy(RS.INSTANCE.config.wirelessGridExtractUsage);
break;
}
}
private void drainEnergy(int energy) {
if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null);
@@ -67,12 +80,4 @@ public class NetworkItemWirelessGrid implements INetworkItem {
}
}
}
public int getInsertUsage() {
return RS.INSTANCE.config.wirelessGridInsertUsage;
}
public int getExtractUsage() {
return RS.INSTANCE.config.wirelessGridExtractUsage;
}
}