Skip to content

Commit

Permalink
Added data translations for origins and layers
Browse files Browse the repository at this point in the history
  • Loading branch information
apace100 committed Aug 11, 2020
1 parent 0e22028 commit 5e1eaaf
Show file tree
Hide file tree
Showing 5 changed files with 75 additions and 7 deletions.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ org.gradle.jvmargs=-Xmx1G
loader_version=0.9.1+build.205

# Mod Properties
mod_version = 1.16.2-0.3.4
mod_version = 1.16.2-0.3.5
maven_group = io.github.apace100.origins
archives_base_name = Origins

Expand Down
46 changes: 44 additions & 2 deletions src/main/java/io/github/apace100/origins/origin/Origin.java
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ public static HashMap<OriginLayer, Origin> get(PlayerEntity player) {
private final int loadingPriority;
private List<OriginUpgrade> upgrades = new LinkedList<>();

private String nameTranslationKey;
private String descriptionTranslationKey;

protected Origin(Identifier id, ItemConvertible item, Impact impact, int order, int loadingPriority) {
this.identifier = id;
this.displayItem = new ItemStack(item);
Expand Down Expand Up @@ -106,6 +109,16 @@ protected Origin setUnchoosable() {
return this;
}

private Origin setName(String name) {
this.nameTranslationKey = name;
return this;
}

private Origin setDescription(String description) {
this.descriptionTranslationKey = description;
return this;
}

public boolean hasPowerType(PowerType<?> powerType) {
return this.powerTypes.contains(powerType);
}
Expand All @@ -130,12 +143,28 @@ public ItemStack getDisplayItem() {
return displayItem;
}

public String getOrCreateNameTranslationKey() {
if(nameTranslationKey == null || nameTranslationKey.isEmpty()) {
nameTranslationKey =
"origin." + identifier.getNamespace() + "." + identifier.getPath() + ".name";
}
return nameTranslationKey;
}

public TranslatableText getName() {
return new TranslatableText("origin." + identifier.getNamespace() + "." + identifier.getPath() + ".name");
return new TranslatableText(getOrCreateNameTranslationKey());
}

public String getOrCreateDescriptionTranslationKey() {
if(descriptionTranslationKey == null || descriptionTranslationKey.isEmpty()) {
descriptionTranslationKey =
"origin." + identifier.getNamespace() + "." + identifier.getPath() + ".description";
}
return descriptionTranslationKey;
}

public TranslatableText getDescription() {
return new TranslatableText("origin." + identifier.getNamespace() + "." + identifier.getPath() + ".description");
return new TranslatableText(getOrCreateDescriptionTranslationKey());
}

public int getOrder() {
Expand All @@ -155,6 +184,8 @@ public void write(PacketByteBuf buffer) {
}
buffer.writeInt(this.upgrades.size());
this.upgrades.forEach(upgrade -> upgrade.write(buffer));
buffer.writeString(getOrCreateNameTranslationKey());
buffer.writeString(getOrCreateDescriptionTranslationKey());
}

@Environment(EnvType.CLIENT)
Expand Down Expand Up @@ -195,6 +226,9 @@ public static Origin read(PacketByteBuf buffer) {
origin.addUpgrade(OriginUpgrade.read(buffer));
}

origin.setName(buffer.readString());
origin.setDescription(buffer.readString());

return origin;
}

Expand Down Expand Up @@ -244,6 +278,14 @@ public static Origin fromJson(Identifier id, JsonObject json) {
JsonArray array = json.getAsJsonArray("upgrades");
array.forEach(jsonElement -> origin.addUpgrade(OriginUpgrade.fromJson(jsonElement)));
}

if(json.has("name")) {
origin.setName(JsonHelper.getString(json, "name", ""));
}

if(json.has("description")) {
origin.setDescription(JsonHelper.getString(json, "description", ""));
}
return origin;
}

Expand Down
28 changes: 26 additions & 2 deletions src/main/java/io/github/apace100/origins/origin/OriginLayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class OriginLayer implements Comparable<OriginLayer> {

Expand All @@ -20,8 +21,17 @@ public class OriginLayer implements Comparable<OriginLayer> {
private List<Identifier> origins;
private boolean enabled = false;

private String nameTranslationKey;

public String getOrCreateTranslationKey() {
if(nameTranslationKey == null || nameTranslationKey.isEmpty()) {
this.nameTranslationKey = "layer." + identifier.getNamespace() + "." + identifier.getPath();
}
return nameTranslationKey;
}

public String getTranslationKey() {
return "layer." + identifier.getNamespace() + "." + identifier.getPath();
return getOrCreateTranslationKey();
}

public Identifier getIdentifier() {
Expand All @@ -33,7 +43,15 @@ public boolean isEnabled() {
}

public List<Identifier> getOrigins() {
return origins;
List<Identifier> filteredOrigins = origins.stream().filter(OriginRegistry::contains).collect(Collectors.toList());
if(filteredOrigins.size() < origins.size()) {
for (Identifier id : origins) {
if(!OriginRegistry.contains(id)) {
Origins.LOGGER.error("Origin layer \"" + identifier.toString() + "\" contained unregistered origin: \"" + id.toString() + "\" (skipping)");
}
}
}
return filteredOrigins;
}

public boolean contains(Origin origin) {
Expand All @@ -55,6 +73,9 @@ public void merge(JsonObject json) {
Origins.LOGGER.info("Added origin " + identifier.toString() + " to layer " + this.identifier.toString());
});
}
if(json.has("name")) {
this.nameTranslationKey = JsonHelper.getString(json, "name", "");
}
}

@Override
Expand Down Expand Up @@ -84,6 +105,7 @@ public void write(PacketByteBuf buffer) {
buffer.writeBoolean(enabled);
buffer.writeInt(origins.size());
origins.forEach(id -> buffer.writeString(id.toString()));
buffer.writeString(getOrCreateTranslationKey());
}

@Environment(EnvType.CLIENT)
Expand All @@ -97,6 +119,7 @@ public static OriginLayer read(PacketByteBuf buffer) {
for(int i = 0; i < originCount; i++) {
layer.origins.add(Identifier.tryParse(buffer.readString()));
}
layer.nameTranslationKey = buffer.readString();
return layer;
}

Expand All @@ -117,6 +140,7 @@ public static OriginLayer fromJson(Identifier id, JsonObject json) {
layer.origins = list;
layer.enabled = enabled;
layer.identifier = id;
layer.nameTranslationKey = JsonHelper.getString(json, "name", "");
return layer;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import net.minecraft.text.*;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.util.Language;

import java.util.ArrayList;
import java.util.List;
Expand Down Expand Up @@ -189,7 +190,7 @@ private void renderOriginContent(MatrixStack matrices, int mouseX, int mouseY) {
if(p.isHidden()) {
continue;
}
MutableText name = (MutableText) textRenderer.trimToWidth(p.getName().formatted(Formatting.UNDERLINE), windowWidth - 36);
OrderedText name = Language.getInstance().reorder(textRenderer.trimToWidth(p.getName().formatted(Formatting.UNDERLINE), windowWidth - 36));
Text desc = p.getDescription();
List<OrderedText> drawLines = textRenderer.wrapLines(desc, windowWidth - 36);
if(y >= startY - 24 && y <= endY + 12) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import net.minecraft.text.*;
import net.minecraft.util.Formatting;
import net.minecraft.util.Identifier;
import net.minecraft.util.Language;
import net.minecraft.util.Pair;

import java.util.ArrayList;
Expand Down Expand Up @@ -165,7 +166,7 @@ private void renderOriginContent(MatrixStack matrices, int mouseX, int mouseY) {
if(p.isHidden()) {
continue;
}
MutableText name = (MutableText) textRenderer.trimToWidth(p.getName().formatted(Formatting.UNDERLINE), windowWidth - 36);
OrderedText name = Language.getInstance().reorder(textRenderer.trimToWidth(p.getName().formatted(Formatting.UNDERLINE), windowWidth - 36));
Text desc = p.getDescription();
List<OrderedText> drawLines = textRenderer.wrapLines(desc, windowWidth - 36);
if(y >= startY - 24 && y <= endY + 12) {
Expand Down

0 comments on commit 5e1eaaf

Please sign in to comment.