22
33import net .fabricmc .api .ModInitializer ;
44import net .fabricmc .fabric .api .object .builder .v1 .entity .FabricDefaultAttributeRegistry ;
5+ import net .fabricmc .fabric .api .transfer .v1 .fluid .FluidStorage ;
6+ import net .fabricmc .fabric .api .transfer .v1 .fluid .FluidVariant ;
7+ import net .fabricmc .fabric .api .transfer .v1 .fluid .FluidVariantAttributeHandler ;
8+ import net .fabricmc .fabric .api .transfer .v1 .fluid .FluidVariantAttributes ;
59import net .fabricmc .fabric .api .transfer .v1 .item .ItemStorage ;
610import net .infugogr .barracuda .block .ModBlocks ;
711import net .infugogr .barracuda .block .entity .*;
1115import net .infugogr .barracuda .entity .custom .BassFishEntity ;
1216import net .infugogr .barracuda .entity .custom .ModGiantEntity ;
1317import net .infugogr .barracuda .entity .effect .ModStatusEffects ;
18+ import net .infugogr .barracuda .fluid .FluidData ;
19+ import net .infugogr .barracuda .fluid .ModFluids ;
1420import net .infugogr .barracuda .item .ModItemGroups ;
1521import net .infugogr .barracuda .item .ModItems ;
1622import net .infugogr .barracuda .screenhandler .ModScreenHandlerType ;
1723import net .infugogr .barracuda .sound .ModSounds ;
24+ import net .infugogr .barracuda .util .ModTags ;
1825import net .kyrptonaught .customportalapi .api .CustomPortalBuilder ;
26+ import net .minecraft .particle .ParticleTypes ;
1927import net .minecraft .text .Text ;
2028import net .minecraft .util .Identifier ;
29+ import net .minecraft .world .World ;
30+ import org .jetbrains .annotations .Nullable ;
2131import org .slf4j .Logger ;
2232import org .slf4j .LoggerFactory ;
2333import team .reborn .energy .api .EnergyStorage ;
24- // import net.infugogr.barracuda.registers.*;
2534
2635public class Barracuda implements ModInitializer {
2736 public static final String MOD_ID = "barracuda" ;
@@ -44,6 +53,7 @@ public void onInitialize() {
4453 ModScreenHandlerType .registerModScreenHandlerType ();
4554 ModBlockEntityType .registerModBlockEntityType ();
4655 ModSounds .registerSounds ();
56+ ModFluids .register ();
4757 // configReg.load();
4858
4959
@@ -56,19 +66,20 @@ public void onInitialize() {
5666 EnergyStorage .SIDED .registerForBlockEntity (SMESblockEntity ::getEnergyProvider , ModBlockEntityType .SMES );
5767 ItemStorage .SIDED .registerForBlockEntity (SMESblockEntity ::getInventoryProvider , ModBlockEntityType .SMES );
5868
69+ EnergyStorage .SIDED .registerForBlockEntity (OilRefineryBlockEntity ::getEnergyProvider , ModBlockEntityType .OIL_REFINERY );
70+ ItemStorage .SIDED .registerForBlockEntity (OilRefineryBlockEntity ::getInventoryProvider , ModBlockEntityType .OIL_REFINERY );
71+ FluidStorage .SIDED .registerForBlockEntity (OilRefineryBlockEntity ::getFluidProvider , ModBlockEntityType .OIL_REFINERY );
72+
73+
5974 //EnergyStorage.SIDED.registerForBlockEntity(TeleporterBlockEntity::getEnergyProvider, ModBlockEntityType.TELEPORTER);
6075 //ItemStorage.SIDED.registerForBlockEntity(TeleporterBlockEntity::getInventoryProvider, ModBlockEntityType.TELEPORTER);
6176
6277 EnergyStorage .SIDED .registerForBlockEntity (LVcableBlockEntity ::getEnergyProvider , ModBlockEntityType .LVCABLE );
63-
6478 EnergyStorage .SIDED .registerForBlockEntity (HVcableBlockEntity ::getEnergyProvider , ModBlockEntityType .HVCABLE );
6579
6680 FabricDefaultAttributeRegistry .register (ModEntities .GIANT , ModGiantEntity .createGiantAttributes ());
6781 FabricDefaultAttributeRegistry .register (ModEntities .BASS_FISH , BassFishEntity .createBassFishAttributes ());
6882 FabricDefaultAttributeRegistry .register (ModEntities .AZURE_SERPENT , AzureSerpentEntity .createAzureSerpentAttributes ());
69-
70-
71- // geco mobs
7283 FabricDefaultAttributeRegistry .register (ModEntities .BARRACUDA , BarracudaEntity .setAttributes ());
7384 FabricDefaultAttributeRegistry .register (ModEntities .AZUER_REAPER , BarracudaEntity .setAttributes ());
7485
@@ -79,13 +90,36 @@ public void onInitialize() {
7990 .tintColor (0xc76efa )
8091 .registerPortal ();
8192
93+ // Fluid Properties
94+ var commonFluidAttributes = new FluidVariantAttributeHandler () {
95+ @ Override
96+ public int getViscosity (FluidVariant variant , @ Nullable World world ) {
97+ return 7500 ;
98+ }
99+ };
100+
101+ FluidVariantAttributes .register (ModFluids .CRUDE_OIL .still (), commonFluidAttributes );
102+ FluidVariantAttributes .register (ModFluids .CRUDE_OIL .flowing (), commonFluidAttributes );
103+
104+ // Fluid Data
105+ var commonFluidData = new FluidData .Builder (ModTags .Fluids .CRUDE_OIL )
106+ .preventsBlockSpreading ()
107+ .canSwim ()
108+ .fluidMovementSpeed ((entity , speed ) -> 0.01F )
109+ .applyWaterMovement ()
110+ .applyBuoyancy (itemEntity -> itemEntity .setVelocity (itemEntity .getVelocity ().add (0.0D , 0.01D , 0.0D )))
111+ .canCauseDrowning ()
112+ .shouldWitchDrinkWaterBreathing ()
113+ .affectsBlockBreakSpeed ()
114+ .bubbleParticle (ParticleTypes .ASH )
115+ .splashParticle (ParticleTypes .HEART )
116+ .build ();
117+
118+ FluidData .registerFluidData (ModFluids .CRUDE_OIL .still (), commonFluidData );
119+ FluidData .registerFluidData (ModFluids .CRUDE_OIL .flowing (), commonFluidData );
120+
82121 LOGGER .info ("Loaded!" );
83122 }
84-
85- // public static ConfigRegister getConfigRegister(){
86- // return configReg;
87- // }
88-
89123 public static Identifier id (String path ) {
90124 return Identifier .of (MOD_ID , path );
91125 }
0 commit comments