EndBlocks.getModBlocks returns blocks instead of items;

Pedestals unique BlockEntity check;
This commit is contained in:
Aleksey 2021-06-07 12:14:18 +03:00
parent 5cf843bde7
commit ff4ef86c6d
9 changed files with 58 additions and 71 deletions

View file

@ -1,21 +1,13 @@
package ru.betterend.registry;
import net.minecraft.core.Registry;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.level.block.Block;
import net.minecraft.world.level.block.entity.BlockEntity;
import net.minecraft.world.level.block.entity.BlockEntityType;
import ru.bclib.registry.BaseRegistry;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.EndStoneSmelter;
import ru.betterend.blocks.EternalPedestal;
import ru.betterend.blocks.InfusionPedestal;
import ru.betterend.blocks.basis.PedestalBlock;
import ru.betterend.blocks.entities.BlockEntityHydrothermalVent;
import ru.betterend.blocks.entities.EndStoneSmelterBlockEntity;
import ru.betterend.blocks.entities.EternalPedestalEntity;
import ru.betterend.blocks.entities.InfusionPedestalEntity;
import ru.betterend.blocks.entities.PedestalBlockEntity;
import ru.betterend.blocks.entities.*;
public class EndBlockEntities {
public final static BlockEntityType<EndStoneSmelterBlockEntity> END_STONE_SMELTER = registerBlockEntity(EndStoneSmelter.ID,
@ -37,10 +29,7 @@ public class EndBlockEntities {
static Block[] getPedestals() {
return EndBlocks.getModBlocks().stream()
.filter(item -> item instanceof BlockItem)
.map(item -> ((BlockItem) item).getBlock())
.filter(block -> block instanceof PedestalBlock &&
!(block instanceof EternalPedestal || block instanceof InfusionPedestal))
.filter(block -> block instanceof PedestalBlock && !((PedestalBlock) block).hasUniqueEntity())
.toArray(Block[]::new);
}
}

View file

@ -1,14 +1,13 @@
package ru.betterend.registry;
import net.minecraft.world.item.Item;
import org.jetbrains.annotations.NotNull;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
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;
@ -17,36 +16,17 @@ import ru.bclib.registry.BaseBlockEntities;
import ru.bclib.registry.BlocksRegistry;
import ru.betterend.BetterEnd;
import ru.betterend.blocks.*;
import ru.betterend.blocks.basis.EndCropBlock;
import ru.betterend.blocks.basis.EndFurnaceBlock;
import ru.betterend.blocks.basis.EndLeavesBlock;
import ru.betterend.blocks.basis.EndOreBlock;
import ru.betterend.blocks.basis.EndPathBlock;
import ru.betterend.blocks.basis.EndPillarBlock;
import ru.betterend.blocks.basis.EndSlabBlock;
import ru.betterend.blocks.basis.EndStairsBlock;
import ru.betterend.blocks.basis.EndTerrainBlock;
import ru.betterend.blocks.basis.EndUnderwaterWallPlantBlock;
import ru.betterend.blocks.basis.EndWallPlantBlock;
import ru.betterend.blocks.basis.FurBlock;
import ru.betterend.blocks.basis.SimpleLeavesBlock;
import ru.betterend.blocks.basis.StalactiteBlock;
import ru.betterend.blocks.basis.StoneLanternBlock;
import ru.betterend.blocks.basis.TripleTerrainBlock;
import ru.betterend.blocks.basis.VineBlock;
import ru.betterend.blocks.basis.WallMushroomBlock;
import ru.betterend.blocks.complex.ColoredMaterial;
import ru.betterend.blocks.complex.CrystalSubblocksMaterial;
import ru.betterend.blocks.complex.MetalMaterial;
import ru.betterend.blocks.complex.StoneMaterial;
import ru.betterend.blocks.complex.WoodenMaterial;
import ru.betterend.blocks.basis.*;
import ru.betterend.blocks.complex.*;
import ru.betterend.config.Configs;
import ru.betterend.item.material.EndArmorMaterial;
import ru.betterend.item.material.EndToolMaterial;
import ru.betterend.tab.CreativeTabs;
import java.util.List;
import java.util.stream.Collectors;
@SuppressWarnings("unused")
public class EndBlocks extends BlocksRegistry {
// Terrain //
public static final Block ENDSTONE_DUST = registerBlock("endstone_dust", new EndstoneDustBlock());
@ -332,8 +312,9 @@ public class EndBlocks extends BlocksRegistry {
super(creativeTab);
}
public static List<Item> getModBlocks() {
return getModBlocks(BetterEnd.MOD_ID);
public static List<Block> getModBlocks() {
return getModBlocks(BetterEnd.MOD_ID).stream().filter(BlockItem.class::isInstance)
.map(item -> ((BlockItem) item).getBlock()).collect(Collectors.toList());
}
public static Block registerBlock(ResourceLocation id, Block block) {

View file

@ -41,6 +41,7 @@ import ru.betterend.tab.CreativeTabs;
import java.util.List;
@SuppressWarnings("unused")
public class EndItems extends ItemsRegistry {
// Materials //
public final static Item ENDER_DUST = registerEndItem("ender_dust");

View file

@ -1,10 +1,6 @@
package ru.betterend.registry;
import java.util.List;
import java.util.function.Supplier;
import com.google.common.collect.Lists;
import net.fabricmc.fabric.api.tag.TagRegistry;
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler;
@ -16,7 +12,6 @@ import net.minecraft.tags.Tag;
import net.minecraft.tags.Tag.Named;
import net.minecraft.tags.TagCollection;
import net.minecraft.world.food.FoodProperties;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.Item;
import net.minecraft.world.level.biome.Biome;
import net.minecraft.world.level.biome.Biome.BiomeCategory;
@ -34,6 +29,10 @@ import ru.betterend.blocks.basis.VineBlock;
import ru.betterend.item.tool.EndHammerItem;
import ru.betterend.mixin.common.ComposterBlockAccessor;
import java.util.List;
import java.util.function.Supplier;
@SuppressWarnings("unused")
public class EndTags {
// Table with common (c) tags:
// https://fabricmc.net/wiki/tutorial:tags
@ -82,8 +81,7 @@ public class EndTags {
TagAPI.addEndGround(EndBlocks.ENDSTONE_DUST);
TagAPI.addEndGround(EndBlocks.AMBER_ORE);
EndBlocks.getModBlocks().forEach(blockItem -> {
Block block = ((BlockItem) blockItem).getBlock();
EndBlocks.getModBlocks().forEach(block -> {
if (block instanceof EndTerrainBlock) {
TagAPI.addEndGround(block);
TagHelper.addTag(BlockTags.NYLIUM, block);