EndBlocks.getModBlocks returns blocks instead of items;
Pedestals unique BlockEntity check;
This commit is contained in:
parent
5cf843bde7
commit
ff4ef86c6d
9 changed files with 58 additions and 71 deletions
|
@ -28,6 +28,7 @@ import ru.betterend.registry.EndBlocks;
|
|||
import ru.betterend.registry.EndPortals;
|
||||
import ru.betterend.rituals.EternalRitual;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class EternalPedestal extends PedestalBlock {
|
||||
public static final BooleanProperty ACTIVATED = BlockProperties.ACTIVE;
|
||||
|
||||
|
@ -74,6 +75,7 @@ public class EternalPedestal extends PedestalBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public BlockState updateShape(BlockState state, Direction direction, BlockState newState, LevelAccessor world, BlockPos pos, BlockPos posFrom) {
|
||||
BlockState updated = super.updateShape(state, direction, newState, world, pos, posFrom);
|
||||
if (!updated.is(this)) return updated;
|
||||
|
@ -84,6 +86,7 @@ public class EternalPedestal extends PedestalBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public float getDestroyProgress(BlockState state, Player player, BlockGetter world, BlockPos pos) {
|
||||
return 0.0F;
|
||||
}
|
||||
|
@ -127,4 +130,9 @@ public class EternalPedestal extends PedestalBlock {
|
|||
public BlockEntity newBlockEntity(BlockGetter world) {
|
||||
return new EternalPedestalEntity();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasUniqueEntity() {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ import ru.betterend.blocks.basis.PedestalBlock;
|
|||
import ru.betterend.blocks.entities.InfusionPedestalEntity;
|
||||
import ru.betterend.rituals.InfusionRitual;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class InfusionPedestal extends PedestalBlock {
|
||||
private static final VoxelShape SHAPE_DEFAULT;
|
||||
private static final VoxelShape SHAPE_PEDESTAL_TOP;
|
||||
|
@ -42,8 +43,14 @@ public class InfusionPedestal extends PedestalBlock {
|
|||
public BlockEntity newBlockEntity(BlockGetter world) {
|
||||
return new InfusionPedestalEntity();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean hasUniqueEntity() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
|
||||
if (state.is(this)) {
|
||||
switch(state.getValue(STATE)) {
|
||||
|
|
|
@ -49,6 +49,7 @@ import ru.betterend.client.models.Patterns;
|
|||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.rituals.InfusionRitual;
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
||||
public final static EnumProperty<PedestalState> STATE = BlockProperties.PEDESTAL_STATE;
|
||||
public static final BooleanProperty HAS_ITEM = BlockProperties.HAS_ITEM;
|
||||
|
@ -65,8 +66,8 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
*
|
||||
* Register new Pedestal block with Better End mod id.
|
||||
*
|
||||
* @param name
|
||||
* @param source
|
||||
* @param name pedestal name
|
||||
* @param source source block
|
||||
* @return new Pedestal block with Better End id.
|
||||
*/
|
||||
public static Block registerPedestal(String name, Block source) {
|
||||
|
@ -77,8 +78,8 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
*
|
||||
* Register new Pedestal block with specified mod id.
|
||||
*
|
||||
* @param id
|
||||
* @param source
|
||||
* @param id pedestal id
|
||||
* @param source source block
|
||||
* @return new Pedestal block with specified id.
|
||||
*/
|
||||
public static Block registerPedestal(ResourceLocation id, Block source) {
|
||||
|
@ -102,6 +103,7 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public InteractionResult use(BlockState state, Level world, BlockPos pos, Player player, InteractionHand hand, BlockHitResult hit) {
|
||||
if (world.isClientSide || !state.is(this)) return InteractionResult.CONSUME;
|
||||
if (!isPlaceable(state)) {
|
||||
|
@ -166,6 +168,7 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public BlockState updateShape(BlockState state, Direction direction, BlockState newState, LevelAccessor world, BlockPos pos, BlockPos posFrom) {
|
||||
BlockState updated = getUpdatedState(state, direction, newState, world, pos, posFrom);
|
||||
if (!updated.is(this)) return updated;
|
||||
|
@ -291,6 +294,7 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public VoxelShape getShape(BlockState state, BlockGetter world, BlockPos pos, CollisionContext context) {
|
||||
if (state.is(this)) {
|
||||
switch(state.getValue(STATE)) {
|
||||
|
@ -326,13 +330,19 @@ public class PedestalBlock extends BlockBaseNotFull implements EntityBlock {
|
|||
public BlockEntity newBlockEntity(BlockGetter world) {
|
||||
return new PedestalBlockEntity();
|
||||
}
|
||||
|
||||
public boolean hasUniqueEntity() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public boolean hasAnalogOutputSignal(BlockState state) {
|
||||
return state.getBlock() instanceof PedestalBlock;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public int getAnalogOutputSignal(BlockState state, Level world, BlockPos pos) {
|
||||
return state.getValue(HAS_ITEM) ? 15 : 0;
|
||||
}
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
package ru.betterend.client;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import net.fabricmc.api.ClientModInitializer;
|
||||
import net.fabricmc.fabric.api.blockrenderlayer.v1.BlockRenderLayerMap;
|
||||
import net.minecraft.ChatFormatting;
|
||||
|
@ -10,13 +8,11 @@ import net.minecraft.core.Registry;
|
|||
import net.minecraft.network.chat.Style;
|
||||
import net.minecraft.network.chat.TextComponent;
|
||||
import net.minecraft.network.chat.TranslatableComponent;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import ru.bclib.blocks.BaseChestBlock;
|
||||
import ru.bclib.blocks.BaseSignBlock;
|
||||
import ru.bclib.client.render.BaseChestBlockEntityRenderer;
|
||||
import ru.bclib.client.render.BaseSignBlockEntityRenderer;
|
||||
import ru.bclib.registry.BaseRegistry;
|
||||
import ru.bclib.util.TranslationHelper;
|
||||
import ru.betterend.BetterEnd;
|
||||
import ru.betterend.client.render.ERenderLayer;
|
||||
|
@ -26,6 +22,8 @@ import ru.betterend.interfaces.MultiModelItem;
|
|||
import ru.betterend.item.CrystaliteArmor;
|
||||
import ru.betterend.registry.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BetterEndClient implements ClientModInitializer {
|
||||
@Override
|
||||
public void onInitializeClient() {
|
||||
|
@ -75,10 +73,8 @@ public class BetterEndClient implements ClientModInitializer {
|
|||
}
|
||||
|
||||
private static void registerRenderers() {
|
||||
List<Item> modBlocks = EndBlocks.getModBlocks();
|
||||
modBlocks.stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock)
|
||||
.map(item -> ((BlockItem) item).getBlock()).forEach(BaseChestBlockEntityRenderer::registerRenderLayer);
|
||||
modBlocks.stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock)
|
||||
.map(item -> ((BlockItem) item).getBlock()).forEach(BaseSignBlockEntityRenderer::registerRenderLayer);
|
||||
List<Block> modBlocks = EndBlocks.getModBlocks();
|
||||
modBlocks.stream().filter(BaseChestBlock.class::isInstance).forEach(BaseChestBlockEntityRenderer::registerRenderLayer);
|
||||
modBlocks.stream().filter(BaseSignBlock.class::isInstance).forEach(BaseSignBlockEntityRenderer::registerRenderLayer);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,6 @@
|
|||
package ru.betterend.integration.rei;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
|
||||
import me.shedaniel.rei.api.EntryStack;
|
||||
import me.shedaniel.rei.api.RecipeHelper;
|
||||
import me.shedaniel.rei.api.plugins.REIPluginV0;
|
||||
|
@ -13,7 +9,6 @@ import net.fabricmc.api.EnvType;
|
|||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.impl.content.registry.FuelRegistryImpl;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.BlockItem;
|
||||
import net.minecraft.world.item.crafting.BlastingRecipe;
|
||||
import net.minecraft.world.level.block.Blocks;
|
||||
import ru.betterend.BetterEnd;
|
||||
|
@ -23,7 +18,9 @@ import ru.betterend.recipe.builders.AlloyingRecipe;
|
|||
import ru.betterend.recipe.builders.AnvilRecipe;
|
||||
import ru.betterend.recipe.builders.InfusionRecipe;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
import ru.betterend.registry.EndItems;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class REIPlugin implements REIPluginV0 {
|
||||
|
@ -81,11 +78,11 @@ public class REIPlugin implements REIPluginV0 {
|
|||
|
||||
static {
|
||||
List<EntryStack> anvils = Lists.newArrayList(EntryStack.ofItems(EndBlocks.getModBlocks().stream()
|
||||
.filter(item -> ((BlockItem) item).getBlock() instanceof EndAnvilBlock).collect(Collectors.toList())));
|
||||
.filter(EndAnvilBlock.class::isInstance).collect(Collectors.toList())));
|
||||
anvils.add(0, EntryStack.create(Blocks.ANVIL));
|
||||
ANVILS = anvils.toArray(new EntryStack[0]);
|
||||
FURNACES = Lists.newArrayList(EntryStack.ofItems(EndBlocks.getModBlocks().stream()
|
||||
.filter(item -> ((BlockItem) item).getBlock() instanceof EndFurnaceBlock).collect(Collectors.toList())))
|
||||
.filter(EndFurnaceBlock.class::isInstance).collect(Collectors.toList())))
|
||||
.toArray(new EntryStack[0]);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue