1
1
package com .simibubi .create .compat .computercraft .implementation ;
2
2
3
3
import com .simibubi .create .compat .computercraft .AbstractComputerBehaviour ;
4
+ import com .simibubi .create .compat .computercraft .implementation .luaObjects .PackageLuaObject ;
5
+ import com .simibubi .create .compat .computercraft .implementation .luaObjects .PackageOrderLuaObject ;
4
6
import com .simibubi .create .compat .computercraft .implementation .peripherals .DisplayLinkPeripheral ;
7
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .FrogportPeripheral ;
8
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .PostboxPeripheral ;
9
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .RepackagerPeripheral ;
5
10
import com .simibubi .create .compat .computercraft .implementation .peripherals .SequencedGearshiftPeripheral ;
6
11
import com .simibubi .create .compat .computercraft .implementation .peripherals .SpeedControllerPeripheral ;
7
12
import com .simibubi .create .compat .computercraft .implementation .peripherals .SpeedGaugePeripheral ;
8
13
import com .simibubi .create .compat .computercraft .implementation .peripherals .StationPeripheral ;
9
14
import com .simibubi .create .compat .computercraft .implementation .peripherals .StressGaugePeripheral ;
15
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .StockTickerPeripheral ;
16
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .PackagerPeripheral ;
17
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .TableClothShopPeripheral ;
18
+ import com .simibubi .create .content .logistics .box .PackageItem ;
19
+ import com .simibubi .create .content .logistics .packagePort .frogport .FrogportBlockEntity ;
20
+ import com .simibubi .create .content .logistics .packagePort .postbox .PostboxBlockEntity ;
21
+ import com .simibubi .create .compat .computercraft .implementation .peripherals .RedstoneRequesterPeripheral ;
22
+ import com .simibubi .create .content .logistics .packager .repackager .RepackagerBlockEntity ;
23
+ import com .simibubi .create .content .logistics .redstoneRequester .RedstoneRequesterBlockEntity ;
24
+ import com .simibubi .create .content .logistics .packager .PackagerBlockEntity ;
25
+ import com .simibubi .create .content .logistics .stockTicker .PackageOrderWithCrafts ;
26
+ import com .simibubi .create .content .logistics .stockTicker .StockTickerBlockEntity ;
10
27
import com .simibubi .create .content .kinetics .gauge .SpeedGaugeBlockEntity ;
11
28
import com .simibubi .create .content .kinetics .gauge .StressGaugeBlockEntity ;
12
29
import com .simibubi .create .content .kinetics .speedController .SpeedControllerBlockEntity ;
13
30
import com .simibubi .create .content .kinetics .transmission .sequencer .SequencedGearshiftBlockEntity ;
31
+ import com .simibubi .create .content .logistics .tableCloth .TableClothBlockEntity ;
14
32
import com .simibubi .create .content .redstone .displayLink .DisplayLinkBlockEntity ;
15
33
import com .simibubi .create .content .trains .station .StationBlockEntity ;
16
34
import com .simibubi .create .foundation .blockEntity .SmartBlockEntity ;
17
35
18
36
import dan200 .computercraft .api .peripheral .IPeripheral ;
37
+ import dan200 .computercraft .api .detail .VanillaDetailRegistries ;
38
+ import dan200 .computercraft .api .lua .LuaException ;
19
39
import net .minecraftforge .common .capabilities .Capability ;
20
40
import net .minecraftforge .common .capabilities .CapabilityManager ;
21
41
import net .minecraftforge .common .capabilities .CapabilityToken ;
@@ -41,19 +61,44 @@ public static NonNullSupplier<IPeripheral> getPeripheralFor(SmartBlockEntity be)
41
61
return () -> new SpeedControllerPeripheral (scbe , scbe .targetSpeed );
42
62
if (be instanceof DisplayLinkBlockEntity dlbe )
43
63
return () -> new DisplayLinkPeripheral (dlbe );
64
+ if (be instanceof FrogportBlockEntity fpbe )
65
+ return () -> new FrogportPeripheral (fpbe );
66
+ if (be instanceof PostboxBlockEntity pbbe )
67
+ return () -> new PostboxPeripheral (pbbe );
44
68
if (be instanceof SequencedGearshiftBlockEntity sgbe )
45
69
return () -> new SequencedGearshiftPeripheral (sgbe );
46
70
if (be instanceof SpeedGaugeBlockEntity sgbe )
47
71
return () -> new SpeedGaugePeripheral (sgbe );
48
72
if (be instanceof StressGaugeBlockEntity sgbe )
49
73
return () -> new StressGaugePeripheral (sgbe );
74
+ if (be instanceof StockTickerBlockEntity sgbe )
75
+ return () -> new StockTickerPeripheral (sgbe );
76
+ // Has to be before PackagerBlockEntity as it's a subclass
77
+ if (be instanceof RepackagerBlockEntity rpbe )
78
+ return () -> new RepackagerPeripheral (rpbe );
79
+ if (be instanceof PackagerBlockEntity pgbe )
80
+ return () -> new PackagerPeripheral (pgbe );
81
+ if (be instanceof RedstoneRequesterBlockEntity rrbe )
82
+ return () -> new RedstoneRequesterPeripheral (rrbe );
50
83
if (be instanceof StationBlockEntity sbe )
51
84
return () -> new StationPeripheral (sbe );
85
+ if (be instanceof TableClothBlockEntity tcbe )
86
+ return () -> new TableClothShopPeripheral (tcbe );
52
87
53
88
throw new IllegalArgumentException (
54
89
"No peripheral available for " + ForgeRegistries .BLOCK_ENTITY_TYPES .getKey (be .getType ()));
55
90
}
56
91
92
+ public static void registerItemDetailProviders () {
93
+ VanillaDetailRegistries .ITEM_STACK .addProvider ((out , stack ) -> {
94
+ if (PackageItem .isPackage (stack ))
95
+ {
96
+ PackageLuaObject packageLuaObject = new PackageLuaObject (null , stack );
97
+ out .put ("package" , packageLuaObject );
98
+ }
99
+ });
100
+ }
101
+
57
102
@ Override
58
103
public <T > boolean isPeripheralCap (Capability <T > cap ) {
59
104
return cap == PERIPHERAL_CAPABILITY ;
0 commit comments