11package mekanism .generators .common .registries ;
22
33import java .util .function .Supplier ;
4- import mekanism .api .chemical .ChemicalTankBuilder ;
54import mekanism .api .chemical .gas .attribute .GasAttributes .Fuel ;
65import mekanism .common .attachments .containers .ContainerType ;
6+ import mekanism .common .attachments .containers .chemical .gas .GasTanksBuilder ;
7+ import mekanism .common .attachments .containers .fluid .FluidTanksBuilder ;
8+ import mekanism .common .attachments .containers .heat .HeatCapacitorsBuilder ;
9+ import mekanism .common .attachments .containers .item .ItemSlotsBuilder ;
710import mekanism .common .block .basic .BlockStructuralGlass ;
811import mekanism .common .block .interfaces .IHasDescription ;
912import mekanism .common .block .prefab .BlockBasicMultiblock ;
1013import mekanism .common .block .prefab .BlockTile ;
1114import mekanism .common .block .prefab .BlockTile .BlockTileModel ;
12- import mekanism .common .capabilities .chemical .variable .RateLimitGasTank ;
13- import mekanism .common .capabilities .fluid .BasicFluidTank ;
14- import mekanism .common .capabilities .fluid .item .RateLimitFluidTank ;
15- import mekanism .common .capabilities .heat .BasicHeatCapacitor ;
1615import mekanism .common .content .blocktype .BlockTypeTile ;
17- import mekanism .common .inventory .slot .ItemSlotsBuilder ;
18- import mekanism .common .inventory .slot .chemical .GasInventorySlot ;
1916import mekanism .common .item .block .ItemBlockTooltip ;
2017import mekanism .common .registration .impl .BlockDeferredRegister ;
2118import mekanism .common .registration .impl .BlockRegistryObject ;
3027import mekanism .generators .common .item .ItemBlockFissionLogicAdapter ;
3128import mekanism .generators .common .item .ItemBlockFusionLogicAdapter ;
3229import mekanism .generators .common .item .generator .ItemBlockWindGenerator ;
33- import mekanism .generators .common .slot .FluidFuelInventorySlot ;
3430import mekanism .generators .common .tile .TileEntityAdvancedSolarGenerator ;
3531import mekanism .generators .common .tile .TileEntityBioGenerator ;
3632import mekanism .generators .common .tile .TileEntityGasGenerator ;
5551import mekanism .generators .common .tile .turbine .TileEntityTurbineVent ;
5652import net .minecraft .tags .FluidTags ;
5753import net .minecraft .world .level .block .Block ;
58- import net .minecraft .world .level .material .Fluids ;
5954import net .minecraft .world .level .material .MapColor ;
60- import net .neoforged .neoforge .fluids .FluidStack ;
6155
6256public class GeneratorsBlocks {
6357
@@ -69,54 +63,50 @@ private GeneratorsBlocks() {
6963 public static final BlockRegistryObject <BlockTileModel <TileEntityHeatGenerator , Generator <TileEntityHeatGenerator >>, ItemBlockTooltip <BlockTileModel <TileEntityHeatGenerator , Generator <TileEntityHeatGenerator >>>> HEAT_GENERATOR =
7064 BLOCKS .register ("heat_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .HEAT_GENERATOR , properties -> properties .mapColor (MapColor .METAL )), ItemBlockTooltip ::new )
7165 .forItemHolder (holder -> holder
72- .addAttachmentOnlyContainer (ContainerType .FLUID , stack -> RateLimitFluidTank .createBasicItem (MekanismGeneratorsConfig .generators .heatTankCapacity ,
73- BasicFluidTank .manualOnly , BasicFluidTank .alwaysTrueBi ,
74- fluidStack -> fluidStack .is (FluidTags .LAVA )
75- )).addAttachmentOnlyContainer (ContainerType .HEAT , stack -> BasicHeatCapacitor .createBasicItem (TileEntityHeatGenerator .HEAT_CAPACITY ,
76- TileEntityHeatGenerator .INVERSE_CONDUCTION_COEFFICIENT , TileEntityHeatGenerator .INVERSE_INSULATION_COEFFICIENT
77- )).addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack )
78- .addFluidSlot (0 , (tank , listener , x , y ) -> FluidFuelInventorySlot .forFuel (tank ,
79- s -> s .getBurnTime (null ) / 20 ,
80- size -> new FluidStack (Fluids .LAVA , size ),
81- listener , x , y )
82- ).addEnergy ()
66+ .addAttachmentOnlyContainers (ContainerType .FLUID , () -> FluidTanksBuilder .builder ()
67+ .addBasic (MekanismGeneratorsConfig .generators .heatTankCapacity , fluid -> fluid .is (FluidTags .LAVA ))
68+ .build ()
69+ ).addAttachmentOnlyContainers (ContainerType .HEAT , () -> HeatCapacitorsBuilder .builder ()
70+ .addBasic (TileEntityHeatGenerator .HEAT_CAPACITY , TileEntityHeatGenerator .INVERSE_CONDUCTION_COEFFICIENT , TileEntityHeatGenerator .INVERSE_INSULATION_COEFFICIENT )
71+ .build ()
72+ ).addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ()
73+ .addFluidFuelSlot (0 , s -> s .getBurnTime (null ) > 0 )
74+ .addEnergy ()
8375 .build ()
8476 )
8577 );
8678 public static final BlockRegistryObject <BlockTileModel <TileEntitySolarGenerator , Generator <TileEntitySolarGenerator >>, ItemBlockTooltip <BlockTileModel <TileEntitySolarGenerator , Generator <TileEntitySolarGenerator >>>> SOLAR_GENERATOR =
8779 BLOCKS .register ("solar_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .SOLAR_GENERATOR , properties -> properties .mapColor (MapColor .COLOR_BLUE )), ItemBlockTooltip ::new )
88- .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack ).addEnergy ().build ()));
80+ .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ().addEnergy ().build ()));
8981 public static final BlockRegistryObject <BlockTileModel <TileEntityGasGenerator , Generator <TileEntityGasGenerator >>, ItemBlockTooltip <BlockTileModel <TileEntityGasGenerator , Generator <TileEntityGasGenerator >>>> GAS_BURNING_GENERATOR =
9082 BLOCKS .register ("gas_burning_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .GAS_BURNING_GENERATOR , properties -> properties .mapColor (BlockResourceInfo .STEEL .getMapColor ())), ItemBlockTooltip ::new )
9183 .forItemHolder (holder -> holder
92- .addAttachmentOnlyContainer (ContainerType .GAS , stack -> RateLimitGasTank . createBasicItem ( MekanismGeneratorsConfig . generators . gbgTankCapacity ,
93- ChemicalTankBuilder . GAS . manualOnly , ChemicalTankBuilder . GAS . alwaysTrueBi ,
94- gas -> gas . has ( Fuel . class )
95- )) .addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack )
96- .addGasSlot ( 0 , GasInventorySlot :: fill )
84+ .addAttachmentOnlyContainers (ContainerType .GAS , () -> GasTanksBuilder . builder ()
85+ . addBasic ( MekanismGeneratorsConfig . generators . gbgTankCapacity , gas -> gas . has ( Fuel . class ))
86+ . build ( )
87+ ).addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ()
88+ .addGasFillSlot ( 0 )
9789 .addEnergy ()
9890 .build ()
9991 )
10092 );
10193 public static final BlockRegistryObject <BlockTileModel <TileEntityBioGenerator , Generator <TileEntityBioGenerator >>, ItemBlockTooltip <BlockTileModel <TileEntityBioGenerator , Generator <TileEntityBioGenerator >>>> BIO_GENERATOR =
10294 BLOCKS .register ("bio_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .BIO_GENERATOR , properties -> properties .mapColor (BlockResourceInfo .STEEL .getMapColor ())), ItemBlockTooltip ::new )
10395 .forItemHolder (holder -> holder
104- .addAttachmentOnlyContainer (ContainerType .FLUID , stack -> RateLimitFluidTank .createBasicItem (MekanismGeneratorsConfig .generators .bioTankCapacity ,
105- BasicFluidTank .manualOnly , BasicFluidTank .alwaysTrueBi ,
106- fluidStack -> fluidStack .is (GeneratorTags .Fluids .BIOETHANOL )
107- )).addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack )
108- .addFluidSlot (0 , (tank , listener , x , y ) -> FluidFuelInventorySlot .forFuel (tank , s -> s .is (MekanismTags .Items .FUELS_BIO ) ? 200 : s .is (MekanismTags .Items .FUELS_BLOCK_BIO ) ? 200 * 9 : 0 ,
109- GeneratorsFluids .BIOETHANOL ::getFluidStack ,
110- listener , x , y )
111- ).addEnergy ()
96+ .addAttachmentOnlyContainers (ContainerType .FLUID , () -> FluidTanksBuilder .builder ()
97+ .addBasic (MekanismGeneratorsConfig .generators .bioTankCapacity , fluid -> fluid .is (GeneratorTags .Fluids .BIOETHANOL ))
98+ .build ()
99+ ).addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ()
100+ .addFluidFuelSlot (0 , s -> s .is (MekanismTags .Items .FUELS_BIO ) || s .is (MekanismTags .Items .FUELS_BLOCK_BIO ))
101+ .addEnergy ()
112102 .build ()
113103 )
114104 );
115105 public static final BlockRegistryObject <BlockTileModel <TileEntityAdvancedSolarGenerator , Generator <TileEntityAdvancedSolarGenerator >>, ItemBlockTooltip <BlockTileModel <TileEntityAdvancedSolarGenerator , Generator <TileEntityAdvancedSolarGenerator >>>> ADVANCED_SOLAR_GENERATOR =
116106 BLOCKS .register ("advanced_solar_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .ADVANCED_SOLAR_GENERATOR , properties -> properties .mapColor (MapColor .COLOR_BLUE )), ItemBlockTooltip ::new )
117- .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack ).addEnergy ().build ()));
107+ .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ().addEnergy ().build ()));
118108 public static final BlockRegistryObject <BlockTileModel <TileEntityWindGenerator , Generator <TileEntityWindGenerator >>, ItemBlockWindGenerator > WIND_GENERATOR = BLOCKS .register ("wind_generator" , () -> new BlockTileModel <>(GeneratorsBlockTypes .WIND_GENERATOR , properties -> properties .mapColor (MapColor .METAL )), ItemBlockWindGenerator ::new )
119- .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , stack -> ItemSlotsBuilder .builder (stack ).addEnergy ().build ()));
109+ .forItemHolder (holder -> holder .addAttachmentOnlyContainers (ContainerType .ITEM , () -> ItemSlotsBuilder .builder ().addEnergy ().build ()));
120110
121111 public static final BlockRegistryObject <BlockTurbineRotor , ItemBlockTooltip <BlockTurbineRotor >> TURBINE_ROTOR = registerTooltipBlock ("turbine_rotor" , BlockTurbineRotor ::new );
122112 public static final BlockRegistryObject <BlockTile <TileEntityRotationalComplex , BlockTypeTile <TileEntityRotationalComplex >>, ItemBlockTooltip <BlockTile <TileEntityRotationalComplex , BlockTypeTile <TileEntityRotationalComplex >>>> ROTATIONAL_COMPLEX = registerTooltipBlock ("rotational_complex" , () -> new BlockTile <>(GeneratorsBlockTypes .ROTATIONAL_COMPLEX , properties -> properties .mapColor (BlockResourceInfo .STEEL .getMapColor ())));
0 commit comments