11package com .simibubi .create .compat .computercraft .implementation ;
22
33import 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 ;
46import 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 ;
510import com .simibubi .create .compat .computercraft .implementation .peripherals .SequencedGearshiftPeripheral ;
611import com .simibubi .create .compat .computercraft .implementation .peripherals .SpeedControllerPeripheral ;
712import com .simibubi .create .compat .computercraft .implementation .peripherals .SpeedGaugePeripheral ;
813import com .simibubi .create .compat .computercraft .implementation .peripherals .StationPeripheral ;
914import 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 ;
1027import com .simibubi .create .content .kinetics .gauge .SpeedGaugeBlockEntity ;
1128import com .simibubi .create .content .kinetics .gauge .StressGaugeBlockEntity ;
1229import com .simibubi .create .content .kinetics .speedController .SpeedControllerBlockEntity ;
1330import com .simibubi .create .content .kinetics .transmission .sequencer .SequencedGearshiftBlockEntity ;
31+ import com .simibubi .create .content .logistics .tableCloth .TableClothBlockEntity ;
1432import com .simibubi .create .content .redstone .displayLink .DisplayLinkBlockEntity ;
1533import com .simibubi .create .content .trains .station .StationBlockEntity ;
1634import com .simibubi .create .foundation .blockEntity .SmartBlockEntity ;
1735
1836import dan200 .computercraft .api .peripheral .IPeripheral ;
37+ import dan200 .computercraft .api .detail .VanillaDetailRegistries ;
38+ import dan200 .computercraft .api .lua .LuaException ;
1939import net .minecraftforge .common .capabilities .Capability ;
2040import net .minecraftforge .common .capabilities .CapabilityManager ;
2141import net .minecraftforge .common .capabilities .CapabilityToken ;
@@ -41,19 +61,44 @@ public static NonNullSupplier<IPeripheral> getPeripheralFor(SmartBlockEntity be)
4161 return () -> new SpeedControllerPeripheral (scbe , scbe .targetSpeed );
4262 if (be instanceof DisplayLinkBlockEntity dlbe )
4363 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 );
4468 if (be instanceof SequencedGearshiftBlockEntity sgbe )
4569 return () -> new SequencedGearshiftPeripheral (sgbe );
4670 if (be instanceof SpeedGaugeBlockEntity sgbe )
4771 return () -> new SpeedGaugePeripheral (sgbe );
4872 if (be instanceof StressGaugeBlockEntity sgbe )
4973 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 );
5083 if (be instanceof StationBlockEntity sbe )
5184 return () -> new StationPeripheral (sbe );
85+ if (be instanceof TableClothBlockEntity tcbe )
86+ return () -> new TableClothShopPeripheral (tcbe );
5287
5388 throw new IllegalArgumentException (
5489 "No peripheral available for " + ForgeRegistries .BLOCK_ENTITY_TYPES .getKey (be .getType ()));
5590 }
5691
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+
57102 @ Override
58103 public <T > boolean isPeripheralCap (Capability <T > cap ) {
59104 return cap == PERIPHERAL_CAPABILITY ;
0 commit comments