Update Base Registry, Chests and Signs render fix

This commit is contained in:
Aleksey 2021-05-28 15:20:03 +03:00
parent d2d9c8d2eb
commit b7eab022fb
6 changed files with 57 additions and 57 deletions

View file

@ -8,7 +8,7 @@ yarn_mappings=6
loader_version=0.11.3
# Mod Properties
mod_version = 0.1.11
mod_version = 0.1.12
maven_group = ru.bclib
archives_base_name = bclib

View file

@ -1,11 +1,24 @@
package ru.bclib.client;
import net.fabricmc.api.ClientModInitializer;
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.BaseBlockEntities;
import ru.bclib.registry.BaseBlockEntityRenders;
import java.util.Arrays;
public class BCLibClient implements ClientModInitializer {
@Override
public void onInitializeClient() {
BaseBlockEntityRenders.register();
Arrays.stream(BaseBlockEntities.getChests()).forEach(chest -> {
BaseChestBlockEntityRenderer.registerRenderLayer((BaseChestBlock) chest);
});
Arrays.stream(BaseBlockEntities.getSigns()).forEach(sign -> {
BaseSignBlockEntityRenderer.registerRenderLayer((BaseSignBlock) sign);
});
}
}

View file

@ -1,9 +1,5 @@
package ru.bclib.registry;
import java.util.List;
import com.google.common.collect.Lists;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.world.item.BlockItem;
@ -36,55 +32,27 @@ public class BaseBlockEntities {
public static void register() {}
private static Block[] getChests() {
List<Block> result = Lists.newArrayList();
BaseRegistry.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
if (block instanceof BaseChestBlock) {
result.add(block);
}
}
});
return result.toArray(new Block[] {});
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);
}
private static Block[] getBarrels() {
List<Block> result = Lists.newArrayList();
BaseRegistry.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
if (block instanceof BaseBarrelBlock) {
result.add(block);
}
}
});
return result.toArray(new Block[] {});
return BaseRegistry.getRegisteredBlocks().values().stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseBarrelBlock)
.map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
}
private static Block[] getSigns() {
List<Block> result = Lists.newArrayList();
BaseRegistry.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
if (block instanceof BaseSignBlock) {
result.add(block);
}
}
});
return result.toArray(new Block[] {});
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);
}
private static Block[] getFurnaces() {
List<Block> result = Lists.newArrayList();
BaseRegistry.getModBlocks().forEach((item) -> {
if (item instanceof BlockItem) {
Block block = ((BlockItem) item).getBlock();
if (block instanceof BaseFurnaceBlock) {
result.add(block);
}
}
});
return result.toArray(new Block[] {});
return BaseRegistry.getRegisteredBlocks().values().stream()
.filter(item -> item instanceof BlockItem && ((BlockItem) item).getBlock() instanceof BaseFurnaceBlock)
.map(item -> ((BlockItem) item).getBlock()).toArray(Block[]::new);
}
}

View file

@ -1,6 +1,7 @@
package ru.bclib.registry;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
import net.minecraft.core.Registry;
import net.minecraft.resources.ResourceLocation;
@ -8,24 +9,42 @@ import net.minecraft.world.item.*;
import ru.bclib.BCLib;
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 static final List<Item> MOD_BLOCKS = Lists.newArrayList();
protected static final List<Item> MOD_ITEMS = Lists.newArrayList();
public static List<Item> getModBlocks() {
public static Map<String, List<Item>> getRegisteredBlocks() {
return MOD_BLOCKS;
}
public static List<Item> getModItems() {
public static Map<String, List<Item>> getRegisteredItems() {
return MOD_ITEMS;
}
public static List<Item> getModBlocks(String modId) {
if (MOD_BLOCKS.containsKey(modId)) {
return MOD_BLOCKS.get(modId);
}
List<Item> modBlocks = Lists.newArrayList();
MOD_BLOCKS.put(modId, modBlocks);
return modBlocks;
}
public static List<Item> getModItems(String modId) {
if (MOD_ITEMS.containsKey(modId)) {
return MOD_ITEMS.get(modId);
}
List<Item> modBlocks = Lists.newArrayList();
MOD_ITEMS.put(modId, modBlocks);
return modBlocks;
}
public static void register() {
REGISTRIES.forEach(BaseRegistry::registerDependency);
REGISTRIES.forEach(BaseRegistry::registerInternal);
}
protected final CreativeModeTab creativeTab;
@ -57,5 +76,5 @@ public abstract class BaseRegistry<T> {
return (FabricItemSettings) properties.tab(creativeTab);
}
private void registerDependency() {}
private void registerInternal() {}
}

View file

@ -43,7 +43,7 @@ public abstract class BlocksRegistry extends BaseRegistry<Block> {
}
public Item registerBlockItem(ResourceLocation id, Item item) {
registerItem(id, item, BaseRegistry.MOD_BLOCKS);
registerItem(id, item, BaseRegistry.getModBlocks(id.getNamespace()));
return item;
}
}

View file

@ -38,13 +38,13 @@ public abstract class ItemsRegistry extends BaseRegistry<Item> {
@Override
public Item register(ResourceLocation itemId, Item item) {
registerItem(itemId, item, BaseRegistry.MOD_ITEMS);
registerItem(itemId, item, BaseRegistry.getModItems(itemId.getNamespace()));
return item;
}
public TieredItem registerTool(String name, TieredItem item) {
ResourceLocation id = createModId(name);
registerItem(id, item, BaseRegistry.MOD_ITEMS);
registerItem(id, item, BaseRegistry.getModItems(id.getNamespace()));
if (item instanceof ShovelItem) {
TagHelper.addTag((Tag.Named<Item>) FabricToolTags.SHOVELS, item);