11package com .circulation .random_complement .mixin .mmce ;
22
3+ import appeng .api .config .Actionable ;
4+ import appeng .api .config .Upgrades ;
5+ import appeng .api .networking .crafting .ICraftingLink ;
6+ import appeng .api .storage .data .IAEItemStack ;
7+ import appeng .api .util .IConfigManager ;
38import appeng .helpers .DualityInterface ;
9+ import appeng .helpers .IInterfaceHost ;
410import com .circulation .random_complement .common .interfaces .RCIConfigManager ;
511import com .circulation .random_complement .common .interfaces .RCIConfigurableObject ;
12+ import com .glodblock .github .common .tile .TileDualInterface ;
13+ import com .google .common .collect .ImmutableSet ;
614import github .kasuminova .mmce .common .tile .MEPatternProvider ;
15+ import github .kasuminova .mmce .common .tile .base .MEMachineComponent ;
16+ import net .minecraft .tileentity .TileEntity ;
17+ import net .minecraft .util .EnumFacing ;
18+ import net .minecraftforge .items .IItemHandler ;
19+ import org .spongepowered .asm .mixin .Implements ;
20+ import org .spongepowered .asm .mixin .Interface ;
21+ import org .spongepowered .asm .mixin .Intrinsic ;
722import org .spongepowered .asm .mixin .Mixin ;
8- import org .spongepowered .asm .mixin .Shadow ;
23+ import org .spongepowered .asm .mixin .Unique ;
24+ import org .spongepowered .asm .mixin .injection .At ;
25+ import org .spongepowered .asm .mixin .injection .Inject ;
26+ import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
27+
28+ import java .util .EnumSet ;
929
1030@ Mixin (value = MEPatternProvider .class , remap = false )
11- public abstract class MixinMEPatternProvider implements RCIConfigurableObject {
12- @ Shadow
13- public abstract DualityInterface getInterfaceDuality ();
31+ @ Implements (@ Interface (iface = IInterfaceHost .class , prefix = "soft$" ))
32+ public abstract class MixinMEPatternProvider extends MEMachineComponent implements RCIConfigurableObject , IInterfaceHost {
33+
34+ @ Unique
35+ private DualityInterface r$d ;
36+
37+ @ Inject (method = "<init>" , at = @ At ("TAIL" ))
38+ public void onInit (CallbackInfo ci ) {
39+ if (soft$getInterfaceDuality () == null ) {
40+ r$d = new DualityInterface (this .proxy , new TileDualInterface ());
41+ }
42+ }
1443
15- @ Override
44+ @ Intrinsic
45+ public DualityInterface soft$getInterfaceDuality () {
46+ return r$d ;
47+ }
48+
49+ @ Intrinsic
1650 public RCIConfigManager r$getConfigManager () {
17- return ((RCIConfigurableObject ) this .getInterfaceDuality ()).r$getConfigManager ();
51+ return ((RCIConfigurableObject ) soft$getInterfaceDuality ()).r$getConfigManager ();
52+ }
53+
54+ @ Intrinsic
55+ public EnumSet <EnumFacing > soft$getTargets () {
56+ return EnumSet .noneOf (EnumFacing .class );
57+ }
58+
59+ @ Intrinsic
60+ public TileEntity soft$getTileEntity () {
61+ return this ;
62+ }
63+
64+ @ Intrinsic
65+ public void soft$saveChanges () {
66+
67+ }
68+
69+ @ Intrinsic
70+ public int soft$getInstalledUpgrades (Upgrades upgrades ) {
71+ return 0 ;
1872 }
73+
74+ @ Intrinsic
75+ public TileEntity soft$getTile () {
76+ return this ;
77+ }
78+
79+ @ Intrinsic
80+ public IItemHandler soft$getInventoryByName (String s ) {
81+ return null ;
82+ }
83+
84+ @ Intrinsic
85+ public ImmutableSet <ICraftingLink > soft$getRequestedJobs () {
86+ return ImmutableSet .of ();
87+ }
88+
89+ @ Intrinsic
90+ public IAEItemStack soft$injectCraftedItems (ICraftingLink iCraftingLink , IAEItemStack iaeItemStack , Actionable actionable ) {
91+ return soft$getInterfaceDuality ().injectCraftedItems (iCraftingLink , iaeItemStack , actionable );
92+ }
93+
94+ @ Intrinsic
95+ public void soft$jobStateChange (ICraftingLink iCraftingLink ) {
96+ soft$getInterfaceDuality ().jobStateChange (iCraftingLink );
97+ }
98+
99+ @ Intrinsic
100+ public IConfigManager soft$getConfigManager () {
101+ return soft$getInterfaceDuality ().getConfigManager ();
102+ }
103+
104+
19105}
0 commit comments