Skip to content

Commit dcd221d

Browse files
committed
Code cleanup around checking for creative mode
Instead of checking for `player.getAbilities().instabuild` we now check for either `player.isCreative()` or `player.hasInfiniteMaterials()`, whichever is more thematic in context. InventoryHelper::tryToSetLastRecipe also no longer bothers searching the inventory players with infinite materials, since it'll duplicate the expected ingredient stack anyway.
1 parent 1f845b7 commit dcd221d

30 files changed

+69
-97
lines changed

Fabric/src/main/java/vazkii/botania/fabric/FabricCommonInitializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -312,11 +312,11 @@ private void registerCapabilities() {
312312
BotaniaFabricCapabilities.AVATAR_WIELDABLE.registerForItems((stack, c) -> new BifrostRodItem.AvatarBehavior(), BotaniaItems.rainbowRod);
313313
BotaniaFabricCapabilities.AVATAR_WIELDABLE.registerForItems((stack, c) -> new SkiesRodItem.AvatarBehavior(), BotaniaItems.tornadoRod);
314314

315-
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new LandsRodItem.BlockProviderImpl(stack), BotaniaItems.dirtRod, BotaniaItems.skyDirtRod);
315+
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new LandsRodItem.BlockProviderImpl(),
316+
BotaniaItems.dirtRod, BotaniaItems.skyDirtRod, BotaniaItems.terraformRod);
316317
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new BlackHoleTalismanItem.BlockProviderImpl(stack), BotaniaItems.blackHoleTalisman);
317318
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new DepthsRodItem.BlockProviderImpl(), BotaniaItems.cobbleRod);
318319
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new EnderHandItem.BlockProviderImpl(stack), BotaniaItems.enderHand);
319-
BotaniaFabricCapabilities.BLOCK_PROVIDER.registerForItems((stack, c) -> new TerraFirmaRodItem.BlockProviderImpl(), BotaniaItems.terraformRod);
320320

321321
BotaniaFabricCapabilities.COORD_BOUND_ITEM.registerForItems((st, c) -> new EyeOfTheFlugelItem.CoordBoundItemImpl(st), BotaniaItems.flugelEye);
322322
BotaniaFabricCapabilities.COORD_BOUND_ITEM.registerForItems((st, c) -> new ManaMirrorItem.CoordBoundItemImpl(st), BotaniaItems.manaMirror);

Fabric/src/main/java/vazkii/botania/fabric/xplat/FabricXplatImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,7 +286,7 @@ public boolean extractFluidFromPlayerItem(Player player, InteractionHand hand, F
286286
try (Transaction txn = Transaction.openOuter()) {
287287
long extracted = fluidStorage.extract(FluidVariant.of(fluid), FluidConstants.BUCKET, txn);
288288
if (extracted == FluidConstants.BUCKET) {
289-
if (!player.getAbilities().instabuild) {
289+
if (!player.hasInfiniteMaterials()) {
290290
// Only perform inventory side effects in survival
291291
txn.commit();
292292
}
@@ -307,7 +307,7 @@ public boolean insertFluidIntoPlayerItem(Player player, InteractionHand hand, Fl
307307
try (Transaction txn = Transaction.openOuter()) {
308308
long inserted = fluidStorage.insert(FluidVariant.of(fluid), FluidConstants.BUCKET, txn);
309309
if (inserted == FluidConstants.BUCKET) {
310-
if (!player.getAbilities().instabuild) {
310+
if (!player.hasInfiniteMaterials()) {
311311
// Only perform inventory side effects in survival
312312
txn.commit();
313313
}

NeoForge/src/main/java/vazkii/botania/neoforge/ForgeCommonInitializer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -473,12 +473,12 @@ private void registerEvents() {
473473
));
474474

475475
private static final Supplier<Map<Item, Function<ItemStack, BlockProvider>>> BLOCK_PROVIDER = Suppliers.memoize(() -> Map.of(
476-
BotaniaItems.dirtRod, LandsRodItem.BlockProviderImpl::new,
477-
BotaniaItems.skyDirtRod, LandsRodItem.BlockProviderImpl::new,
476+
BotaniaItems.dirtRod, s -> new LandsRodItem.BlockProviderImpl(),
477+
BotaniaItems.skyDirtRod, s -> new LandsRodItem.BlockProviderImpl(),
478478
BotaniaItems.blackHoleTalisman, BlackHoleTalismanItem.BlockProviderImpl::new,
479479
BotaniaItems.cobbleRod, s -> new DepthsRodItem.BlockProviderImpl(),
480480
BotaniaItems.enderHand, EnderHandItem.BlockProviderImpl::new,
481-
BotaniaItems.terraformRod, s -> new TerraFirmaRodItem.BlockProviderImpl()
481+
BotaniaItems.terraformRod, s -> new LandsRodItem.BlockProviderImpl()
482482
));
483483

484484
private static final Supplier<Map<Item, Function<ItemStack, CoordBoundItem>>> COORD_BOUND_ITEM = Suppliers.memoize(() -> Map.of(

NeoForge/src/main/java/vazkii/botania/neoforge/xplat/ForgeXplatImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ public boolean extractFluidFromPlayerItem(Player player, InteractionHand hand, F
250250
}
251251
var extracted = h.drain(FluidType.BUCKET_VOLUME, IFluidHandler.FluidAction.SIMULATE);
252252
var success = extracted.getFluid() == fluid && extracted.getAmount() == FluidType.BUCKET_VOLUME;
253-
if (success && !player.getAbilities().instabuild) {
253+
if (success && !player.hasInfiniteMaterials()) {
254254
h.drain(extracted, IFluidHandler.FluidAction.EXECUTE);
255255
player.setItemInHand(hand, h.getContainer());
256256
}
@@ -275,7 +275,7 @@ public boolean insertFluidIntoPlayerItem(Player player, InteractionHand hand, Fl
275275
int filled = fluidHandler.fill(fluidToFill, IFluidHandler.FluidAction.SIMULATE);
276276

277277
if (filled == FluidType.BUCKET_VOLUME) {
278-
if (!player.getAbilities().instabuild) {
278+
if (!player.hasInfiniteMaterials()) {
279279
fluidHandler.fill(fluidToFill, IFluidHandler.FluidAction.EXECUTE);
280280
stack.shrink(1);
281281
ItemStack result = fluidHandler.getContainer();

Xplat/src/main/java/vazkii/botania/common/block/CocoonBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ public void entityInside(BlockState state, Level world, BlockPos pos, Entity e)
6969

7070
@Override
7171
public ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hitResult) {
72-
return addStack(level, pos, stack, player.getAbilities().instabuild);
72+
return addStack(level, pos, stack, player.hasInfiniteMaterials());
7373
}
7474

7575
private ItemInteractionResult addStack(Level world, BlockPos pos, ItemStack stack, boolean creative) {

Xplat/src/main/java/vazkii/botania/common/block/IncensePlateBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Lev
8181
plate.ignite();
8282
RandomSource randomsource = world.getRandom();
8383
world.playSound(player, pos, SoundEvents.FIRECHARGE_USE, SoundSource.BLOCKS, 1.0F, (randomsource.nextFloat() - randomsource.nextFloat()) * 0.2F + 1.0F);
84-
if (!player.getAbilities().instabuild) {
84+
if (!player.hasInfiniteMaterials()) {
8585
stack.shrink(1);
8686
}
8787
} else if (XplatAbstractions.INSTANCE.canToolLightFire(stack)) {

Xplat/src/main/java/vazkii/botania/common/block/TeruTeruBozuBlock.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void entityInside(BlockState state, Level world, BlockPos pos, Entity e)
6161
protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos,
6262
Player player, InteractionHand hand, BlockHitResult hitResult) {
6363
if (isSunflower(stack) && removeRain(level) || isBlueOrchid(stack) && startRain(level)) {
64-
if (!player.getAbilities().instabuild) {
64+
if (!player.hasInfiniteMaterials()) {
6565
stack.shrink(1);
6666
}
6767
return ItemInteractionResult.sidedSuccess(level.isClientSide());

Xplat/src/main/java/vazkii/botania/common/block/block_entity/BreweryBlockEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public boolean addItem(@Nullable Player player, ItemStack stack, @Nullable Inter
7777
ItemStack stackToAdd = stack.copyWithCount(1);
7878
getItemHandler().setItem(i, stackToAdd);
7979

80-
if (player == null || !player.getAbilities().instabuild) {
80+
if (player == null || !player.hasInfiniteMaterials()) {
8181
stack.shrink(1);
8282
if (stack.isEmpty() && player != null && hand != null) {
8383
player.setItemInHand(hand, ItemStack.EMPTY);

Xplat/src/main/java/vazkii/botania/common/block/block_entity/LuminizerBlockEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ public boolean onPhantomInked(@Nullable Player player, ItemStack stack, Directio
218218
return false;
219219
}
220220
if (!level.isClientSide) {
221-
if (player == null || !player.getAbilities().instabuild) {
221+
if (player == null || !player.hasInfiniteMaterials()) {
222222
stack.shrink(1);
223223
}
224224
setNoParticle();

Xplat/src/main/java/vazkii/botania/common/block/block_entity/PlatformBlockEntity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public boolean onPhantomInked(@Nullable Player player, ItemStack stack, Directio
6868
return false;
6969
}
7070
if (!level.isClientSide) {
71-
if (player == null || !player.getAbilities().instabuild) {
71+
if (player == null || !player.hasInfiniteMaterials()) {
7272
stack.shrink(1);
7373
}
7474
setCamoState(Blocks.BARRIER.defaultBlockState());

0 commit comments

Comments
 (0)