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

@@ -1,5 +1,8 @@
# Refined Storage Changelog # Refined Storage Changelog
### 1.5.13
- Fixed Wireless Fluid Grid not using up energy (raoulvdberge)
### 1.5.12 ### 1.5.12
- The Network Transmitter now uses 1 FE/t per block instead of 4 FE/t (raoulvdberge) - The Network Transmitter now uses 1 FE/t per block instead of 4 FE/t (raoulvdberge)
- Added additional API for grids (raoulvdberge) - Added additional API for grids (raoulvdberge)

View File

@@ -26,4 +26,6 @@ public interface INetworkItem {
* @return true if the network item can be opened, false otherwise * @return true if the network item can be opened, false otherwise
*/ */
boolean onOpen(INetwork network, EntityPlayer player, World controllerWorld, EnumHand hand); 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.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IFluidGridHandler; 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.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
@@ -63,6 +65,12 @@ public class FluidGridHandler implements IFluidGridHandler {
player.inventory.setItemStack(fluidHandler.getContainer()); player.inventory.setItemStack(fluidHandler.getContainer());
player.updateHeldItem(); 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); 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(); 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.INetwork;
import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler; import com.raoulvdberge.refinedstorage.api.network.grid.handler.IItemGridHandler;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; 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.network.security.Permission;
import com.raoulvdberge.refinedstorage.api.util.IStackList; import com.raoulvdberge.refinedstorage.api.util.IStackList;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.apiimpl.autocrafting.task.CraftingTask; 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.MessageGridCraftingPreviewResponse;
import com.raoulvdberge.refinedstorage.network.MessageGridCraftingStartResponse; import com.raoulvdberge.refinedstorage.network.MessageGridCraftingStartResponse;
import com.raoulvdberge.refinedstorage.util.StackUtils; import com.raoulvdberge.refinedstorage.util.StackUtils;
@@ -94,8 +93,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { if (networkItem != null) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getExtractUsage()); networkItem.onAction(NetworkItemAction.ITEM_EXTRACTED);
} }
} }
} }
@@ -110,8 +109,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { if (networkItem != null) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage()); networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
} }
return remainder; return remainder;
@@ -144,8 +143,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessGrid) { if (networkItem != null) {
((NetworkItemWirelessGrid) networkItem).drainEnergy(((NetworkItemWirelessGrid) networkItem).getInsertUsage()); networkItem.onAction(NetworkItemAction.ITEM_INSERTED);
} }
} }
@@ -226,8 +225,8 @@ public class ItemGridHandler implements IItemGridHandler {
INetworkItem networkItem = network.getNetworkItemHandler().getItem(player); INetworkItem networkItem = network.getNetworkItemHandler().getItem(player);
if (networkItem != null && networkItem instanceof NetworkItemWirelessCraftingMonitor) { if (networkItem != null) {
((NetworkItemWirelessCraftingMonitor) networkItem).drainEnergy(id == -1 ? RS.INSTANCE.config.wirelessCraftingMonitorCancelAllUsage : RS.INSTANCE.config.wirelessCraftingMonitorCancelUsage); 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.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; 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.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor; import com.raoulvdberge.refinedstorage.item.ItemWirelessCraftingMonitor;
import com.raoulvdberge.refinedstorage.util.WorldUtils; import com.raoulvdberge.refinedstorage.util.WorldUtils;
@@ -53,7 +54,19 @@ public class NetworkItemWirelessCraftingMonitor implements INetworkItem {
return true; 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) { if (RS.INSTANCE.config.wirelessCraftingMonitorUsesEnergy && stack.getItemDamage() != ItemWirelessCraftingMonitor.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); 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.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; 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.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessFluidGrid;
@@ -54,7 +55,19 @@ public class NetworkItemWirelessFluidGrid implements INetworkItem {
return true; 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) { if (RS.INSTANCE.config.wirelessFluidGridUsesEnergy && stack.getItemDamage() != ItemWirelessFluidGrid.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); 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.INetwork;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem; import com.raoulvdberge.refinedstorage.api.network.item.INetworkItem;
import com.raoulvdberge.refinedstorage.api.network.item.INetworkItemHandler; 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.api.network.security.Permission;
import com.raoulvdberge.refinedstorage.apiimpl.API; import com.raoulvdberge.refinedstorage.apiimpl.API;
import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid; import com.raoulvdberge.refinedstorage.item.ItemWirelessGrid;
@@ -18,9 +19,9 @@ import net.minecraftforge.energy.CapabilityEnergy;
import net.minecraftforge.energy.IEnergyStorage; import net.minecraftforge.energy.IEnergyStorage;
public class NetworkItemWirelessGrid implements INetworkItem { public class NetworkItemWirelessGrid implements INetworkItem {
protected INetworkItemHandler handler; private INetworkItemHandler handler;
private EntityPlayer player; private EntityPlayer player;
protected ItemStack stack; private ItemStack stack;
public NetworkItemWirelessGrid(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) { public NetworkItemWirelessGrid(INetworkItemHandler handler, EntityPlayer player, ItemStack stack) {
this.handler = handler; this.handler = handler;
@@ -54,7 +55,19 @@ public class NetworkItemWirelessGrid implements INetworkItem {
return true; 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) { if (RS.INSTANCE.config.wirelessGridUsesEnergy && stack.getItemDamage() != ItemWirelessGrid.TYPE_CREATIVE) {
IEnergyStorage energyStorage = stack.getCapability(CapabilityEnergy.ENERGY, null); 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;
}
} }