22
33import  aztech .modern_industrialization .MI ;
44import  aztech .modern_industrialization .MIBlock ;
5+ import  aztech .modern_industrialization .MIFluids ;
56import  aztech .modern_industrialization .api .energy .CableTier ;
6- import  aztech .modern_industrialization .compat .rei .machines .ReiMachineRecipes ;
77import  aztech .modern_industrialization .compat .rei .machines .SteamMode ;
88import  aztech .modern_industrialization .machines .MachineBlockEntity ;
99import  aztech .modern_industrialization .machines .components .OverclockComponent ;
@@ -129,17 +129,17 @@ public static void multiblocks(MultiblockMachinesMIHookContext hook)
129129		hook .builder ("steam_farmer" , "Steam Farmer" , SteamFarmerBlockEntity ::new )
130130				.builtinModel (BRONZE_PLATED_BRICKS , "farmer" , (model ) -> model .front (true ).top (true ).active (true ))
131131				.registrator ((__ ) -> SteamFarmerBlockEntity .registerReiShapes ())
132- 				.build ();
132+ 				.registerMachine ();
133133
134134		hook .builder ("electric_farmer" , "Electric Farmer" , ElectricFarmerBlockEntity ::new )
135135				.builtinModel (STEEL , "farmer" , (model ) -> model .front (true ).top (true ).active (true ))
136136				.registrator ((__ ) -> ElectricFarmerBlockEntity .registerReiShapes ())
137- 				.build ();
137+ 				.registerMachine ();
138138
139139		hook .builder ("processing_array" , "Processing Array" , ProcessingArrayBlockEntity ::new )
140140				.builtinModel (CLEAN_STAINLESS_STEEL , "processing_array" , (model ) -> model .front (true ).active (true ))
141141				.registrator ((__ ) -> ProcessingArrayBlockEntity .registerReiShapes ())
142- 				.build ();
142+ 				.registerMachine ();
143143
144144		{
145145			SimpleMember  fireClayBricks  = SimpleMember .forBlock (MIBlock .BLOCK_DEFINITIONS .get (MI .id ("fire_clay_bricks" )));
@@ -158,18 +158,18 @@ public static void multiblocks(MultiblockMachinesMIHookContext hook)
158158							EuCostTransformers .percentage (() -> (float ) EI .config ().batchingMachines ().largeSteamFurnaceEU ())
159159					))
160160					.builtinModel (BRONZE_PLATED_BRICKS , "large_furnace" , (model ) -> model .front (true ).active (true ))
161- 					.build (); 
162- 			ReiMachineRecipes .registerMultiblockShape (EI . id ( "large_steam_furnace" ),  shape ); 
163- 			ReiMachineRecipes . registerWorkstation (MI .id ("bronze_furnace" ),  EI . id ( "large_steam_furnace" )); 
164- 			ReiMachineRecipes . registerWorkstation (MI .id ("steel_furnace"  ),  EI . id ( "large_steam_furnace " ));
161+ 					.registerMachine () 
162+ 					 .registerMultiblockShape (shape )
163+ 					. registerAsWorkstationFor (MI .id ("bronze_furnace" )) 
164+ 					. registerAsWorkstationFor (MI .id ("steel_furnace" ));
165165		}
166166
167167		hook .builder ("large_electric_furnace" , "Large Electric Furnace" , LargeElectricFurnaceBlockEntity ::new )
168168				.builtinModel (HEATPROOF , "large_furnace" , (model ) -> model .front (true ).active (true ))
169- 				.build (); 
170- 		ReiMachineRecipes . registerWorkstation (MI .id ("bronze_furnace" ),  EI . id ( "large_electric_furnace" )); 
171- 		ReiMachineRecipes . registerWorkstation (MI .id ("steel_furnace" ),  EI . id ( "large_electric_furnace" )); 
172- 		ReiMachineRecipes . registerWorkstation (MI .id ("electric_furnace"  ),  EI . id ( "large_electric_furnace " ));
169+ 				.registerMachine () 
170+ 				. registerAsWorkstationFor (MI .id ("bronze_furnace" )) 
171+ 				. registerAsWorkstationFor (MI .id ("steel_furnace" )) 
172+ 				. registerAsWorkstationFor (MI .id ("electric_furnace" ));
173173
174174		{
175175			SimpleMember  bronzePlatedBricks  = SimpleMember .forBlock (MIBlock .BLOCK_DEFINITIONS .get (MI .id ("bronze_plated_bricks" )));
@@ -183,10 +183,10 @@ public static void multiblocks(MultiblockMachinesMIHookContext hook)
183183							EuCostTransformers .percentage (() -> (float ) EI .config ().batchingMachines ().largeSteamMaceratorEU ())
184184					))
185185					.builtinModel (BRONZE_PLATED_BRICKS , "large_macerator" , (model ) -> model .front (true ).active (true ))
186- 					.build (); 
187- 			ReiMachineRecipes .registerMultiblockShape (EI . id ( "large_steam_macerator" ),  shape ); 
188- 			ReiMachineRecipes . registerWorkstation (MI .id ("bronze_macerator" ),  EI . id ( "large_steam_macerator" )); 
189- 			ReiMachineRecipes . registerWorkstation (MI .id ("steel_macerator"  ),  EI . id ( "large_steam_macerator " ));
186+ 					.registerMachine () 
187+ 					 .registerMultiblockShape (shape )
188+ 					. registerAsWorkstationFor (MI .id ("bronze_macerator" )) 
189+ 					. registerAsWorkstationFor (MI .id ("steel_macerator" ));
190190		}
191191
192192		{
@@ -201,16 +201,16 @@ public static void multiblocks(MultiblockMachinesMIHookContext hook)
201201							EuCostTransformers .percentage (() -> (float ) EI .config ().batchingMachines ().largeElectricMaceratorEU ())
202202					))
203203					.builtinModel (Casings .STEEL_PLATED_BRICKS , "large_macerator" , (model ) -> model .front (true ).active (true ))
204- 					.build (); 
205- 			ReiMachineRecipes .registerMultiblockShape (EI . id ( "large_electric_macerator" ),  shape ); 
206- 			ReiMachineRecipes . registerWorkstation (MI .id ("bronze_macerator" ),  EI . id ( "large_electric_macerator" )); 
207- 			ReiMachineRecipes . registerWorkstation (MI .id ("steel_macerator" ),  EI . id ( "large_electric_macerator" )); 
208- 			ReiMachineRecipes . registerWorkstation (MI .id ("electric_macerator"  ),  EI . id ( "large_electric_macerator " ));
204+ 					.registerMachine () 
205+ 					 .registerMultiblockShape (shape )
206+ 					. registerAsWorkstationFor (MI .id ("bronze_macerator" )) 
207+ 					. registerAsWorkstationFor (MI .id ("steel_macerator" )) 
208+ 					. registerAsWorkstationFor (MI .id ("electric_macerator" ));
209209		}
210210
211211		hook .builder ("tesla_tower" , "Tesla Tower" , TeslaTowerBlockEntity ::new )
212212				.builtinModel (CLEAN_STAINLESS_STEEL , "tesla_tower" , (model ) -> model .front (true ).active (true ))
213- 				.build ();
213+ 				.registerMachine ();
214214	}
215215
216216	public  static  void  singleBlockCrafting (SingleBlockCraftingMachinesMIHookContext  hook )
@@ -225,7 +225,7 @@ public static void singleBlockCrafting(SingleBlockCraftingMachinesMIHookContext
225225						.efficiencyBar (38 , 62 )
226226						.energyBar (14 , 34 ))
227227				.builtinModel ("bending_machine" , (model ) -> model .front (true ))
228- 				.build ();
228+ 				.registerMachine ();
229229
230230		hook .builder ("alloy_smelter" , "Alloy Smelter" , RecipeTypes .ALLOY_SMELTER )
231231				.steel ().electric ()
@@ -237,7 +237,7 @@ public static void singleBlockCrafting(SingleBlockCraftingMachinesMIHookContext
237237						.efficiencyBar (38 , 62 )
238238						.energyBar (14 , 34 ))
239239				.builtinModel ("alloy_smelter" , (model ) -> model .front (true ))
240- 				.build ();
240+ 				.registerMachine ();
241241
242242		hook .builder ("canning_machine" , "Canning Machine" , RecipeTypes .CANNING_MACHINE )
243243				.steel ().electric ()
@@ -251,7 +251,7 @@ public static void singleBlockCrafting(SingleBlockCraftingMachinesMIHookContext
251251						.efficiencyBar (38 , 66 )
252252						.energyBar (14 , 35 ))
253253				.builtinModel ("canning_machine" , (model ) -> model .front (true ).side (true ))
254- 				.build ();
254+ 				.registerMachine ();
255255
256256		hook .builder ("composter" , "Composter" , RecipeTypes .COMPOSTER )
257257				.bronze ().steel ().electric ()
@@ -265,19 +265,19 @@ public static void singleBlockCrafting(SingleBlockCraftingMachinesMIHookContext
265265						.efficiencyBar (38 , 66 )
266266						.energyBar (14 , 35 ))
267267				.builtinModel ("composter" , (model ) -> model .front (true ).top (true ))
268- 				.build ();
268+ 				.registerMachine ();
269269	}
270270
271271	public  static  void  singleBlockSpecial (SingleBlockSpecialMachinesMIHookContext  hook )
272272	{
273273		hook .builder ("bronze_solar_boiler" , "Bronze Solar Boiler" , (bep ) -> new  SolarBoilerMachineBlockEntity (bep , true ))
274274				.builtinModel (MachineCasings .BRICKED_BRONZE , "solar_boiler" , (model ) -> model .front (true ).top (true ).active (true ))
275275				.registrator (MachineBlockEntity ::registerFluidApi )
276- 				.build ();
276+ 				.registerMachine ();
277277		hook .builder ("steel_solar_boiler" , "Steel Solar Boiler" , (bep ) -> new  SolarBoilerMachineBlockEntity (bep , false ))
278278				.builtinModel (MachineCasings .BRICKED_STEEL , "solar_boiler" , (model ) -> model .front (true ).top (true ).active (true ))
279279				.registrator (MachineBlockEntity ::registerFluidApi )
280- 				.build ();
280+ 				.registerMachine ();
281281
282282		hook .builder ("steel_honey_extractor" , "Steel Honey Extractor" , (bep ) -> new  SteamFluidHarvestingMachineBlockEntity (
283283						bep , "steel_honey_extractor" ,
@@ -286,7 +286,7 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
286286				))
287287				.builtinModel (MachineCasings .STEEL , "honey_extractor" , (model ) -> model .front (true ).side (true ).active (true ))
288288				.registrator (MachineBlockEntity ::registerFluidApi )
289- 				.build ();
289+ 				.registerMachine ();
290290		hook .builder ("electric_honey_extractor" , "Electric Honey Extractor" , (bep ) -> new  ElectricFluidHarvestingMachineBlockEntity (
291291						bep , "electric_honey_extractor" ,
292292						4 , HoneyExtractorBehavior .ELECTRIC ,
@@ -295,19 +295,38 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
295295				.builtinModel (CableTier .LV .casing , "honey_extractor" , (model ) -> model .front (true ).side (true ).active (true ))
296296				.registrator (MachineBlockEntity ::registerFluidApi )
297297				.registrator (ElectricFluidHarvestingMachineBlockEntity ::registerEnergyApi )
298- 				.build ();
298+ 				.registerMachine ();
299299
300- 		hook .builder ("steel_brewery" , "Steel Brewery" , (bep ) -> new  SteamBreweryMachineBlockEntity (bep , false ))
300+ 		hook .builder ("steel_brewery" , "Steel Brewery" , (bep ,  gui ) -> new  SteamBreweryMachineBlockEntity (bep ,  gui , false ))
301301				.builtinModel (MachineCasings .STEEL , "brewery" , (model ) -> model .front (true ).side (true ).active (true ))
302+ 				.gui ((gui ) -> gui 
303+ 						.guiHeight (186 )
304+ 						.inventoryOnlySlots ((s ) -> s 
305+ 								.fluidInput (5 , 45 , MIFluids .STEAM ::asFluid , 16 )
306+ 								.fluidInput (24 , 45 , EIFluids .BLAZING_ESSENCE ::asFluid , 16 ))
307+ 						.slots ((s ) -> s 
308+ 								.itemInputs (43 , 27 , 3 , 3 )
309+ 								.itemOutputs (119 , 27 , 3 , 3 ))
310+ 						.progressBar (97 , 43 , "triple_arrow" ))
302311				.registrator (MachineBlockEntity ::registerItemApi )
303312				.registrator (MachineBlockEntity ::registerFluidApi )
304- 				.build ();
313+ 				.registerMachine ();
305314		hook .builder ("electric_brewery" , "Electric Brewery" , ElectricBreweryMachineBlockEntity ::new )
306315				.builtinModel (CableTier .LV .casing , "brewery" , (model ) -> model .front (true ).side (true ).active (true ))
316+ 				.gui ((gui ) -> gui 
317+ 						.guiHeight (186 )
318+ 						.inventoryOnlySlots ((s ) -> s 
319+ 								.fluidInput (24 , 45 , EIFluids .BLAZING_ESSENCE ::asFluid , 32 ))
320+ 						.slots ((s ) -> s 
321+ 								.itemInputs (43 , 27 , 3 , 3 )
322+ 								.itemOutputs (119 , 27 , 3 , 3 ))
323+ 						.progressBar (97 , 43 , "triple_arrow" )
324+ 						.energyBar (7 , 44 )
325+ 						.efficiencyBar (57 , 86 ))
307326				.registrator (MachineBlockEntity ::registerItemApi )
308327				.registrator (MachineBlockEntity ::registerFluidApi )
309328				.registrator (ElectricBreweryMachineBlockEntity ::registerEnergyApi )
310- 				.build ();
329+ 				.registerMachine ();
311330
312331
313332		hook .builder ("bronze_waste_collector" , "Bronze Waste Collector" , (bep ) -> new  SteamFluidHarvestingMachineBlockEntity (
@@ -317,15 +336,15 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
317336				))
318337				.builtinModel (MachineCasings .BRONZE , "waste_collector" , (model ) -> model .top (true ).active (true ))
319338				.registrator (MachineBlockEntity ::registerFluidApi )
320- 				.build ();
339+ 				.registerMachine ();
321340		hook .builder ("steel_waste_collector" , "Steel Waste Collector" , (bep ) -> new  SteamFluidHarvestingMachineBlockEntity (
322341						bep , "steel_waste_collector" ,
323342						2 , WasteCollectorBehavior .STEEL ,
324343						16  * FluidType .BUCKET_VOLUME , EIFluids .MANURE 
325344				))
326345				.builtinModel (MachineCasings .STEEL , "waste_collector" , (model ) -> model .top (true ).active (true ))
327346				.registrator (MachineBlockEntity ::registerFluidApi )
328- 				.build ();
347+ 				.registerMachine ();
329348		hook .builder ("electric_waste_collector" , "Electric Waste Collector" , (bep ) -> new  ElectricFluidHarvestingMachineBlockEntity (
330349						bep , "electric_waste_collector" ,
331350						4 , WasteCollectorBehavior .ELECTRIC ,
@@ -334,16 +353,16 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
334353				.builtinModel (CableTier .LV .casing , "waste_collector" , (model ) -> model .top (true ).active (true ))
335354				.registrator (MachineBlockEntity ::registerFluidApi )
336355				.registrator (ElectricFluidHarvestingMachineBlockEntity ::registerEnergyApi )
337- 				.build ();
356+ 				.registerMachine ();
338357
339358		hook .builder ("machine_chainer" , "Machine Chainer" , MachineChainerMachineBlockEntity ::new )
340359				.registrator (MachineChainerMachineBlockEntity ::registerCapabilities )
341- 				.build ();
360+ 				.registerMachine ();
342361
343362		hook .builder ("universal_transformer" , "Universal Transformer" , UniversalTransformerMachineBlockEntity ::new )
344363				.builtinModel (CableTier .LV .casing , "universal_transformer" , (model ) -> model .top (true ).side (true ))
345364				.registrator (UniversalTransformerMachineBlockEntity ::registerEnergyApi )
346- 				.build ();
365+ 				.registerMachine ();
347366
348367		for (CableTier  tier  : new  CableTier []{CableTier .LV , CableTier .MV , CableTier .HV })
349368		{
@@ -355,30 +374,30 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
355374					.registrator (MachineBlockEntity ::registerItemApi )
356375					.registrator (MachineBlockEntity ::registerFluidApi )
357376					.registrator (SolarPanelMachineBlockEntity ::registerEnergyApi )
358- 					.build ();
377+ 					.registerMachine ();
359378		}
360379
361380		hook .builder ("large_configurable_chest" , "Large Configurable Chest" , LargeConfigurableChestMachineBlockEntity ::new )
362381				.builtinModel (Casings .LARGE_STEEL_CRATE , "large_configurable_chest" )
363382				.registrator (MachineBlockEntity ::registerItemApi )
364- 				.build ();
383+ 				.registerMachine ();
365384
366385		hook .builder ("tesla_coil" , "Tesla Coil" , TeslaCoilMachineBlockEntity ::new )
367386				.builtinModel (CableTier .LV .casing , "tesla_coil" , (model ) -> model .front (true ).top (true ).side (true ).active (true ))
368387				.registrator (TeslaCoilMachineBlockEntity ::registerEnergyApi )
369- 				.build ();
388+ 				.registerMachine ();
370389
371390		hook .builder ("tesla_receiver" , "Tesla Receiver" , TeslaReceiverMachineBlockEntity ::new )
372391				.builtinModel (CableTier .LV .casing , "tesla_receiver" , (model ) -> model .front (true ).top (true ).side (true ).active (true ))
373392				.registrator (TeslaReceiverMachineBlockEntity ::registerEnergyApi )
374- 				.build ();
393+ 				.registerMachine ();
375394
376395		for (CableTier  tier  : CableTier .allTiers ())
377396		{
378397			hook .builder ("%s_tesla_receiver_hatch" .formatted (tier .name ), "%s Tesla Receiver Hatch" .formatted (tier .shortEnglishName ), (bep ) -> new  TeslaReceiverHatchBlockEntity (bep , tier ))
379398					.builtinModel (tier .casing , "tesla_receiver_hatch" , (model ) -> model .front (true ).side (true ))
380399					.registrator (TeslaReceiverMachineBlockEntity ::registerEnergyApi )
381- 					.build ();
400+ 					.registerMachine ();
382401		}
383402
384403		hook .builder ("lethal_tesla_coil" , "Lethal Tesla Coil" , LethalTeslaCoilMachineBlockEntity ::new )
@@ -391,7 +410,7 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
391410						.explosionResistance (3600000 ))
392411				.builtinModel (CableTier .LV .casing , "lethal_tesla_coil" , (model ) -> model .front (true ).top (true ).side (true ).active (true ))
393412				.registrator (LethalTeslaCoilMachineBlockEntity ::registerEnergyApi )
394- 				.build ();
413+ 				.registerMachine ();
395414
396415		hook .builder ("tesla_particle_generator" , "Tesla Particle Generator" , TeslaParticleGeneratorMachineBlockEntity ::new )
397416				.modify ((block ) -> block .item ().withoutModel ())
@@ -402,6 +421,6 @@ public static void singleBlockSpecial(SingleBlockSpecialMachinesMIHookContext ho
402421						.noOcclusion ()
403422						.instabreak ())
404423				.excludeDefaultMineableTags ()
405- 				.build ();
424+ 				.registerMachine ();
406425	}
407426}
0 commit comments