Skip to content

Commit 7aa4a95

Browse files
authored
Merge pull request #45 from repo-alt/feature/OredictFilter
Oredictionary filter card
2 parents a6a0b36 + a7e81c1 commit 7aa4a95

31 files changed

+528
-95
lines changed

build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ buildscript {
4545
}
4646
}
4747

48-
sourceCompatibility = JavaVersion.VERSION_1_6
49-
targetCompatibility = JavaVersion.VERSION_1_6
48+
sourceCompatibility = JavaVersion.VERSION_1_8
49+
targetCompatibility = JavaVersion.VERSION_1_8
5050

5151
version = aeversion + "-" + aechannel + "-" + aebuild
5252
group = aegroup

gradle.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
aeversion=rv3
22
aechannel=beta
3-
aebuild=44-GTNH
3+
aebuild=45-GTNH
44
#KEEP V6 FOR MOD SUPPORT
55
aegroup=appeng
66
aebasename=appliedenergistics2

src/api/java/appeng/api/config/ActionItems.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,5 +26,5 @@
2626

2727
public enum ActionItems
2828
{
29-
WRENCH, CLOSE, STASH, ENCODE, SUBSTITUTION, SLOT_CONFIG
29+
WRENCH, CLOSE, STASH, ENCODE, SUBSTITUTION, SLOT_CONFIG, ORE_FILTER
3030
}

src/api/java/appeng/api/config/Upgrades.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public enum Upgrades
4343
/**
4444
* Diamond Tier Upgrades.
4545
*/
46-
FUZZY( 1 ), SPEED( 1 ), INVERTER( 1 ), PATTERN_CAPACITY(1);
46+
FUZZY( 1 ), SPEED( 1 ), INVERTER( 1 ), PATTERN_CAPACITY(1), ORE_FILTER(1);
4747

4848
/**
4949
* @deprecated use {@link Upgrades#getTier()}

src/api/java/appeng/api/definitions/IMaterials.java

+2
Original file line numberDiff line numberDiff line change
@@ -138,4 +138,6 @@ public interface IMaterials
138138
IItemDefinition blankPattern();
139139

140140
IItemDefinition cardPatternCapacity();
141+
142+
IItemDefinition cardOreFilter();
141143
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
package appeng.client.gui.implementations;
2+
3+
import appeng.client.gui.AEBaseGui;
4+
import appeng.container.AEBaseContainer;
5+
import appeng.container.implementations.ContainerOreFilter;
6+
import appeng.core.AELog;
7+
import appeng.core.localization.GuiText;
8+
import appeng.core.sync.GuiBridge;
9+
import appeng.core.sync.network.NetworkHandler;
10+
import appeng.core.sync.packets.PacketSwitchGuis;
11+
import appeng.core.sync.packets.PacketValueConfig;
12+
import appeng.helpers.IOreFilterable;
13+
import appeng.parts.automation.PartSharedItemBus;
14+
import appeng.parts.misc.PartStorageBus;
15+
import net.minecraft.client.gui.GuiTextField;
16+
import net.minecraft.entity.player.InventoryPlayer;
17+
18+
import java.io.IOException;
19+
20+
public class GuiOreFilter extends AEBaseGui {
21+
private GuiTextField filter;
22+
public GuiOreFilter(InventoryPlayer ip, IOreFilterable obj) {
23+
super(new ContainerOreFilter(ip, obj));
24+
}
25+
26+
@Override
27+
public void initGui() {
28+
super.initGui();
29+
this.filter = new GuiTextField(this.fontRendererObj, this.guiLeft + 13, this.guiTop + 36, 150, this.fontRendererObj.FONT_HEIGHT);
30+
this.filter.setEnableBackgroundDrawing(false);
31+
this.filter.setMaxStringLength(32);
32+
this.filter.setTextColor(0xFFFFFF);
33+
this.filter.setVisible(true);
34+
this.filter.setFocused(true);
35+
((ContainerOreFilter) this.inventorySlots).setTextField(this.filter);
36+
}
37+
38+
@Override
39+
public void drawFG(int offsetX, int offsetY, int mouseX, int mouseY) {
40+
this.fontRendererObj.drawString( GuiText.OreFilterLabel.getLocal(), 12, 8, 4210752 );
41+
}
42+
43+
@Override
44+
public void drawBG(int offsetX, int offsetY, int mouseX, int mouseY) {
45+
this.bindTexture( "guis/renamer.png" );
46+
this.drawTexturedModalRect( offsetX, offsetY, 0, 0, this.xSize, this.ySize );
47+
this.filter.drawTextBox();
48+
}
49+
50+
@Override
51+
protected void keyTyped(final char character, final int key) {
52+
if (key == 28) // Enter
53+
{
54+
try
55+
{
56+
NetworkHandler.instance.sendToServer(new PacketValueConfig("OreFilter", this.filter.getText()));
57+
}
58+
catch (IOException e)
59+
{
60+
AELog.debug(e);
61+
}
62+
final Object target = ( (AEBaseContainer) this.inventorySlots ).getTarget();
63+
GuiBridge OriginalGui = null;
64+
if (target instanceof PartStorageBus)
65+
OriginalGui = GuiBridge.GUI_STORAGEBUS;
66+
else if (target instanceof PartSharedItemBus)
67+
OriginalGui = GuiBridge.GUI_BUS;
68+
69+
if (OriginalGui != null)
70+
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( OriginalGui ) );
71+
else
72+
this.mc.thePlayer.closeScreen();
73+
}
74+
else if (this.filter.textboxKeyTyped(character, key))
75+
{
76+
((ContainerOreFilter) this.inventorySlots).setFilter(filter.getText());
77+
}
78+
else
79+
super.keyTyped(character, key);
80+
}
81+
}

src/main/java/appeng/client/gui/implementations/GuiStorageBus.java

+2
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ protected void addButtons()
6161
this.rwMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.ACCESS, AccessRestriction.READ_WRITE );
6262
this.storageFilter = new GuiImgButton( this.guiLeft - 18, this.guiTop + 68, Settings.STORAGE_FILTER, StorageFilter.EXTRACTABLE_ONLY );
6363
this.fuzzyMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 88, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
64+
this.oreFilter = new GuiImgButton( this.guiLeft - 18, this.guiTop + 88, Settings.ACTIONS, ActionItems.ORE_FILTER);
6465

6566
this.buttonList.add( this.priority = new GuiTabButton( this.guiLeft + 154, this.guiTop, 2 + 4 * 16, GuiText.Priority.getLocal(), itemRender ) );
6667

@@ -69,6 +70,7 @@ protected void addButtons()
6970
this.buttonList.add( this.rwMode );
7071
this.buttonList.add( this.partition );
7172
this.buttonList.add( this.clear );
73+
this.buttonList.add( this.oreFilter );
7274
}
7375

7476
@Override

src/main/java/appeng/client/gui/implementations/GuiUpgradeable.java

+15-1
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,10 @@
2525
import appeng.client.gui.widgets.GuiImgButton;
2626
import appeng.container.implementations.ContainerUpgradeable;
2727
import appeng.core.localization.GuiText;
28+
import appeng.core.sync.GuiBridge;
2829
import appeng.core.sync.network.NetworkHandler;
2930
import appeng.core.sync.packets.PacketConfigButton;
31+
import appeng.core.sync.packets.PacketSwitchGuis;
3032
import appeng.parts.automation.PartExportBus;
3133
import appeng.parts.automation.PartImportBus;
3234
import net.minecraft.client.gui.GuiButton;
@@ -44,6 +46,7 @@ public class GuiUpgradeable extends AEBaseGui
4446
protected GuiImgButton fuzzyMode;
4547
protected GuiImgButton craftMode;
4648
protected GuiImgButton schedulingMode;
49+
protected GuiImgButton oreFilter;
4750

4851
public GuiUpgradeable( final InventoryPlayer inventoryPlayer, final IUpgradeableHost te )
4952
{
@@ -78,11 +81,13 @@ protected void addButtons()
7881
this.fuzzyMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 28, Settings.FUZZY_MODE, FuzzyMode.IGNORE_ALL );
7982
this.craftMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 48, Settings.CRAFT_ONLY, YesNo.NO );
8083
this.schedulingMode = new GuiImgButton( this.guiLeft - 18, this.guiTop + 68, Settings.SCHEDULING_MODE, SchedulingMode.DEFAULT );
84+
this.oreFilter = new GuiImgButton( this.guiLeft - 18, this.guiTop + 28, Settings.ACTIONS, ActionItems.ORE_FILTER);
8185

8286
this.buttonList.add( this.craftMode );
8387
this.buttonList.add( this.redstoneMode );
8488
this.buttonList.add( this.fuzzyMode );
8589
this.buttonList.add( this.schedulingMode );
90+
this.buttonList.add( this.oreFilter );
8691
}
8792

8893
@Override
@@ -137,7 +142,7 @@ protected void handleButtonVisibility()
137142
}
138143
if( this.fuzzyMode != null )
139144
{
140-
this.fuzzyMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.FUZZY ) > 0 );
145+
this.fuzzyMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.FUZZY ) > 0 && this.bc.getInstalledUpgrades( Upgrades.ORE_FILTER ) == 0);
141146
}
142147
if( this.craftMode != null )
143148
{
@@ -147,6 +152,10 @@ protected void handleButtonVisibility()
147152
{
148153
this.schedulingMode.setVisibility( this.bc.getInstalledUpgrades( Upgrades.CAPACITY ) > 0 && this.bc instanceof PartExportBus );
149154
}
155+
if( this.oreFilter != null )
156+
{
157+
this.oreFilter.setVisibility( this.bc.getInstalledUpgrades( Upgrades.ORE_FILTER ) > 0);
158+
}
150159
}
151160

152161
protected String getBackground()
@@ -190,5 +199,10 @@ protected void actionPerformed( final GuiButton btn )
190199
{
191200
NetworkHandler.instance.sendToServer( new PacketConfigButton( this.schedulingMode.getSetting(), backwards ) );
192201
}
202+
203+
if( btn == this.oreFilter )
204+
{
205+
NetworkHandler.instance.sendToServer( new PacketSwitchGuis( GuiBridge.GUI_ORE_FILTER ) );
206+
}
193207
}
194208
}

src/main/java/appeng/client/gui/widgets/GuiImgButton.java

+3
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,9 @@ public GuiImgButton( final int x, final int y, final Enum idx, final Enum val )
147147
this.registerApp( 16 * 15, Settings.SCHEDULING_MODE, SchedulingMode.DEFAULT, ButtonToolTips.SchedulingMode, ButtonToolTips.SchedulingModeDefault );
148148
this.registerApp( 16 * 15 + 1, Settings.SCHEDULING_MODE, SchedulingMode.ROUNDROBIN, ButtonToolTips.SchedulingMode, ButtonToolTips.SchedulingModeRoundRobin );
149149
this.registerApp( 16 * 15 + 2, Settings.SCHEDULING_MODE, SchedulingMode.RANDOM, ButtonToolTips.SchedulingMode, ButtonToolTips.SchedulingModeRandom );
150+
151+
this.registerApp( 70, Settings.ACTIONS, ActionItems.ORE_FILTER, ButtonToolTips.OreFilter, ButtonToolTips.OreFilterHint );
152+
150153
}
151154
}
152155

src/main/java/appeng/container/guisync/SyncData.java

+1
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,7 @@ private void updateString( final Object oldValue, final String val )
139139
try
140140
{
141141
this.field.set( this.source, val );
142+
this.source.onUpdate( this.field.getName(), oldValue, this.field.get( this.source ) );
142143
}
143144
catch( final IllegalArgumentException e )
144145
{
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
package appeng.container.implementations;
2+
3+
import appeng.api.config.SecurityPermissions;
4+
import appeng.api.parts.IPart;
5+
import appeng.container.AEBaseContainer;
6+
import appeng.container.guisync.GuiSync;
7+
import appeng.helpers.IOreFilterable;
8+
import appeng.util.Platform;
9+
import cpw.mods.fml.relauncher.Side;
10+
import cpw.mods.fml.relauncher.SideOnly;
11+
import net.minecraft.client.gui.GuiTextField;
12+
import net.minecraft.entity.player.EntityPlayer;
13+
import net.minecraft.entity.player.InventoryPlayer;
14+
import net.minecraft.tileentity.TileEntity;
15+
16+
public class ContainerOreFilter extends AEBaseContainer
17+
{
18+
private final IOreFilterable filterHost;
19+
@SideOnly( Side.CLIENT )
20+
private GuiTextField textField;
21+
@GuiSync( 2 )
22+
public String filter = "";
23+
24+
public ContainerOreFilter( final InventoryPlayer ip, final IOreFilterable te)
25+
{
26+
super( ip, (TileEntity) ( te instanceof TileEntity ? te : null ), (IPart) ( te instanceof IPart ? te : null ) );
27+
this.filterHost = te;
28+
}
29+
30+
@SideOnly( Side.CLIENT )
31+
public void setTextField( final GuiTextField f )
32+
{
33+
this.textField = f;
34+
this.textField.setText(filter);
35+
}
36+
37+
public void setFilter( final String newValue)
38+
{
39+
this.filterHost.setFilter(newValue);
40+
this.filter = newValue;
41+
}
42+
43+
@Override
44+
public void detectAndSendChanges()
45+
{
46+
this.verifyPermissions( SecurityPermissions.BUILD, false );
47+
if (Platform.isServer())
48+
this.filter = this.filterHost.getFilter();
49+
super.detectAndSendChanges();
50+
}
51+
@Override
52+
public void onUpdate( final String field, final Object oldValue, final Object newValue )
53+
{
54+
if (field.equals("filter") && this.textField != null)
55+
this.textField.setText(filter);
56+
57+
super.onUpdate( field, oldValue, newValue );
58+
}
59+
}

src/main/java/appeng/container/implementations/ContainerStorageBus.java

+6-9
Original file line numberDiff line numberDiff line change
@@ -72,14 +72,8 @@ protected void setupConfig()
7272
{
7373
for( int x = 0; x < 9; x++ )
7474
{
75-
if( y < 2 )
76-
{
77-
this.addSlotToContainer( new SlotFakeTypeOnly( config, y * 9 + x, xo + x * 18, yo + y * 18 ) );
78-
}
79-
else
80-
{
81-
this.addSlotToContainer( new OptionalSlotFakeTypeOnly( config, this, y * 9 + x, xo, yo, x, y, y - 2 ) );
82-
}
75+
// this.addSlotToContainer( new SlotFakeTypeOnly( config, y * 9 + x, xo + x * 18, yo + y * 18 ) );
76+
this.addSlotToContainer( new OptionalSlotFakeTypeOnly( config, this, y * 9 + x, xo, yo, x, y, y ) );
8377
}
8478
}
8579

@@ -121,9 +115,12 @@ public void detectAndSendChanges()
121115
@Override
122116
public boolean isSlotEnabled( final int idx )
123117
{
118+
if (this.getUpgradeable().getInstalledUpgrades(Upgrades.ORE_FILTER) > 0)
119+
return false;
120+
124121
final int upgrades = this.getUpgradeable().getInstalledUpgrades( Upgrades.CAPACITY );
125122

126-
return upgrades > idx;
123+
return upgrades > (idx-2);
127124
}
128125

129126
public void clear()

src/main/java/appeng/container/implementations/ContainerUpgradeable.java

+7-2
Original file line numberDiff line numberDiff line change
@@ -127,8 +127,7 @@ protected void setupConfig()
127127
final IInventory inv = this.getUpgradeable().getInventoryByName( "config" );
128128
final int y = 40;
129129
final int x = 80;
130-
this.addSlotToContainer( new SlotFakeTypeOnly( inv, 0, x, y ) );
131-
130+
this.addSlotToContainer( new OptionalSlotFakeTypeOnly( inv, this, 0, x, y, 0, 0, 0 ) );
132131
if( this.supportCapacity() )
133132
{
134133
this.addSlotToContainer( new OptionalSlotFakeTypeOnly( inv, this, 1, x, y, -1, 0, 1 ) );
@@ -248,6 +247,12 @@ protected void standardDetectAndSendChanges()
248247
@Override
249248
public boolean isSlotEnabled( final int idx )
250249
{
250+
if (this.getUpgradeable().getInstalledUpgrades( Upgrades.ORE_FILTER ) > 0)
251+
return false;
252+
253+
if (idx == 0)
254+
return true;
255+
251256
final int upgrades = this.getUpgradeable().getInstalledUpgrades( Upgrades.CAPACITY );
252257

253258
if( idx == 1 && upgrades > 0 )

src/main/java/appeng/core/Registration.java

+4
Original file line numberDiff line numberDiff line change
@@ -590,13 +590,15 @@ void postInit( final FMLPostInitializationEvent event )
590590
Upgrades.REDSTONE.registerItem( parts.importBus(), 1 );
591591
Upgrades.CAPACITY.registerItem( parts.importBus(), 2 );
592592
Upgrades.SPEED.registerItem( parts.importBus(), 4 );
593+
Upgrades.ORE_FILTER.registerItem( parts.importBus(), 1 );
593594

594595
// Export Bus
595596
Upgrades.FUZZY.registerItem( parts.exportBus(), 1 );
596597
Upgrades.REDSTONE.registerItem( parts.exportBus(), 1 );
597598
Upgrades.CAPACITY.registerItem( parts.exportBus(), 2 );
598599
Upgrades.SPEED.registerItem( parts.exportBus(), 4 );
599600
Upgrades.CRAFTING.registerItem( parts.exportBus(), 1 );
601+
Upgrades.ORE_FILTER.registerItem( parts.exportBus(), 1 );
600602

601603
// Storage Cells
602604
Upgrades.FUZZY.registerItem( items.cell1k(), 1 );
@@ -621,11 +623,13 @@ void postInit( final FMLPostInitializationEvent event )
621623
Upgrades.FUZZY.registerItem( parts.storageBus(), 1 );
622624
Upgrades.INVERTER.registerItem( parts.storageBus(), 1 );
623625
Upgrades.CAPACITY.registerItem( parts.storageBus(), 5 );
626+
Upgrades.ORE_FILTER.registerItem( parts.storageBus(), 1 );
624627

625628
// Formation Plane
626629
Upgrades.FUZZY.registerItem( parts.formationPlane(), 1 );
627630
Upgrades.INVERTER.registerItem( parts.formationPlane(), 1 );
628631
Upgrades.CAPACITY.registerItem( parts.formationPlane(), 5 );
632+
//Upgrades.ORE_FILTER.registerItem( parts.formationPlane(), 1 );
629633

630634
// Matter Cannon
631635
Upgrades.FUZZY.registerItem( items.massCannon(), 1 );

src/main/java/appeng/core/api/definitions/ApiMaterials.java

+6-5
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ public final class ApiMaterials implements IMaterials
7575
private final IItemDefinition cardFuzzy;
7676
private final IItemDefinition cardInverter;
7777
private final IItemDefinition cardCrafting;
78-
78+
private final IItemDefinition cardOreFilter;
7979
private final IItemDefinition enderDust;
8080
private final IItemDefinition flour;
8181
private final IItemDefinition goldDust;
@@ -153,6 +153,7 @@ public ApiMaterials( final DefinitionConstructor constructor )
153153
this.cardFuzzy = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardFuzzy ) );
154154
this.cardInverter = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardInverter ) );
155155
this.cardCrafting = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardCrafting ) );
156+
this.cardOreFilter = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.CardOreFilter ) );
156157

157158
this.enderDust = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.EnderDust ) );
158159
this.flour = new DamagedItemDefinition( itemMultiMaterial.createMaterial( MaterialType.Flour ) );
@@ -364,10 +365,10 @@ public IItemDefinition cardCapacity()
364365
}
365366

366367
@Override
367-
public IItemDefinition cardPatternCapacity()
368-
{
369-
return this.cardPatternCapacity;
370-
}
368+
public IItemDefinition cardPatternCapacity() { return this.cardPatternCapacity; }
369+
370+
@Override
371+
public IItemDefinition cardOreFilter() { return this.cardOreFilter; }
371372

372373
@Override
373374
public IItemDefinition cardFuzzy()

0 commit comments

Comments
 (0)