Fixes #675 No disabled feature should log spam or crash anymore.

Deprecates the old usage of the AEItemDefinitions via the direct method access of

* blocks()
* parts()
* items()
* materials()

and thus use the new re-direct via definitions().

All definitions are now initialized, no matter what. But SubItems, Items and Blocks are not registered, if by chance are disabled.
This commit is contained in:
thatsIch
2015-01-03 02:53:14 +01:00
parent 3dd81433ac
commit 9986ffc458
385 changed files with 12477 additions and 8292 deletions
@@ -23,6 +23,8 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.definitions.IDefinitions;
import appeng.api.definitions.IParts;
import appeng.api.storage.ITerminalHost;
import appeng.client.gui.AEBaseGui;
import appeng.client.gui.widgets.GuiNumberBox;
@@ -35,6 +37,7 @@ import appeng.core.sync.GuiBridge;
import appeng.core.sync.network.NetworkHandler;
import appeng.core.sync.packets.PacketCraftRequest;
import appeng.core.sync.packets.PacketSwitchGuis;
import appeng.helpers.Reflected;
import appeng.helpers.WirelessTerminalGuiObject;
import appeng.parts.reporting.PartCraftingTerminal;
import appeng.parts.reporting.PartPatternTerminal;
@@ -42,23 +45,23 @@ import appeng.parts.reporting.PartTerminal;
public class GuiCraftAmount extends AEBaseGui
{
private GuiNumberBox amountToCraft;
private GuiTabButton originalGuiBtn;
GuiNumberBox amountToCraft;
GuiTabButton originalGuiBtn;
private GuiButton next;
GuiButton next;
private GuiButton plus1;
private GuiButton plus10;
private GuiButton plus100;
private GuiButton plus1000;
private GuiButton minus1;
private GuiButton minus10;
private GuiButton minus100;
private GuiButton minus1000;
GuiButton plus1;
GuiButton plus10;
GuiButton plus100;
GuiButton plus1000;
GuiButton minus1;
GuiButton minus10;
GuiButton minus100;
GuiButton minus1000;
GuiBridge OriginalGui;
private GuiBridge originalGui;
@Reflected
public GuiCraftAmount(InventoryPlayer inventoryPlayer, ITerminalHost te) {
super( new ContainerCraftAmount( inventoryPlayer, te ) );
}
@@ -87,33 +90,50 @@ public class GuiCraftAmount extends AEBaseGui
ItemStack myIcon = null;
Object target = ((AEBaseContainer) this.inventorySlots).getTarget();
final IDefinitions definitions = AEApi.instance().definitions();
final IParts parts = definitions.parts();
if ( target instanceof WirelessTerminalGuiObject )
{
myIcon = AEApi.instance().items().itemWirelessTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_WIRELESS_TERM;
for ( ItemStack wirelessTerminalStack : definitions.items().wirelessTerminal().maybeStack( 1 ).asSet() )
{
myIcon = wirelessTerminalStack;
}
this.originalGui = GuiBridge.GUI_WIRELESS_TERM;
}
if ( target instanceof PartTerminal )
{
myIcon = AEApi.instance().parts().partTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_ME;
for ( ItemStack stack : parts.terminal().maybeStack( 1 ).asSet() )
{
myIcon = stack;
}
this.originalGui = GuiBridge.GUI_ME;
}
if ( target instanceof PartCraftingTerminal )
{
myIcon = AEApi.instance().parts().partCraftingTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_CRAFTING_TERMINAL;
for ( ItemStack stack : parts.craftingTerminal().maybeStack( 1 ).asSet() )
{
myIcon = stack;
}
this.originalGui = GuiBridge.GUI_CRAFTING_TERMINAL;
}
if ( target instanceof PartPatternTerminal )
{
myIcon = AEApi.instance().parts().partPatternTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_PATTERN_TERMINAL;
for ( ItemStack stack : parts.patternTerminal().maybeStack( 1 ).asSet() )
{
myIcon = stack;
}
this.originalGui = GuiBridge.GUI_PATTERN_TERMINAL;
}
if ( this.OriginalGui != null )
if ( this.originalGui != null && myIcon != null )
{
this.buttonList.add( this.originalGuiBtn = new GuiTabButton( this.guiLeft + 154, this.guiTop, myIcon, myIcon.getDisplayName(), itemRender ) );
}
this.amountToCraft = new GuiNumberBox( this.fontRendererObj, this.guiLeft + 62, this.guiTop + 57, 59, this.fontRendererObj.FONT_HEIGHT, Integer.class );
this.amountToCraft.setEnableBackgroundDrawing( false );
@@ -134,7 +154,7 @@ public class GuiCraftAmount extends AEBaseGui
if ( btn == this.originalGuiBtn )
{
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.originalGui ) );
}
if ( btn == this.next )
@@ -160,22 +180,22 @@ public class GuiCraftAmount extends AEBaseGui
{
try
{
String Out = this.amountToCraft.getText();
String out = this.amountToCraft.getText();
boolean Fixed = false;
while (Out.startsWith( "0" ) && Out.length() > 1)
boolean fixed = false;
while (out.startsWith( "0" ) && out.length() > 1)
{
Out = Out.substring( 1 );
Fixed = true;
out = out.substring( 1 );
fixed = true;
}
if ( Fixed )
this.amountToCraft.setText( Out );
if ( fixed )
this.amountToCraft.setText( out );
if ( Out.length() == 0 )
Out = "0";
if ( out.length() == 0 )
out = "0";
long result = Integer.parseInt( Out );
long result = Integer.parseInt( out );
if ( result == 1 && i > 1 )
result = 0;
@@ -184,9 +204,9 @@ public class GuiCraftAmount extends AEBaseGui
if ( result < 1 )
result = 1;
Out = Long.toString( result );
Integer.parseInt( Out );
this.amountToCraft.setText( Out );
out = Long.toString( result );
Integer.parseInt( out );
this.amountToCraft.setText( out );
}
catch (NumberFormatException e)
{
@@ -208,22 +228,22 @@ public class GuiCraftAmount extends AEBaseGui
{
try
{
String Out = this.amountToCraft.getText();
String out = this.amountToCraft.getText();
boolean Fixed = false;
while (Out.startsWith( "0" ) && Out.length() > 1)
boolean fixed = false;
while (out.startsWith( "0" ) && out.length() > 1)
{
Out = Out.substring( 1 );
Fixed = true;
out = out.substring( 1 );
fixed = true;
}
if ( Fixed )
this.amountToCraft.setText( Out );
if ( fixed )
this.amountToCraft.setText( out );
if ( Out.length() == 0 )
Out = "0";
if ( out.length() == 0 )
out = "0";
long result = Long.parseLong( Out );
long result = Long.parseLong( out );
if ( result < 0 )
{
this.amountToCraft.setText( "1" );
@@ -128,7 +128,7 @@ public class GuiCraftConfirm extends AEBaseGui
private void updateCPUButtonText()
{
String btnTextText = GuiText.CraftingCPU.getLocal() + ": " + GuiText.Automatic.getLocal();
if ( this.ccc.selectedCpu >= 0 )// && ccc.selectedCpu < ccc.cpus.size() )
if ( this.ccc.selectedCpu >= 0 )// && status.selectedCpu < status.cpus.size() )
{
if ( this.ccc.myName.length() > 0 )
{
@@ -30,6 +30,8 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.definitions.IDefinitions;
import appeng.api.definitions.IParts;
import appeng.api.storage.ITerminalHost;
import appeng.client.gui.widgets.GuiTabButton;
import appeng.container.implementations.ContainerCraftingStatus;
@@ -47,41 +49,56 @@ import appeng.parts.reporting.PartTerminal;
public class GuiCraftingStatus extends GuiCraftingCPU
{
final ContainerCraftingStatus ccc;
final ContainerCraftingStatus status;
GuiButton selectCPU;
GuiTabButton originalGuiBtn;
GuiBridge OriginalGui;
GuiBridge originalGui;
ItemStack myIcon = null;
public GuiCraftingStatus(InventoryPlayer inventoryPlayer, ITerminalHost te) {
super( new ContainerCraftingStatus( inventoryPlayer, te ) );
this.ccc = (ContainerCraftingStatus) this.inventorySlots;
Object target = this.ccc.getTarget();
this.status = (ContainerCraftingStatus) this.inventorySlots;
Object target = this.status.getTarget();
final IDefinitions definitions = AEApi.instance().definitions();
final IParts parts = definitions.parts();
if ( target instanceof WirelessTerminalGuiObject )
{
this.myIcon = AEApi.instance().items().itemWirelessTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_WIRELESS_TERM;
for ( ItemStack wirelessTerminalStack : definitions.items().wirelessTerminal().maybeStack( 1 ).asSet() )
{
this.myIcon = wirelessTerminalStack;
}
this.originalGui = GuiBridge.GUI_WIRELESS_TERM;
}
if ( target instanceof PartTerminal )
{
this.myIcon = AEApi.instance().parts().partTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_ME;
for ( ItemStack stack : parts.terminal().maybeStack( 1 ).asSet() )
{
this.myIcon = stack;
}
this.originalGui = GuiBridge.GUI_ME;
}
if ( target instanceof PartCraftingTerminal )
{
this.myIcon = AEApi.instance().parts().partCraftingTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_CRAFTING_TERMINAL;
for ( ItemStack stack : parts.craftingTerminal().maybeStack( 1 ).asSet() )
{
this.myIcon = stack;
}
this.originalGui = GuiBridge.GUI_CRAFTING_TERMINAL;
}
if ( target instanceof PartPatternTerminal )
{
this.myIcon = AEApi.instance().parts().partPatternTerminal.stack( 1 );
this.OriginalGui = GuiBridge.GUI_PATTERN_TERMINAL;
for ( ItemStack stack : parts.patternTerminal().maybeStack( 1 ).asSet() )
{
this.myIcon = stack;
}
this.originalGui = GuiBridge.GUI_PATTERN_TERMINAL;
}
}
@@ -106,7 +123,7 @@ public class GuiCraftingStatus extends GuiCraftingCPU
if ( btn == this.originalGuiBtn )
{
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.OriginalGui ) );
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( this.originalGui ) );
}
}
@@ -136,27 +153,27 @@ public class GuiCraftingStatus extends GuiCraftingCPU
{
String btnTextText = GuiText.NoCraftingJobs.getLocal();
if ( this.ccc.selectedCpu >= 0 )// && ccc.selectedCpu < ccc.cpus.size() )
if ( this.status.selectedCpu >= 0 )// && status.selectedCpu < status.cpus.size() )
{
if ( this.ccc.myName.length() > 0 )
if ( this.status.myName.length() > 0 )
{
String name = this.ccc.myName.substring( 0, Math.min( 20, this.ccc.myName.length() ) );
String name = this.status.myName.substring( 0, Math.min( 20, this.status.myName.length() ) );
btnTextText = GuiText.CPUs.getLocal() + ": " + name;
}
else
btnTextText = GuiText.CPUs.getLocal() + ": #" + this.ccc.selectedCpu;
btnTextText = GuiText.CPUs.getLocal() + ": #" + this.status.selectedCpu;
}
if ( this.ccc.noCPU )
if ( this.status.noCPU )
btnTextText = GuiText.NoCraftingJobs.getLocal();
this.selectCPU.displayString = btnTextText;
}
@Override
public void drawScreen(int mouse_x, int mouse_y, float btn)
public void drawScreen(int mouseX, int mouseY, float btn)
{
this.updateCPUButtonText();
super.drawScreen( mouse_x, mouse_y, btn );
super.drawScreen( mouseX, mouseY, btn );
}
}
@@ -22,12 +22,14 @@ import org.lwjgl.input.Mouse;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.config.FullnessMode;
import appeng.api.config.OperationMode;
import appeng.api.config.RedstoneMode;
import appeng.api.config.Settings;
import appeng.api.definitions.IDefinitions;
import appeng.client.gui.widgets.GuiImgButton;
import appeng.container.implementations.ContainerIOPort;
import appeng.core.localization.GuiText;
@@ -50,8 +52,18 @@ public class GuiIOPort extends GuiUpgradeable
public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY)
{
super.drawBG( offsetX, offsetY, mouseX, mouseY );
this.drawItem( offsetX + 66 - 8, offsetY + 17, AEApi.instance().items().itemCell1k.stack( 1 ) );
this.drawItem( offsetX + 94 + 8, offsetY + 17, AEApi.instance().blocks().blockDrive.stack( 1 ) );
final IDefinitions definitions = AEApi.instance().definitions();
for ( ItemStack cell1kStack : definitions.items().cell1k().maybeStack( 1 ).asSet() )
{
this.drawItem( offsetX + 66 - 8, offsetY + 17, cell1kStack );
}
for ( ItemStack driveStack : definitions.blocks().drive().maybeStack( 1 ).asSet() )
{
this.drawItem( offsetX + 94 + 8, offsetY + 17, driveStack );
}
}
@Override
@@ -25,6 +25,9 @@ import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.item.ItemStack;
import appeng.api.AEApi;
import appeng.api.definitions.IBlocks;
import appeng.api.definitions.IDefinitions;
import appeng.api.definitions.IParts;
import appeng.client.gui.AEBaseGui;
import appeng.client.gui.widgets.GuiNumberBox;
import appeng.client.gui.widgets.GuiTabButton;
@@ -88,44 +91,68 @@ public class GuiPriority extends AEBaseGui
ItemStack myIcon = null;
Object target = ((AEBaseContainer) this.inventorySlots).getTarget();
final IDefinitions definitions = AEApi.instance().definitions();
final IParts parts = definitions.parts();
final IBlocks blocks = definitions.blocks();
if ( target instanceof PartStorageBus )
{
myIcon = AEApi.instance().parts().partStorageBus.stack( 1 );
for ( ItemStack storageBusStack :parts.storageBus().maybeStack( 1 ).asSet() )
{
myIcon = storageBusStack;
}
this.OriginalGui = GuiBridge.GUI_STORAGEBUS;
}
if ( target instanceof PartFormationPlane )
{
myIcon = AEApi.instance().parts().partFormationPlane.stack( 1 );
for ( ItemStack formationPlaneStack : parts.formationPlane().maybeStack( 1 ).asSet() )
{
myIcon = formationPlaneStack;
}
this.OriginalGui = GuiBridge.GUI_FORMATION_PLANE;
}
if ( target instanceof TileDrive )
{
myIcon = AEApi.instance().blocks().blockDrive.stack( 1 );
for ( ItemStack driveStack : blocks.drive().maybeStack( 1 ).asSet() )
{
myIcon = driveStack;
}
this.OriginalGui = GuiBridge.GUI_DRIVE;
}
if ( target instanceof TileChest )
{
myIcon = AEApi.instance().blocks().blockChest.stack( 1 );
for ( ItemStack chestStack : blocks.chest().maybeStack( 1 ).asSet() )
{
myIcon = chestStack;
}
this.OriginalGui = GuiBridge.GUI_CHEST;
}
if ( target instanceof TileInterface )
{
myIcon = AEApi.instance().blocks().blockInterface.stack( 1 );
for ( ItemStack interfaceStack : blocks.iface().maybeStack( 1 ).asSet() )
{
myIcon = interfaceStack;
}
this.OriginalGui = GuiBridge.GUI_INTERFACE;
}
if ( target instanceof PartInterface )
{
myIcon = AEApi.instance().parts().partInterface.stack( 1 );
for ( ItemStack interfaceStack : parts.iface().maybeStack( 1 ).asSet() )
{
myIcon = interfaceStack;
}
this.OriginalGui = GuiBridge.GUI_INTERFACE;
}
if ( this.OriginalGui != null )
if ( this.OriginalGui != null && myIcon != null )
this.buttonList.add( this.originalGuiBtn = new GuiTabButton( this.guiLeft + 154, this.guiTop, myIcon, myIcon.getDisplayName(), itemRender ) );
this.priority = new GuiNumberBox( this.fontRendererObj, this.guiLeft + 62, this.guiTop + 57, 59, this.fontRendererObj.FONT_HEIGHT, Long.class );
@@ -158,27 +185,27 @@ public class GuiPriority extends AEBaseGui
{
try
{
String Out = this.priority.getText();
String out = this.priority.getText();
boolean Fixed = false;
while (Out.startsWith( "0" ) && Out.length() > 1)
boolean fixed = false;
while (out.startsWith( "0" ) && out.length() > 1)
{
Out = Out.substring( 1 );
Fixed = true;
out = out.substring( 1 );
fixed = true;
}
if ( Fixed )
this.priority.setText( Out );
if ( fixed )
this.priority.setText( out );
if ( Out.length() == 0 )
Out = "0";
if ( out.length() == 0 )
out = "0";
long result = Long.parseLong( Out );
long result = Long.parseLong( out );
result += i;
this.priority.setText( Out = Long.toString( result ) );
this.priority.setText( out = Long.toString( result ) );
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", Out ) );
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
}
catch(NumberFormatException e )
{
@@ -201,22 +228,22 @@ public class GuiPriority extends AEBaseGui
{
try
{
String Out = this.priority.getText();
String out = this.priority.getText();
boolean Fixed = false;
while (Out.startsWith( "0" ) && Out.length() > 1)
boolean fixed = false;
while (out.startsWith( "0" ) && out.length() > 1)
{
Out = Out.substring( 1 );
Fixed = true;
out = out.substring( 1 );
fixed = true;
}
if ( Fixed )
this.priority.setText( Out );
if ( fixed )
this.priority.setText( out );
if ( Out.length() == 0 )
Out = "0";
if ( out.length() == 0 )
out = "0";
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", Out ) );
NetworkHandler.instance.sendToServer( new PacketValueConfig( "PriorityHost.Priority", out ) );
}
catch (IOException e)
{
@@ -85,10 +85,9 @@ public class GuiImgButton extends GuiButton implements ITooltip
this.registerApp( 16 * 10, Settings.POWER_UNITS, PowerUnits.AE, ButtonToolTips.PowerUnits, PowerUnits.AE.unlocalizedName );
this.registerApp( 16 * 10 + 1, Settings.POWER_UNITS, PowerUnits.EU, ButtonToolTips.PowerUnits, PowerUnits.EU.unlocalizedName );
this.registerApp( 16 * 10 + 2, Settings.POWER_UNITS, PowerUnits.MJ, ButtonToolTips.PowerUnits, PowerUnits.MJ.unlocalizedName );
this.registerApp( 16 * 10 + 3, Settings.POWER_UNITS, PowerUnits.MK, ButtonToolTips.PowerUnits, PowerUnits.MK.unlocalizedName );
this.registerApp( 16 * 10 + 4, Settings.POWER_UNITS, PowerUnits.WA, ButtonToolTips.PowerUnits, PowerUnits.WA.unlocalizedName );
this.registerApp( 16 * 10 + 5, Settings.POWER_UNITS, PowerUnits.RF, ButtonToolTips.PowerUnits, PowerUnits.RF.unlocalizedName );
this.registerApp( 16 * 10 + 2, Settings.POWER_UNITS, PowerUnits.MK, ButtonToolTips.PowerUnits, PowerUnits.MK.unlocalizedName );
this.registerApp( 16 * 10 + 3, Settings.POWER_UNITS, PowerUnits.WA, ButtonToolTips.PowerUnits, PowerUnits.WA.unlocalizedName );
this.registerApp( 16 * 10 + 4, Settings.POWER_UNITS, PowerUnits.RF, ButtonToolTips.PowerUnits, PowerUnits.RF.unlocalizedName );
this.registerApp( 3, Settings.REDSTONE_CONTROLLED, RedstoneMode.IGNORE, ButtonToolTips.RedstoneMode, ButtonToolTips.AlwaysActive );
this.registerApp( 0, Settings.REDSTONE_CONTROLLED, RedstoneMode.LOW_SIGNAL, ButtonToolTips.RedstoneMode, ButtonToolTips.ActiveWithoutSignal );