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.List;
import java.util.function.Supplier; import java.util.function.Supplier;
@Deprecated(forRemoval = true)
@Mixin(BiomeGenerationSettings.class) @Mixin(BiomeGenerationSettings.class)
public interface BiomeGenerationSettingsAccessor { public interface BiomeGenerationSettingsAccessor {
@Accessor("features") @Accessor("features")
@Deprecated(forRemoval = true)
List<List<Supplier<ConfiguredFeature<?, ?>>>> be_getFeatures(); List<List<Supplier<ConfiguredFeature<?, ?>>>> be_getFeatures();
@Accessor("features") @Accessor("features")
@Deprecated(forRemoval = true)
void be_setFeatures(List<List<Supplier<ConfiguredFeature<?, ?>>>> features); void be_setFeatures(List<List<Supplier<ConfiguredFeature<?, ?>>>> features);
@Accessor("structureStarts") @Accessor("structureStarts")
@Deprecated(forRemoval = true)
List<Supplier<ConfiguredStructureFeature<?, ?>>> be_getStructures(); List<Supplier<ConfiguredStructureFeature<?, ?>>> be_getStructures();
@Accessor("structureStarts") @Accessor("structureStarts")
@Deprecated(forRemoval = true)
void be_setStructures(List<Supplier<ConfiguredStructureFeature<?, ?>>> structures); 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.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.block.Blocks;
import net.minecraft.world.level.material.MaterialColor; import net.minecraft.world.level.material.MaterialColor;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import ru.bclib.blocks.BaseBarrelBlock;
import ru.bclib.blocks.BaseChestBlock;
import ru.bclib.blocks.BaseFurnaceBlock; import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseOreBlock; import ru.bclib.blocks.BaseOreBlock;
import ru.bclib.blocks.BasePathBlock; import ru.bclib.blocks.BasePathBlock;
import ru.bclib.blocks.BaseRotatedPillarBlock; import ru.bclib.blocks.BaseRotatedPillarBlock;
import ru.bclib.blocks.BaseSignBlock;
import ru.bclib.blocks.BaseSlabBlock; import ru.bclib.blocks.BaseSlabBlock;
import ru.bclib.blocks.BaseStairsBlock; import ru.bclib.blocks.BaseStairsBlock;
import ru.bclib.blocks.BaseVineBlock; import ru.bclib.blocks.BaseVineBlock;
import ru.bclib.blocks.SimpleLeavesBlock; import ru.bclib.blocks.SimpleLeavesBlock;
import ru.bclib.blocks.StalactiteBlock; import ru.bclib.blocks.StalactiteBlock;
import ru.bclib.registry.BaseBlockEntities;
import ru.bclib.registry.BlockRegistry; import ru.bclib.registry.BlockRegistry;
import ru.betterend.BetterEnd; import ru.betterend.BetterEnd;
import ru.betterend.blocks.AeterniumAnvil; import ru.betterend.blocks.AeterniumAnvil;
@ -525,22 +522,14 @@ public class EndBlocks {
return BlockRegistry.getModBlocks(BetterEnd.MOD_ID); 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) { public static Block registerBlock(ResourceLocation id, Block block) {
if (!Configs.BLOCK_CONFIG.getBooleanRoot(id.getPath(), true)) { if (!Configs.BLOCK_CONFIG.getBooleanRoot(id.getPath(), true)) {
return block; 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); getBlockRegistry().register(id, block);
return block; return block;
} }

View file

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

View file

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