11
11
package vazkii .botania .common .item .relic ;
12
12
13
13
14
- import java . awt . Color ;
15
- import java . util .* ;
16
- import java . util . stream . Collectors ;
17
-
14
+ import baubles . api . BaubleType ;
15
+ import baubles . common . container . InventoryBaubles ;
16
+ import baubles . common . lib . PlayerHandler ;
17
+ import baubles . common . network . PacketSyncBauble ;
18
18
import com .gtnewhorizon .gtnhlib .GTNHLib ;
19
19
import com .gtnewhorizons .modularui .api .UIInfos ;
20
- import com .gtnewhorizons .modularui .api .screen .IItemWithModularUI ;
21
20
import com .gtnewhorizons .modularui .api .screen .ModularWindow ;
22
21
import com .gtnewhorizons .modularui .api .screen .UIBuildContext ;
22
+ import cpw .mods .fml .common .Loader ;
23
+ import cpw .mods .fml .common .Optional ;
24
+ import cpw .mods .fml .common .eventhandler .SubscribeEvent ;
25
+ import cpw .mods .fml .relauncher .Side ;
26
+ import cpw .mods .fml .relauncher .SideOnly ;
23
27
import net .minecraft .block .Block ;
24
28
import net .minecraft .block .material .Material ;
25
29
import net .minecraft .client .Minecraft ;
33
37
import net .minecraft .item .Item ;
34
38
import net .minecraft .item .ItemStack ;
35
39
import net .minecraft .nbt .NBTTagCompound ;
36
-
37
40
import net .minecraft .nbt .NBTTagString ;
38
- import net .minecraft .util .AxisAlignedBB ;
39
- import net .minecraft .util .ChunkCoordinates ;
40
- import net .minecraft .util .EnumChatFormatting ;
41
- import net .minecraft .util .MovingObjectPosition ;
42
- import net .minecraft .util .StatCollector ;
41
+ import net .minecraft .util .*;
43
42
import net .minecraft .world .World ;
44
43
import net .minecraftforge .common .MinecraftForge ;
45
44
import net .minecraftforge .common .util .ForgeDirection ;
59
58
import vazkii .botania .common .item .ModItems ;
60
59
import vazkii .botania .common .item .equipment .tool .ToolCommons ;
61
60
import vazkii .botania .common .lib .LibItemNames ;
62
- import baubles .api .BaubleType ;
63
- import baubles .common .container .InventoryBaubles ;
64
- import baubles .common .lib .PlayerHandler ;
65
- import baubles .common .network .PacketSyncBauble ;
66
- import cpw .mods .fml .common .eventhandler .SubscribeEvent ;
67
- import cpw .mods .fml .relauncher .Side ;
68
- import cpw .mods .fml .relauncher .SideOnly ;
69
61
import vazkii .botania .common .network .PacketLokiHudNotificationAck ;
70
62
63
+ import java .awt .*;
64
+ import java .util .ArrayList ;
65
+ import java .util .List ;
66
+ import java .util .UUID ;
67
+
68
+ public class ItemLokiRing extends ItemRelicBauble implements IExtendedWireframeCoordinateListProvider , IManaUsingItem , IInWorldRenderable {
71
69
72
- public class ItemLokiRing extends ItemRelicBauble implements IExtendedWireframeCoordinateListProvider , IManaUsingItem , IInWorldRenderable , IItemWithModularUI {
70
+ public static final boolean isModularUIEnabled = Loader . isModLoaded ( "modularui" );
73
71
74
72
public static final String TAG_CURSOR_LIST = "cursorList" ;
75
73
public static final String TAG_CURSOR_PREFIX = "cursor" ;
@@ -84,16 +82,18 @@ public class ItemLokiRing extends ItemRelicBauble implements IExtendedWireframeC
84
82
public static final String TAG_CURRENT_SCHEMATIC = "currentSchematic" ;
85
83
private boolean recursion = false ;
86
84
87
- private ModularWindow window ;
85
+ private Object window ;
86
+
88
87
public List <Object > schematicNames ;
89
88
90
- @ Override
89
+ @ Optional . Method ( modid = "modularui" )
91
90
public ModularWindow createWindow (UIBuildContext buildContext , ItemStack heldStack ) {
92
91
this .window = GuiLokiSchematics .getWindow (buildContext , heldStack );
93
92
this .schematicNames = new ArrayList <>(heldStack .getTagCompound ().getCompoundTag (TAG_SAVED_SCHEMATICS ).tagMap .keySet ());
94
- return window ;
93
+ return ( ModularWindow ) window ;
95
94
}
96
95
96
+ @ Optional .Method (modid = "modularui" )
97
97
public static void openUI (EntityPlayer player , ItemStack stack ) {
98
98
if (isLokiRing (stack ) && stack .getItem () instanceof ItemLokiRing ) {
99
99
ItemLokiRing lokiRing = (ItemLokiRing ) stack .getItem ();
@@ -364,7 +364,8 @@ public static void deleteSchematic(ItemStack lokiStack, String schematicName) {
364
364
ItemLokiRing lokiRing = ((ItemLokiRing ) lokiStack .getItem ());
365
365
if (lokiRing != null ) {
366
366
lokiRing .schematicNames .remove (schematicName );
367
- lokiRing .window .markNeedsRebuild ();
367
+ if (isModularUIEnabled )
368
+ ((ModularWindow ) lokiRing .window ).markNeedsRebuild ();
368
369
}
369
370
}
370
371
0 commit comments