Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
b2ba2976dd
2 changed files with 36 additions and 13 deletions
22
src/main/java/ru/bclib/api/ComposterAPI.java
Normal file
22
src/main/java/ru/bclib/api/ComposterAPI.java
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
package ru.bclib.api;
|
||||||
|
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
|
import net.minecraft.world.level.block.Block;
|
||||||
|
import ru.bclib.mixin.common.ComposterBlockAccessor;
|
||||||
|
|
||||||
|
public class ComposterAPI {
|
||||||
|
public static Block allowCompost(float chance, Block block){
|
||||||
|
if (block!=null){
|
||||||
|
allowCompost(chance, block.asItem());
|
||||||
|
}
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Item allowCompost(float chance, Item item){
|
||||||
|
if (item!=null && item != Items.AIR) {
|
||||||
|
ComposterBlockAccessor.callAdd(chance, item);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
}
|
|
@ -81,22 +81,23 @@ public abstract class AnvilMenuMixin extends ItemCombinerMenu implements AnvilSc
|
||||||
stack = be_currentRecipe.craft(inputSlots, player);
|
stack = be_currentRecipe.craft(inputSlots, player);
|
||||||
slotsChanged(inputSlots);
|
slotsChanged(inputSlots);
|
||||||
access.execute((world, blockPos) -> {
|
access.execute((world, blockPos) -> {
|
||||||
BlockState anvilState = world.getBlockState(blockPos);
|
final BlockState anvilState = world.getBlockState(blockPos);
|
||||||
BaseAnvilBlock anvil = (BaseAnvilBlock) anvilState.getBlock();
|
final Block anvilBlock = anvilState.getBlock();
|
||||||
if (!player.getAbilities().instabuild && anvilState.is(BlockTags.ANVIL) && player.getRandom().nextDouble() < 0.1) {
|
if (anvilBlock instanceof BaseAnvilBlock) {
|
||||||
BlockState damagedState = anvil.damageAnvilUse(anvilState, player.getRandom());
|
final BaseAnvilBlock anvil = (BaseAnvilBlock) anvilBlock;
|
||||||
if (damagedState == null) {
|
if (!player.getAbilities().instabuild && anvilState.is(BlockTags.ANVIL) && player.getRandom().nextDouble() < 0.1) {
|
||||||
world.removeBlock(blockPos, false);
|
BlockState damagedState = anvil.damageAnvilUse(anvilState, player.getRandom());
|
||||||
world.levelEvent(1029, blockPos, 0);
|
if (damagedState == null) {
|
||||||
}
|
world.removeBlock(blockPos, false);
|
||||||
else {
|
world.levelEvent(1029, blockPos, 0);
|
||||||
world.setBlock(blockPos, damagedState, 2);
|
} else {
|
||||||
|
world.setBlock(blockPos, damagedState, 2);
|
||||||
|
world.levelEvent(1030, blockPos, 0);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
world.levelEvent(1030, blockPos, 0);
|
world.levelEvent(1030, blockPos, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
world.levelEvent(1030, blockPos, 0);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
info.cancel();
|
info.cancel();
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue