diff --git a/loader-common/src/main/java/org/cyclops/cyclopscore/config/configurabletypeaction/BlockAction.java b/loader-common/src/main/java/org/cyclops/cyclopscore/config/configurabletypeaction/BlockAction.java index d650f1bee1..a78d134ad9 100644 --- a/loader-common/src/main/java/org/cyclops/cyclopscore/config/configurabletypeaction/BlockAction.java +++ b/loader-common/src/main/java/org/cyclops/cyclopscore/config/configurabletypeaction/BlockAction.java @@ -37,9 +37,9 @@ public class BlockAction extends ConfigurableTypeActionRegis * @param callback A callback that will be called when the entry is registered. */ public static void register(@Nullable BiFunction, Block, ? extends Item> itemBlockConstructor, BlockConfigCommon config, @Nullable Callable callback) { - register(config, itemBlockConstructor == null ? callback : null); // Delay onForgeRegistered callback until item has been registered if one is applicable + register(config, itemBlockConstructor == null ? callback : null); // Delay onRegistryRegistered callback until item has been registered if one is applicable if(itemBlockConstructor != null) { - ItemConfigCommon itemConfig = new ItemConfigCommon<>(config.getMod(), config.getNamedId(), (iConfig) -> { + ItemConfigCommon itemConfig = new ItemConfigCommon<>(config.getMod(), config.getNamedId(), (iConfig, properties) -> { Item itemBlock = itemBlockConstructor.apply(config, config.getInstance()); Objects.requireNonNull(itemBlock, "Received a null item for the item block constructor of " + config.getNamedId()); return itemBlock; diff --git a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/BlockConfigCommon.java b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/BlockConfigCommon.java index 8a6f885d7a..7f1f7f230b 100644 --- a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/BlockConfigCommon.java +++ b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/BlockConfigCommon.java @@ -2,6 +2,9 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.ResourceKey; +import net.minecraft.resources.ResourceLocation; import net.minecraft.world.item.BlockItem; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; @@ -30,9 +33,9 @@ public abstract class BlockConfigCommon extends ExtendedConf private Item itemInstance; private BlockClientConfig clientConfig; - public BlockConfigCommon(M mod, String namedId, Function, ? extends Block> blockConstructor, + public BlockConfigCommon(M mod, String namedId, BiFunction, Block.Properties, ? extends Block> blockConstructor, @Nullable BiFunction, Block, ? extends Item> itemConstructor) { - super(mod, namedId, blockConstructor); + super(mod, namedId, eConfig -> blockConstructor.apply(eConfig, Block.Properties.of().setId((ResourceKey) eConfig.getResourceKey()))); this.itemConstructor = itemConstructor; } @@ -42,7 +45,10 @@ public BlockConfigCommon(M mod, String namedId, Function, ? protected static BiFunction, Block, ? extends BlockItem> getDefaultItemConstructor(M mod, @Nullable Function itemPropertiesModifier) { return (eConfig, block) -> { - Item.Properties itemProperties = new Item.Properties(); + Item.Properties itemProperties = new Item.Properties() + .setId(ResourceKey.create(Registries.ITEM, + ResourceLocation.fromNamespaceAndPath(eConfig.getMod().getModId(), eConfig.getNamedId()))) + .useBlockDescriptionPrefix(); if (itemPropertiesModifier != null) { itemProperties = itemPropertiesModifier.apply(itemProperties); } diff --git a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/EntityConfigCommon.java b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/EntityConfigCommon.java index 64b354064b..a406022555 100644 --- a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/EntityConfigCommon.java +++ b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/EntityConfigCommon.java @@ -51,12 +51,12 @@ public static BiFunction BiFunction, Supplier>, ItemConfigCommon> getDefaultSpawnEggItemConfigConstructor(M mod, String itemName, int primaryColorIn, int secondaryColorIn, @Nullable Function itemPropertiesModifier) { return (entityConfig, entityType) -> { - Item.Properties itemProperties = new Item.Properties(); - if (itemPropertiesModifier != null) { - itemProperties = itemPropertiesModifier.apply(itemProperties); - } - Item.Properties finalItemProperties = itemProperties; - ItemConfigCommon itemConfig = new ItemConfigCommon<>(mod, itemName, (itemConfigSub) ->new SpawnEggItem(entityType.get(), finalItemProperties)); + ItemConfigCommon itemConfig = new ItemConfigCommon<>(mod, itemName, (itemConfigSub, properties) -> { + if (itemPropertiesModifier != null) { + properties = itemPropertiesModifier.apply(properties); + } + return new SpawnEggItem(entityType.get(), properties); + }); entityConfig.setSpawnEggItemConfig(itemConfig); return itemConfig; }; diff --git a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/ItemConfigCommon.java b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/ItemConfigCommon.java index cc5b3fec97..e37194abdb 100644 --- a/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/ItemConfigCommon.java +++ b/loader-common/src/main/java/org/cyclops/cyclopscore/config/extendedconfig/ItemConfigCommon.java @@ -2,6 +2,7 @@ import net.minecraft.core.Registry; import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceKey; import net.minecraft.world.item.Item; import net.minecraft.world.item.ItemStack; import org.cyclops.cyclopscore.config.ConfigurableTypeCommon; @@ -10,7 +11,7 @@ import javax.annotation.Nullable; import java.util.Collection; import java.util.Collections; -import java.util.function.Function; +import java.util.function.BiFunction; /** * Config for items. @@ -26,8 +27,8 @@ public class ItemConfigCommon extends ExtendedConfigRegistry * @param namedId The unique name ID for the configurable. * @param elementConstructor The element constructor. */ - public ItemConfigCommon(M mod, String namedId, Function, ? extends Item> elementConstructor) { - super(mod, namedId, elementConstructor); + public ItemConfigCommon(M mod, String namedId, BiFunction, Item.Properties, ? extends Item> elementConstructor) { + super(mod, namedId, eConfig -> elementConstructor.apply(eConfig, new Item.Properties().setId((ResourceKey) eConfig.getResourceKey()))); } @Override