Add config option to prevent placing fluid source blocks
This commit is contained in:
parent
85d64010bd
commit
f9791243f8
3 changed files with 15 additions and 4 deletions
|
@ -11,6 +11,7 @@ import javax.annotation.Nullable;
|
|||
import com.simibubi.create.AllFluids;
|
||||
import com.simibubi.create.content.contraptions.fluids.potion.PotionFluidHandler;
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.utility.BlockFace;
|
||||
|
||||
|
@ -214,6 +215,10 @@ public class OpenEndedPipe extends FlowSource {
|
|||
.scheduleTick(outputPos, Fluids.WATER, 1);
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!AllConfigs.SERVER.fluids.placeFluidSourceBlocks.get())
|
||||
return true;
|
||||
|
||||
world.setBlock(outputPos, fluid.getFluid()
|
||||
.defaultFluidState()
|
||||
.createLegacyBlock(), 3);
|
||||
|
|
|
@ -7,6 +7,7 @@ import java.util.Objects;
|
|||
import java.util.Set;
|
||||
|
||||
import com.simibubi.create.foundation.advancement.AllTriggers;
|
||||
import com.simibubi.create.foundation.config.AllConfigs;
|
||||
import com.simibubi.create.foundation.fluid.FluidHelper;
|
||||
import com.simibubi.create.foundation.tileEntity.SmartTileEntity;
|
||||
import com.simibubi.create.foundation.tileEntity.behaviour.BehaviourType;
|
||||
|
@ -126,12 +127,13 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour {
|
|||
int maxBlocks = maxBlocks();
|
||||
boolean evaporate = world.dimensionType()
|
||||
.ultraWarm() && fluid.is(FluidTags.WATER);
|
||||
boolean canPlaceSources = AllConfigs.SERVER.fluids.placeFluidSourceBlocks.get();
|
||||
|
||||
if ((!fillInfinite() && infinite) || evaporate) {
|
||||
if ((!fillInfinite() && infinite) || evaporate || !canPlaceSources) {
|
||||
FluidState fluidState = world.getFluidState(rootPos);
|
||||
boolean equivalentTo = fluidState.getType()
|
||||
.isSame(fluid);
|
||||
if (!equivalentTo && !evaporate)
|
||||
if (!equivalentTo && !evaporate && canPlaceSources)
|
||||
return false;
|
||||
if (simulate)
|
||||
return true;
|
||||
|
@ -142,7 +144,8 @@ public class FluidFillingBehaviour extends FluidManipulationBehaviour {
|
|||
int k = root.getZ();
|
||||
world.playSound(null, i, j, k, SoundEvents.FIRE_EXTINGUISH, SoundCategory.BLOCKS, 0.5F,
|
||||
2.6F + (world.random.nextFloat() - world.random.nextFloat()) * 0.8F);
|
||||
}
|
||||
} else if (!canPlaceSources)
|
||||
AllTriggers.triggerForNearbyPlayers(AllTriggers.HOSE_PULLEY, world, tileEntity.getBlockPos(), 8);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -12,6 +12,8 @@ public class CFluids extends ConfigBase {
|
|||
public ConfigBool fillInfinite = b(false, "fillInfinite",Comments.fillInfinite);
|
||||
public ConfigInt hosePulleyRange = i(128, 1, "hosePulleyRange", Comments.blocks, Comments.hosePulleyRange);
|
||||
|
||||
public ConfigBool placeFluidSourceBlocks = b(true, "placeFluidSourceBlocks", Comments.placeFluidSourceBlocks);
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "fluids";
|
||||
|
@ -29,7 +31,8 @@ public class CFluids extends ConfigBase {
|
|||
static String toDisable = "[-1 to disable this behaviour]";
|
||||
static String hosePulleyBlockThreshold =
|
||||
"The minimum amount of fluid blocks the hose pulley needs to find before deeming it an infinite source.";
|
||||
static String fillInfinite="Does hose pulley poor fluids to the world even if it is an infinite source?";
|
||||
static String fillInfinite = "Does hose pulley pour fluids into infinite sources?";
|
||||
static String placeFluidSourceBlocks = "Can open-ended pipes and hose pulleys place fluid source blocks?";
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue