Code style fix, interface rename, custom item getter

This commit is contained in:
paulevsGitch 2021-07-20 00:10:00 +03:00
parent 179ada3296
commit c6afa74529
134 changed files with 3404 additions and 1244 deletions

View file

@ -18,10 +18,16 @@ import ru.bclib.blocks.BaseFurnaceBlock;
import ru.bclib.blocks.BaseSignBlock;
public class BaseBlockEntities {
public static final DynamicBlockEntityType<BaseChestBlockEntity> CHEST = registerBlockEntityType(BCLib.makeID("chest"), BaseChestBlockEntity::new);
public static final DynamicBlockEntityType<BaseBarrelBlockEntity> BARREL = registerBlockEntityType(BCLib.makeID("barrel"), BaseBarrelBlockEntity::new);
public static final DynamicBlockEntityType<BaseSignBlockEntity> SIGN = registerBlockEntityType(BCLib.makeID("sign"), BaseSignBlockEntity::new);
public static final DynamicBlockEntityType<BaseFurnaceBlockEntity> FURNACE = registerBlockEntityType(BCLib.makeID("furnace"), BaseFurnaceBlockEntity::new);
public static final DynamicBlockEntityType<BaseChestBlockEntity> CHEST = registerBlockEntityType(BCLib.makeID(
"chest"), BaseChestBlockEntity::new);
public static final DynamicBlockEntityType<BaseBarrelBlockEntity> BARREL = registerBlockEntityType(BCLib.makeID(
"barrel"), BaseBarrelBlockEntity::new);
public static final DynamicBlockEntityType<BaseSignBlockEntity> SIGN = registerBlockEntityType(
BCLib.makeID("sign"),
BaseSignBlockEntity::new
);
public static final DynamicBlockEntityType<BaseFurnaceBlockEntity> FURNACE = registerBlockEntityType(BCLib.makeID(
"furnace"), BaseFurnaceBlockEntity::new);
public static <T extends BlockEntity> DynamicBlockEntityType<T> registerBlockEntityType(ResourceLocation typeId, BlockEntitySupplier<? extends T> supplier) {
return Registry.register(Registry.BLOCK_ENTITY_TYPE, typeId, new DynamicBlockEntityType<>(supplier));
@ -30,19 +36,39 @@ public class BaseBlockEntities {
public static void register() {}
public static Block[] getChests() {
return BaseRegistry.getRegisteredBlocks().values().stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock).map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
return BaseRegistry.getRegisteredBlocks()
.values()
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseChestBlock)
.map(item -> ((BlockItem) item).getBlock())
.toArray(Block[]::new);
}
public static Block[] getBarrels() {
return BaseRegistry.getRegisteredBlocks().values().stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseBarrelBlock).map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
return BaseRegistry.getRegisteredBlocks()
.values()
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseBarrelBlock)
.map(item -> ((BlockItem) item).getBlock())
.toArray(Block[]::new);
}
public static Block[] getSigns() {
return BaseRegistry.getRegisteredBlocks().values().stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock).map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
return BaseRegistry.getRegisteredBlocks()
.values()
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseSignBlock)
.map(item -> ((BlockItem) item).getBlock())
.toArray(Block[]::new);
}
public static Block[] getFurnaces() {
return BaseRegistry.getRegisteredBlocks().values().stream().filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseFurnaceBlock).map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
return BaseRegistry.getRegisteredBlocks()
.values()
.stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseFurnaceBlock)
.map(item -> ((BlockItem) item).getBlock())
.toArray(Block[]::new);
}
public static boolean registerSpecialBlock(Block block) {

View file

@ -14,11 +14,12 @@ import java.util.List;
import java.util.Map;
public abstract class BaseRegistry<T> {
private static final List<BaseRegistry<?>> REGISTRIES = Lists.newArrayList();
private static final Map<String, List<Item>> MOD_BLOCKS = Maps.newHashMap();
private static final Map<String, List<Item>> MOD_ITEMS = Maps.newHashMap();
protected final CreativeModeTab creativeTab;
public static Map<String, List<Item>> getRegisteredBlocks() {
return MOD_BLOCKS;
}
@ -49,8 +50,6 @@ public abstract class BaseRegistry<T> {
REGISTRIES.forEach(BaseRegistry::registerInternal);
}
protected final CreativeModeTab creativeTab;
protected BaseRegistry(CreativeModeTab creativeTab) {
this.creativeTab = creativeTab;
REGISTRIES.add(this);

View file

@ -6,10 +6,8 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
import net.minecraft.world.item.CreativeModeTab;
import net.minecraft.world.item.Item;
import net.minecraft.world.item.Item.Properties;
import net.minecraft.world.item.WaterLilyBlockItem;
import net.minecraft.world.level.block.Block;
import ru.bclib.interfaces.ISpetialItem;
import ru.bclib.interfaces.CustomItemGetter;
public abstract class BlocksRegistry extends BaseRegistry<Block> {
@ -19,21 +17,17 @@ public abstract class BlocksRegistry extends BaseRegistry<Block> {
@Override
public Block register(ResourceLocation id, Block block) {
int maxCount = 64;
boolean placeOnWater = false;
if (block instanceof ISpetialItem) {
ISpetialItem item = (ISpetialItem) block;
maxCount = item.getStackSize();
placeOnWater = item.canPlaceOnWater();
}
Properties item = makeItemSettings().stacksTo(maxCount);
if (placeOnWater) {
registerBlockItem(id, new WaterLilyBlockItem(block, item));
BlockItem item = null;
if (block instanceof CustomItemGetter) {
item = ((CustomItemGetter) block).getCustomItem(id, makeItemSettings());
}
else {
registerBlockItem(id, new BlockItem(block, item));
item = new BlockItem(block, makeItemSettings());
}
if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance().get(block).getBurnChance() == 0) {
registerBlockItem(id, item);
if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance()
.get(block)
.getBurnChance() == 0) {
FlammableBlockRegistry.getDefaultInstance().add(block, 5, 5);
}
return Registry.register(Registry.BLOCK, id, block);

View file

@ -78,7 +78,15 @@ public abstract class ItemsRegistry extends BaseRegistry<Item> {
public ItemStack execute(BlockSource pointer, ItemStack stack) {
Direction direction = pointer.getBlockState().getValue(DispenserBlock.FACING);
EntityType<?> entityType = ((SpawnEggItem) stack.getItem()).getType(stack.getTag());
entityType.spawn(pointer.getLevel(), stack, null, pointer.getPos().relative(direction), MobSpawnType.DISPENSER, direction != Direction.UP, false);
entityType.spawn(
pointer.getLevel(),
stack,
null,
pointer.getPos().relative(direction),
MobSpawnType.DISPENSER,
direction != Direction.UP,
false
);
stack.shrink(1);
return stack;
}