Reorganized Imports/Packages

This commit is contained in:
Frank 2022-05-18 23:56:23 +02:00
parent cb9459f176
commit 3ee10482ab
721 changed files with 34873 additions and 33558 deletions

View file

@ -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);
}
}

View file

@ -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);
}
}

View 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);
}
}

View 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);
}
}
}

View 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;
}
}