Reorganized Imports/Packages
This commit is contained in:
parent
cb9459f176
commit
3ee10482ab
721 changed files with 34873 additions and 33558 deletions
|
@ -0,0 +1,61 @@
|
|||
package org.betterx.bclib.registry;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
import net.minecraft.world.level.block.entity.BlockEntity;
|
||||
|
||||
import org.betterx.bclib.BCLib;
|
||||
import org.betterx.bclib.blockentities.*;
|
||||
import org.betterx.bclib.blockentities.DynamicBlockEntityType.BlockEntitySupplier;
|
||||
import org.betterx.bclib.blocks.BaseBarrelBlock;
|
||||
import org.betterx.bclib.blocks.BaseChestBlock;
|
||||
import org.betterx.bclib.blocks.BaseFurnaceBlock;
|
||||
import org.betterx.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 <T extends BlockEntity> DynamicBlockEntityType<T> registerBlockEntityType(ResourceLocation typeId,
|
||||
BlockEntitySupplier<? extends T> supplier) {
|
||||
return Registry.register(Registry.BLOCK_ENTITY_TYPE, typeId, new DynamicBlockEntityType<>(supplier));
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
}
|
||||
|
||||
public static Block[] getChests() {
|
||||
return Registry.BLOCK
|
||||
.stream()
|
||||
.filter(block -> block instanceof BaseChestBlock)
|
||||
.toArray(Block[]::new);
|
||||
}
|
||||
|
||||
public static Block[] getBarrels() {
|
||||
return Registry.BLOCK
|
||||
.stream()
|
||||
.filter(block -> block instanceof BaseBarrelBlock)
|
||||
.toArray(Block[]::new);
|
||||
}
|
||||
|
||||
public static Block[] getSigns() {
|
||||
return Registry.BLOCK
|
||||
.stream()
|
||||
.filter(block -> block instanceof BaseSignBlock)
|
||||
.toArray(Block[]::new);
|
||||
}
|
||||
|
||||
public static Block[] getFurnaces() {
|
||||
return Registry.BLOCK
|
||||
.stream()
|
||||
.filter(block -> block instanceof BaseFurnaceBlock)
|
||||
.toArray(Block[]::new);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
package org.betterx.bclib.registry;
|
||||
|
||||
import net.fabricmc.api.EnvType;
|
||||
import net.fabricmc.api.Environment;
|
||||
import net.fabricmc.fabric.api.client.rendering.v1.BlockEntityRendererRegistry;
|
||||
|
||||
import org.betterx.bclib.client.render.BaseChestBlockEntityRenderer;
|
||||
import org.betterx.bclib.client.render.BaseSignBlockEntityRenderer;
|
||||
|
||||
@Environment(EnvType.CLIENT)
|
||||
public class BaseBlockEntityRenders {
|
||||
public static void register() {
|
||||
BlockEntityRendererRegistry.register(BaseBlockEntities.CHEST, BaseChestBlockEntityRenderer::new);
|
||||
BlockEntityRendererRegistry.register(BaseBlockEntities.SIGN, BaseSignBlockEntityRenderer::new);
|
||||
}
|
||||
}
|
82
src/main/java/org/betterx/bclib/registry/BaseRegistry.java
Normal file
82
src/main/java/org/betterx/bclib/registry/BaseRegistry.java
Normal file
|
@ -0,0 +1,82 @@
|
|||
package org.betterx.bclib.registry;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
import net.fabricmc.fabric.api.item.v1.FabricItemSettings;
|
||||
|
||||
import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Maps;
|
||||
import org.betterx.bclib.config.PathConfig;
|
||||
|
||||
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_BLOCK_ITEMS = Maps.newHashMap();
|
||||
private static final Map<String, List<Block>> MOD_BLOCKS = Maps.newHashMap();
|
||||
private static final Map<String, List<Item>> MOD_ITEMS = Maps.newHashMap();
|
||||
|
||||
protected final CreativeModeTab creativeTab;
|
||||
protected final PathConfig config;
|
||||
|
||||
protected BaseRegistry(CreativeModeTab creativeTab, PathConfig config) {
|
||||
this.creativeTab = creativeTab;
|
||||
this.config = config;
|
||||
REGISTRIES.add(this);
|
||||
}
|
||||
|
||||
public abstract T register(ResourceLocation objId, T obj);
|
||||
|
||||
public abstract void registerItem(ResourceLocation id, Item item);
|
||||
|
||||
public FabricItemSettings makeItemSettings() {
|
||||
FabricItemSettings properties = new FabricItemSettings();
|
||||
return (FabricItemSettings) properties.tab(creativeTab);
|
||||
}
|
||||
|
||||
private void registerInternal() {
|
||||
}
|
||||
|
||||
public static Map<String, List<Item>> getRegisteredBlocks() {
|
||||
return MOD_BLOCK_ITEMS;
|
||||
}
|
||||
|
||||
public static Map<String, List<Item>> getRegisteredItems() {
|
||||
return MOD_ITEMS;
|
||||
}
|
||||
|
||||
public static List<Item> getModBlockItems(String modId) {
|
||||
if (MOD_BLOCK_ITEMS.containsKey(modId)) {
|
||||
return MOD_BLOCK_ITEMS.get(modId);
|
||||
}
|
||||
List<Item> modBlocks = Lists.newArrayList();
|
||||
MOD_BLOCK_ITEMS.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 List<Block> getModBlocks(String modId) {
|
||||
if (MOD_BLOCKS.containsKey(modId)) {
|
||||
return MOD_BLOCKS.get(modId);
|
||||
}
|
||||
List<Block> modBlocks = Lists.newArrayList();
|
||||
MOD_BLOCKS.put(modId, modBlocks);
|
||||
return modBlocks;
|
||||
}
|
||||
|
||||
public static void register() {
|
||||
REGISTRIES.forEach(BaseRegistry::registerInternal);
|
||||
}
|
||||
}
|
90
src/main/java/org/betterx/bclib/registry/BlockRegistry.java
Normal file
90
src/main/java/org/betterx/bclib/registry/BlockRegistry.java
Normal file
|
@ -0,0 +1,90 @@
|
|||
package org.betterx.bclib.registry;
|
||||
|
||||
import net.minecraft.core.Registry;
|
||||
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.Items;
|
||||
import net.minecraft.world.level.block.Block;
|
||||
|
||||
import net.fabricmc.fabric.api.registry.FlammableBlockRegistry;
|
||||
|
||||
import org.betterx.bclib.api.tag.*;
|
||||
import org.betterx.bclib.blocks.BaseLeavesBlock;
|
||||
import org.betterx.bclib.blocks.BaseOreBlock;
|
||||
import org.betterx.bclib.blocks.FeatureSaplingBlock;
|
||||
import org.betterx.bclib.config.PathConfig;
|
||||
import org.betterx.bclib.interfaces.CustomItemProvider;
|
||||
|
||||
public class BlockRegistry extends BaseRegistry<Block> {
|
||||
public BlockRegistry(CreativeModeTab creativeTab, PathConfig config) {
|
||||
super(creativeTab, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Block register(ResourceLocation id, Block block) {
|
||||
if (!config.getBooleanRoot(id.getNamespace(), true)) {
|
||||
return block;
|
||||
}
|
||||
|
||||
BlockItem item = null;
|
||||
if (block instanceof CustomItemProvider) {
|
||||
item = ((CustomItemProvider) block).getCustomItem(id, makeItemSettings());
|
||||
} else {
|
||||
item = new BlockItem(block, makeItemSettings());
|
||||
}
|
||||
registerBlockItem(id, item);
|
||||
if (block.defaultBlockState().getMaterial().isFlammable() && FlammableBlockRegistry.getDefaultInstance()
|
||||
.get(block)
|
||||
.getBurnChance() == 0) {
|
||||
FlammableBlockRegistry.getDefaultInstance().add(block, 5, 5);
|
||||
}
|
||||
|
||||
block = Registry.register(Registry.BLOCK, id, block);
|
||||
getModBlocks(id.getNamespace()).add(block);
|
||||
|
||||
if (block instanceof BaseLeavesBlock) {
|
||||
TagAPI.addBlockTags(
|
||||
block,
|
||||
NamedBlockTags.LEAVES,
|
||||
CommonBlockTags.LEAVES,
|
||||
NamedMineableTags.HOE,
|
||||
NamedMineableTags.SHEARS
|
||||
);
|
||||
if (item != null) {
|
||||
TagAPI.addItemTags(item, CommonItemTags.LEAVES, NamedItemTags.LEAVES);
|
||||
}
|
||||
} else if (block instanceof BaseOreBlock) {
|
||||
TagAPI.addBlockTags(block, NamedMineableTags.PICKAXE);
|
||||
} else if (block instanceof FeatureSaplingBlock) {
|
||||
TagAPI.addBlockTags(block, CommonBlockTags.SAPLINGS, NamedBlockTags.SAPLINGS);
|
||||
if (item != null) {
|
||||
TagAPI.addItemTags(item, CommonItemTags.SAPLINGS, NamedItemTags.SAPLINGS);
|
||||
}
|
||||
}
|
||||
|
||||
return block;
|
||||
}
|
||||
|
||||
public Block registerBlockOnly(ResourceLocation id, Block block) {
|
||||
if (!config.getBooleanRoot(id.getNamespace(), true)) {
|
||||
return block;
|
||||
}
|
||||
getModBlocks(id.getNamespace()).add(block);
|
||||
return Registry.register(Registry.BLOCK, id, block);
|
||||
}
|
||||
|
||||
private Item registerBlockItem(ResourceLocation id, Item item) {
|
||||
registerItem(id, item);
|
||||
return item;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerItem(ResourceLocation id, Item item) {
|
||||
if (item != null && item != Items.AIR) {
|
||||
Registry.register(Registry.ITEM, id, item);
|
||||
getModBlockItems(id.getNamespace()).add(item);
|
||||
}
|
||||
}
|
||||
}
|
149
src/main/java/org/betterx/bclib/registry/ItemRegistry.java
Normal file
149
src/main/java/org/betterx/bclib/registry/ItemRegistry.java
Normal file
|
@ -0,0 +1,149 @@
|
|||
package org.betterx.bclib.registry;
|
||||
|
||||
import net.minecraft.core.BlockSource;
|
||||
import net.minecraft.core.Direction;
|
||||
import net.minecraft.core.Registry;
|
||||
import net.minecraft.core.dispenser.DefaultDispenseItemBehavior;
|
||||
import net.minecraft.core.dispenser.ShearsDispenseItemBehavior;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.effect.MobEffectInstance;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
import net.minecraft.world.entity.Mob;
|
||||
import net.minecraft.world.entity.MobSpawnType;
|
||||
import net.minecraft.world.food.FoodProperties;
|
||||
import net.minecraft.world.item.*;
|
||||
import net.minecraft.world.level.block.DispenserBlock;
|
||||
|
||||
import org.betterx.bclib.api.tag.CommonItemTags;
|
||||
import org.betterx.bclib.api.tag.NamedToolTags;
|
||||
import org.betterx.bclib.api.tag.TagAPI;
|
||||
import org.betterx.bclib.config.PathConfig;
|
||||
import org.betterx.bclib.items.BaseDiscItem;
|
||||
import org.betterx.bclib.items.BaseDrinkItem;
|
||||
import org.betterx.bclib.items.BaseSpawnEggItem;
|
||||
import org.betterx.bclib.items.ModelProviderItem;
|
||||
import org.betterx.bclib.items.tool.BaseAxeItem;
|
||||
import org.betterx.bclib.items.tool.BaseHoeItem;
|
||||
import org.betterx.bclib.items.tool.BasePickaxeItem;
|
||||
import org.betterx.bclib.items.tool.BaseShearsItem;
|
||||
|
||||
public class ItemRegistry extends BaseRegistry<Item> {
|
||||
public ItemRegistry(CreativeModeTab creativeTab, PathConfig config) {
|
||||
super(creativeTab, config);
|
||||
}
|
||||
|
||||
public Item registerDisc(ResourceLocation itemId, int power, SoundEvent sound) {
|
||||
BaseDiscItem item = new BaseDiscItem(power, sound, makeItemSettings().stacksTo(1));
|
||||
|
||||
if (!config.getBoolean("musicDiscs", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
register(itemId, item);
|
||||
return item;
|
||||
}
|
||||
|
||||
public Item register(ResourceLocation itemId) {
|
||||
return register(itemId, new ModelProviderItem(makeItemSettings()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item register(ResourceLocation itemId, Item item) {
|
||||
if (!config.getBoolean("items", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
|
||||
registerItem(itemId, item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public Item registerTool(ResourceLocation itemId, Item item) {
|
||||
if (!config.getBoolean("tools", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
|
||||
registerItem(itemId, item);
|
||||
|
||||
if (item instanceof ShovelItem) {
|
||||
TagAPI.addItemTag(NamedToolTags.FABRIC_SHOVELS, item);
|
||||
} else if (item instanceof SwordItem) {
|
||||
TagAPI.addItemTag(NamedToolTags.FABRIC_SWORDS, item);
|
||||
} else if (item instanceof BasePickaxeItem) {
|
||||
TagAPI.addItemTag(NamedToolTags.FABRIC_PICKAXES, item);
|
||||
} else if (item instanceof BaseAxeItem) {
|
||||
TagAPI.addItemTag(NamedToolTags.FABRIC_AXES, item);
|
||||
} else if (item instanceof BaseHoeItem) {
|
||||
TagAPI.addItemTag(NamedToolTags.FABRIC_HOES, item);
|
||||
} else if (item instanceof BaseShearsItem) {
|
||||
TagAPI.addItemTags(item, NamedToolTags.FABRIC_SHEARS, CommonItemTags.SHEARS);
|
||||
DispenserBlock.registerBehavior(item.asItem(), new ShearsDispenseItemBehavior());
|
||||
}
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public Item registerEgg(ResourceLocation itemId, EntityType<? extends Mob> type, int background, int dots) {
|
||||
SpawnEggItem item = new BaseSpawnEggItem(type, background, dots, makeItemSettings());
|
||||
|
||||
if (!config.getBoolean("spawnEggs", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
|
||||
DefaultDispenseItemBehavior behavior = new DefaultDispenseItemBehavior() {
|
||||
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
|
||||
);
|
||||
stack.shrink(1);
|
||||
return stack;
|
||||
}
|
||||
};
|
||||
DispenserBlock.registerBehavior(item, behavior);
|
||||
return register(itemId, item);
|
||||
}
|
||||
|
||||
public Item registerFood(ResourceLocation itemId, int hunger, float saturation, MobEffectInstance... effects) {
|
||||
FoodProperties.Builder builder = new FoodProperties.Builder().nutrition(hunger).saturationMod(saturation);
|
||||
for (MobEffectInstance effect : effects) {
|
||||
builder.effect(effect, 1F);
|
||||
}
|
||||
return registerFood(itemId, builder.build());
|
||||
}
|
||||
|
||||
public Item registerFood(ResourceLocation itemId, FoodProperties foodComponent) {
|
||||
return register(itemId, new ModelProviderItem(makeItemSettings().food(foodComponent)));
|
||||
}
|
||||
|
||||
public Item registerDrink(ResourceLocation itemId, FoodProperties foodComponent) {
|
||||
return register(itemId, new BaseDrinkItem(makeItemSettings().stacksTo(1).food(foodComponent)));
|
||||
}
|
||||
|
||||
public Item registerDrink(ResourceLocation itemId, int hunger, float saturation) {
|
||||
FoodProperties.Builder builder = new FoodProperties.Builder().nutrition(hunger).saturationMod(saturation);
|
||||
return registerDrink(itemId, builder.build());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerItem(ResourceLocation id, Item item) {
|
||||
if (item != null && item != Items.AIR) {
|
||||
Registry.register(Registry.ITEM, id, item);
|
||||
getModItems(id.getNamespace()).add(item);
|
||||
}
|
||||
}
|
||||
|
||||
public Item register(ResourceLocation itemId, Item item, String category) {
|
||||
if (config.getBoolean(category, itemId.getPath(), true)) {
|
||||
registerItem(itemId, item);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue