Skip to content

Commit ecbf439

Browse files
committed
Bump min Neo version to 21.1.133, and simplify our tag builders to not require the intrinsic variant
1 parent 12c3aff commit ecbf439

File tree

49 files changed

+543
-629
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+543
-629
lines changed

gradle.properties

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,11 @@ minecraft_version=1.21.1
88
previous_minecraft_version=1.20.6
99
previous_minor_minecraft_version=1.21
1010
loader_version_range=[4,)
11-
neo_version=21.1.127
11+
neo_version=21.1.133
1212
mod_version=10.7.10
1313
#This determines the minimum version of forge required to use Mekanism
1414
# Only bump it whenever we need access to a feature in forge that is not available in earlier versions
15-
neo_version_range=[21.1.127,)
15+
neo_version_range=[21.1.133,)
1616
minecraft_version_range=[1.21.1]
1717
#This specifies what type of release it will be uploaded to CurseForge and Modrinth as
1818
# options are: alpha, beta, release

src/api/java/mekanism/api/chemical/Chemical.java

+1-4
Original file line numberDiff line numberDiff line change
@@ -215,10 +215,7 @@ public String getTranslationKey() {
215215
// to makeDescriptionId in cases when our chemical is unregistered
216216
//TODO - 1.21: Replace this with a backport version of https://github.com/neoforged/NeoForge/pull/2013
217217
// We also will need to review our uses of getKey and getResourceKey to see what should be moved to using the helper
218-
translationKey = Util.makeDescriptionId("chemical", MekanismAPI.CHEMICAL_REGISTRY.getResourceKey(this)
219-
.map(ResourceKey::location)
220-
.orElse(null)
221-
);
218+
translationKey = Util.makeDescriptionId("chemical", MekanismAPI.CHEMICAL_REGISTRY.getKeyOrNull(this));
222219
}
223220
return translationKey;
224221
}

src/api/java/mekanism/api/datagen/recipe/MekanismRecipeBuilder.java

+4-3
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,10 @@ public void build(RecipeOutput recipeOutput, ResourceLocation id) {
110110
*/
111111
@Deprecated(forRemoval = true, since = "10.7.11")
112112
protected void build(RecipeOutput recipeOutput, ItemLike output) {
113-
ResourceLocation registryName = BuiltInRegistries.ITEM.getResourceKey(output.asItem())
114-
.map(ResourceKey::location)
115-
.orElseThrow(() -> new IllegalStateException("Could not retrieve registry name for output."));
113+
ResourceLocation registryName = BuiltInRegistries.ITEM.getKeyOrNull(output.asItem());
114+
if (registryName == null) {
115+
throw new IllegalStateException("Could not retrieve registry name for output.");
116+
}
116117
build(recipeOutput, registryName);
117118
}
118119

src/api/java/mekanism/api/gear/ModuleData.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -229,7 +229,7 @@ public final boolean isNoDisable() {
229229
@Override
230230
public String getTranslationKey() {
231231
if (translationKey == null) {
232-
translationKey = Util.makeDescriptionId("module", MekanismAPI.MODULE_REGISTRY.getKey(this));
232+
translationKey = Util.makeDescriptionId("module", MekanismAPI.MODULE_REGISTRY.getKeyOrNull(this));
233233
}
234234
return translationKey;
235235
}
@@ -239,7 +239,7 @@ public String getTranslationKey() {
239239
*/
240240
public String getDescriptionTranslationKey() {
241241
if (descriptionTranslationKey == null) {
242-
descriptionTranslationKey = Util.makeDescriptionId("description", MekanismAPI.MODULE_REGISTRY.getKey(this));
242+
descriptionTranslationKey = Util.makeDescriptionId("description", MekanismAPI.MODULE_REGISTRY.getKeyOrNull(this));
243243
}
244244
return descriptionTranslationKey;
245245
}

src/api/java/mekanism/api/inventory/IHashedItem.java

+11
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package mekanism.api.inventory;
22

33
import net.minecraft.MethodsReturnNonnullByDefault;
4+
import net.minecraft.core.Holder;
45
import net.minecraft.world.item.Item;
56
import net.minecraft.world.item.ItemStack;
67

@@ -39,6 +40,16 @@ default Item getItem() {
3940
return getInternalStack().getItem();
4041
}
4142

43+
/**
44+
* Helper to get the holder for the {@link Item} that this item type represents.
45+
*
46+
* @return The holder for the {@link Item} that this item type represents.
47+
* @since 10.7.11
48+
*/
49+
default Holder<Item> getItemHolder() {
50+
return getInternalStack().getItemHolder();
51+
}
52+
4253
/**
4354
* Helper to get the max stack size of the {@link Item} that this item type represents.
4455
*

src/api/java/mekanism/api/text/TextComponentUtil.java

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import java.util.ArrayList;
44
import java.util.List;
55
import java.util.Objects;
6+
import mekanism.api.inventory.IHashedItem;
67
import net.minecraft.ChatFormatting;
78
import net.minecraft.core.Direction;
89
import net.minecraft.core.Holder;
@@ -77,6 +78,7 @@ public static MutableComponent build(Object... components) {
7778
case Block block -> current = block.getName().copy();
7879
case Item item -> current = item.getDescription().copy();
7980
case ItemStack stack -> current = stack.getHoverName().copy();
81+
case IHashedItem item -> current = item.getInternalStack().getHoverName().copy();
8082
case FluidStack stack -> current = stack.getHoverName().copy();
8183
case Fluid fluid -> current = fluid.getFluidType().getDescription().copy();
8284
case EntityType<?> entityType -> current = entityType.getDescription().copy();
@@ -210,6 +212,8 @@ public static MutableComponent smartTranslate(String key, Object... components)
210212
current = item.getDescription().copy();
211213
} else if (component instanceof ItemStack stack) {
212214
current = stack.getHoverName().copy();
215+
} else if (component instanceof IHashedItem item) {
216+
current = item.getInternalStack().getHoverName().copy();
213217
} else if (component instanceof FluidStack stack) {
214218
current = stack.getHoverName().copy();
215219
} else if (component instanceof Fluid fluid) {

src/datagen/additions/java/mekanism/additions/common/AdditionsTagProvider.java

+35-15
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import mekanism.common.tag.BaseTagProvider;
1212
import net.minecraft.core.Holder;
1313
import net.minecraft.core.HolderLookup;
14+
import net.minecraft.core.registries.BuiltInRegistries;
1415
import net.minecraft.data.PackOutput;
1516
import net.minecraft.tags.BlockTags;
1617
import net.minecraft.tags.DamageTypeTags;
@@ -50,20 +51,39 @@ protected void registerTags(HolderLookup.Provider registries) {
5051
addGlowPanels();
5152
addPlasticBlocks();
5253
addHarvestRequirements();
53-
addToTag(BlockTags.IMPERMEABLE, AdditionsBlocks.TRANSPARENT_PLASTIC_BLOCKS);
54+
getBlockBuilder(BlockTags.IMPERMEABLE).add(AdditionsBlocks.TRANSPARENT_PLASTIC_BLOCKS.values());
5455
}
5556

5657
private void addEntities() {
57-
addEntitiesToTag(EntityTypeTags.FALL_DAMAGE_IMMUNE, AdditionsEntityTypes.BALLOON);
58-
addEntitiesToTag(EntityTypeTags.SKELETONS, AdditionsEntityTypes.BABY_BOGGED, AdditionsEntityTypes.BABY_SKELETON, AdditionsEntityTypes.BABY_STRAY,
59-
AdditionsEntityTypes.BABY_WITHER_SKELETON);
60-
addEntitiesToTag(EntityTypeTags.NO_ANGER_FROM_WIND_CHARGE, AdditionsEntityTypes.BABY_BOGGED, AdditionsEntityTypes.BABY_SKELETON, AdditionsEntityTypes.BABY_STRAY);
61-
getEntityTypeBuilder(AdditionsTags.Entities.BOGGED).add(EntityType.BOGGED, AdditionsEntityTypes.BABY_BOGGED.value());
62-
getEntityTypeBuilder(AdditionsTags.Entities.CREEPERS).add(EntityType.CREEPER, AdditionsEntityTypes.BABY_CREEPER.value());
63-
getEntityTypeBuilder(AdditionsTags.Entities.ENDERMEN).add(EntityType.ENDERMAN, AdditionsEntityTypes.BABY_ENDERMAN.value());
64-
addEntitiesToTag(EntityTypeTags.FREEZE_IMMUNE_ENTITY_TYPES, AdditionsEntityTypes.BABY_STRAY);
65-
addEntitiesToTag(PVI_COMPAT, AdditionsEntityTypes.BABY_CREEPER, AdditionsEntityTypes.BABY_ENDERMAN, AdditionsEntityTypes.BABY_SKELETON,
66-
AdditionsEntityTypes.BABY_STRAY, AdditionsEntityTypes.BABY_WITHER_SKELETON);
58+
getEntityTypeBuilder(EntityTypeTags.FALL_DAMAGE_IMMUNE).add(AdditionsEntityTypes.BALLOON);
59+
getEntityTypeBuilder(EntityTypeTags.SKELETONS).add(
60+
AdditionsEntityTypes.BABY_BOGGED,
61+
AdditionsEntityTypes.BABY_SKELETON,
62+
AdditionsEntityTypes.BABY_STRAY,
63+
AdditionsEntityTypes.BABY_WITHER_SKELETON
64+
);
65+
getEntityTypeBuilder(EntityTypeTags.NO_ANGER_FROM_WIND_CHARGE).add(
66+
AdditionsEntityTypes.BABY_BOGGED,
67+
AdditionsEntityTypes.BABY_SKELETON,
68+
AdditionsEntityTypes.BABY_STRAY
69+
);
70+
getEntityTypeBuilder(AdditionsTags.Entities.BOGGED)
71+
.addIntrinsic(BuiltInRegistries.ENTITY_TYPE, EntityType.BOGGED)
72+
.add(AdditionsEntityTypes.BABY_BOGGED);
73+
getEntityTypeBuilder(AdditionsTags.Entities.CREEPERS)
74+
.addIntrinsic(BuiltInRegistries.ENTITY_TYPE, EntityType.CREEPER)
75+
.add(AdditionsEntityTypes.BABY_CREEPER);
76+
getEntityTypeBuilder(AdditionsTags.Entities.ENDERMEN)
77+
.addIntrinsic(BuiltInRegistries.ENTITY_TYPE, EntityType.ENDERMAN)
78+
.add(AdditionsEntityTypes.BABY_ENDERMAN);
79+
getEntityTypeBuilder(EntityTypeTags.FREEZE_IMMUNE_ENTITY_TYPES).add(AdditionsEntityTypes.BABY_STRAY);
80+
getEntityTypeBuilder(PVI_COMPAT).add(
81+
AdditionsEntityTypes.BABY_CREEPER,
82+
AdditionsEntityTypes.BABY_ENDERMAN,
83+
AdditionsEntityTypes.BABY_SKELETON,
84+
AdditionsEntityTypes.BABY_STRAY,
85+
AdditionsEntityTypes.BABY_WITHER_SKELETON
86+
);
6787
}
6888

6989
private void addDamageTypes() {
@@ -149,7 +169,7 @@ private void addHarvestRequirements() {
149169
}
150170

151171
private void addToTags(TagKey<Item> itemTag, TagKey<Block> blockTag, Map<EnumColor, ? extends BlockRegistryObject<?, ?>> blockProviders) {
152-
addToTags(itemTag, blockTag, blockProviders.values().toArray(new BlockRegistryObject[0]));
172+
addToTags(itemTag, blockTag, blockProviders.values());
153173
for (Map.Entry<EnumColor, ? extends BlockRegistryObject<?, ?>> entry : blockProviders.entrySet()) {
154174
DyeColor dyeColor = entry.getKey().getDyeColor();
155175
if (dyeColor != null) {
@@ -160,12 +180,12 @@ private void addToTags(TagKey<Item> itemTag, TagKey<Block> blockTag, Map<EnumCol
160180
}
161181

162182
private void addToTag(TagKey<Item> itemTag, Map<EnumColor, ? extends Holder<Item>> itemProviders) {
163-
getItemBuilder(itemTag).addHolders(itemProviders.values());
183+
getItemBuilder(itemTag).add(itemProviders.values());
164184
for (Map.Entry<EnumColor, ? extends Holder<Item>> entry : itemProviders.entrySet()) {
165185
DyeColor dyeColor = entry.getKey().getDyeColor();
166186
if (dyeColor != null) {
167-
addItemsToTag(Tags.Items.DYED, entry.getValue());
168-
addItemsToTag(dyeColor.getDyedTag(), entry.getValue());
187+
getItemBuilder(Tags.Items.DYED).add(entry.getValue());
188+
getItemBuilder(dyeColor.getDyedTag()).add(entry.getValue());
169189
}
170190
}
171191
}

src/datagen/generated/mekanism/.cache/f4271571320fe007f5d8ba9eb4461ed6922f6a93

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/datagen/generators/java/mekanism/generators/common/GeneratorsTagProvider.java

+13-11
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ protected void registerTags(HolderLookup.Provider registries) {
3636
addFluids();
3737
addGases();
3838
addHarvestRequirements();
39-
addBlocksToTag(BlockTags.IMPERMEABLE, GeneratorsBlocks.REACTOR_GLASS);
39+
getBlockBuilder(BlockTags.IMPERMEABLE).add(GeneratorsBlocks.REACTOR_GLASS);
4040

41-
addBlocksToTag(BlockTags.SNOW_LAYER_CANNOT_SURVIVE_ON,
41+
getBlockBuilder(BlockTags.SNOW_LAYER_CANNOT_SURVIVE_ON).add(
4242
GeneratorsBlocks.REACTOR_GLASS,
4343

4444
GeneratorsBlocks.FISSION_REACTOR_CASING,
@@ -61,21 +61,23 @@ protected void registerTags(HolderLookup.Provider registries) {
6161
GeneratorsBlocks.FUSION_REACTOR_LOGIC_ADAPTER,
6262
GeneratorsBlocks.LASER_FOCUS_MATRIX);
6363

64-
addBlocksToTag(FRAMEABLE, GeneratorsBlocks.REACTOR_GLASS, GeneratorsBlocks.LASER_FOCUS_MATRIX);
65-
addBlocksToTag(FB_BE_WHITELIST, GeneratorsBlocks.REACTOR_GLASS, GeneratorsBlocks.LASER_FOCUS_MATRIX);
64+
getBlockBuilder(FRAMEABLE).add(GeneratorsBlocks.REACTOR_GLASS, GeneratorsBlocks.LASER_FOCUS_MATRIX);
65+
getBlockBuilder(FB_BE_WHITELIST).add(GeneratorsBlocks.REACTOR_GLASS, GeneratorsBlocks.LASER_FOCUS_MATRIX);
6666

67-
getItemBuilder(MekanismAPITags.Items.MEKA_UNITS).add(GeneratorsItems.ITEMS.getEntries().stream().filter(item -> item.get() instanceof IModuleItem).toList());
67+
getItemBuilder(MekanismAPITags.Items.MEKA_UNITS).add(GeneratorsItems.ITEMS.getEntries().stream()
68+
.filter(item -> item.get() instanceof IModuleItem)
69+
.toList());
6870
}
6971

7072
private void addBoxBlacklist() {
71-
addBlocksToTag(Tags.Blocks.RELOCATION_NOT_SUPPORTED,
73+
getBlockBuilder(Tags.Blocks.RELOCATION_NOT_SUPPORTED).add(
7274
GeneratorsBlocks.ADVANCED_SOLAR_GENERATOR,
7375
GeneratorsBlocks.WIND_GENERATOR
7476
);
7577
}
7678

7779
private void addEndermanBlacklist() {
78-
addBlocksToTag(Tags.Blocks.ENDERMAN_PLACE_ON_BLACKLIST,
80+
getBlockBuilder(Tags.Blocks.ENDERMAN_PLACE_ON_BLACKLIST).add(
7981
GeneratorsBlocks.TURBINE_CASING,
8082
GeneratorsBlocks.TURBINE_VALVE,
8183
GeneratorsBlocks.TURBINE_VENT,
@@ -106,11 +108,11 @@ private void addFluids() {
106108
}
107109

108110
private void addGases() {
109-
addChemicalsToTag(GeneratorTags.Chemicals.DEUTERIUM, GeneratorsChemicals.DEUTERIUM);
110-
addChemicalsToTag(GeneratorTags.Chemicals.TRITIUM, GeneratorsChemicals.TRITIUM);
111-
addChemicalsToTag(GeneratorTags.Chemicals.FUSION_FUEL, GeneratorsChemicals.FUSION_FUEL);
111+
getChemicalBuilder(GeneratorTags.Chemicals.DEUTERIUM).add(GeneratorsChemicals.DEUTERIUM);
112+
getChemicalBuilder(GeneratorTags.Chemicals.TRITIUM).add(GeneratorsChemicals.TRITIUM);
113+
getChemicalBuilder(GeneratorTags.Chemicals.FUSION_FUEL).add(GeneratorsChemicals.FUSION_FUEL);
112114

113-
addChemicalsToTag(MekanismAPITags.Chemicals.GASEOUS,
115+
getChemicalBuilder(MekanismAPITags.Chemicals.GASEOUS).add(
114116
GeneratorsChemicals.DEUTERIUM,
115117
GeneratorsChemicals.TRITIUM,
116118
GeneratorsChemicals.FUSION_FUEL

src/datagen/main/java/mekanism/client/integration/emi/BaseEmiDefaults.java

+3-8
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
import mekanism.common.Mekanism;
1515
import mekanism.common.registration.INamedEntry;
1616
import mekanism.common.util.EnumUtils;
17-
import mekanism.common.util.RegistryUtils;
18-
import net.minecraft.core.Holder;
1917
import net.minecraft.core.HolderLookup;
2018
import net.minecraft.data.CachedOutput;
2119
import net.minecraft.data.DataProvider;
@@ -26,6 +24,7 @@
2624
import net.minecraft.server.packs.PackType;
2725
import net.minecraft.util.ExtraCodecs;
2826
import net.neoforged.neoforge.common.data.ExistingFileHelper;
27+
import net.neoforged.neoforge.registries.DeferredHolder;
2928

3029
@NothingNullByDefault
3130
public abstract class BaseEmiDefaults implements DataProvider {
@@ -74,12 +73,8 @@ protected void addTieredRecipes(String basePath) {
7473
}
7574
}
7675

77-
protected void addRecipe(Holder<?> output) {
78-
ResourceLocation registryName = RegistryUtils.getName(output);
79-
if (registryName == null) {
80-
throw new IllegalStateException("Could not retrieve registry name for output.");
81-
}
82-
addRecipe(registryName);
76+
protected void addRecipe(DeferredHolder<?, ?> output) {
77+
addRecipe(output.getId());
8378
}
8479

8580
protected void addRotaryRecipe(INamedEntry gas) {

src/datagen/main/java/mekanism/client/integration/emi/MekanismEmiDefaults.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
import mekanism.common.registries.MekanismItems;
1616
import mekanism.common.tier.FactoryTier;
1717
import mekanism.common.util.EnumUtils;
18-
import net.minecraft.core.Holder;
1918
import net.minecraft.core.HolderLookup;
2019
import net.minecraft.data.PackOutput;
2120
import net.minecraft.world.item.Item;
@@ -293,7 +292,7 @@ private void addMiscRecipes() {
293292

294293
private void addGearModuleRecipes() {
295294
addRecipe(MekanismItems.MODULE_BASE);
296-
for (Holder<Item> entry : MekanismItems.ITEMS.getEntries()) {
295+
for (DeferredHolder<Item, ?> entry : MekanismItems.ITEMS.getEntries()) {
297296
if (entry.value() instanceof ItemModule) {
298297
addRecipe(entry);
299298
}

src/datagen/main/java/mekanism/client/lang/BaseLanguageProvider.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
import mekanism.common.config.IMekanismConfig;
1818
import mekanism.common.registration.impl.BlockRegistryObject;
1919
import mekanism.common.registration.impl.FluidRegistryObject;
20-
import mekanism.common.util.RegistryUtils;
2120
import net.minecraft.Util;
2221
import net.minecraft.core.Holder;
2322
import net.minecraft.data.CachedOutput;
@@ -80,15 +79,15 @@ protected void addHolder(Holder<? extends IHasTranslationKey> key, String value)
8079
protected void add(IHasTranslationKey key, String value) {
8180
if (key instanceof BlockRegistryObject<?, ?> blockHolder) {
8281
if (Attribute.matches(blockHolder, AttributeGui.class, attribute -> !attribute.hasCustomName())) {
83-
add(Util.makeDescriptionId("container", RegistryUtils.getName(blockHolder)), value);
82+
add(Util.makeDescriptionId("container", blockHolder.getId()), value);
8483
}
8584
}
8685
add(key.getTranslationKey(), value);
8786
}
8887

8988
protected void add(BlockRegistryObject<?, ?> blockRO, String value, String containerName) {
9089
if (Attribute.matches(blockRO, AttributeGui.class, attribute -> !attribute.hasCustomName())) {
91-
add(Util.makeDescriptionId("container", RegistryUtils.getName(blockRO)), containerName);
90+
add(Util.makeDescriptionId("container", blockRO.getId()), containerName);
9291
add(blockRO.getTranslationKey(), value);
9392
} else {
9493
throw new IllegalArgumentException(blockRO + " does not have a container name set.");

src/datagen/main/java/mekanism/client/model/BaseItemModelProvider.java

+2-6
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
import mekanism.common.item.ItemModule;
44
import mekanism.common.registration.impl.FluidDeferredRegister;
55
import mekanism.common.registration.impl.ItemDeferredRegister;
6+
import mekanism.common.util.RegistryUtils;
67
import net.minecraft.core.Holder;
78
import net.minecraft.core.registries.BuiltInRegistries;
89
import net.minecraft.data.PackOutput;
910
import net.minecraft.data.models.ItemModelGenerators;
1011
import net.minecraft.data.models.ItemModelGenerators.TrimModelData;
11-
import net.minecraft.resources.ResourceKey;
1212
import net.minecraft.resources.ResourceLocation;
1313
import net.minecraft.server.packs.PackType;
1414
import net.minecraft.world.item.ArmorItem;
@@ -38,11 +38,7 @@ public boolean textureExists(ResourceLocation texture) {
3838
}
3939

4040
protected String getPath(Holder<Item> holder) {
41-
ResourceKey<Item> key = holder.getKey();
42-
if (key == null) {
43-
return BuiltInRegistries.ITEM.getKey(holder.value()).getPath();
44-
}
45-
return key.location().getPath();
41+
return RegistryUtils.getName(holder, BuiltInRegistries.ITEM).getPath();
4642
}
4743

4844
protected ResourceLocation itemTexture(Holder<Item> item) {

0 commit comments

Comments
 (0)