Skip to content

Commit 3d45682

Browse files
committed
bug: Fixed fluid code on NeoForge, compile errors on NeoForge basically done
- Still need to move datagen from Fabric to NeoForge
1 parent d5226ac commit 3d45682

7 files changed

Lines changed: 30 additions & 35 deletions

File tree

neoforge/src/main/java/rbasamoyai/createbigcannons/multiloader/neoforge/IndexPlatformImpl.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import net.minecraft.client.renderer.item.ItemProperties;
2222
import net.minecraft.client.renderer.item.ItemPropertyFunction;
2323
import net.minecraft.core.BlockPos;
24+
import net.minecraft.core.Holder;
2425
import net.minecraft.core.particles.ParticleOptions;
2526
import net.minecraft.core.particles.ParticleType;
2627
import net.minecraft.network.chat.Component;
@@ -54,7 +55,7 @@
5455
import rbasamoyai.createbigcannons.neoforge.crafting.CannonCastBlockEntity;
5556
import rbasamoyai.createbigcannons.neoforge.crafting.CannonCastBlockEntityRenderer;
5657
import rbasamoyai.createbigcannons.neoforge.crafting.CannonDrillBlockEntity;
57-
import rbasamoyai.createbigcannons.neoforge.index.fluid_utils.ForgeFluidBuilder;
58+
import rbasamoyai.createbigcannons.neoforge.index.fluid_utils.NeoForgeFluidBuilder;
5859
import rbasamoyai.createbigcannons.neoforge.munitions.fluid_shell.FluidShellBlockEntity;
5960

6061
public class IndexPlatformImpl {
@@ -80,7 +81,7 @@ public static AbstractFluidShellBlockEntity makeFluidShellBlockEntity(BlockEntit
8081
}
8182

8283
public static ParticleOptions createFluidDripParticle(EndFluidStack stack) {
83-
return FluidFX.getFluidParticle(new FluidStack(stack.fluid(), stack.amount(), stack.components()));
84+
return FluidFX.getFluidParticle(new FluidStack(Holder.direct(stack.fluid()), stack.amount(), stack.components().asPatch()));
8485
}
8586

8687
public static NonNullSupplier<NonNullFunction<BlockEntityRendererProvider.Context,
@@ -91,7 +92,7 @@ BlockEntityRenderer<? super AbstractCannonCastBlockEntity>>> getCastRenderer() {
9192
public static <T extends CBCFlowingFluid, P> FluidBuilder<T, P> createFluidBuilder(AbstractRegistrate<?> owner,
9293
P parent, String name, BuilderCallback callback, ResourceLocation stillTexture, ResourceLocation flowingTexture,
9394
NonNullFunction<CBCFlowingFluid.Properties, T> factory) {
94-
return new ForgeFluidBuilder<>(owner, parent, name, callback, stillTexture, flowingTexture, factory);
95+
return new NeoForgeFluidBuilder<>(owner, parent, name, callback, stillTexture, flowingTexture, factory);
9596
}
9697

9798
public static <T extends CBCFlowingFluid, P> FluidBuilder<T, P> doFluidBuilderTransforms(FluidBuilder<T, P> builder) {

neoforge/src/main/java/rbasamoyai/createbigcannons/neoforge/index/fluid_utils/ForgeFluidBuilder.java renamed to neoforge/src/main/java/rbasamoyai/createbigcannons/neoforge/index/fluid_utils/NeoForgeFluidBuilder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,11 @@
2222
import rbasamoyai.createbigcannons.index.fluid_utils.CBCFlowingFluid;
2323
import rbasamoyai.createbigcannons.index.fluid_utils.FluidBuilder;
2424
import rbasamoyai.createbigcannons.utils.CBCRegistryUtils;
25+
import rbasamoyai.createbigcannons.utils.CBCUtils;
2526

26-
public class ForgeFluidBuilder<T extends CBCFlowingFluid, P> extends FluidBuilder<T, P> {
27+
public class NeoForgeFluidBuilder<T extends CBCFlowingFluid, P> extends FluidBuilder<T, P> {
2728

28-
public ForgeFluidBuilder(AbstractRegistrate<?> owner, P parent, String name, BuilderCallback callback, ResourceLocation stillTexture, ResourceLocation flowingTexture, NonNullFunction<CBCFlowingFluid.Properties, T> factory) {
29+
public NeoForgeFluidBuilder(AbstractRegistrate<?> owner, P parent, String name, BuilderCallback callback, ResourceLocation stillTexture, ResourceLocation flowingTexture, NonNullFunction<CBCFlowingFluid.Properties, T> factory) {
2930
super(owner, parent, name, callback, stillTexture, flowingTexture, factory);
3031
}
3132

@@ -62,7 +63,7 @@ protected <B extends Block> void acceptBlockstate(DataGenContext<Block, B> ctx,
6263

6364
@Override
6465
protected <I extends Item> void acceptItemModel(DataGenContext<Item, I> ctx, RegistrateItemModelProvider prov) {
65-
prov.generated(ctx, new ResourceLocation(this.getOwner().getModid(), "item/" + this.bucketName));
66+
prov.generated(ctx, CBCUtils.location(this.getOwner().getModid(), "item/" + this.bucketName));
6667
}
6768

6869
}

neoforge/src/main/java/rbasamoyai/createbigcannons/neoforge/mixin/CBCLiquidBlockMixin.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,26 @@
11
package rbasamoyai.createbigcannons.neoforge.mixin;
22

3+
import java.util.ArrayList;
4+
import java.util.List;
5+
6+
import javax.annotation.Nonnull;
7+
8+
import org.spongepowered.asm.mixin.Mixin;
9+
import org.spongepowered.asm.mixin.Unique;
10+
311
import net.minecraft.world.level.block.LiquidBlock;
412
import net.minecraft.world.level.block.state.BlockState;
513
import net.minecraft.world.level.material.FlowingFluid;
614
import net.minecraft.world.level.material.FluidState;
7-
import javax.annotation.Nonnull;
8-
import org.spongepowered.asm.mixin.Mixin;
9-
import org.spongepowered.asm.mixin.Unique;
1015
import rbasamoyai.createbigcannons.index.fluid_utils.CBCLiquidBlock;
11-
12-
import java.util.ArrayList;
13-
import java.util.List;
16+
import rbasamoyai.createbigcannons.index.fluid_utils.FluidGetter;
1417

1518
@Mixin(CBCLiquidBlock.class)
16-
public class CBCLiquidBlockMixin extends LiquidBlock {
19+
public abstract class CBCLiquidBlockMixin extends LiquidBlock implements FluidGetter {
1720

1821
@Unique private List<FluidState> cbc$stateCache = null;
1922

20-
public CBCLiquidBlockMixin(FlowingFluid arg, Properties arg2) { super(arg, arg2); }
23+
CBCLiquidBlockMixin(FlowingFluid arg, Properties arg2) { super(arg, arg2); }
2124

2225
// Taken from Bumblezone with help from TelepathicGrunt - thanks! --ritchie
2326
@Nonnull

neoforge/src/main/java/rbasamoyai/createbigcannons/neoforge/mixin/ProjectileBlockMixin.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import rbasamoyai.createbigcannons.remix.CBCExplodableBlock;
1212

1313
@Mixin(ProjectileBlock.class)
14-
public class ProjectileBlockMixin extends DirectionalBlock implements CBCExplodableBlock {
14+
public abstract class ProjectileBlockMixin extends DirectionalBlock implements CBCExplodableBlock {
1515

1616
ProjectileBlockMixin(Properties arg) { super(arg); }
1717

src/main/java/rbasamoyai/createbigcannons/crafting/foundry/MoltenMetalLiquidBlock.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,13 @@
11
package rbasamoyai.createbigcannons.crafting.foundry;
22

3-
import com.tterrag.registrate.util.nullness.NonNullSupplier;
4-
5-
import net.minecraft.core.BlockPos;
6-
import net.minecraft.world.level.BlockGetter;
73
import net.minecraft.world.level.block.state.BlockState;
84
import net.minecraft.world.level.material.FlowingFluid;
95
import net.minecraft.world.level.pathfinder.PathComputationType;
106
import rbasamoyai.createbigcannons.index.fluid_utils.CBCLiquidBlock;
117

128
public class MoltenMetalLiquidBlock extends CBCLiquidBlock {
139

14-
public MoltenMetalLiquidBlock(NonNullSupplier<? extends FlowingFluid> fluid, Properties properties) {
10+
public MoltenMetalLiquidBlock(FlowingFluid fluid, Properties properties) {
1511
super(fluid, properties);
1612
}
1713

src/main/java/rbasamoyai/createbigcannons/index/fluid_utils/CBCLiquidBlock.java

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,26 @@
11
package rbasamoyai.createbigcannons.index.fluid_utils;
22

3-
import com.tterrag.registrate.util.nullness.NonNullSupplier;
3+
import java.util.Optional;
4+
45
import dev.architectury.injectables.targets.ArchitecturyTarget;
56
import net.minecraft.core.BlockPos;
67
import net.minecraft.core.Direction;
78
import net.minecraft.sounds.SoundEvent;
8-
import net.minecraft.world.entity.player.Player;
9-
import net.minecraft.world.item.ItemStack;
109
import net.minecraft.world.level.Level;
1110
import net.minecraft.world.level.LevelAccessor;
1211
import net.minecraft.world.level.block.Block;
13-
import net.minecraft.world.level.block.Blocks;
1412
import net.minecraft.world.level.block.LiquidBlock;
1513
import net.minecraft.world.level.block.state.BlockState;
1614
import net.minecraft.world.level.material.FlowingFluid;
1715
import net.minecraft.world.level.material.Fluids;
1816

19-
import javax.annotation.Nullable;
20-
21-
import java.util.Optional;
22-
2317
public class CBCLiquidBlock extends LiquidBlock implements FluidGetter {
2418

25-
private final NonNullSupplier<? extends FlowingFluid> fluidSup;
19+
private final FlowingFluid fluid;
2620

27-
public CBCLiquidBlock(NonNullSupplier<? extends FlowingFluid> fluid, Properties properties) {
28-
super("forge".equals(ArchitecturyTarget.getCurrentTarget()) ? Fluids.FLOWING_WATER : fluid.get(), properties);
29-
this.fluidSup = fluid;
21+
public CBCLiquidBlock(FlowingFluid fluid, Properties properties) {
22+
super("forge".equals(ArchitecturyTarget.getCurrentTarget()) ? Fluids.FLOWING_WATER : fluid, properties);
23+
this.fluid = fluid;
3024
}
3125

3226
@Override
@@ -69,7 +63,7 @@ public ItemStack pickupBlock(@Nullable Player player, LevelAccessor level, Block
6963
}
7064
}*/
7165

72-
@Override public FlowingFluid getFluid() { return this.fluidSup.get(); }
66+
@Override public FlowingFluid getFluid() { return this.fluid; }
7367

7468
@Override public Optional<SoundEvent> getPickupSound() { return this.getFluid().getPickupSound(); }
7569

src/main/java/rbasamoyai/createbigcannons/index/fluid_utils/FluidBuilder.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,13 +114,13 @@ public FluidBuilder<T, P> defaultBlock() {
114114

115115
public abstract BlockBuilder<LiquidBlock, FluidBuilder<T, P>> block();
116116

117-
public <B extends LiquidBlock> BlockBuilder<B, FluidBuilder<T, P>> block(NonNullBiFunction<NonNullSupplier<? extends T>, BlockBehaviour.Properties, ? extends B> factory) {
117+
public <B extends LiquidBlock> BlockBuilder<B, FluidBuilder<T, P>> block(NonNullBiFunction<T, BlockBehaviour.Properties, ? extends B> factory) {
118118
if (this.defaultBlock == Boolean.FALSE) {
119119
throw new IllegalStateException("Only one call to block/noBlock per builder allowed");
120120
}
121121
this.defaultBlock = false;
122122
NonNullSupplier<T> supplier = asSupplier();
123-
return getOwner().<B, FluidBuilder<T, P>>block(this, sourceName, p -> factory.apply(supplier, p))
123+
return getOwner().<B, FluidBuilder<T, P>>block(this, sourceName, p -> factory.apply(supplier.get(), p))
124124
.properties(p -> BlockBehaviour.Properties.ofFullCopy(Blocks.WATER).noLootTable())
125125
.blockstate(this::acceptBlockstate);
126126
}

0 commit comments

Comments
 (0)