Swapped out Gui Sync with something a little more fancy.

This commit is contained in:
AlgorithmX2 2014-05-07 00:22:42 -05:00
parent 24d497e583
commit 1db9283eed
25 changed files with 750 additions and 973 deletions

View file

@ -83,8 +83,8 @@ public class GuiCondenser extends AEBaseGui
mode.set( cvc.output ); mode.set( cvc.output );
mode.FillVar = "" + cvc.output.requiredPower; mode.FillVar = "" + cvc.output.requiredPower;
pb.max = cvc.requiredEnergy; pb.max = (int) cvc.requiredEnergy;
pb.current = cvc.storedPower; pb.current = (int) cvc.storedPower;
} }
} }

View file

@ -26,7 +26,6 @@ public class GuiMAC extends GuiUpgradeable
public GuiMAC(InventoryPlayer inventoryPlayer, TileMolecularAssembler te) { public GuiMAC(InventoryPlayer inventoryPlayer, TileMolecularAssembler te) {
super( new ContainerMAC( inventoryPlayer, te ) ); super( new ContainerMAC( inventoryPlayer, te ) );
this.ySize = 197; this.ySize = 197;
this.xSize = 211;
} }
protected GuiText getName() protected GuiText getName()

View file

@ -1,7 +1,9 @@
package appeng.container; package appeng.container;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Field;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedList; import java.util.LinkedList;
import java.util.List; import java.util.List;
@ -10,6 +12,7 @@ import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container; import net.minecraft.inventory.Container;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
@ -31,6 +34,8 @@ import appeng.api.storage.IMEInventoryHandler;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.client.me.InternalSlotME; import appeng.client.me.InternalSlotME;
import appeng.client.me.SlotME; import appeng.client.me.SlotME;
import appeng.container.guisync.GuiSync;
import appeng.container.guisync.SyncDat;
import appeng.container.slot.AppEngSlot; import appeng.container.slot.AppEngSlot;
import appeng.container.slot.SlotCraftingMatrix; import appeng.container.slot.SlotCraftingMatrix;
import appeng.container.slot.SlotCraftingTerm; import appeng.container.slot.SlotCraftingTerm;
@ -142,6 +147,7 @@ public abstract class AEBaseContainer extends Container
tileEntity = myTile; tileEntity = myTile;
part = myPart; part = myPart;
mySrc = new PlayerSource( ip.player, (IActionHost) (myTile instanceof IActionHost ? myTile : (myPart instanceof IActionHost ? myPart : null)) ); mySrc = new PlayerSource( ip.player, (IActionHost) (myTile instanceof IActionHost ? myTile : (myPart instanceof IActionHost ? myPart : null)) );
prepareSync();
} }
public boolean canDragIntoSlot(Slot s) public boolean canDragIntoSlot(Slot s)
@ -417,13 +423,63 @@ public abstract class AEBaseContainer extends Container
detectAndSendChanges(); detectAndSendChanges();
} }
HashMap<Integer, SyncDat> syncData = new HashMap<Integer, SyncDat>();
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
sendCustomName(); sendCustomName();
if ( Platform.isServer() )
{
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
for (SyncDat sd : syncData.values())
sd.tick( icrafting );
}
}
super.detectAndSendChanges(); super.detectAndSendChanges();
} }
final public void updateProgressBar(int idx, int value)
{
if ( syncData.containsKey( idx ) )
{
syncData.get( idx ).update( value );
return;
}
}
final public void updateFullProgressBar(int idx, long value)
{
if ( syncData.containsKey( idx ) )
{
syncData.get( idx ).update( value );
return;
}
updateProgressBar( idx, (int) value );
}
private void prepareSync()
{
for (Field f : getClass().getFields())
{
if ( f.isAnnotationPresent( GuiSync.class ) )
{
GuiSync anno = f.getAnnotation( GuiSync.class );
if ( syncData.containsKey( anno.value() ) )
AELog.warning( "Channel already in use: " + anno.value() + " for " + f.getName() );
else
syncData.put( anno.value(), new SyncDat( this, f, anno ) );
}
}
}
protected void sendCustomName() protected void sendCustomName()
{ {
if ( !sentCustomName ) if ( !sentCustomName )
@ -744,11 +800,6 @@ public abstract class AEBaseContainer extends Container
} }
} }
public void updateFullProgressBar(int id, long value)
{
updateProgressBar( id, (int) value );
}
protected void updateHeld(EntityPlayerMP p) protected void updateHeld(EntityPlayerMP p)
{ {
try try
@ -824,4 +875,9 @@ public abstract class AEBaseContainer extends Container
a.putStack( testA ); a.putStack( testA );
b.putStack( testB ); b.putStack( testB );
} }
public void onUpdate(String field, Object oldValue, Object newValue)
{
}
} }

View file

@ -0,0 +1,11 @@
package appeng.container.guisync;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface GuiSync {
int value();
}

View file

@ -0,0 +1,145 @@
package appeng.container.guisync;
import java.io.IOException;
import java.lang.reflect.Field;
import java.util.EnumSet;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.inventory.ICrafting;
import appeng.container.AEBaseContainer;
import appeng.core.AELog;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketProgressBar;
public class SyncDat
{
private Object clientVersion;
private AEBaseContainer source;
private Field field;
private int channel;
public SyncDat(AEBaseContainer container, Field field, GuiSync anno) {
clientVersion = null;
this.source = container;
this.field = field;
channel = anno.value();
}
public int getChannel()
{
return channel;
}
public void tick(ICrafting c)
{
try
{
Object val = field.get( source );
if ( val == clientVersion )
return;
else if ( val != null && clientVersion == null )
send( c, val );
else if ( !val.equals( clientVersion ) )
send( c, val );
}
catch (IllegalArgumentException e)
{
AELog.error( e );
}
catch (IllegalAccessException e)
{
AELog.error( e );
}
catch (IOException e)
{
AELog.error( e );
}
}
public void update(long val)
{
try
{
Object oldValue = field.get( source );
updateValue( oldValue, val );
}
catch (IllegalArgumentException e)
{
AELog.error( e );
}
catch (IllegalAccessException e)
{
AELog.error( e );
}
}
private void updateValue(Object oldValue, long val)
{
try
{
if ( field.getType().isEnum() )
{
EnumSet<? extends Enum> valList = EnumSet.allOf( (Class<? extends Enum>) field.getType() );
for (Enum e : valList)
{
if ( e.ordinal() == val )
{
field.set( source, e );
break;
}
}
}
else
{
if ( field.getType().equals( int.class ) )
field.set( source, (int) val );
else if ( field.getType().equals( long.class ) )
field.set( source, (long) val );
else if ( field.getType().equals( boolean.class ) )
field.set( source, val == 1 );
else if ( field.getType().equals( Integer.class ) )
field.set( source, (Integer) (int) val );
else if ( field.getType().equals( Long.class ) )
field.set( source, (Long) val );
else if ( field.getType().equals( Boolean.class ) )
field.set( source, (Boolean) (val == 1) );
}
source.onUpdate( field.getName(), oldValue, field.get( source ) );
}
catch (IllegalArgumentException e)
{
AELog.error( e );
}
catch (IllegalAccessException e)
{
AELog.error( e );
}
}
private void send(ICrafting o, Object val) throws IOException
{
if ( field.getType().isEnum() )
{
o.sendProgressBarUpdate( source, channel, ((Enum) val).ordinal() );
}
else if ( val instanceof Long || val.getClass() == long.class )
{
NetworkHandler.instance.sendTo( new PacketProgressBar( channel, (Long) val ), (EntityPlayerMP) o );
}
else if ( val instanceof Boolean || val.getClass() == boolean.class )
{
o.sendProgressBarUpdate( source, channel, ((Boolean) val) ? 1 : 0 );
}
else
{
o.sendProgressBarUpdate( source, channel, (Integer) val );
}
clientVersion = val;
}
}

View file

@ -17,6 +17,7 @@ import appeng.api.storage.IMEInventory;
import appeng.api.storage.StorageChannel; import appeng.api.storage.StorageChannel;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList; import appeng.api.storage.data.IItemList;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.OptionalSlotRestrictedInput; import appeng.container.slot.OptionalSlotRestrictedInput;
import appeng.container.slot.SlotFakeTypeOnly; import appeng.container.slot.SlotFakeTypeOnly;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
@ -25,8 +26,6 @@ import appeng.tile.inventory.AppEngNullInventory;
import appeng.tile.misc.TileCellWorkbench; import appeng.tile.misc.TileCellWorkbench;
import appeng.util.Platform; import appeng.util.Platform;
import appeng.util.iterators.NullIterator; import appeng.util.iterators.NullIterator;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ContainerCellWorkbench extends ContainerUpgradeable public class ContainerCellWorkbench extends ContainerUpgradeable
{ {
@ -158,6 +157,7 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
ItemStack prevStack = null; ItemStack prevStack = null;
int lastUpgrades = 0; int lastUpgrades = 0;
@GuiSync(2)
public CopyMode copyMode = CopyMode.CLEAR_ON_REMOVE; public CopyMode copyMode = CopyMode.CLEAR_ON_REMOVE;
public ContainerCellWorkbench(InventoryPlayer ip, TileCellWorkbench te) { public ContainerCellWorkbench(InventoryPlayer ip, TileCellWorkbench te) {
@ -229,16 +229,12 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
ItemStack LastCell; ItemStack LastCell;
@Override @Override
@SideOnly(Side.CLIENT) public void onUpdate(String field, Object oldValue, Object newValue)
public void updateProgressBar(int idx, int value)
{ {
super.updateProgressBar( idx, value ); if ( field.equals( "copyMode" ) )
if ( idx == 2 )
{
this.copyMode = CopyMode.values()[value];
workBench.getConfigManager().putSetting( Settings.COPY_MODE, this.copyMode ); workBench.getConfigManager().putSetting( Settings.COPY_MODE, this.copyMode );
}
super.onUpdate( field, oldValue, newValue );
} }
@Override @Override
@ -251,16 +247,6 @@ public class ContainerCellWorkbench extends ContainerUpgradeable
{ {
ICrafting icrafting = (ICrafting) this.crafters.get( i ); ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( copyMode != getCopyMode() )
{
icrafting.sendProgressBarUpdate( this, 2, (int) getCopyMode().ordinal() );
}
if ( this.fzMode != getFuzzyMode() )
{
icrafting.sendProgressBarUpdate( this, 1, (int) getFuzzyMode().ordinal() );
}
if ( prevStack != is ) if ( prevStack != is )
{ {
// if the bars changed an item was probably made, so just send shit! // if the bars changed an item was probably made, so just send shit!

View file

@ -1,23 +1,15 @@
package appeng.container.implementations; package appeng.container.implementations;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import appeng.api.config.CondenserOuput; import appeng.api.config.CondenserOuput;
import appeng.api.config.Settings; import appeng.api.config.Settings;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotOutput; import appeng.container.slot.SlotOutput;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.core.AELog;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketProgressBar;
import appeng.tile.misc.TileCondenser; import appeng.tile.misc.TileCondenser;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ContainerCondenser extends AEBaseContainer public class ContainerCondenser extends AEBaseContainer
{ {
@ -35,10 +27,6 @@ public class ContainerCondenser extends AEBaseContainer
bindPlayerInventory( ip, 0, 197 - /* height of playerinventory */82 ); bindPlayerInventory( ip, 0, 197 - /* height of playerinventory */82 );
} }
public int requiredEnergy = 0;
public int storedPower = 0;
public CondenserOuput output = CondenserOuput.TRASH;
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
@ -48,51 +36,6 @@ public class ContainerCondenser extends AEBaseContainer
double requiredEnergy = this.myte.getRequiredPower(); double requiredEnergy = this.myte.getRequiredPower();
int maxDisplay = requiredEnergy == 0 ? (int) maxStorage : (int) Math.min( requiredEnergy, maxStorage ); int maxDisplay = requiredEnergy == 0 ? (int) maxStorage : (int) Math.min( requiredEnergy, maxStorage );
for (int i = 0; i < this.crafters.size(); ++i)
{
boolean changed = false;
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.requiredEnergy != maxDisplay )
{
try
{
NetworkHandler.instance.sendTo( new PacketProgressBar( 0, (int) maxDisplay ), (EntityPlayerMP) icrafting );
}
catch (IOException e)
{
AELog.error( e );
}
changed = true;
}
if ( this.storedPower != this.myte.storedPower )
{
try
{
NetworkHandler.instance.sendTo( new PacketProgressBar( 1, (int) this.myte.storedPower ), (EntityPlayerMP) icrafting );
}
catch (IOException e)
{
AELog.error( e );
}
changed = true;
}
if ( this.output != this.myte.getConfigManager().getSetting( Settings.CONDENSER_OUTPUT ) )
{
icrafting.sendProgressBarUpdate( this, 2, (int) this.myte.getConfigManager().getSetting( Settings.CONDENSER_OUTPUT ).ordinal() );
changed = true;
}
if ( changed )
{
// if the bars changed an item was probably made, so just send shit!
((EntityPlayerMP) icrafting).isChangingQuantityOnly = false;
}
}
this.requiredEnergy = (int) maxDisplay; this.requiredEnergy = (int) maxDisplay;
this.storedPower = (int) this.myte.storedPower; this.storedPower = (int) this.myte.storedPower;
this.output = (CondenserOuput) this.myte.getConfigManager().getSetting( Settings.CONDENSER_OUTPUT ); this.output = (CondenserOuput) this.myte.getConfigManager().getSetting( Settings.CONDENSER_OUTPUT );
@ -101,25 +44,13 @@ public class ContainerCondenser extends AEBaseContainer
super.detectAndSendChanges(); super.detectAndSendChanges();
} }
@Override @GuiSync(0)
@SideOnly(Side.CLIENT) public long requiredEnergy = 0;
public void updateProgressBar(int idx, int value)
{
if ( idx == 0 )
{
this.requiredEnergy = value;
}
if ( idx == 1 ) @GuiSync(1)
{ public long storedPower = 0;
this.storedPower = value;
}
if ( idx == 2 ) @GuiSync(2)
{ public CondenserOuput output = CondenserOuput.TRASH;
this.output = CondenserOuput.values()[value];
}
}
} }

View file

@ -1,7 +1,6 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import appeng.api.config.FuzzyMode; import appeng.api.config.FuzzyMode;
import appeng.api.config.SecurityPermissions; import appeng.api.config.SecurityPermissions;
@ -83,30 +82,10 @@ public class ContainerFormationPlane extends ContainerUpgradeable
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.fzMode != this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 4, (int) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ).ordinal() );
}
}
this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ); this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE );
} }
standardDetectAndSendChanges(); standardDetectAndSendChanges();
} }
@Override
public void updateProgressBar(int idx, int value)
{
super.updateProgressBar( idx, value );
if ( idx == 4 )
this.fzMode = FuzzyMode.values()[value];
}
} }

View file

@ -1,13 +1,13 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import appeng.api.config.FullnessMode; import appeng.api.config.FullnessMode;
import appeng.api.config.OperationMode; import appeng.api.config.OperationMode;
import appeng.api.config.RedstoneMode; import appeng.api.config.RedstoneMode;
import appeng.api.config.SecurityPermissions; import appeng.api.config.SecurityPermissions;
import appeng.api.config.Settings; import appeng.api.config.Settings;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotOutput; import appeng.container.slot.SlotOutput;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
@ -18,8 +18,11 @@ public class ContainerIOPort extends ContainerUpgradeable
{ {
TileIOPort ioPort; TileIOPort ioPort;
public OperationMode opMode = OperationMode.EMPTY;
@GuiSync(2)
public FullnessMode fMode = FullnessMode.EMPTY; public FullnessMode fMode = FullnessMode.EMPTY;
@GuiSync(3)
public OperationMode opMode = OperationMode.EMPTY;
public ContainerIOPort(InventoryPlayer ip, TileIOPort te) { public ContainerIOPort(InventoryPlayer ip, TileIOPort te) {
super( ip, te ); super( ip, te );
@ -75,26 +78,6 @@ public class ContainerIOPort extends ContainerUpgradeable
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.rsMode != this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ) )
{
icrafting.sendProgressBarUpdate( this, 0, (int) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ).ordinal() );
}
if ( this.fMode != this.myte.getConfigManager().getSetting( Settings.FULLNESS_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 2, (int) this.myte.getConfigManager().getSetting( Settings.FULLNESS_MODE ).ordinal() );
}
if ( this.opMode != this.myte.getConfigManager().getSetting( Settings.OPERATION_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 3, (int) this.myte.getConfigManager().getSetting( Settings.OPERATION_MODE ).ordinal() );
}
}
this.opMode = (OperationMode) myte.getConfigManager().getSetting( Settings.OPERATION_MODE ); this.opMode = (OperationMode) myte.getConfigManager().getSetting( Settings.OPERATION_MODE );
this.fMode = (FullnessMode) this.myte.getConfigManager().getSetting( Settings.FULLNESS_MODE ); this.fMode = (FullnessMode) this.myte.getConfigManager().getSetting( Settings.FULLNESS_MODE );
this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ); this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED );
@ -103,16 +86,4 @@ public class ContainerIOPort extends ContainerUpgradeable
standardDetectAndSendChanges(); standardDetectAndSendChanges();
} }
@Override
public void updateProgressBar(int idx, int value)
{
super.updateProgressBar( idx, value );
if ( idx == 2 )
this.fMode = FullnessMode.values()[value];
if ( idx == 3 )
this.opMode = OperationMode.values()[value];
}
} }

View file

@ -1,22 +1,23 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotOutput; import appeng.container.slot.SlotOutput;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.tile.misc.TileInscriber; import appeng.tile.misc.TileInscriber;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ContainerInscriber extends AEBaseContainer public class ContainerInscriber extends AEBaseContainer
{ {
TileInscriber myte; TileInscriber myte;
@GuiSync(0)
public int maxProessingTime = -1; public int maxProessingTime = -1;
@GuiSync(1)
public int processingTime = -1; public int processingTime = -1;
public ContainerInscriber(InventoryPlayer ip, TileInscriber te) { public ContainerInscriber(InventoryPlayer ip, TileInscriber te) {
@ -39,37 +40,8 @@ public class ContainerInscriber extends AEBaseContainer
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
int localMax = myte.maxProessingTime; this.maxProessingTime = myte.maxProessingTime;
int localTime = myte.processingTime; this.processingTime = myte.processingTime;
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.maxProessingTime != localMax )
{
icrafting.sendProgressBarUpdate( this, 0, localMax );
}
if ( this.processingTime != localTime )
{
icrafting.sendProgressBarUpdate( this, 1, localTime );
} }
} }
this.maxProessingTime = localMax;
this.processingTime = localTime;
}
}
@Override
@SideOnly(Side.CLIENT)
public void updateProgressBar(int idx, int value)
{
if ( idx == 0 )
this.maxProessingTime = value;
if ( idx == 1 )
this.processingTime = value;
}
} }

View file

@ -1,24 +1,18 @@
package appeng.container.implementations; package appeng.container.implementations;
import java.io.IOException;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import appeng.api.config.FuzzyMode; import appeng.api.config.FuzzyMode;
import appeng.api.config.LevelType; import appeng.api.config.LevelType;
import appeng.api.config.RedstoneMode; import appeng.api.config.RedstoneMode;
import appeng.api.config.SecurityPermissions; import appeng.api.config.SecurityPermissions;
import appeng.api.config.Settings; import appeng.api.config.Settings;
import appeng.container.guisync.GuiSync;
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.core.AELog;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketProgressBar;
import appeng.parts.automation.PartLevelEmitter; import appeng.parts.automation.PartLevelEmitter;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -28,7 +22,6 @@ public class ContainerLevelEmitter extends ContainerUpgradeable
{ {
PartLevelEmitter lvlEmitter; PartLevelEmitter lvlEmitter;
long EmitterValue = -1;
@SideOnly(Side.CLIENT) @SideOnly(Side.CLIENT)
public GuiTextField textField; public GuiTextField textField;
@ -84,8 +77,12 @@ public class ContainerLevelEmitter extends ContainerUpgradeable
addSlotToContainer( new SlotFakeTypeOnly( inv, 0, x, y ) ); addSlotToContainer( new SlotFakeTypeOnly( inv, 0, x, y ) );
} }
@GuiSync(2)
public LevelType lvType; public LevelType lvType;
@GuiSync(3)
public long EmitterValue = -1;
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
@ -93,39 +90,6 @@ public class ContainerLevelEmitter extends ContainerUpgradeable
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.rsMode != this.myte.getConfigManager().getSetting( Settings.REDSTONE_EMITTER ) )
{
icrafting.sendProgressBarUpdate( this, 0, (int) this.myte.getConfigManager().getSetting( Settings.REDSTONE_EMITTER ).ordinal() );
}
if ( this.fzMode != this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 1, (int) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ).ordinal() );
}
if ( this.lvType != this.myte.getConfigManager().getSetting( Settings.LEVEL_TYPE ) )
{
icrafting.sendProgressBarUpdate( this, 2, (int) this.myte.getConfigManager().getSetting( Settings.LEVEL_TYPE ).ordinal() );
}
if ( this.EmitterValue != lvlEmitter.getReportingValue() )
{
try
{
NetworkHandler.instance.sendTo( new PacketProgressBar( 3, lvlEmitter.getReportingValue() ), (EntityPlayerMP) icrafting );
}
catch (IOException e)
{
AELog.error( e );
}
// icrafting.sendProgressBarUpdate( this, 2, (int) lvlEmitter.getReportingValue() );
}
}
this.EmitterValue = lvlEmitter.getReportingValue(); this.EmitterValue = lvlEmitter.getReportingValue();
this.lvType = (LevelType) this.myte.getConfigManager().getSetting( Settings.LEVEL_TYPE ); this.lvType = (LevelType) this.myte.getConfigManager().getSetting( Settings.LEVEL_TYPE );
this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ); this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE );
@ -135,25 +99,10 @@ public class ContainerLevelEmitter extends ContainerUpgradeable
standardDetectAndSendChanges(); standardDetectAndSendChanges();
} }
@Override public void onUpdate(String field, Object oldValue, Object newValue)
public void updateProgressBar(int idx, int value)
{ {
super.updateProgressBar( idx, value ); if ( field.equals( "EmitterValue" ) )
if ( idx == 2 )
{ {
lvType = LevelType.values()[value];
}
}
@Override
public void updateFullProgressBar(int idx, long value)
{
super.updateFullProgressBar( idx, value );
if ( idx == 3 )
{
EmitterValue = value;
if ( textField != null ) if ( textField != null )
textField.setText( "" + EmitterValue ); textField.setText( "" + EmitterValue );
} }

View file

@ -1,7 +1,6 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.world.World; import net.minecraft.world.World;
@ -99,26 +98,10 @@ public class ContainerMAC extends ContainerUpgradeable
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.rsMode != this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ) )
{
icrafting.sendProgressBarUpdate( this, 0, (int) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ).ordinal() );
}
}
this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ); this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED );
} }
standardDetectAndSendChanges(); standardDetectAndSendChanges();
} }
@Override
public void updateProgressBar(int idx, int value)
{
super.updateProgressBar( idx, value );
}
} }

View file

@ -34,6 +34,7 @@ import appeng.api.storage.data.IItemList;
import appeng.api.util.IConfigManager; import appeng.api.util.IConfigManager;
import appeng.api.util.IConfigureableObject; import appeng.api.util.IConfigureableObject;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.core.AELog; import appeng.core.AELog;
@ -54,7 +55,10 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
IConfigManager serverCM; IConfigManager serverCM;
IConfigManager clientCM; IConfigManager clientCM;
@GuiSync(99)
public boolean canAccessViewCells = false; public boolean canAccessViewCells = false;
@GuiSync(98)
public boolean hasPower = false; public boolean hasPower = false;
public SlotRestrictedInput cellView[] = new SlotRestrictedInput[5]; public SlotRestrictedInput cellView[] = new SlotRestrictedInput[5];
@ -203,12 +207,6 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
if ( cellView[y] != null ) if ( cellView[y] != null )
cellView[y].allowEdit = canAccessViewCells; cellView[y].allowEdit = canAccessViewCells;
} }
for (Object c : this.crafters)
{
if ( c instanceof ICrafting )
((ICrafting) c).sendProgressBarUpdate( this, 99, canAccessViewCells ? 1 : 0 );
}
} }
super.detectAndSendChanges(); super.detectAndSendChanges();
@ -217,7 +215,6 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
protected void updatePowerStatus() protected void updatePowerStatus()
{ {
boolean oldHasPower = hasPower;
try try
{ {
if ( networkNode != null ) if ( networkNode != null )
@ -231,19 +228,6 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
{ {
// :P // :P
} }
if ( hasPower != oldHasPower )
{
for (Object c : this.crafters)
{
if ( c instanceof ICrafting )
{
ICrafting cr = (ICrafting) c;
cr.sendProgressBarUpdate( this, 98, hasPower ? 1 : 0 );
}
}
}
} }
@Override @Override
@ -301,21 +285,18 @@ public class ContainerMEMonitorable extends AEBaseContainer implements IConfigMa
} }
@Override @Override
public void updateProgressBar(int idx, int value) public void onUpdate(String field, Object oldValue, Object newValue)
{
if ( field.equals( "canAccessViewCells" ) )
{ {
super.updateProgressBar( idx, value );
if ( idx == 98 )
hasPower = value == 1;
if ( idx == 99 )
canAccessViewCells = value == 1;
for (int y = 0; y < 5; y++) for (int y = 0; y < 5; y++)
if ( cellView[y] != null ) if ( cellView[y] != null )
cellView[y].allowEdit = canAccessViewCells; cellView[y].allowEdit = canAccessViewCells;
} }
super.onUpdate( field, oldValue, newValue );
}
@Override @Override
public void onContainerClosed(EntityPlayer player) public void onContainerClosed(EntityPlayer player)
{ {

View file

@ -5,7 +5,6 @@ import java.io.IOException;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.AEApi; import appeng.api.AEApi;
@ -18,10 +17,9 @@ import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList; import appeng.api.storage.data.IItemList;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.core.AELog; import appeng.container.guisync.GuiSync;
import appeng.core.sync.network.NetworkHandler; import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketMEInventoryUpdate; import appeng.core.sync.packets.PacketMEInventoryUpdate;
import appeng.core.sync.packets.PacketProgressBar;
import appeng.util.Platform; import appeng.util.Platform;
import appeng.util.item.AEItemStack; import appeng.util.item.AEItemStack;
@ -57,27 +55,15 @@ public class ContainerNetworkStatus extends AEBaseContainer
int delay = 40; int delay = 40;
@GuiSync(0)
public long avgAddition; public long avgAddition;
@GuiSync(1)
public long powerUsage; public long powerUsage;
@GuiSync(2)
public long currentPower; public long currentPower;
@GuiSync(3)
public long maxPower; public long maxPower;
@Override
public void updateFullProgressBar(int id, long value)
{
if ( id == 0 )
avgAddition = value;
if ( id == 1 )
powerUsage = value;
if ( id == 2 )
currentPower = value;
if ( id == 3 )
maxPower = value;
}
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
@ -93,22 +79,6 @@ public class ContainerNetworkStatus extends AEBaseContainer
powerUsage = (long) (100.0 * eg.getAvgPowerUsage()); powerUsage = (long) (100.0 * eg.getAvgPowerUsage());
currentPower = (long) (100.0 * eg.getStoredPower()); currentPower = (long) (100.0 * eg.getStoredPower());
maxPower = (long) (100.0 * eg.getMaxStoredPower()); maxPower = (long) (100.0 * eg.getMaxStoredPower());
for (Object c : this.crafters)
{
ICrafting icrafting = (ICrafting) c;
try
{
NetworkHandler.instance.sendTo( new PacketProgressBar( 0, avgAddition ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 1, powerUsage ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 2, currentPower ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 3, maxPower ), (EntityPlayerMP) icrafting );
}
catch (IOException e)
{
AELog.error( e );
}
}
} }
PacketMEInventoryUpdate piu; PacketMEInventoryUpdate piu;

View file

@ -6,7 +6,6 @@ import java.util.List;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.EntityPlayerMP; import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.inventory.InventoryCrafting; import net.minecraft.inventory.InventoryCrafting;
import net.minecraft.inventory.Slot; import net.minecraft.inventory.Slot;
@ -26,6 +25,7 @@ import appeng.api.storage.ITerminalHost;
import appeng.api.storage.data.IAEItemStack; import appeng.api.storage.data.IAEItemStack;
import appeng.api.storage.data.IItemList; import appeng.api.storage.data.IItemList;
import appeng.container.ContainerNull; import appeng.container.ContainerNull;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.IOptionalSlotHost;
import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.OptionalSlotFake;
import appeng.container.slot.SlotFake; import appeng.container.slot.SlotFake;
@ -57,7 +57,6 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
SlotRestrictedInput patternSlotOUT; SlotRestrictedInput patternSlotOUT;
public PartPatternTerminal ct; public PartPatternTerminal ct;
public boolean craftingMode = true;
public ContainerPatternTerm(InventoryPlayer ip, ITerminalHost montiorable) { public ContainerPatternTerm(InventoryPlayer ip, ITerminalHost montiorable) {
super( ip, montiorable, false ); super( ip, montiorable, false );
@ -133,6 +132,9 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
return is; return is;
} }
@GuiSync(97)
public boolean craftingMode = true;
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
@ -143,23 +145,15 @@ public class ContainerPatternTerm extends ContainerMEMonitorable implements IAEA
{ {
craftingMode = ct.craftingMode; craftingMode = ct.craftingMode;
updateOrderOfOutputSlots(); updateOrderOfOutputSlots();
for (Object c : this.crafters)
{
if ( c instanceof ICrafting )
((ICrafting) c).sendProgressBarUpdate( this, 97, craftingMode ? 1 : 0 );
}
} }
} }
} }
@Override @Override
public void updateProgressBar(int idx, int value) public void onUpdate(String field, Object oldValue, Object newValue)
{ {
super.updateProgressBar( idx, value ); if ( field.equals( "craftingMode" ) )
if ( idx == 97 )
{ {
craftingMode = value == 1;
getAndUpdateOutput(); getAndUpdateOutput();
updateOrderOfOutputSlots(); updateOrderOfOutputSlots();
} }

View file

@ -3,11 +3,11 @@ package appeng.container.implementations;
import net.minecraft.client.gui.GuiTextField; import net.minecraft.client.gui.GuiTextField;
import net.minecraft.entity.player.EntityPlayer; import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
import appeng.api.config.SecurityPermissions; import appeng.api.config.SecurityPermissions;
import appeng.api.parts.IPart; import appeng.api.parts.IPart;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.helpers.IPriorityHost; import appeng.helpers.IPriorityHost;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.Side;
@ -33,7 +33,8 @@ public class ContainerPriority extends AEBaseContainer
priHost = te; priHost = te;
} }
int PriorityValue = -1; @GuiSync(2)
long PriorityValue = -1;
public void setPriority(int newValue, EntityPlayer player) public void setPriority(int newValue, EntityPlayer player)
{ {
@ -48,31 +49,19 @@ public class ContainerPriority extends AEBaseContainer
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i) this.PriorityValue = priHost.getPriority();
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.PriorityValue != priHost.getPriority() )
{
icrafting.sendProgressBarUpdate( this, 2, (int) priHost.getPriority() );
}
}
this.PriorityValue = (int) priHost.getPriority();
} }
} }
@Override @Override
public void updateProgressBar(int idx, int value) public void onUpdate(String field, Object oldValue, Object newValue)
{ {
super.updateProgressBar( idx, value ); if ( field.equals( "PriorityValue" ) )
if ( idx == 2 )
{ {
PriorityValue = value;
if ( textField != null ) if ( textField != null )
textField.setText( "" + PriorityValue ); textField.setText( "" + PriorityValue );
} }
}
super.onUpdate( field, oldValue, newValue );
}
} }

View file

@ -12,6 +12,7 @@ import appeng.api.features.INetworkEncodable;
import appeng.api.features.IWirelessTermHandler; import appeng.api.features.IWirelessTermHandler;
import appeng.api.implementations.items.IBiometricCard; import appeng.api.implementations.items.IBiometricCard;
import appeng.api.storage.ITerminalHost; import appeng.api.storage.ITerminalHost;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotOutput; import appeng.container.slot.SlotOutput;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
@ -19,7 +20,6 @@ import appeng.tile.inventory.AppEngInternalInventory;
import appeng.tile.inventory.IAEAppEngInventory; import appeng.tile.inventory.IAEAppEngInventory;
import appeng.tile.inventory.InvOperation; import appeng.tile.inventory.InvOperation;
import appeng.tile.misc.TileSecurity; import appeng.tile.misc.TileSecurity;
import appeng.util.Platform;
public class ContainerSecurity extends ContainerMEMonitorable implements IAEAppEngInventory public class ContainerSecurity extends ContainerMEMonitorable implements IAEAppEngInventory
{ {
@ -46,6 +46,7 @@ public class ContainerSecurity extends ContainerMEMonitorable implements IAEAppE
bindPlayerInventory( ip, 0, 0 ); bindPlayerInventory( ip, 0, 0 );
} }
@GuiSync(0)
public int security = 0; public int security = 0;
@Override @Override
@ -82,21 +83,12 @@ public class ContainerSecurity extends ContainerMEMonitorable implements IAEAppE
} }
} }
@Override
public void updateProgressBar(int key, int value)
{
super.updateProgressBar( key, value );
if ( key == 0 )
security = value;
}
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
verifyPermissions( SecurityPermissions.SECURITY, false ); verifyPermissions( SecurityPermissions.SECURITY, false );
int newSecurity = 0; security = 0;
ItemStack a = configSlot.getStack(); ItemStack a = configSlot.getStack();
if ( a != null && a.getItem() instanceof IBiometricCard ) if ( a != null && a.getItem() instanceof IBiometricCard )
@ -104,26 +96,11 @@ public class ContainerSecurity extends ContainerMEMonitorable implements IAEAppE
IBiometricCard bc = (IBiometricCard) a.getItem(); IBiometricCard bc = (IBiometricCard) a.getItem();
for (SecurityPermissions sp : bc.getPermissions( a )) for (SecurityPermissions sp : bc.getPermissions( a ))
newSecurity = newSecurity | (1 << sp.ordinal()); security = security | (1 << sp.ordinal());
} }
updatePowerStatus(); updatePowerStatus();
if ( newSecurity != security )
{
if ( Platform.isServer() )
{
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
icrafting.sendProgressBarUpdate( this, 0, newSecurity );
}
}
security = newSecurity;
}
super.detectAndSendChanges(); super.detectAndSendChanges();
} }

View file

@ -1,22 +1,16 @@
package appeng.container.implementations; package appeng.container.implementations;
import java.io.IOException;
import net.minecraft.entity.player.EntityPlayerMP;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraftforge.common.util.ForgeDirection; import net.minecraftforge.common.util.ForgeDirection;
import appeng.api.config.SecurityPermissions; import appeng.api.config.SecurityPermissions;
import appeng.api.networking.IGrid; import appeng.api.networking.IGrid;
import appeng.api.networking.energy.IEnergyGrid; import appeng.api.networking.energy.IEnergyGrid;
import appeng.api.networking.spatial.ISpatialCache; import appeng.api.networking.spatial.ISpatialCache;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotOutput; import appeng.container.slot.SlotOutput;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.core.AELog;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketProgressBar;
import appeng.tile.spatial.TileSpatialIOPort; import appeng.tile.spatial.TileSpatialIOPort;
import appeng.util.Platform; import appeng.util.Platform;
@ -27,29 +21,17 @@ public class ContainerSpatialIOPort extends AEBaseContainer
IGrid network; IGrid network;
public long reqPower; @GuiSync(0)
public long currentPower; public long currentPower;
@GuiSync(1)
public long maxPower; public long maxPower;
@GuiSync(2)
public long reqPower;
@GuiSync(3)
public long eff; public long eff;
int delay = 40; int delay = 40;
@Override
public void updateFullProgressBar(int id, long value)
{
if ( id == 0 )
currentPower = value;
if ( id == 1 )
maxPower = value;
if ( id == 2 )
reqPower = value;
if ( id == 3 )
eff = value;
}
public ContainerSpatialIOPort(InventoryPlayer ip, TileSpatialIOPort te) { public ContainerSpatialIOPort(InventoryPlayer ip, TileSpatialIOPort te) {
super( ip, te, null ); super( ip, te, null );
myte = te; myte = te;
@ -83,22 +65,6 @@ public class ContainerSpatialIOPort extends AEBaseContainer
maxPower = (long) (100.0 * eg.getMaxStoredPower()); maxPower = (long) (100.0 * eg.getMaxStoredPower());
reqPower = (long) (100.0 * sc.requiredPower()); reqPower = (long) (100.0 * sc.requiredPower());
eff = (long) (100.0f * sc.currentEffiency()); eff = (long) (100.0f * sc.currentEffiency());
for (Object c : this.crafters)
{
ICrafting icrafting = (ICrafting) c;
try
{
NetworkHandler.instance.sendTo( new PacketProgressBar( 0, currentPower ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 1, maxPower ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 2, reqPower ), (EntityPlayerMP) icrafting );
NetworkHandler.instance.sendTo( new PacketProgressBar( 3, eff ), (EntityPlayerMP) icrafting );
}
catch (IOException e)
{
AELog.error( e );
}
}
} }
} }
} }

View file

@ -1,13 +1,13 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
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.container.guisync.GuiSync;
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;
@ -19,6 +19,8 @@ public class ContainerStorageBus extends ContainerUpgradeable
{ {
PartStorageBus storageBus; PartStorageBus storageBus;
@GuiSync(3)
public AccessRestriction rwMode = AccessRestriction.READ_WRITE; public AccessRestriction rwMode = AccessRestriction.READ_WRITE;
public ContainerStorageBus(InventoryPlayer ip, PartStorageBus te) { public ContainerStorageBus(InventoryPlayer ip, PartStorageBus te) {
@ -85,21 +87,6 @@ public class ContainerStorageBus extends ContainerUpgradeable
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.rwMode != this.myte.getConfigManager().getSetting( Settings.ACCESS ) )
{
icrafting.sendProgressBarUpdate( this, 3, (int) this.myte.getConfigManager().getSetting( Settings.ACCESS ).ordinal() );
}
if ( this.fzMode != this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 4, (int) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ).ordinal() );
}
}
this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ); this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE );
this.rwMode = (AccessRestriction) this.myte.getConfigManager().getSetting( Settings.ACCESS ); this.rwMode = (AccessRestriction) this.myte.getConfigManager().getSetting( Settings.ACCESS );
} }
@ -107,17 +94,4 @@ public class ContainerStorageBus extends ContainerUpgradeable
standardDetectAndSendChanges(); standardDetectAndSendChanges();
} }
@Override
public void updateProgressBar(int idx, int value)
{
super.updateProgressBar( idx, value );
if ( idx == 3 )
this.rwMode = AccessRestriction.values()[value];
if ( idx == 4 )
this.fzMode = FuzzyMode.values()[value];
}
} }

View file

@ -1,7 +1,6 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import net.minecraft.inventory.IInventory; import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.tileentity.TileEntity; import net.minecraft.tileentity.TileEntity;
@ -14,6 +13,7 @@ import appeng.api.config.Upgrades;
import appeng.api.implementations.IUpgradeableHost; import appeng.api.implementations.IUpgradeableHost;
import appeng.api.parts.IPart; import appeng.api.parts.IPart;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.IOptionalSlotHost; import appeng.container.slot.IOptionalSlotHost;
import appeng.container.slot.OptionalSlotFake; import appeng.container.slot.OptionalSlotFake;
import appeng.container.slot.OptionalSlotFakeTypeOnly; import appeng.container.slot.OptionalSlotFakeTypeOnly;
@ -23,8 +23,6 @@ import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.items.contents.NetworkToolViewer; import appeng.items.contents.NetworkToolViewer;
import appeng.items.tools.ToolNetworkTool; import appeng.items.tools.ToolNetworkTool;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSlotHost public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSlotHost
{ {
@ -133,7 +131,10 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl
return true; return true;
} }
@GuiSync(0)
public RedstoneMode rsMode = RedstoneMode.IGNORE; public RedstoneMode rsMode = RedstoneMode.IGNORE;
@GuiSync(1)
public FuzzyMode fzMode = FuzzyMode.IGNORE_ALL; public FuzzyMode fzMode = FuzzyMode.IGNORE_ALL;
public void checkToolbox() public void checkToolbox()
@ -164,21 +165,6 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.rsMode != this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ) )
{
icrafting.sendProgressBarUpdate( this, 0, (int) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ).ordinal() );
}
if ( this.fzMode != this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ) )
{
icrafting.sendProgressBarUpdate( this, 1, (int) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ).ordinal() );
}
}
this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE ); this.fzMode = (FuzzyMode) this.myte.getConfigManager().getSetting( Settings.FUZZY_MODE );
this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED ); this.rsMode = (RedstoneMode) this.myte.getConfigManager().getSetting( Settings.REDSTONE_CONTROLLED );
} }
@ -203,19 +189,6 @@ public class ContainerUpgradeable extends AEBaseContainer implements IOptionalSl
super.detectAndSendChanges(); super.detectAndSendChanges();
} }
@Override
@SideOnly(Side.CLIENT)
public void updateProgressBar(int idx, int value)
{
if ( idx == 0 )
this.rsMode = RedstoneMode.values()[value];
if ( idx == 1 )
this.fzMode = FuzzyMode.values()[value];
}
public boolean hasToolbox() public boolean hasToolbox()
{ {
return tbinv != null; return tbinv != null;

View file

@ -1,14 +1,12 @@
package appeng.container.implementations; package appeng.container.implementations;
import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.ICrafting;
import appeng.container.AEBaseContainer; import appeng.container.AEBaseContainer;
import appeng.container.guisync.GuiSync;
import appeng.container.slot.SlotRestrictedInput; import appeng.container.slot.SlotRestrictedInput;
import appeng.container.slot.SlotRestrictedInput.PlaceableItemType; import appeng.container.slot.SlotRestrictedInput.PlaceableItemType;
import appeng.tile.misc.TileVibrationChamber; import appeng.tile.misc.TileVibrationChamber;
import appeng.util.Platform; import appeng.util.Platform;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
public class ContainerVibrationChamber extends AEBaseContainer public class ContainerVibrationChamber extends AEBaseContainer
{ {
@ -25,52 +23,23 @@ public class ContainerVibrationChamber extends AEBaseContainer
} }
public int aePerTick = 5; public int aePerTick = 5;
public int burnSpeed = 100;
@GuiSync(0)
public int burnProgress = 0; public int burnProgress = 0;
@GuiSync(1)
public int burnSpeed = 100;
@Override @Override
public void detectAndSendChanges() public void detectAndSendChanges()
{ {
super.detectAndSendChanges();
if ( Platform.isServer() ) if ( Platform.isServer() )
{ {
int burnProgress = (int) (this.myte.maxBurnTime <= 0 ? 0 : 12 * this.myte.burnTime / this.myte.maxBurnTime); this.burnProgress = (int) (this.myte.maxBurnTime <= 0 ? 0 : 12 * this.myte.burnTime / this.myte.maxBurnTime);
for (int i = 0; i < this.crafters.size(); ++i)
{
ICrafting icrafting = (ICrafting) this.crafters.get( i );
if ( this.burnProgress != burnProgress )
{
icrafting.sendProgressBarUpdate( this, 0, (int) burnProgress );
}
if ( this.burnSpeed != this.myte.burnSpeed )
{
icrafting.sendProgressBarUpdate( this, 1, this.myte.burnSpeed );
}
}
this.burnProgress = burnProgress;
this.burnSpeed = this.myte.burnSpeed; this.burnSpeed = this.myte.burnSpeed;
} }
}
@Override
@SideOnly(Side.CLIENT)
public void updateProgressBar(int idx, int value)
{
if ( idx == 0 )
{
this.burnProgress = value;
}
if ( idx == 1 )
{
this.burnSpeed = value;
}
super.detectAndSendChanges();
} }
} }

View file

@ -570,6 +570,10 @@ public class Registration
Upgrades.INVERTER.registerItem( AEApi.instance().items().itemMassCannon.stack( 1 ), 1 ); Upgrades.INVERTER.registerItem( AEApi.instance().items().itemMassCannon.stack( 1 ), 1 );
Upgrades.SPEED.registerItem( AEApi.instance().items().itemMassCannon.stack( 1 ), 4 ); Upgrades.SPEED.registerItem( AEApi.instance().items().itemMassCannon.stack( 1 ), 4 );
// molecular assembler
Upgrades.REDSTONE.registerItem( AEApi.instance().blocks().blockMolecularAssembler.stack( 1 ), 1 );
Upgrades.SPEED.registerItem( AEApi.instance().blocks().blockMolecularAssembler.stack( 1 ), 5 );
AEApi.instance().registries().wireless().registerWirelessHandler( (IWirelessTermHandler) AEApi.instance().items().itemWirelessTerminal.item() ); AEApi.instance().registries().wireless().registerWirelessHandler( (IWirelessTermHandler) AEApi.instance().items().itemWirelessTerminal.item() );
if ( AEConfig.instance.isFeatureEnabled( AEFeature.ChestLoot ) ) if ( AEConfig.instance.isFeatureEnabled( AEFeature.ChestLoot ) )

View file

@ -20,7 +20,6 @@ import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraft.world.World; import net.minecraft.world.World;
import net.minecraftforge.oredict.OreDictionary;
import appeng.api.config.Upgrades; import appeng.api.config.Upgrades;
import appeng.api.implementations.items.IItemGroup; import appeng.api.implementations.items.IItemGroup;
import appeng.api.implementations.items.IStorageComponent; import appeng.api.implementations.items.IStorageComponent;
@ -28,7 +27,6 @@ import appeng.api.implementations.items.IUpgradeModule;
import appeng.client.texture.MissingIcon; import appeng.client.texture.MissingIcon;
import appeng.core.AEConfig; import appeng.core.AEConfig;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.core.features.AEFeatureHandler;
import appeng.core.features.ItemStackSrc; import appeng.core.features.ItemStackSrc;
import appeng.items.AEBaseItem; import appeng.items.AEBaseItem;
import appeng.items.materials.ItemMultiMaterial; import appeng.items.materials.ItemMultiMaterial;
@ -181,7 +179,8 @@ public class OldItemMaterial extends AEBaseItem implements IStorageComponent, IU
} }
@Override @Override
public String getItemStackDisplayName(ItemStack par1ItemStack) { public String getItemStackDisplayName(ItemStack par1ItemStack)
{
return "AE2-OLD-ITEM"; return "AE2-OLD-ITEM";
} }

View file

@ -19,7 +19,6 @@ import appeng.api.parts.IPart;
import appeng.api.parts.IPartItem; import appeng.api.parts.IPartItem;
import appeng.core.AEConfig; import appeng.core.AEConfig;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.core.features.AEFeatureHandler;
import appeng.core.features.ItemStackSrc; import appeng.core.features.ItemStackSrc;
import appeng.core.localization.GuiText; import appeng.core.localization.GuiText;
import appeng.items.AEBaseItem; import appeng.items.AEBaseItem;
@ -152,7 +151,8 @@ public class OldItemPart extends AEBaseItem implements IPartItem, IItemGroup, II
} }
@Override @Override
public String getItemStackDisplayName(ItemStack par1ItemStack) { public String getItemStackDisplayName(ItemStack par1ItemStack)
{
return "AE2-OLD-PART"; return "AE2-OLD-PART";
} }

View file

@ -5,7 +5,6 @@ import java.util.EnumSet;
import net.minecraft.entity.Entity; import net.minecraft.entity.Entity;
import net.minecraft.item.ItemStack; import net.minecraft.item.ItemStack;
import net.minecraft.util.IIcon; import net.minecraft.util.IIcon;
import net.minecraftforge.oredict.OreDictionary;
import appeng.core.AppEng; import appeng.core.AppEng;
import appeng.core.features.AEFeature; import appeng.core.features.AEFeature;
import appeng.entity.EntityChargedQuartz; import appeng.entity.EntityChargedQuartz;