99import appeng .api .features .ILocatable ;
1010import appeng .api .features .IWirelessTermHandler ;
1111import appeng .api .features .IWirelessTermRegistry ;
12- import appeng .api .networking .IGrid ;
13- import appeng .api .networking .storage .IStorageGrid ;
1412import appeng .api .parts .IPart ;
1513import appeng .api .parts .IPartHost ;
16- import appeng .api .storage .IMEMonitor ;
1714import appeng .api .storage .ITerminalHost ;
18- import appeng .api .storage .channels .IItemStorageChannel ;
19- import appeng .api .storage .data .IAEItemStack ;
2015import appeng .api .util .AEPartLocation ;
2116import appeng .container .AEBaseContainer ;
2217import appeng .container .ContainerOpenContext ;
2318import appeng .core .localization .PlayerMessages ;
2419import appeng .me .GridAccessException ;
25- import appeng .tile .misc .TileSecurityStation ;
2620import appeng .util .Platform ;
2721import baubles .api .BaublesApi ;
2822import com ._0xc4de .ae2exttable .AE2ExtendedCraftingTable ;
5246import net .minecraft .util .EnumFacing ;
5347import net .minecraft .util .math .BlockPos ;
5448import net .minecraft .world .World ;
49+ import net .minecraftforge .fml .common .Loader ;
50+ import net .minecraftforge .fml .common .Optional ;
5551import net .minecraftforge .fml .common .network .IGuiHandler ;
5652import org .jetbrains .annotations .Nullable ;
5753
@@ -90,13 +86,8 @@ public static void openWirelessTerminalGui(ItemStack item, int invSlot,
9086 return ;
9187 }
9288 final long parsedKey = Long .parseLong (unparsedKey );
93- final ILocatable
94- securityStation =
89+ final ILocatable securityStation =
9590 AEApi .instance ().registries ().locatable ().getLocatableBy (parsedKey );
96- TileSecurityStation security_station = (TileSecurityStation ) securityStation ;
97- IGrid grid = security_station .getProxy ().getGrid ();
98- IStorageGrid inv = grid .getCache (IStorageGrid .class );
99- final IMEMonitor <IAEItemStack > storage = inv .getInventory (AEApi .instance ().storage ().getStorageChannel (IItemStorageChannel .class ));
10091 if (securityStation == null ) {
10192 player .sendMessage (PlayerMessages .StationCanNotBeLocated .get ());
10293 return ;
@@ -140,8 +131,7 @@ public static IPart getPartFromWorld(World world, BlockPos pos,
140131 private Object updateGui (final Object newContainer , final World w ,
141132 final int x , final int y , final int z ,
142133 final AEPartLocation side , final Object myItem ) {
143- if (newContainer instanceof AEBaseContainer ) {
144- final AEBaseContainer bc = (AEBaseContainer ) newContainer ;
134+ if (newContainer instanceof AEBaseContainer bc ) {
145135 bc .setOpenContext (new ContainerOpenContext (myItem ));
146136 bc .getOpenContext ().setWorld (w );
147137 bc .getOpenContext ().setX (x );
@@ -163,21 +153,17 @@ private Object updateGui(final Object newContainer, final World w,
163153
164154 if (guiIsWirelessTerminal (guiID )) { // idk is item
165155 ItemStack termItem = getWirelessTermItem (usingItemOnTile , player , world , guiID , side , x , y , z );
166- final Object item =
167- this .getGuiObject (guiID , termItem , player , world , x , y , z , side );
156+ final Object item = this .getGuiObject (guiID , termItem , player , world , x , y , z , side );
168157 return this .updateGui (item , world , x , y , z , side , termItem );
169158 } else {
170-
171159 final TileEntity TE = world .getTileEntity (new BlockPos (x , y , z ));
172160
173161 if (TE instanceof IPartHost ) {
174162 final IPart part = ((IPartHost ) TE ).getPart (side );
175163 if (part == null ) {
176164 return null ;
177165 }
178- Object gui =
179- this .getGuiObject (guiID , ItemStack .EMPTY , player , world , x , y , z ,
180- side );
166+ Object gui = this .getGuiObject (guiID , ItemStack .EMPTY , player , world , x , y , z , side );
181167 return this .updateGui (gui , world , x , y , z , side , part );
182168 }
183169 }
@@ -193,8 +179,7 @@ private Object getGuiObject(final AE2ExtendedGUIs guiID,
193179 final int z , final AEPartLocation side ) {
194180
195181 if (myItem .isEmpty ()) {
196- IPart part =
197- PartGuiHandler .getPartFromWorld (world , new BlockPos (x , y , z ), side );
182+ IPart part = PartGuiHandler .getPartFromWorld (world , new BlockPos (x , y , z ), side );
198183
199184 return switch (guiID ) {
200185 case BASIC_CRAFTING_TERMINAL -> new ContainerBasicCraftingTerminal (player .inventory ,
@@ -214,19 +199,15 @@ private Object getGuiObject(final AE2ExtendedGUIs guiID,
214199 AEApi .instance ().registries ().wireless ()
215200 .getWirelessTerminalHandler (myItem );
216201
217- wireless =
218- new WirelessTerminalGuiObjectTwo (handler , myItem , player , world , x ,
219- y , z );
202+ wireless = new WirelessTerminalGuiObjectTwo (handler , myItem , player , world , x , y , z );
220203 }
221204
222205 return switch (guiID ) {
223206 // Start wireless stuffs here
224207 case WIRELESS_BASIC_CRAFTING_TERMINAL -> new ContainerBasicWirelessTerminal (player .inventory , wireless );
225- case WIRELESS_ADVANCED_CRAFTING_TERMINAL ->
226- new ContainerAdvancedWirelessTerminal (player .inventory , wireless );
208+ case WIRELESS_ADVANCED_CRAFTING_TERMINAL -> new ContainerAdvancedWirelessTerminal (player .inventory , wireless );
227209 case WIRELESS_ELITE_CRAFTING_TERMINAL -> new ContainerEliteWirelessTerminal (player .inventory , wireless );
228- case WIRELESS_ULTIMATE_CRAFTING_TERMINAL ->
229- new ContainerUltimateWirelessTerminal (player .inventory , wireless );
210+ case WIRELESS_ULTIMATE_CRAFTING_TERMINAL -> new ContainerUltimateWirelessTerminal (player .inventory , wireless );
230211 default -> null ;
231212 };
232213 }
@@ -238,66 +219,62 @@ private Object getGuiObject(final AE2ExtendedGUIs guiID,
238219 int z ) {
239220 AE2ExtendedGUIs guiID = PartGuiHandler .getGUIFromOrdinal (ID );
240221 AEPartLocation side = PartGuiHandler .getSideFromOrdinal (ID );
241- IPart part =
242- PartGuiHandler .getPartFromWorld (world , new BlockPos (x , y , z ), side );
243222 final boolean usingItemOnTile = ((ID >> 3 ) & 1 ) == 1 ;
244223
245224 WirelessTerminalGuiObjectTwo gui = null ;
225+ ITerminalHost part = null ;
246226 if (guiIsWirelessTerminal (guiID )) {
247227 ItemStack termItem = getWirelessTermItem (usingItemOnTile , player , world , guiID , side , x , y , z );
248228 final IWirelessTermHandler handler =
249229 AEApi .instance ().registries ().wireless ()
250230 .getWirelessTerminalHandler (termItem );
251- gui = new WirelessTerminalGuiObjectTwo (
252- handler , player .inventory .getCurrentItem (), player , world , x , y , z );
253- }
254231
255- switch (guiID ) {
256- case BASIC_CRAFTING_TERMINAL :
257- GuiBasicCraftingTerminal term =
258- new GuiBasicCraftingTerminal (player .inventory , (ITerminalHost ) part ,
259- new ContainerBasicCraftingTerminal (player .inventory ,
260- (PartBasicCraftingTerminal ) part ));
261- return term ;
262- case ADVANCED_CRAFTING_TERMINAL :
263- return new GuiAdvancedCraftingTerminal (player .inventory ,
264- (ITerminalHost ) part ,
265- new ContainerAdvancedCraftingTerminal (player .inventory ,
266- (PartAdvancedCraftingTerminal ) part ));
267- case ELITE_CRAFTING_TERMINAL :
268- return new GuiEliteCraftingTerminal (player .inventory ,
269- (ITerminalHost ) part ,
270- new ContainerEliteCraftingTerminal (player .inventory ,
271- (PartEliteCraftingTerminal ) part ));
272- case ULTIMATE_CRAFTING_TERMINAL :
273- return new GuiUltimateCraftingTerminal (player .inventory ,
274- (ITerminalHost ) part ,
275- new ContainerUltimateCraftingTerminal (player .inventory ,
276- (PartUltimateCraftingTerminal ) part ));
232+ ItemStack terminal = ItemStack .EMPTY ;
233+ if (y == 0 ) {
234+ terminal = player .inventory .getStackInSlot (x );
235+ } else if (y == 1 && Loader .isModLoaded ("baubles" )) {
236+ terminal = getStackInBaubleSlot (player , x );
237+ }
277238
278- case WIRELESS_BASIC_CRAFTING_TERMINAL :
279- // TODO: Fix for baubles, I guess?
280- return new GuiWirelessBasicCraftingTerm (player .inventory , gui ,
281- new ContainerBasicWirelessTerminal (
282- player .inventory , gui ));
239+ if (terminal .isEmpty ())return null ;
283240
284- case WIRELESS_ADVANCED_CRAFTING_TERMINAL :
285- return new GuiWirelessAdvancedCraftingTerm ( player . inventory , gui ,
286- new ContainerAdvancedWirelessTerminal (
287- player . inventory , gui ));
241+ gui = new WirelessTerminalGuiObjectTwo ( handler , terminal , player , world , x , y , z );
242+ } else {
243+ part = ( ITerminalHost ) PartGuiHandler . getPartFromWorld ( world , new BlockPos ( x , y , z ), side );
244+ }
288245
289- case WIRELESS_ELITE_CRAFTING_TERMINAL :
290- return new GuiWirelessEliteCraftingTerm (player .inventory , gui ,
291- new ContainerEliteWirelessTerminal (
292- player .inventory , gui ));
246+ return switch (guiID ) {
247+ case BASIC_CRAFTING_TERMINAL -> new GuiBasicCraftingTerminal (player .inventory , part ,
248+ new ContainerBasicCraftingTerminal (
249+ player .inventory , part ));
250+ case ADVANCED_CRAFTING_TERMINAL -> new GuiAdvancedCraftingTerminal (player .inventory , part ,
251+ new ContainerAdvancedCraftingTerminal (
252+ player .inventory , part ));
253+ case ELITE_CRAFTING_TERMINAL -> new GuiEliteCraftingTerminal (player .inventory , part ,
254+ new ContainerEliteCraftingTerminal (
255+ player .inventory , part ));
256+ case ULTIMATE_CRAFTING_TERMINAL -> new GuiUltimateCraftingTerminal (player .inventory , part ,
257+ new ContainerUltimateCraftingTerminal (
258+ player .inventory , part ));
259+ case WIRELESS_BASIC_CRAFTING_TERMINAL ->
260+ new GuiWirelessBasicCraftingTerm (player .inventory , gui ,
261+ new ContainerBasicWirelessTerminal (
262+ player .inventory , gui ));
263+ case WIRELESS_ADVANCED_CRAFTING_TERMINAL -> new GuiWirelessAdvancedCraftingTerm (player .inventory , gui ,
264+ new ContainerAdvancedWirelessTerminal (player .inventory , gui ));
265+ case WIRELESS_ELITE_CRAFTING_TERMINAL -> new GuiWirelessEliteCraftingTerm (player .inventory , gui ,
266+ new ContainerEliteWirelessTerminal (
267+ player .inventory , gui ));
268+ case WIRELESS_ULTIMATE_CRAFTING_TERMINAL -> new GuiWirelessUltimateCraftingTerm (player .inventory , gui ,
269+ new ContainerUltimateWirelessTerminal (
270+ player .inventory , gui ));
271+ default -> null ;
272+ };
273+ }
293274
294- case WIRELESS_ULTIMATE_CRAFTING_TERMINAL :
295- return new GuiWirelessUltimateCraftingTerm (player .inventory , gui ,
296- new ContainerUltimateWirelessTerminal (
297- player .inventory , gui ));
298- default :
299- return null ;
300- }
275+ @ Optional .Method (modid = "baubles" )
276+ private ItemStack getStackInBaubleSlot (EntityPlayer player ,int slot ){
277+ return slot >= 0 && slot < BaublesApi .getBaublesHandler (player ).getSlots () ? BaublesApi .getBaublesHandler (player ).getStackInSlot (slot ) : ItemStack .EMPTY ;
301278 }
302279
303280 private ItemStack getWirelessTermItem (boolean usingItemOnTile , EntityPlayer player , World world , AE2ExtendedGUIs guiID , AEPartLocation side , int x , int y , int z ) {
@@ -314,8 +291,6 @@ private ItemStack getWirelessTermItem(boolean usingItemOnTile, EntityPlayer play
314291 return termItem ;
315292 }
316293
317- ;
318-
319294 public static boolean guiIsWirelessTerminal (AE2ExtendedGUIs gui ) {
320295 return gui .ordinal () > 4 ;
321296 }
0 commit comments