Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 49 additions & 49 deletions src/generated/resources/assets/gtceu/lang/en_us.json
Original file line number Diff line number Diff line change
Expand Up @@ -2316,7 +2316,7 @@
"gtceu.gui.overclock.off": "X",
"gtceu.gui.overclock.range": "Available Tiers [%s, %s]",
"gtceu.gui.overclock.title": "Overclock Tier",
"gtceu.gui.seconds": "%s second(s)",
"common.gtceu.seconds": "%s second(s)",
"gtceu.gui.silktouch.disabled.0": "Silk Touch Disabled: Click to Enable.",
"gtceu.gui.silktouch.disabled.1": "§7Switching requires an idle machine.",
"gtceu.gui.silktouch.enabled.0": "Silk Touch Enabled: Click to Disable.",
Expand All @@ -2330,7 +2330,7 @@
"gtceu.gui.toggle_view.disabled": "Toggle View (Fluids)",
"gtceu.gui.toggle_view.enabled": "Toggle View (Items)",
"gtceu.gui.waiting_list": "Sending Queue:",
"gtceu.gui.years": "%s year(s)",
"common.gtceu.years": "%s year(s)",
"gtceu.io.both": "Both",
"gtceu.io.export": "Export",
"gtceu.io.import": "Import",
Expand Down Expand Up @@ -2822,62 +2822,62 @@
"gtceu.scanner.copy_stick_empty": "§oEmpty Stick",
"gtceu.scanner.copy_stick_from": "§oStick to Copy",
"gtceu.scanner.copy_stick_to": "§oCopy of Stick",
"gtceu.tooltip.fluid_pipe_hold_shift": "§7Hold SHIFT to show Fluid Containment Info",
"gtceu.tooltip.hold_ctrl": "§7Hold CTRL for more info",
"gtceu.tooltip.hold_shift": "§7Hold SHIFT for more info",
"common.gtceu.tooltip.fluid_pipe_hold_shift": "§7Hold SHIFT to show Fluid Containment Info",
"common.gtceu.tooltip.hold_ctrl": "§7Hold CTRL for more info",
"common.gtceu.tooltip.hold_shift": "§7Hold SHIFT for more info",
"gtceu.tooltip.proxy_bind": "§fBinding to a Pattern Buffer at %s %s %s",
"gtceu.tooltip.status.trinary.false": "False",
"gtceu.tooltip.status.trinary.true": "True",
"gtceu.tooltip.status.trinary.unknown": "Unknown",
"gtceu.tooltip.tool_fluid_hold_shift": "§7Hold SHIFT to show Fluid Containment and Tool Info",
"common.gtceu.tooltip.tool_fluid_hold_shift": "§7Hold SHIFT to show Fluid Containment and Tool Info",
"gtceu.universal.clear_nbt_recipe.tooltip": "§cThis will destroy all contents!",
"gtceu.universal.kiloliters": "%s B",
"gtceu.universal.liters": "%s mB",
"common.gtceu.buckets": "%s B",
"common.gtceu.millibuckets": "%s mB",
"gtceu.universal.padded_parentheses": " (%s) ",
"gtceu.universal.padded_spaced_parentheses": " ( %s ) ",
"gtceu.universal.parentheses": "(%s)",
"gtceu.universal.spaced_parentheses": "( %s )",
"gtceu.universal.tooltip.amperage_in": "§eAmperage IN: §f%dA",
"gtceu.universal.tooltip.amperage_in_out": "§eAmperage IN/OUT: §f%dA",
"gtceu.universal.tooltip.amperage_in_out_till": "§eAmperage IN/OUT up to: §f%dA",
"gtceu.universal.tooltip.amperage_in_till": "§eAmperage IN up to: §f%dA",
"gtceu.universal.tooltip.amperage_out": "§eAmperage OUT: §f%dA",
"gtceu.universal.tooltip.amperage_out_till": "§eAmperage OUT up to: §f%dA",
"gtceu.universal.tooltip.base_production_eut": "§eBase Production: §f%d EU/t",
"gtceu.universal.tooltip.base_production_fluid": "§eBase Production: §f%d mB/t",
"gtceu.universal.tooltip.chunk_mode": "Chunk Mode: ",
"gtceu.universal.tooltip.deprecated": "§4§lWARNING:§r§4 DEPRECATED. WILL BE REMOVED IN A FUTURE VERSION.§r",
"gtceu.universal.tooltip.energy_storage_capacity": "§cEnergy Capacity: §r%d EU",
"gtceu.universal.tooltip.energy_tier_range": "§aAllowed Voltage Tiers: §f%s §f- %s",
"gtceu.universal.tooltip.fluid_storage_capacity": "§9Fluid Capacity: §f%d mB",
"gtceu.universal.tooltip.fluid_storage_capacity_mult": "§9Fluid Capacity: §f%d §7Tanks, §f%d mB §7each",
"gtceu.universal.tooltip.fluid_stored": "§2Fluid Stored: §f%s, %d mB",
"gtceu.universal.tooltip.fluid_transfer_rate": "§bTransfer Rate: §f%d mB/t",
"gtceu.universal.tooltip.item_storage_capacity": "§6Item Slots: §f%d",
"gtceu.universal.tooltip.item_storage_total": "§6Item Capacity: §f%d items",
"gtceu.universal.tooltip.item_stored": "§dItem Stored: §f%s, %d items",
"gtceu.universal.tooltip.item_transfer_rate": "§bTransfer Rate: §f%d items/s",
"gtceu.universal.tooltip.item_transfer_rate_stacks": "§bTransfer Rate: §f%d stacks/s",
"gtceu.universal.tooltip.max_voltage_in": "§aMax Voltage IN: §f%d (%s§f)",
"gtceu.universal.tooltip.max_voltage_in_out": "§aMax Voltage IN/OUT: §f%d EU/t (%s§f)",
"gtceu.universal.tooltip.max_voltage_out": "§aMax Voltage OUT: §f%d (%s§f)",
"gtceu.universal.tooltip.parallel": "§dMax Parallel: §f%d",
"gtceu.universal.tooltip.produces_fluid": "§eProduces: §f%d mB/t",
"gtceu.universal.tooltip.requires_redstone": "§4Requires Redstone power",
"gtceu.universal.tooltip.silk_touch": "Silk Touch: ",
"gtceu.universal.tooltip.terrain_resist": "This Machine will not explode when exposed to the Elements",
"gtceu.universal.tooltip.uses_per_hour_lubricant": "Uses §f%d mB/hr §7of §6Lubricant §7while working",
"gtceu.universal.tooltip.uses_per_op": "Uses §f%d EU/operation",
"gtceu.universal.tooltip.uses_per_second": "Uses §f%d EU/s §7while working",
"gtceu.universal.tooltip.uses_per_tick": "Uses §f%d EU/t §7while working",
"gtceu.universal.tooltip.uses_per_tick_steam": "Uses §f%d mB/t §7of §fSteam §7while working",
"gtceu.universal.tooltip.voltage_in": "§aVoltage IN: §f%d EU/t (%s§f)",
"gtceu.universal.tooltip.voltage_in_out": "§aVoltage IN/OUT: §f%d EU/t (%s§f)",
"gtceu.universal.tooltip.voltage_out": "§aVoltage OUT: §f%d EU/t (%s§f)",
"gtceu.universal.tooltip.working_area": "§bWorking Area: §f%dx%d",
"gtceu.universal.tooltip.working_area_chunks": "§bWorking Area: §f%dx%d Chunks",
"gtceu.universal.tooltip.working_area_chunks_max": "§bMax Working Area: §f%dx%d Chunks",
"gtceu.universal.tooltip.working_area_max": "§bMax Working Area: §f%dx%d",
"common.gtceu.tooltip.amperage_in": "§eAmperage IN: §f%dA",
"common.gtceu.tooltip.amperage_in_out": "§eAmperage IN/OUT: §f%dA",
"common.gtceu.tooltip.amperage_in_out_till": "§eAmperage IN/OUT up to: §f%dA",
"common.gtceu.tooltip.amperage_in_till": "§eAmperage IN up to: §f%dA",
"common.gtceu.tooltip.amperage_out": "§eAmperage OUT: §f%dA",
"common.gtceu.tooltip.amperage_out_till": "§eAmperage OUT up to: §f%dA",
"common.gtceu.tooltip.base_production_eut": "§eBase Production: §f%d EU/t",
"common.gtceu.tooltip.base_production_fluid": "§eBase Production: §f%d mB/t",
"machine.gtceu.miner.chunk_mode": "Chunk Mode: ",
"common.gtceu.tooltip.deprecated": "§4§lWARNING:§r§4 DEPRECATED. WILL BE REMOVED IN A FUTURE VERSION.§r",
"common.gtceu.tooltip.energy_storage_capacity": "§cEnergy Capacity: §r%d EU",
"common.gtceu.tooltip.energy_tier_range": "§aAllowed Voltage Tiers: §f%s §f- %s",
"common.gtceu.tooltip.fluid_storage_capacity": "§9Fluid Capacity: §f%d mB",
"common.gtceu.tooltip.fluid_storage_capacity_mult": "§9Fluid Capacity: §f%d §7Tanks, §f%d mB §7each",
"common.gtceu.tooltip.fluid_stored": "§2Fluid Stored: §f%s, %d mB",
"common.gtceu.tooltip.fluid_transfer_rate": "§bTransfer Rate: §f%d mB/t",
"common.gtceu.tooltip.item_storage_capacity": "§6Item Slots: §f%d",
"common.gtceu.tooltip.item_storage_total": "§6Item Capacity: §f%d items",
"common.gtceu.tooltip.item_stored": "§dItem Stored: §f%s, %d items",
"common.gtceu.tooltip.item_transfer_rate": "§bTransfer Rate: §f%d items/s",
"common.gtceu.tooltip.item_transfer_rate_stacks": "§bTransfer Rate: §f%d stacks/s",
"common.gtceu.tooltip.max_voltage_in": "§aMax Voltage IN: §f%d (%s§f)",
"common.gtceu.tooltip.max_voltage_in_out": "§aMax Voltage IN/OUT: §f%d EU/t (%s§f)",
"common.gtceu.tooltip.max_voltage_out": "§aMax Voltage OUT: §f%d (%s§f)",
"common.gtceu.tooltip.parallel": "§dMax Parallel: §f%d",
"common.gtceu.tooltip.produces_fluid": "§eProduces: §f%d mB/t",
"common.gtceu.tooltip.requires_redstone": "§4Requires Redstone power",
"machine.gtceu.miner.silk_touch": "Silk Touch: ",
"machine.gtceu.tooltip.terrain_resist": "This Machine will not explode when exposed to the Elements",
"common.gtceu.tooltip.uses_per_hour_lubricant": "Uses §f%d mB/hr §7of §6Lubricant §7while working",
"common.gtceu.tooltip.uses_per_op": "Uses §f%d EU/operation",
"common.gtceu.tooltip.uses_per_second": "Uses §f%d EU/s §7while working",
"common.gtceu.tooltip.uses_per_tick": "Uses §f%d EU/t §7while working",
"common.gtceu.tooltip.uses_per_tick_steam": "Uses §f%d mB/t §7of §fSteam §7while working",
"common.gtceu.tooltip.voltage_in": "§aVoltage IN: §f%d EU/t (%s§f)",
"common.gtceu.tooltip.voltage_in_out": "§aVoltage IN/OUT: §f%d EU/t (%s§f)",
"common.gtceu.tooltip.voltage_out": "§aVoltage OUT: §f%d EU/t (%s§f)",
"machine.gtceu.miner.working_area": "§bWorking Area: §f%dx%d",
"machine.gtceu.miner.working_area_chunks": "§bWorking Area: §f%dx%d Chunks",
"machine.gtceu.miner.working_area_chunks_max": "§bMax Working Area: §f%dx%d Chunks",
"machine.gtceu.miner.working_area_max": "§bMax Working Area: §f%dx%d",
"gui.gtceu.refund_all.desc": "Return Stored Contents to AE2",
"gui.gtceu.rename.desc": "Rename Pattern Buffer",
"gui.gtceu.share_inventory.desc.0": "Shares inserted items with all patterns within buffer!",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import com.gregtechceu.gtceu.api.machine.multiblock.MultiblockControllerMachine;
import com.gregtechceu.gtceu.api.sync_system.managed.ManagedSyncEntityBlock;
import com.gregtechceu.gtceu.common.machine.owner.MachineOwner;
import com.gregtechceu.gtceu.data.lang.LangUtil;
import com.gregtechceu.gtceu.utils.ExtendedUseOnContext;

import net.minecraft.MethodsReturnNonnullByDefault;
Expand Down Expand Up @@ -191,11 +192,12 @@ public ItemStack getCloneItemStack(BlockGetter level, BlockPos pos, BlockState s
@Override
public void appendHoverText(ItemStack stack, @Nullable BlockGetter level, List<Component> tooltip,
TooltipFlag flag) {
definition.getTooltipBuilder().accept(stack, tooltip);
String mainKey = definition.getId().toLanguageKey("machine", "tooltip");
if (Language.getInstance().has(mainKey)) {
tooltip.add(1, Component.translatable(mainKey));
if (Language.getInstance().has(mainKey) || Language.getInstance().has(mainKey + ".0")) {
Comment thread
gustovafing marked this conversation as resolved.
Outdated
var langs = LangUtil.getSingleOrMultiLang(mainKey);
tooltip.addAll(List.of(langs));
}
definition.getTooltipBuilder().accept(stack, tooltip);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,9 +95,9 @@ default void appendTooltips(@NotNull List<Component> tooltip, boolean showToolsI
getContainedAttributes().forEach(a -> a.appendContainerTooltips(tooltip::add));
} else if (isGasProof() || isCryoProof() || isPlasmaProof() || !getContainedAttributes().isEmpty()) {
if (showToolsInfo) {
tooltip.add(Component.translatable("gtceu.tooltip.tool_fluid_hold_shift"));
tooltip.add(Component.translatable("common.gtceu.tooltip.tool_fluid_hold_shift"));
} else {
tooltip.add(Component.translatable("gtceu.tooltip.fluid_pipe_hold_shift"));
tooltip.add(Component.translatable("common.gtceu.tooltip.fluid_pipe_hold_shift"));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public static String getTitle() {
}

public String getTooltip() {
return "gtceu.io." + localeName;
return "common.gtceu.io." + localeName;
}

public boolean support(IO io) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,12 @@
import com.gregtechceu.gtceu.api.item.tool.MaterialToolTier;
import com.gregtechceu.gtceu.api.registry.GTRegistries;
import com.gregtechceu.gtceu.api.registry.registrate.BuilderBase;
import com.gregtechceu.gtceu.api.registry.registrate.GTRegistrate;
import com.gregtechceu.gtceu.common.data.GTMaterials;
import com.gregtechceu.gtceu.common.data.GTMedicalConditions;
import com.gregtechceu.gtceu.integration.kjs.helpers.MaterialStackWrapper;
import com.gregtechceu.gtceu.utils.FormattingUtil;
import com.gregtechceu.gtceu.utils.GTMath;

import com.tterrag.registrate.providers.ProviderType;
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
import net.minecraft.network.chat.Component;
import net.minecraft.network.chat.MutableComponent;
import net.minecraft.resources.ResourceLocation;
Expand Down Expand Up @@ -165,6 +162,11 @@ public String getDefaultTranslation() {
return materialInfo.overriddenName != null ? materialInfo.overriddenName : toEnglishName(getName());
}

@ApiStatus.Internal
public Map<TagPrefix, String> getLangOverrides() {
return materialInfo.langOverrides;
}

public String getModid() {
return materialInfo.resourceLocation.getNamespace();
}
Expand Down Expand Up @@ -585,7 +587,6 @@ public static class Builder extends BuilderBase<Material> {

private Set<TagPrefix> ignoredTagPrefixes = null;
private final List<TagKey<Item>> itemTags = new ArrayList<>();
private final Map<TagPrefix, String> langOverrides = new Object2ObjectOpenHashMap<>();
/*
* Temporary data used to determine the final material formula tooltip.
*/
Expand Down Expand Up @@ -1854,7 +1855,7 @@ public Builder addDefaultEnchant(Enchantment enchant, int level) {
* Generated during your addon's datagen with key {@code item.<mod_id>.<item_id>}
*/
public Builder langOverride(TagPrefix prefix, String englishLang) {
langOverrides.put(prefix, englishLang);
materialInfo.langOverrides.put(prefix, englishLang);
return this;
}

Expand Down Expand Up @@ -1883,18 +1884,6 @@ public Material buildAndRegister() {
properties.removeProperty(HAZARD);
}

if (!langOverrides.isEmpty()) {
var registrate = GTRegistrate.createIgnoringListenerErrors(id.getNamespace());

registrate.addDataGenerator(ProviderType.LANG, (provider -> {
for (var entry: langOverrides.entrySet()) {
var key = String.format("item.%s.%s", id.getNamespace(),
entry.getKey().idPattern().formatted(id.getPath()));
provider.add(key, entry.getValue());
}
}));
}

var mat = new Material(materialInfo, properties, flags);
if (!itemTags.isEmpty()) {
mat.setItemTags(itemTags);
Expand Down Expand Up @@ -1935,6 +1924,10 @@ private static class MaterialInfo {
@Getter
private String overriddenName;

@Setter
@Getter
private Map<TagPrefix, String> langOverrides;

/**
* The colors of this Material.
* if any past index 0 are -1, they aren't used.
Expand Down
20 changes: 15 additions & 5 deletions src/main/java/com/gregtechceu/gtceu/api/data/tag/TagPrefix.java
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@

import com.tterrag.registrate.providers.ProviderType;
import com.tterrag.registrate.providers.RegistrateLangProvider;
import it.unimi.dsi.fastutil.objects.ObjectOpenHashSet;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.core.registries.Registries;
import net.minecraft.locale.Language;
Expand Down Expand Up @@ -66,13 +67,16 @@

import java.util.*;
import java.util.function.*;
import java.util.stream.Collectors;

import static com.gregtechceu.gtceu.api.data.tag.TagPrefix.Conditions.*;

@SuppressWarnings("unused")
@Accessors(chain = true, fluent = true)
public class TagPrefix {

private static final Set<String> namespaces = new ObjectOpenHashSet<>();

static {
GTRegistries.TAG_PREFIXES.unfreeze();
}
Expand Down Expand Up @@ -1116,8 +1120,11 @@ public TagPrefix(ResourceLocation id, boolean invertedName) {

// TODO actual datagen once we switch to registrate/forge registries

GTRegistrate registrate = GTRegistrate.createIgnoringListenerErrors(id.getNamespace());
registrate.addDataGenerator(ProviderType.LANG, this::generateTagPrefixLang);
if (!namespaces.contains(this.id.getNamespace())) {
GTRegistrate registrate = GTRegistrate.createIgnoringListenerErrors(id.getNamespace());
registrate.addDataGenerator(ProviderType.LANG, (provider -> generateTagPrefixLang(provider, this.id.getNamespace())));
namespaces.add(this.id.getNamespace());
}
}

public static TagPrefix oreTagPrefix(String name, TagKey<Block> miningToolTag) {
Expand Down Expand Up @@ -1458,8 +1465,11 @@ public interface BlockItemConstructor {
BlockItem create(Block block, Item.Properties properties, TagPrefix prefix, Material material);
}

private void generateTagPrefixLang(RegistrateLangProvider provider) {
provider.add(getUnlocalizedName(), langValue);
if (polymerLangValue != null) provider.add(("tagprefix.%s.polymer.%s").formatted(id.getNamespace(), id.getPath()), polymerLangValue);
private static void generateTagPrefixLang(RegistrateLangProvider provider, String namespace) {
var tagPrefixes = GTRegistries.TAG_PREFIXES.values().stream().filter(f -> f.id.getNamespace().equals(namespace)).collect(Collectors.toSet());
for (TagPrefix prefix: tagPrefixes) {
provider.add(prefix.getUnlocalizedName(), prefix.langValue);
if (prefix.polymerLangValue != null) provider.add(("tagprefix.%s.polymer.%s").formatted(prefix.id.getNamespace(), prefix.id.getPath()), prefix.polymerLangValue);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,7 @@ public static void addCurrentChargeTooltip(List<Component> tooltip, long current
if (durationCurrent.getSeconds() <= 60) {
maxChargeTime = durationMax.getSeconds();
currentChargeTime = durationCurrent.toSeconds();
unitKey = "gtceu.gui.seconds";
unitKey = "common.gtceu.seconds";
} else if (durationCurrent.toMinutes() <= 60) {
maxChargeTime = durationMax.toMinutes();
currentChargeTime = durationCurrent.toMinutes();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ public FilteredFluidContainer(int capacity, boolean allowPartialFill, Predicate<
public void appendHoverText(ItemStack stack, @Nullable Level level, List<Component> tooltipComponents,
TooltipFlag isAdvanced) {
FluidUtil.getFluidContained(stack).ifPresent(fluid -> tooltipComponents
.add(Component.translatable("gtceu.universal.tooltip.fluid_stored", fluid.getDisplayName(),
.add(Component.translatable("common.gtceu.tooltip.fluid_stored", fluid.getDisplayName(),
fluid.getAmount())));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -76,12 +76,12 @@ public void appendHoverText(ItemStack stack, @Nullable Level level, List<Compone
if (stack.hasTag()) {
FluidUtil.getFluidContained(stack).ifPresent(tank -> {
tooltipComponents
.add(Component.translatable("gtceu.universal.tooltip.fluid_stored", tank.getDisplayName(),
.add(Component.translatable("common.gtceu.tooltip.fluid_stored", tank.getDisplayName(),
tank.getAmount()));
TooltipsHandler.appendFluidTooltips(tank, tooltipComponents::add, null);
});
} else {
tooltipComponents.add(Component.translatable("gtceu.universal.tooltip.fluid_storage_capacity",
tooltipComponents.add(Component.translatable("common.gtceu.tooltip.fluid_storage_capacity",
FormattingUtil.formatNumbers(capacity)));
}
if (GTUtil.isShiftDown()) {
Expand All @@ -93,7 +93,7 @@ public void appendHoverText(ItemStack stack, @Nullable Level level, List<Compone
if (cryoProof) tooltipComponents.add(Component.translatable("tooltip.gtceu.fluid_pipe.cryo_proof"));
if (acidProof) tooltipComponents.add(Component.translatable("tooltip.gtceu.fluid_pipe.acid_proof"));
} else if (gasProof || cryoProof || plasmaProof || acidProof) {
tooltipComponents.add(Component.translatable("gtceu.tooltip.fluid_pipe_hold_shift"));
tooltipComponents.add(Component.translatable("common.gtceu.tooltip.fluid_pipe_hold_shift"));
}
}
}
Loading
Loading