New Composter API usage, missing items fix

This commit is contained in:
paulevsGitch 2021-11-21 07:22:42 +03:00
parent 2afb62d6c8
commit 1ca8ffca7c
4 changed files with 17 additions and 37 deletions

View file

@ -9,17 +9,22 @@ import org.spongepowered.asm.mixin.gen.Accessor;
import java.util.List;
import java.util.function.Supplier;
@Deprecated(forRemoval = true)
@Mixin(BiomeGenerationSettings.class)
public interface BiomeGenerationSettingsAccessor {
@Accessor("features")
@Deprecated(forRemoval = true)
List<List<Supplier<ConfiguredFeature<?, ?>>>> be_getFeatures();
@Accessor("features")
@Deprecated(forRemoval = true)
void be_setFeatures(List<List<Supplier<ConfiguredFeature<?, ?>>>> features);
@Accessor("structureStarts")
@Deprecated(forRemoval = true)
List<Supplier<ConfiguredStructureFeature<?, ?>>> be_getStructures();
@Accessor("structureStarts")
@Deprecated(forRemoval = true)
void be_setStructures(List<Supplier<ConfiguredStructureFeature<?, ?>>> structures);
}

View file

@ -2,23 +2,20 @@ package ru.betterend.registry;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor;
import org.jetbrains.annotations.NotNull;
import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseOreBlock;
import ru.bclib.blocks.BasePathBlock;
import ru.bclib.blocks.BaseRotatedPillarBlock;
import ru.bclib.blocks.BaseSignBlock;
import ru.bclib.blocks.BaseSlabBlock;
import ru.bclib.blocks.BaseStairsBlock;
import ru.bclib.blocks.BaseVineBlock;
import ru.bclib.blocks.SimpleLeavesBlock;
import ru.bclib.blocks.StalactiteBlock;
import ru.bclib.registry.BaseBlockEntities;
import ru.bclib.registry.BlockRegistry;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.AeterniumAnvil;
@ -525,22 +522,14 @@ public class EndBlocks {
return BlockRegistry.getModBlocks(BetterEnd.MOD_ID);
}
public static List<Item> getModBlockItems() {
return BlockRegistry.getModBlockItems(BetterEnd.MOD_ID);
}
public static Block registerBlock(ResourceLocation id, Block block) {
if (!Configs.BLOCK_CONFIG.getBooleanRoot(id.getPath(), true)) {
return block;
}
if (block instanceof BaseChestBlock) {
BaseBlockEntities.CHEST.registerBlock(block);
}
if (block instanceof BaseSignBlock) {
BaseBlockEntities.SIGN.registerBlock(block);
}
if (block instanceof BaseBarrelBlock) {
BaseBlockEntities.BARREL.registerBlock(block);
}
if (block instanceof BaseFurnaceBlock) {
BaseBlockEntities.FURNACE.registerBlock(block);
}
getBlockRegistry().register(id, block);
return block;
}

View file

@ -1,9 +1,6 @@
package ru.betterend.registry;
import java.util.List;
import com.google.common.collect.Lists;
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler;
import net.fabricmc.fabric.mixin.object.builder.AbstractBlockAccessor;
@ -24,15 +21,17 @@ import net.minecraft.world.level.block.state.BlockBehaviour.Properties;
import net.minecraft.world.level.levelgen.surfacebuilders.SurfaceBuilderConfiguration;
import net.minecraft.world.level.material.Material;
import ru.bclib.api.BonemealAPI;
import ru.bclib.api.ComposterAPI;
import ru.bclib.api.TagAPI;
import ru.bclib.blocks.BaseVineBlock;
import ru.bclib.blocks.SimpleLeavesBlock;
import ru.bclib.mixin.common.ComposterBlockAccessor;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.basis.EndTerrainBlock;
import ru.betterend.blocks.basis.PedestalBlock;
import ru.betterend.item.tool.EndHammerItem;
import java.util.List;
public class EndTags {
// Table with common (c) tags:
// https://fabricmc.net/wiki/tutorial:tags
@ -44,12 +43,6 @@ public class EndTags {
public static final Tag.Named<Item> ALLOYING_IRON = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_iron");
public static final Tag.Named<Item> ALLOYING_GOLD = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_gold");
public static final Tag.Named<Item> ALLOYING_COPPER = TagAPI.makeItemTag(BetterEnd.MOD_ID, "alloying_copper");
private static void allowCompost(float chance, Item item){
if (item!=null && item != Items.AIR) {
ComposterBlockAccessor.callAdd(chance, item);
}
}
public static void register() {
TagAPI.addEndGround(EndBlocks.THALLASIUM.ore);
@ -81,10 +74,7 @@ public class EndTags {
}
else if (block instanceof LeavesBlock || block instanceof SimpleLeavesBlock) {
TagAPI.addTag(BlockTags.LEAVES, block);
//TODO: for BCLib 0.5.3
//ComposterAPI.allowCompost(0.3f, item);
allowCompost(0.3F, item);
ComposterAPI.allowCompost(0.3f, item);
}
else if (block instanceof BaseVineBlock) {
TagAPI.addTag(BlockTags.CLIMBABLE, block);
@ -95,9 +85,7 @@ public class EndTags {
Material mat = block.defaultBlockState().getMaterial();
if (mat.equals(Material.PLANT) || mat.equals(Material.REPLACEABLE_PLANT)) {
//TODO: for BCLib 0.5.3
//ComposterAPI.allowCompost(0.3f, item);
allowCompost(0.1F, item);
ComposterAPI.allowCompost(0.1F, item);
}
});
TagAPI.addEndGround(EndBlocks.CAVE_MOSS);
@ -112,9 +100,7 @@ public class EndTags {
FoodProperties food = item.getFoodProperties();
if (food != null) {
float compost = food.getNutrition() * food.getSaturationModifier() * 0.18F;
//TODO: for BCLib 0.5.3
//ComposterAPI.allowCompost(0.3f, item);
allowCompost(compost, item);
ComposterAPI.allowCompost(compost, item);
}
}
if (item instanceof EndHammerItem) {

View file

@ -17,7 +17,7 @@ public class CreativeTabs {
TAB_BLOCKS = FabricItemGroupBuilder
.create(BetterEnd.makeID("end_blocks"))
.icon(() -> new ItemStack(EndBlocks.END_MYCELIUM))
.appendItems(stacks -> stacks.addAll(EndBlocks.getModBlocks()
.appendItems(stacks -> stacks.addAll(EndBlocks.getModBlockItems()
.stream()
.map(ItemStack::new)
.collect(Collectors.toList())))