1
0
mirror of https://github.com/SquidDev-CC/CC-Tweaked synced 2025-10-31 21:52: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:
Jonathan Coates
2024-04-28 20:07:15 +01:00
parent 0aca6a4dc9
commit 06ac373e83
15 changed files with 53 additions and 38 deletions

View File

@@ -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"
}

View File

@@ -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"
}

View File

@@ -1,5 +1,5 @@
{
"type": "computercraft:tool",
"adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
"adjective": {"translate": "upgrade.minecraft.diamond_pickaxe.adjective"},
"item": "minecraft:diamond_pickaxe"
}

View File

@@ -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"
}

View File

@@ -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"

View File

@@ -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");

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -1,6 +1,6 @@
{
"type": "computercraft:tool",
"adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
"adjective": "Netherite",
"item": "minecraft:netherite_pickaxe",
"allowEnchantments": true,
"consumeDurability": "when_enchanted"

View File

@@ -1,6 +1,6 @@
{
"type": "computercraft:tool",
"adjective": "upgrade.minecraft.diamond_pickaxe.adjective",
"adjective": "Wooden",
"item": "minecraft:wooden_pickaxe",
"consumeDurability": "always"
}