Registry changes (WIP)
This commit is contained in:
parent
449d7cc0d0
commit
b66c8cd5a6
3 changed files with 98 additions and 64 deletions
|
@ -3,6 +3,7 @@ package ru.bclib.registry;
|
|||
import net.fabricmc.fabric.api.tool.attribute.v1.FabricToolTags;
|
||||
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;
|
||||
|
@ -16,43 +17,58 @@ import net.minecraft.world.food.FoodProperties;
|
|||
import net.minecraft.world.item.CreativeModeTab;
|
||||
import net.minecraft.world.item.Item;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import net.minecraft.world.item.Items;
|
||||
import net.minecraft.world.item.ShovelItem;
|
||||
import net.minecraft.world.item.SpawnEggItem;
|
||||
import net.minecraft.world.item.SwordItem;
|
||||
import net.minecraft.world.level.block.DispenserBlock;
|
||||
import ru.bclib.api.TagAPI;
|
||||
import ru.bclib.config.PathConfig;
|
||||
import ru.bclib.items.BaseDiscItem;
|
||||
import ru.bclib.items.BaseDrinkItem;
|
||||
import ru.bclib.items.tool.BaseShearsItem;
|
||||
import ru.bclib.items.BaseSpawnEggItem;
|
||||
import ru.bclib.items.ModelProviderItem;
|
||||
import ru.bclib.items.tool.BaseAxeItem;
|
||||
import ru.bclib.items.tool.BaseHoeItem;
|
||||
import ru.bclib.items.tool.BasePickaxeItem;
|
||||
import ru.bclib.items.tool.BaseShearsItem;
|
||||
|
||||
public class ItemRegistry extends BaseRegistry<Item> {
|
||||
|
||||
protected ItemRegistry(CreativeModeTab creativeTab) {
|
||||
super(creativeTab);
|
||||
public ItemRegistry(CreativeModeTab creativeTab, PathConfig config) {
|
||||
super(creativeTab, config);
|
||||
}
|
||||
|
||||
public Item registerDisc(String name, int power, SoundEvent sound) {
|
||||
return register(name, new BaseDiscItem(power, sound, makeItemSettings().stacksTo(1)));
|
||||
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;
|
||||
}
|
||||
|
||||
return register(itemId, new BaseDiscItem(power, sound, makeItemSettings().stacksTo(1)));
|
||||
}
|
||||
|
||||
public Item registerItem(String name) {
|
||||
return register(name, new ModelProviderItem(makeItemSettings()));
|
||||
public Item register(ResourceLocation itemId) {
|
||||
return register(itemId, new ModelProviderItem(makeItemSettings()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Item register(ResourceLocation itemId, Item item) {
|
||||
registerItem(itemId, item, BaseRegistry.getModItems(itemId.getNamespace()));
|
||||
if (!config.getBoolean("items", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
|
||||
registerItem(itemId, item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
public Item registerTool(String name, Item item) {
|
||||
ResourceLocation id = createModId(name);
|
||||
registerItem(id, item, BaseRegistry.getModItems(id.getNamespace()));
|
||||
public Item registerTool(ResourceLocation itemId, Item item) {
|
||||
if (!config.getBoolean("tools", itemId.getPath(), true)) {
|
||||
return item;
|
||||
}
|
||||
|
||||
registerItem(itemId, item);
|
||||
|
||||
if (item instanceof ShovelItem) {
|
||||
TagAPI.addTag((Tag.Named<Item>) FabricToolTags.SHOVELS, item);
|
||||
|
@ -77,8 +93,13 @@ public class ItemRegistry extends BaseRegistry<Item> {
|
|||
return item;
|
||||
}
|
||||
|
||||
public Item registerEgg(String name, EntityType<? extends Mob> type, int background, int dots) {
|
||||
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);
|
||||
|
@ -97,31 +118,42 @@ public class ItemRegistry extends BaseRegistry<Item> {
|
|||
}
|
||||
};
|
||||
DispenserBlock.registerBehavior(item, behavior);
|
||||
return register(name, item);
|
||||
return register(itemId, item);
|
||||
}
|
||||
|
||||
public Item registerFood(String name, int hunger, float saturation, MobEffectInstance... effects) {
|
||||
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(name, builder.build());
|
||||
return registerFood(itemId, builder.build());
|
||||
}
|
||||
|
||||
public Item registerFood(String name, FoodProperties foodComponent) {
|
||||
return register(name, new ModelProviderItem(makeItemSettings().food(foodComponent)));
|
||||
public Item registerFood(ResourceLocation itemId, FoodProperties foodComponent) {
|
||||
return register(itemId, new ModelProviderItem(makeItemSettings().food(foodComponent)));
|
||||
}
|
||||
|
||||
public Item registerDrink(String name) {
|
||||
return register(name, new BaseDrinkItem(makeItemSettings().stacksTo(1)));
|
||||
public Item registerDrink(ResourceLocation itemId, FoodProperties foodComponent) {
|
||||
return register(itemId, new BaseDrinkItem(makeItemSettings().stacksTo(1).food(foodComponent)));
|
||||
}
|
||||
|
||||
public Item registerDrink(String name, FoodProperties foodComponent) {
|
||||
return register(name, new BaseDrinkItem(makeItemSettings().stacksTo(1).food(foodComponent)));
|
||||
}
|
||||
|
||||
public Item registerDrink(String name, int hunger, float saturation) {
|
||||
public Item registerDrink(ResourceLocation itemId, int hunger, float saturation) {
|
||||
FoodProperties.Builder builder = new FoodProperties.Builder().nutrition(hunger).saturationMod(saturation);
|
||||
return registerDrink(name, builder.build());
|
||||
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