diff --git a/src/main/java/ru/bclib/complexmaterials/ComplexMaterial.java b/src/main/java/ru/bclib/complexmaterials/ComplexMaterial.java index c533a27b..f67ef314 100644 --- a/src/main/java/ru/bclib/complexmaterials/ComplexMaterial.java +++ b/src/main/java/ru/bclib/complexmaterials/ComplexMaterial.java @@ -4,6 +4,7 @@ import com.google.common.collect.Lists; import com.google.common.collect.Maps; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.Tag; import net.minecraft.world.item.Item; import net.minecraft.world.level.block.Block; @@ -19,8 +20,8 @@ import java.util.List; import java.util.Map; public abstract class ComplexMaterial { - private static final Map, List> BLOCK_ENTRIES = Maps.newHashMap(); - private static final Map, List> ITEM_ENTRIES = Maps.newHashMap(); + private static final Map> BLOCK_ENTRIES = Maps.newHashMap(); + private static final Map> ITEM_ENTRIES = Maps.newHashMap(); private static final List MATERIALS = Lists.newArrayList(); private final List defaultBlockEntries = Lists.newArrayList(); @@ -105,7 +106,7 @@ public abstract class ComplexMaterial { private Collection getBlockEntries() { List result = Lists.newArrayList(defaultBlockEntries); - List entries = BLOCK_ENTRIES.get(this.getClass()); + List entries = BLOCK_ENTRIES.get(this.getMaterialID()); if (entries != null) { result.addAll(entries); } @@ -114,7 +115,7 @@ public abstract class ComplexMaterial { private Collection getItemEntries() { List result = Lists.newArrayList(defaultItemEntries); - List entries = ITEM_ENTRIES.get(this.getClass()); + List entries = ITEM_ENTRIES.get(this.getMaterialID()); if (entries != null) { result.addAll(entries); } @@ -129,6 +130,8 @@ public abstract class ComplexMaterial { return modID; } + public abstract ResourceLocation getMaterialID(); + protected void addBlockEntry(BlockEntry entry) { defaultBlockEntries.add(entry); } @@ -137,20 +140,20 @@ public abstract class ComplexMaterial { defaultItemEntries.add(entry); } - public static void addBlockEntry(Class key, BlockEntry entry) { - List entries = BLOCK_ENTRIES.get(key); + public static void addBlockEntry(ResourceLocation materialName, BlockEntry entry) { + List entries = BLOCK_ENTRIES.get(materialName); if (entries == null) { entries = Lists.newArrayList(); - BLOCK_ENTRIES.put(key, entries); + BLOCK_ENTRIES.put(materialName, entries); } entries.add(entry); } - public static void addItemEntry(Class key, ItemEntry entry) { - List entries = ITEM_ENTRIES.get(key); + public static void addItemEntry(ResourceLocation materialName, ItemEntry entry) { + List entries = ITEM_ENTRIES.get(materialName); if (entries == null) { entries = Lists.newArrayList(); - ITEM_ENTRIES.put(key, entries); + ITEM_ENTRIES.put(materialName, entries); } entries.add(entry); } diff --git a/src/main/java/ru/bclib/complexmaterials/WoodenMaterial.java b/src/main/java/ru/bclib/complexmaterials/WoodenMaterial.java index 049879b2..3c6c8070 100644 --- a/src/main/java/ru/bclib/complexmaterials/WoodenMaterial.java +++ b/src/main/java/ru/bclib/complexmaterials/WoodenMaterial.java @@ -1,8 +1,10 @@ package ru.bclib.complexmaterials; +import com.google.common.collect.Lists; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; import net.fabricmc.fabric.api.object.builder.v1.block.FabricBlockSettings; import net.fabricmc.fabric.api.registry.FlammableBlockRegistry; +import net.minecraft.resources.ResourceLocation; import net.minecraft.tags.BlockTags; import net.minecraft.tags.ItemTags; import net.minecraft.tags.Tag; @@ -11,6 +13,7 @@ import net.minecraft.world.item.Items; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; import net.minecraft.world.level.material.MaterialColor; +import ru.bclib.BCLib; import ru.bclib.api.TagAPI; import ru.bclib.blocks.BaseBarkBlock; import ru.bclib.blocks.BaseBarrelBlock; @@ -33,10 +36,14 @@ import ru.bclib.blocks.BaseWoodenButtonBlock; import ru.bclib.blocks.StripableBarkBlock; import ru.bclib.blocks.WoodenPressurePlateBlock; import ru.bclib.complexmaterials.entry.BlockEntry; +import ru.bclib.complexmaterials.entry.ItemEntry; import ru.bclib.config.PathConfig; import ru.bclib.recipes.GridRecipe; +import java.util.List; + public class WoodenMaterial extends ComplexMaterial { + public static final ResourceLocation MATERIAL_ID = BCLib.makeID("wooden_material"); public final MaterialColor planksColor; public final MaterialColor woodColor; @@ -51,6 +58,11 @@ public class WoodenMaterial extends ComplexMaterial { return FabricBlockSettings.copyOf(Blocks.OAK_PLANKS).materialColor(planksColor); } + @Override + public ResourceLocation getMaterialID() { + return MATERIAL_ID; + } + @Override protected void initTags() { addBlockTag(TagAPI.makeBlockTag(getModID(), getBaseName() + "_logs"));