diff options
Diffstat (limited to 'enigma/src/main/java')
2 files changed, 21 insertions, 10 deletions
diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java index 7570d4b..378ed98 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/enigma/EnigmaMappingsWriter.java | |||
| @@ -55,8 +55,8 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 55 | @Override | 55 | @Override |
| 56 | public void write(EntryTree<EntryMapping> mappings, MappingDelta<EntryMapping> delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { | 56 | public void write(EntryTree<EntryMapping> mappings, MappingDelta<EntryMapping> delta, Path path, ProgressListener progress, MappingSaveParameters saveParameters) { |
| 57 | Collection<ClassEntry> classes = mappings.getRootNodes() | 57 | Collection<ClassEntry> classes = mappings.getRootNodes() |
| 58 | .filter(entry -> entry instanceof ClassEntry) | 58 | .filter(entry -> entry.getEntry() instanceof ClassEntry) |
| 59 | .map(entry -> (ClassEntry) entry) | 59 | .map(entry -> (ClassEntry) entry.getEntry()) |
| 60 | .collect(Collectors.toList()); | 60 | .collect(Collectors.toList()); |
| 61 | 61 | ||
| 62 | progress.init(classes.size(), I18n.translate("progress.mappings.enigma_file.writing")); | 62 | progress.init(classes.size(), I18n.translate("progress.mappings.enigma_file.writing")); |
| @@ -148,7 +148,7 @@ public enum EnigmaMappingsWriter implements MappingsWriter { | |||
| 148 | private void deleteDeadPackages(Path root, Path packagePath) throws IOException { | 148 | private void deleteDeadPackages(Path root, Path packagePath) throws IOException { |
| 149 | for (int i = packagePath.getNameCount() - 1; i >= 0; i--) { | 149 | for (int i = packagePath.getNameCount() - 1; i >= 0; i--) { |
| 150 | Path subPath = packagePath.subpath(0, i + 1); | 150 | Path subPath = packagePath.subpath(0, i + 1); |
| 151 | Path packagePart = root.resolve(subPath); | 151 | Path packagePart = root.resolve(subPath.toString()); |
| 152 | if (isEmpty(packagePart)) { | 152 | if (isEmpty(packagePart)) { |
| 153 | Files.deleteIfExists(packagePart); | 153 | Files.deleteIfExists(packagePart); |
| 154 | } | 154 | } |
diff --git a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Reader.java b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Reader.java index dc25569..dc3246d 100644 --- a/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Reader.java +++ b/enigma/src/main/java/cuchaz/enigma/translation/mapping/serde/tinyv2/TinyV2Reader.java | |||
| @@ -71,13 +71,7 @@ public final class TinyV2Reader implements MappingsReader { | |||
| 71 | for (int i = INDENT_CLEAR_START[indent]; i < STATE_SIZE; i++) { | 71 | for (int i = INDENT_CLEAR_START[indent]; i < STATE_SIZE; i++) { |
| 72 | state.clear(i); | 72 | state.clear(i); |
| 73 | if (holds[i] != null) { | 73 | if (holds[i] != null) { |
| 74 | RawEntryMapping mapping = holds[i].getMapping(); | 74 | bakeHeld(mappings, holds[i]); |
| 75 | if (mapping != null) { | ||
| 76 | EntryMapping baked = mapping.bake(); | ||
| 77 | if (baked != null) { | ||
| 78 | mappings.insert(holds[i].getEntry(), baked); | ||
| 79 | } | ||
| 80 | } | ||
| 81 | holds[i] = null; | 75 | holds[i] = null; |
| 82 | } | 76 | } |
| 83 | } | 77 | } |
| @@ -187,9 +181,26 @@ public final class TinyV2Reader implements MappingsReader { | |||
| 187 | } | 181 | } |
| 188 | } | 182 | } |
| 189 | 183 | ||
| 184 | //bake any remainders | ||
| 185 | for (MappingPair<? extends Entry<?>, RawEntryMapping> hold : holds) { | ||
| 186 | if (hold != null) { | ||
| 187 | bakeHeld(mappings, hold); | ||
| 188 | } | ||
| 189 | } | ||
| 190 | |||
| 190 | return mappings; | 191 | return mappings; |
| 191 | } | 192 | } |
| 192 | 193 | ||
| 194 | private static void bakeHeld(EntryTree<EntryMapping> mappings, MappingPair<? extends Entry<?>, RawEntryMapping> hold2) { | ||
| 195 | RawEntryMapping mapping = hold2.getMapping(); | ||
| 196 | if (mapping != null) { | ||
| 197 | EntryMapping baked = mapping.bake(); | ||
| 198 | if (baked != null) { | ||
| 199 | mappings.insert(hold2.getEntry(), baked); | ||
| 200 | } | ||
| 201 | } | ||
| 202 | } | ||
| 203 | |||
| 193 | private void unsupportKey(String[] parts) { | 204 | private void unsupportKey(String[] parts) { |
| 194 | throw new IllegalArgumentException("Unsupported key " + parts[0]); | 205 | throw new IllegalArgumentException("Unsupported key " + parts[0]); |
| 195 | } | 206 | } |