EndTags refactor
This commit is contained in:
parent
50d42c1218
commit
2b19382e88
1 changed files with 32 additions and 35 deletions
|
@ -1,7 +1,10 @@
|
||||||
package ru.betterend.registry;
|
package ru.betterend.registry;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import net.fabricmc.fabric.api.tag.TagRegistry;
|
import net.fabricmc.fabric.api.tag.TagRegistry;
|
||||||
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
|
import net.fabricmc.fabric.impl.tool.attribute.ToolManagerImpl;
|
||||||
import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler;
|
import net.fabricmc.fabric.impl.tool.attribute.handlers.ModdedToolsVanillaBlocksToolHandler;
|
||||||
|
@ -11,6 +14,7 @@ import net.minecraft.tags.BlockTags;
|
||||||
import net.minecraft.tags.ItemTags;
|
import net.minecraft.tags.ItemTags;
|
||||||
import net.minecraft.tags.Tag;
|
import net.minecraft.tags.Tag;
|
||||||
import net.minecraft.tags.Tag.Named;
|
import net.minecraft.tags.Tag.Named;
|
||||||
|
import net.minecraft.tags.TagCollection;
|
||||||
import net.minecraft.world.food.FoodProperties;
|
import net.minecraft.world.food.FoodProperties;
|
||||||
import net.minecraft.world.item.BlockItem;
|
import net.minecraft.world.item.BlockItem;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
|
@ -26,6 +30,7 @@ import ru.betterend.blocks.EndTerrainBlock;
|
||||||
import ru.betterend.blocks.basis.PedestalBlock;
|
import ru.betterend.blocks.basis.PedestalBlock;
|
||||||
import ru.betterend.blocks.basis.SimpleLeavesBlock;
|
import ru.betterend.blocks.basis.SimpleLeavesBlock;
|
||||||
import ru.betterend.blocks.basis.VineBlock;
|
import ru.betterend.blocks.basis.VineBlock;
|
||||||
|
import ru.betterend.item.tool.EndHammerItem;
|
||||||
import ru.betterend.mixin.common.ComposterBlockAccessor;
|
import ru.betterend.mixin.common.ComposterBlockAccessor;
|
||||||
import ru.betterend.util.TagHelper;
|
import ru.betterend.util.TagHelper;
|
||||||
|
|
||||||
|
@ -46,30 +51,31 @@ public class EndTags {
|
||||||
public static final Tag.Named<Item> ITEM_CHEST = makeCommonItemTag("chest");
|
public static final Tag.Named<Item> ITEM_CHEST = makeCommonItemTag("chest");
|
||||||
public static final Tag.Named<Item> IRON_INGOTS = makeCommonItemTag("iron_ingots");
|
public static final Tag.Named<Item> IRON_INGOTS = makeCommonItemTag("iron_ingots");
|
||||||
public static final Tag.Named<Item> FURNACES = makeCommonItemTag("furnaces");
|
public static final Tag.Named<Item> FURNACES = makeCommonItemTag("furnaces");
|
||||||
public final static Tag<Item> HAMMERS = registerFabricItemTag("hammers");
|
public final static Tag.Named<Item> HAMMERS = makeFabricItemTag("hammers");
|
||||||
|
|
||||||
|
public static <T> Tag.Named<T> makeTag(Supplier<TagCollection<T>> containerSupplier, ResourceLocation id) {
|
||||||
|
Tag<T> tag = containerSupplier.get().getTag(id);
|
||||||
|
return tag == null ? TagRegistry.create(id, containerSupplier) : (Named<T>) tag;
|
||||||
|
}
|
||||||
|
|
||||||
public static Tag.Named<Block> makeBlockTag(String name) {
|
public static Tag.Named<Block> makeBlockTag(String name) {
|
||||||
ResourceLocation id = BetterEnd.makeID(name);
|
return makeTag(BlockTags::getAllTags, BetterEnd.makeID(name));
|
||||||
Tag<Block> tag = BlockTags.getAllTags().getTag(id);
|
|
||||||
return tag == null ? (Named<Block>) TagRegistry.block(id) : (Named<Block>) tag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tag.Named<Item> makeItemTag(String name) {
|
public static Tag.Named<Item> makeItemTag(String name) {
|
||||||
ResourceLocation id = BetterEnd.makeID(name);
|
return makeTag(ItemTags::getAllTags, BetterEnd.makeID(name));
|
||||||
Tag<Item> tag = ItemTags.getAllTags().getTag(id);
|
|
||||||
return tag == null ? (Named<Item>) TagRegistry.item(id) : (Named<Item>) tag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tag.Named<Block> makeCommonBlockTag(String name) {
|
public static Tag.Named<Block> makeCommonBlockTag(String name) {
|
||||||
ResourceLocation id = new ResourceLocation("c", name);
|
return makeTag(BlockTags::getAllTags, new ResourceLocation("c", name));
|
||||||
Tag<Block> tag = BlockTags.getAllTags().getTag(id);
|
|
||||||
return tag == null ? (Named<Block>) TagRegistry.block(id) : (Named<Block>) tag;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tag.Named<Item> makeCommonItemTag(String name) {
|
public static Tag.Named<Item> makeCommonItemTag(String name) {
|
||||||
ResourceLocation id = new ResourceLocation("c", name);
|
return makeTag(ItemTags::getAllTags, new ResourceLocation("c", name));
|
||||||
Tag<Item> tag = ItemTags.getAllTags().getTag(id);
|
}
|
||||||
return tag == null ? (Named<Item>) TagRegistry.item(id) : (Named<Item>) tag;
|
|
||||||
|
public static Tag.Named<Item> makeFabricItemTag(String name) {
|
||||||
|
return makeTag(ItemTags::getAllTags, new ResourceLocation("fabric", name));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tag.Named<Block> getMCBlockTag(String name) {
|
public static Tag.Named<Block> getMCBlockTag(String name) {
|
||||||
|
@ -84,8 +90,8 @@ public class EndTags {
|
||||||
addSurfaceBlock(EndBlocks.ENDSTONE_DUST);
|
addSurfaceBlock(EndBlocks.ENDSTONE_DUST);
|
||||||
addSurfaceBlock(EndBlocks.AMBER_ORE);
|
addSurfaceBlock(EndBlocks.AMBER_ORE);
|
||||||
|
|
||||||
EndItems.getModBlocks().forEach((item) -> {
|
EndItems.getModBlocks().forEach(blockItem -> {
|
||||||
Block block = ((BlockItem) item).getBlock();
|
Block block = ((BlockItem) blockItem).getBlock();
|
||||||
if (block instanceof EndTerrainBlock) {
|
if (block instanceof EndTerrainBlock) {
|
||||||
addSurfaceBlock(block);
|
addSurfaceBlock(block);
|
||||||
TagHelper.addTag(BlockTags.NYLIUM, block);
|
TagHelper.addTag(BlockTags.NYLIUM, block);
|
||||||
|
@ -107,28 +113,23 @@ public class EndTags {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
EndItems.getModItems().forEach((item) -> {
|
List<Item> hammers = Lists.newArrayList();
|
||||||
|
EndItems.getModItems().forEach(item -> {
|
||||||
if (item.isEdible()) {
|
if (item.isEdible()) {
|
||||||
FoodProperties food = item.getFoodProperties();
|
FoodProperties food = item.getFoodProperties();
|
||||||
float compost = food.getNutrition() * food.getSaturationModifier() * 0.18F;
|
if (food != null) {
|
||||||
ComposterBlockAccessor.callAdd(compost, item);
|
float compost = food.getNutrition() * food.getSaturationModifier() * 0.18F;
|
||||||
|
ComposterBlockAccessor.callAdd(compost, item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (item instanceof EndHammerItem) {
|
||||||
|
hammers.add(item);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
ToolManagerImpl.tag(HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(hammers));
|
||||||
|
|
||||||
TagHelper.addTag(GEN_TERRAIN, EndBlocks.ENDER_ORE, EndBlocks.FLAVOLITE.stone, EndBlocks.VIOLECITE.stone, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
|
TagHelper.addTag(GEN_TERRAIN, EndBlocks.ENDER_ORE, EndBlocks.FLAVOLITE.stone, EndBlocks.VIOLECITE.stone, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
|
||||||
TagHelper.addTag(END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
|
TagHelper.addTag(END_GROUND, EndBlocks.SULPHURIC_ROCK.stone, EndBlocks.BRIMSTONE);
|
||||||
|
|
||||||
ToolManagerImpl.tag(HAMMERS).register(new ModdedToolsVanillaBlocksToolHandler(
|
|
||||||
Arrays.asList(
|
|
||||||
EndItems.IRON_HAMMER,
|
|
||||||
EndItems.GOLDEN_HAMMER,
|
|
||||||
EndItems.DIAMOND_HAMMER,
|
|
||||||
EndItems.NETHERITE_HAMMER,
|
|
||||||
EndItems.AETERNIUM_HAMMER,
|
|
||||||
EndBlocks.THALLASIUM.hammer,
|
|
||||||
EndBlocks.TERMINITE.hammer
|
|
||||||
)
|
|
||||||
));
|
|
||||||
|
|
||||||
TagHelper.addTag(FURNACES, Blocks.FURNACE);
|
TagHelper.addTag(FURNACES, Blocks.FURNACE);
|
||||||
TagHelper.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
|
TagHelper.addTag(BlockTags.ANVIL, EndBlocks.AETERNIUM_ANVIL);
|
||||||
|
@ -156,8 +157,4 @@ public class EndTags {
|
||||||
});
|
});
|
||||||
END_STONES.getValues().forEach(EndTags::addSurfaceBlock);
|
END_STONES.getValues().forEach(EndTags::addSurfaceBlock);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Tag<Item> registerFabricItemTag(String name) {
|
|
||||||
return TagRegistry.item(new ResourceLocation("fabric", name));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue