Added Clear and Partition Based on contents to Storage Bus.
This commit is contained in:
parent
459239bfba
commit
cbe41337ed
3 changed files with 81 additions and 15 deletions
|
@ -8,6 +8,7 @@ import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import org.lwjgl.input.Mouse;
|
import org.lwjgl.input.Mouse;
|
||||||
|
|
||||||
import appeng.api.config.AccessRestriction;
|
import appeng.api.config.AccessRestriction;
|
||||||
|
import appeng.api.config.ActionItems;
|
||||||
import appeng.api.config.FuzzyMode;
|
import appeng.api.config.FuzzyMode;
|
||||||
import appeng.api.config.Settings;
|
import appeng.api.config.Settings;
|
||||||
import appeng.client.gui.widgets.GuiImgButton;
|
import appeng.client.gui.widgets.GuiImgButton;
|
||||||
|
@ -19,6 +20,7 @@ import appeng.core.sync.GuiBridge;
|
||||||
import appeng.core.sync.network.NetworkHandler;
|
import appeng.core.sync.network.NetworkHandler;
|
||||||
import appeng.core.sync.packets.PacketConfigButton;
|
import appeng.core.sync.packets.PacketConfigButton;
|
||||||
import appeng.core.sync.packets.PacketSwitchGuis;
|
import appeng.core.sync.packets.PacketSwitchGuis;
|
||||||
|
import appeng.core.sync.packets.PacketValueConfig;
|
||||||
import appeng.parts.misc.PartStorageBus;
|
import appeng.parts.misc.PartStorageBus;
|
||||||
|
|
||||||
public class GuiStorageBus extends GuiUpgradeable
|
public class GuiStorageBus extends GuiUpgradeable
|
||||||
|
@ -26,6 +28,8 @@ public class GuiStorageBus extends GuiUpgradeable
|
||||||
|
|
||||||
GuiImgButton rwMode;
|
GuiImgButton rwMode;
|
||||||
GuiTabButton priority;
|
GuiTabButton priority;
|
||||||
|
GuiImgButton partition;
|
||||||
|
GuiImgButton clear;
|
||||||
|
|
||||||
public GuiStorageBus(InventoryPlayer inventoryPlayer, PartStorageBus te) {
|
public GuiStorageBus(InventoryPlayer inventoryPlayer, PartStorageBus te) {
|
||||||
super( new ContainerStorageBus( inventoryPlayer, te ) );
|
super( new ContainerStorageBus( inventoryPlayer, te ) );
|
||||||
|
@ -54,13 +58,17 @@ public class GuiStorageBus extends GuiUpgradeable
|
||||||
@Override
|
@Override
|
||||||
protected void addButtons()
|
protected void addButtons()
|
||||||
{
|
{
|
||||||
fuzzyMode = new GuiImgButton( this.guiLeft - 18, guiTop + 28, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
|
clear = new GuiImgButton( this.guiLeft - 18, guiTop + 8, Settings.ACTIONS, ActionItems.CLOSE );
|
||||||
rwMode = new GuiImgButton( this.guiLeft - 18, guiTop + 8, Settings.ACCESS, AccessRestriction.READ_WRITE );
|
partition = new GuiImgButton( this.guiLeft - 18, guiTop + 28, Settings.ACTIONS, ActionItems.WRENCH );
|
||||||
|
rwMode = new GuiImgButton( this.guiLeft - 18, guiTop + 48, Settings.ACCESS, AccessRestriction.READ_WRITE );
|
||||||
|
fuzzyMode = new GuiImgButton( this.guiLeft - 18, guiTop + 68, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
|
||||||
|
|
||||||
buttonList.add( priority = new GuiTabButton( this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender ) );
|
buttonList.add( priority = new GuiTabButton( this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender ) );
|
||||||
|
|
||||||
buttonList.add( fuzzyMode );
|
buttonList.add( fuzzyMode );
|
||||||
buttonList.add( rwMode );
|
buttonList.add( rwMode );
|
||||||
|
buttonList.add( partition );
|
||||||
|
buttonList.add( clear );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -70,23 +78,21 @@ public class GuiStorageBus extends GuiUpgradeable
|
||||||
|
|
||||||
boolean backwards = Mouse.isButtonDown( 1 );
|
boolean backwards = Mouse.isButtonDown( 1 );
|
||||||
|
|
||||||
if ( btn == priority )
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
|
||||||
}
|
|
||||||
catch (IOException e)
|
|
||||||
{
|
|
||||||
AELog.error( e );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
if ( btn == fuzzyMode )
|
if ( btn == partition )
|
||||||
|
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Partition" ) );
|
||||||
|
|
||||||
|
else if ( btn == clear )
|
||||||
|
NetworkHandler.instance.sendToServer( new PacketValueConfig( "StorageBus.Action", "Clear" ) );
|
||||||
|
|
||||||
|
else if ( btn == priority )
|
||||||
|
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_PRIORITY ) );
|
||||||
|
|
||||||
|
else if ( btn == fuzzyMode )
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( fuzzyMode.getSetting(), backwards ) );
|
NetworkHandler.instance.sendToServer( new PacketConfigButton( fuzzyMode.getSetting(), backwards ) );
|
||||||
|
|
||||||
if ( btn == rwMode )
|
else if ( btn == rwMode )
|
||||||
NetworkHandler.instance.sendToServer( new PacketConfigButton( rwMode.getSetting(), backwards ) );
|
NetworkHandler.instance.sendToServer( new PacketConfigButton( rwMode.getSetting(), backwards ) );
|
||||||
}
|
}
|
||||||
catch (IOException e)
|
catch (IOException e)
|
||||||
|
|
|
@ -1,19 +1,27 @@
|
||||||
package appeng.container.implementations;
|
package appeng.container.implementations;
|
||||||
|
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
import net.minecraft.entity.player.InventoryPlayer;
|
import net.minecraft.entity.player.InventoryPlayer;
|
||||||
import net.minecraft.inventory.ICrafting;
|
import net.minecraft.inventory.ICrafting;
|
||||||
import net.minecraft.inventory.IInventory;
|
import net.minecraft.inventory.IInventory;
|
||||||
|
import net.minecraft.item.ItemStack;
|
||||||
|
import appeng.api.AEApi;
|
||||||
import appeng.api.config.AccessRestriction;
|
import appeng.api.config.AccessRestriction;
|
||||||
import appeng.api.config.FuzzyMode;
|
import appeng.api.config.FuzzyMode;
|
||||||
import appeng.api.config.SecurityPermissions;
|
import appeng.api.config.SecurityPermissions;
|
||||||
import appeng.api.config.Settings;
|
import appeng.api.config.Settings;
|
||||||
import appeng.api.config.Upgrades;
|
import appeng.api.config.Upgrades;
|
||||||
|
import appeng.api.storage.IMEInventory;
|
||||||
|
import appeng.api.storage.data.IAEItemStack;
|
||||||
|
import appeng.api.storage.data.IItemList;
|
||||||
import appeng.container.slot.OptionalSlotFakeTypeOnly;
|
import appeng.container.slot.OptionalSlotFakeTypeOnly;
|
||||||
import appeng.container.slot.SlotFakeTypeOnly;
|
import appeng.container.slot.SlotFakeTypeOnly;
|
||||||
import appeng.container.slot.SlotRestrictedInput;
|
import appeng.container.slot.SlotRestrictedInput;
|
||||||
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
|
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
|
||||||
import appeng.parts.misc.PartStorageBus;
|
import appeng.parts.misc.PartStorageBus;
|
||||||
import appeng.util.Platform;
|
import appeng.util.Platform;
|
||||||
|
import appeng.util.iterators.NullIterator;
|
||||||
|
|
||||||
public class ContainerStorageBus extends ContainerUpgradeable
|
public class ContainerStorageBus extends ContainerUpgradeable
|
||||||
{
|
{
|
||||||
|
@ -120,4 +128,40 @@ public class ContainerStorageBus extends ContainerUpgradeable
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void clear()
|
||||||
|
{
|
||||||
|
IInventory inv = myte.getInventoryByName( "config" );
|
||||||
|
for (int x = 0; x < inv.getSizeInventory(); x++)
|
||||||
|
inv.setInventorySlotContents( x, null );
|
||||||
|
detectAndSendChanges();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void partition()
|
||||||
|
{
|
||||||
|
IInventory inv = myte.getInventoryByName( "config" );
|
||||||
|
|
||||||
|
IMEInventory<IAEItemStack> cellInv = storageBus.getInternalHandler();
|
||||||
|
|
||||||
|
Iterator<IAEItemStack> i = new NullIterator<IAEItemStack>();
|
||||||
|
if ( cellInv != null )
|
||||||
|
{
|
||||||
|
IItemList<IAEItemStack> list = cellInv.getAvailableItems( AEApi.instance().storage().createItemList() );
|
||||||
|
i = list.iterator();
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int x = 0; x < inv.getSizeInventory(); x++)
|
||||||
|
{
|
||||||
|
if ( i.hasNext() && isSlotEnabled( (x / 9) - 2 ) )
|
||||||
|
{
|
||||||
|
ItemStack g = i.next().getItemStack();
|
||||||
|
g.stackSize = 1;
|
||||||
|
inv.setInventorySlotContents( x, g );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
inv.setInventorySlotContents( x, null );
|
||||||
|
}
|
||||||
|
|
||||||
|
detectAndSendChanges();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,6 +20,7 @@ import appeng.container.implementations.ContainerLevelEmitter;
|
||||||
import appeng.container.implementations.ContainerPriority;
|
import appeng.container.implementations.ContainerPriority;
|
||||||
import appeng.container.implementations.ContainerQuartzKnife;
|
import appeng.container.implementations.ContainerQuartzKnife;
|
||||||
import appeng.container.implementations.ContainerSecurity;
|
import appeng.container.implementations.ContainerSecurity;
|
||||||
|
import appeng.container.implementations.ContainerStorageBus;
|
||||||
import appeng.core.sync.AppEngPacket;
|
import appeng.core.sync.AppEngPacket;
|
||||||
import appeng.core.sync.network.INetworkInfo;
|
import appeng.core.sync.network.INetworkInfo;
|
||||||
|
|
||||||
|
@ -66,6 +67,21 @@ public class PacketValueConfig extends AppEngPacket
|
||||||
lvc.setLevel( Long.parseLong( Value ), player );
|
lvc.setLevel( Long.parseLong( Value ), player );
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if ( Name.startsWith( "StorageBus." ) && c instanceof ContainerStorageBus )
|
||||||
|
{
|
||||||
|
ContainerStorageBus ccw = (ContainerStorageBus) c;
|
||||||
|
if ( Name.equals( "StorageBus.Action" ) )
|
||||||
|
{
|
||||||
|
if ( Value.equals( "Partition" ) )
|
||||||
|
{
|
||||||
|
ccw.partition();
|
||||||
|
}
|
||||||
|
else if ( Value.equals( "Clear" ) )
|
||||||
|
{
|
||||||
|
ccw.clear();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
else if ( Name.startsWith( "CellWorkbench." ) && c instanceof ContainerCellWorkbench )
|
else if ( Name.startsWith( "CellWorkbench." ) && c instanceof ContainerCellWorkbench )
|
||||||
{
|
{
|
||||||
ContainerCellWorkbench ccw = (ContainerCellWorkbench) c;
|
ContainerCellWorkbench ccw = (ContainerCellWorkbench) c;
|
||||||
|
|
Loading…
Reference in a new issue