mirror of
				https://github.com/SquidDev-CC/CC-Tweaked
				synced 2025-11-03 23:22:59 +00:00 
			
		
		
		
	Use components for upgrade adjectives
This makes quick-and-dirty datapacks a little easier, as you can now use a hard-coded string rather than adding a language key.
This commit is contained in:
		@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "computercraft:tool",
 | 
			
		||||
  "adjective": "upgrade.minecraft.diamond_axe.adjective",
 | 
			
		||||
  "adjective": {"translate": "upgrade.minecraft.diamond_axe.adjective"},
 | 
			
		||||
  "damageMultiplier": 6.0,
 | 
			
		||||
  "item": "minecraft:diamond_axe"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "computercraft:tool",
 | 
			
		||||
  "adjective": "upgrade.minecraft.diamond_hoe.adjective",
 | 
			
		||||
  "adjective": {"translate": "upgrade.minecraft.diamond_hoe.adjective"},
 | 
			
		||||
  "breakable": "computercraft:turtle_hoe_harvestable",
 | 
			
		||||
  "item": "minecraft:diamond_hoe"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "computercraft:tool",
 | 
			
		||||
  "adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
 | 
			
		||||
  "adjective": {"translate": "upgrade.minecraft.diamond_pickaxe.adjective"},
 | 
			
		||||
  "item": "minecraft:diamond_pickaxe"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "computercraft:tool",
 | 
			
		||||
  "adjective": "upgrade.minecraft.diamond_shovel.adjective",
 | 
			
		||||
  "adjective": {"translate": "upgrade.minecraft.diamond_shovel.adjective"},
 | 
			
		||||
  "breakable": "computercraft:turtle_shovel_harvestable",
 | 
			
		||||
  "item": "minecraft:diamond_shovel"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "type": "computercraft:tool",
 | 
			
		||||
  "adjective": "upgrade.minecraft.diamond_sword.adjective",
 | 
			
		||||
  "adjective": {"translate": "upgrade.minecraft.diamond_sword.adjective"},
 | 
			
		||||
  "breakable": "computercraft:turtle_sword_harvestable",
 | 
			
		||||
  "damageMultiplier": 9.0,
 | 
			
		||||
  "item": "minecraft:diamond_sword"
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,6 @@ import dan200.computercraft.api.ComputerCraftAPI;
 | 
			
		||||
import dan200.computercraft.api.ComputerCraftTags;
 | 
			
		||||
import dan200.computercraft.api.pocket.PocketUpgradeDataProvider;
 | 
			
		||||
import dan200.computercraft.api.turtle.TurtleUpgradeDataProvider;
 | 
			
		||||
import dan200.computercraft.api.upgrades.UpgradeBase;
 | 
			
		||||
import dan200.computercraft.core.metrics.Metric;
 | 
			
		||||
import dan200.computercraft.core.metrics.Metrics;
 | 
			
		||||
import dan200.computercraft.shared.ModRegistry;
 | 
			
		||||
@@ -22,6 +21,8 @@ import net.minecraft.core.registries.BuiltInRegistries;
 | 
			
		||||
import net.minecraft.data.CachedOutput;
 | 
			
		||||
import net.minecraft.data.DataProvider;
 | 
			
		||||
import net.minecraft.data.PackOutput;
 | 
			
		||||
import net.minecraft.network.chat.Component;
 | 
			
		||||
import net.minecraft.network.chat.contents.TranslatableContents;
 | 
			
		||||
import net.minecraft.tags.TagKey;
 | 
			
		||||
import net.minecraft.world.item.Item;
 | 
			
		||||
 | 
			
		||||
@@ -287,8 +288,8 @@ public final class LanguageProvider implements DataProvider {
 | 
			
		||||
            BuiltInRegistries.ITEM.holders()
 | 
			
		||||
                .filter(x -> x.key().location().getNamespace().equals(ComputerCraftAPI.MOD_ID))
 | 
			
		||||
                .map(x -> x.value().getDescriptionId()),
 | 
			
		||||
            turtleUpgrades.getGeneratedUpgrades().values().stream().map(UpgradeBase::getUnlocalisedAdjective),
 | 
			
		||||
            pocketUpgrades.getGeneratedUpgrades().values().stream().map(UpgradeBase::getUnlocalisedAdjective),
 | 
			
		||||
            turtleUpgrades.getGeneratedUpgrades().values().stream().flatMap(x -> getTranslationKeys(x.getAdjective())),
 | 
			
		||||
            pocketUpgrades.getGeneratedUpgrades().values().stream().flatMap(x -> getTranslationKeys(x.getAdjective())),
 | 
			
		||||
            Metric.metrics().values().stream().map(x -> AggregatedMetric.TRANSLATION_PREFIX + x.name() + ".name"),
 | 
			
		||||
            ConfigSpec.serverSpec.entries().map(ConfigFile.Entry::translationKey),
 | 
			
		||||
            ConfigSpec.clientSpec.entries().map(ConfigFile.Entry::translationKey),
 | 
			
		||||
@@ -296,6 +297,12 @@ public final class LanguageProvider implements DataProvider {
 | 
			
		||||
        ).flatMap(x -> x);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private static Stream<String> getTranslationKeys(Component component) {
 | 
			
		||||
        if (component.getContents() instanceof TranslatableContents contents) return Stream.of(contents.getKey());
 | 
			
		||||
 | 
			
		||||
        return component.getSiblings().stream().flatMap(LanguageProvider::getTranslationKeys);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private void add(String id, String text) {
 | 
			
		||||
        Objects.requireNonNull(id, "id cannot be null");
 | 
			
		||||
        Objects.requireNonNull(text, "text cannot be null");
 | 
			
		||||
 
 | 
			
		||||
@@ -127,9 +127,7 @@ public class PocketComputerItem extends Item implements IMedia {
 | 
			
		||||
        var baseString = getDescriptionId(stack);
 | 
			
		||||
        var upgrade = getUpgrade(stack);
 | 
			
		||||
        if (upgrade != null) {
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded",
 | 
			
		||||
                Component.translatable(upgrade.getUnlocalisedAdjective())
 | 
			
		||||
            );
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded", upgrade.getAdjective());
 | 
			
		||||
        } else {
 | 
			
		||||
            return super.getName(stack);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -34,18 +34,11 @@ public class TurtleItem extends AbstractComputerItem {
 | 
			
		||||
        var left = getUpgrade(stack, TurtleSide.LEFT);
 | 
			
		||||
        var right = getUpgrade(stack, TurtleSide.RIGHT);
 | 
			
		||||
        if (left != null && right != null) {
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded_twice",
 | 
			
		||||
                Component.translatable(right.getUnlocalisedAdjective()),
 | 
			
		||||
                Component.translatable(left.getUnlocalisedAdjective())
 | 
			
		||||
            );
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded_twice", right.getAdjective(), left.getAdjective());
 | 
			
		||||
        } else if (left != null) {
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded",
 | 
			
		||||
                Component.translatable(left.getUnlocalisedAdjective())
 | 
			
		||||
            );
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded", left.getAdjective());
 | 
			
		||||
        } else if (right != null) {
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded",
 | 
			
		||||
                Component.translatable(right.getUnlocalisedAdjective())
 | 
			
		||||
            );
 | 
			
		||||
            return Component.translatable(baseString + ".upgraded", right.getAdjective());
 | 
			
		||||
        } else {
 | 
			
		||||
            return Component.translatable(baseString);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "type": "computercraft:tool",
 | 
			
		||||
    "adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
 | 
			
		||||
    "adjective": "Netherite",
 | 
			
		||||
    "item": "minecraft:netherite_pickaxe",
 | 
			
		||||
    "allowEnchantments": true,
 | 
			
		||||
    "consumeDurability": "when_enchanted"
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
    "type": "computercraft:tool",
 | 
			
		||||
    "adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
 | 
			
		||||
    "adjective": "Wooden",
 | 
			
		||||
    "item": "minecraft:wooden_pickaxe",
 | 
			
		||||
    "consumeDurability": "always"
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user