From c0051e62cb75d031c91f4f30f4a2456b2f9b8241 Mon Sep 17 00:00:00 2001 From: bQUARKz Date: Thu, 19 Mar 2026 09:22:12 +0000 Subject: [PATCH] asset details (WIP) --- .../p/packer/dtos/PackerAssetDetailsDTO.java | 3 -- .../packer/models/PackerAssetDeclaration.java | 2 - .../p/packer/models/PackerAssetDetails.java | 3 -- .../FileSystemPackerWorkspaceService.java | 7 +-- .../PackerAssetDeclarationParser.java | 54 ++++--------------- .../services/PackerAssetDetailsService.java | 25 ++------- .../services/PackerReadMessageMapper.java | 1 - .../PackerRuntimeAssetMaterializerTest.java | 1 - .../FileSystemPackerWorkspaceServiceTest.java | 8 +-- .../PackerAssetDeclarationParserTest.java | 5 +- .../PackerAssetDetailsServiceTest.java | 8 ++- .../services/PackerRuntimeRegistryTest.java | 1 - .../invalid-version/assets/bad/asset.json | 3 -- .../managed-basic/assets/ui/atlas/asset.json | 3 -- .../assets/orphans/ui_sounds/asset.json | 3 -- .../assets/orphans/ui_sounds/asset.json | 3 -- .../read-mixed/assets/ui/atlas/asset.json | 3 -- .../java/p/studio/utilities/i18n/I18n.java | 1 - .../assets/details/AssetDetailsControl.java | 1 - .../messages/AssetWorkspaceAssetDetails.java | 3 -- .../main/resources/i18n/messages.properties | 1 - test-projects/main/.studio/activities.json | 8 +-- .../main/assets/.prometeu/cache.json | 8 +-- test-projects/main/assets/bigode/asset.json | 1 - .../main/assets/recovered/atlas2/asset.json | 1 - .../main/assets/recovered/bbb2/asset.json | 1 - .../recovered/one-more-atlas/asset.json | 1 - .../main/assets/ui/atlas2/asset.json | 1 - .../assets/ui/atlas2/confirm.palette.json | 4 +- .../main/assets/ui/atlas2/confirm.tile.json | 4 +- .../main/assets/ui/one-more-atlas/asset.json | 1 - test-projects/main/assets/ui/sound/asset.json | 1 - 32 files changed, 35 insertions(+), 135 deletions(-) diff --git a/prometeu-packer/prometeu-packer-api/src/main/java/p/packer/dtos/PackerAssetDetailsDTO.java b/prometeu-packer/prometeu-packer-api/src/main/java/p/packer/dtos/PackerAssetDetailsDTO.java index e2d91a07..c5b54056 100644 --- a/prometeu-packer/prometeu-packer-api/src/main/java/p/packer/dtos/PackerAssetDetailsDTO.java +++ b/prometeu-packer/prometeu-packer-api/src/main/java/p/packer/dtos/PackerAssetDetailsDTO.java @@ -3,7 +3,6 @@ package p.packer.dtos; import p.packer.messages.assets.OutputCodecCatalog; import p.packer.messages.assets.OutputFormatCatalog; -import java.nio.file.Path; import java.util.List; import java.util.Map; import java.util.Objects; @@ -16,7 +15,6 @@ public record PackerAssetDetailsDTO( Map> codecConfigurationFieldsByCodec, List metadataFields, PackerBankCompositionDetailsDTO bankComposition, - Map> inputsByRole, List diagnostics) { public PackerAssetDetailsDTO { @@ -27,7 +25,6 @@ public record PackerAssetDetailsDTO( codecConfigurationFieldsByCodec = Map.copyOf(Objects.requireNonNull(codecConfigurationFieldsByCodec, "codecConfigurationFieldsByCodec")); metadataFields = List.copyOf(Objects.requireNonNull(metadataFields, "metadataFields")); bankComposition = Objects.requireNonNull(bankComposition, "bankComposition"); - inputsByRole = Map.copyOf(Objects.requireNonNull(inputsByRole, "inputsByRole")); diagnostics = List.copyOf(Objects.requireNonNull(diagnostics, "diagnostics")); } } diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDeclaration.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDeclaration.java index b3d5e73a..4a71685e 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDeclaration.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDeclaration.java @@ -14,7 +14,6 @@ public record PackerAssetDeclaration( String assetUuid, String name, AssetFamilyCatalog assetFamily, - Map> inputsByRole, List artifacts, OutputFormatCatalog outputFormat, OutputCodecCatalog outputCodec, @@ -28,7 +27,6 @@ public record PackerAssetDeclaration( assetUuid = Objects.requireNonNull(assetUuid, "assetUuid").trim(); name = Objects.requireNonNull(name, "name").trim(); assetFamily = Objects.requireNonNull(assetFamily, "assetFamily"); - inputsByRole = Map.copyOf(Objects.requireNonNull(inputsByRole, "inputsByRole")); artifacts = List.copyOf(Objects.requireNonNull(artifacts, "artifacts")); outputFormat = Objects.requireNonNull(outputFormat, "outputFormat"); outputCodec = Objects.requireNonNull(outputCodec, "outputCodec"); diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDetails.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDetails.java index fc9e57f9..f1f1bacb 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDetails.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/models/PackerAssetDetails.java @@ -3,7 +3,6 @@ package p.packer.models; import p.packer.messages.assets.OutputCodecCatalog; import p.packer.messages.assets.OutputFormatCatalog; -import java.nio.file.Path; import java.util.List; import java.util.Map; import java.util.Objects; @@ -16,7 +15,6 @@ public record PackerAssetDetails( Map> codecConfigurationFieldsByCodec, List metadataFields, PackerBankCompositionDetails bankComposition, - Map> inputsByRole, List diagnostics) { public PackerAssetDetails { @@ -27,7 +25,6 @@ public record PackerAssetDetails( codecConfigurationFieldsByCodec = Map.copyOf(Objects.requireNonNull(codecConfigurationFieldsByCodec, "codecConfigurationFieldsByCodec")); metadataFields = List.copyOf(Objects.requireNonNull(metadataFields, "metadataFields")); bankComposition = Objects.requireNonNull(bankComposition, "bankComposition"); - inputsByRole = Map.copyOf(Objects.requireNonNull(inputsByRole, "inputsByRole")); diagnostics = List.copyOf(Objects.requireNonNull(diagnostics, "diagnostics")); } } diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/FileSystemPackerWorkspaceService.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/FileSystemPackerWorkspaceService.java index ece5cd0f..6f30fd3c 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/FileSystemPackerWorkspaceService.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/FileSystemPackerWorkspaceService.java @@ -480,7 +480,6 @@ public final class FileSystemPackerWorkspaceService implements PackerWorkspaceSe manifest.put("asset_uuid", assetUuid); manifest.put("name", request.assetName()); manifest.put("type", request.assetFamily().manifestType()); - manifest.put("inputs", Map.of()); manifest.put("output", Map.of( "format", request.outputFormat().manifestValue(), "codec", request.outputCodec().manifestValue())); @@ -760,8 +759,7 @@ public final class FileSystemPackerWorkspaceService implements PackerWorkspaceSe } private void patchManifestArtifacts(ObjectNode manifest, ApplyBankCompositionRequest request) { - final ObjectNode inputsNode = mutableObject(manifest, "inputs"); - inputsNode.removeAll(); + manifest.remove("inputs"); final var artifactsNode = manifest.putArray("artifacts"); for (int index = 0; index < request.selectedFiles().size(); index += 1) { @@ -799,8 +797,7 @@ public final class FileSystemPackerWorkspaceService implements PackerWorkspaceSe } private void clearManifestBankComposition(ObjectNode manifest) { - final ObjectNode inputsNode = mutableObject(manifest, "inputs"); - inputsNode.removeAll(); + manifest.remove("inputs"); manifest.putArray("artifacts"); } diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDeclarationParser.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDeclarationParser.java index 9a337cbf..6de61f28 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDeclarationParser.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDeclarationParser.java @@ -45,7 +45,7 @@ public final class PackerAssetDeclarationParser { final var assetUuid = requiredText(root, "asset_uuid", diagnostics, manifestPath); final var name = requiredText(root, "name", diagnostics, manifestPath); final var assetFamily = requiredAssetFamily(root, diagnostics, manifestPath); - final var inputsByRole = requiredInputs(root.path("inputs"), diagnostics, manifestPath); + rejectLegacyInputs(root.path("inputs"), diagnostics, manifestPath); final var artifacts = optionalArtifacts(root.path("artifacts"), diagnostics, manifestPath); final var outputFormat = requiredOutputFormat(root.path("output"), diagnostics, manifestPath); final var outputCodec = requiredOutputCodec(root.path("output"), diagnostics, manifestPath); @@ -71,7 +71,6 @@ public final class PackerAssetDeclarationParser { assetUuid, name, assetFamily, - inputsByRole, artifacts, outputFormat, outputCodec, @@ -229,52 +228,19 @@ public final class PackerAssetDeclarationParser { return Map.copyOf(metadata); } - private Map> requiredInputs( + private void rejectLegacyInputs( final JsonNode node, final List diagnostics, final Path manifestPath) { - if (!node.isObject()) { - diagnostics.add(missingOrInvalid("inputs", "object of input roles", manifestPath)); - return Map.of(); + if (node.isMissingNode() || node.isNull()) { + return; } - - final Map> result = new LinkedHashMap<>(); - node.fields().forEachRemaining(entry -> { - if (!entry.getValue().isArray()) { - diagnostics.add(new PackerDiagnostic( - PackerDiagnosticSeverity.ERROR, - PackerDiagnosticCategory.STRUCTURAL, - "Input role '" + entry.getKey() + "' must be an array of relative paths.", - manifestPath, - true)); - return; - } - final List values = new ArrayList<>(); - entry.getValue().forEach(value -> { - if (!value.isTextual() || value.asText().isBlank()) { - diagnostics.add(new PackerDiagnostic( - PackerDiagnosticSeverity.ERROR, - PackerDiagnosticCategory.STRUCTURAL, - "Input role '" + entry.getKey() + "' must contain only non-blank path strings.", - manifestPath, - true)); - return; - } - final String relativePath = value.asText().trim(); - if (!isTrustedRelativePath(relativePath)) { - diagnostics.add(new PackerDiagnostic( - PackerDiagnosticSeverity.ERROR, - PackerDiagnosticCategory.STRUCTURAL, - "Input role '" + entry.getKey() + "' contains an untrusted path outside the asset root.", - manifestPath, - true)); - return; - } - values.add(relativePath); - }); - result.put(entry.getKey(), List.copyOf(values)); - }); - return Map.copyOf(result); + diagnostics.add(new PackerDiagnostic( + PackerDiagnosticSeverity.ERROR, + PackerDiagnosticCategory.STRUCTURAL, + "Field 'inputs' is no longer supported; use 'artifacts' instead.", + manifestPath, + true)); } private List optionalArtifacts( diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDetailsService.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDetailsService.java index 4f210b0b..3e03fd1a 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDetailsService.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerAssetDetailsService.java @@ -80,7 +80,6 @@ public final class PackerAssetDetailsService { outputContract.codecConfigurationFieldsByCodec(), metadataFields(outputContract.metadataFields(), declaration.outputMetadata()), resolveBankCompositionDetails(runtimeAsset, declaration), - resolveInputs(resolved.assetRoot(), declaration.inputsByRole()), diagnostics); return new GetAssetDetailsResult( diagnostics.stream().anyMatch(PackerDiagnostic::blocking) ? PackerOperationStatus.PARTIAL : PackerOperationStatus.SUCCESS, @@ -120,7 +119,6 @@ public final class PackerAssetDetailsService { Map.of(OutputCodecCatalog.NONE, List.of()), List.of(), PackerBankCompositionDetails.EMPTY, - Map.of(), diagnostics); return new GetAssetDetailsResult( PackerOperationStatus.FAILED, @@ -129,16 +127,6 @@ public final class PackerAssetDetailsService { PackerReadMessageMapper.toDiagnosticDTOs(diagnostics)); } - private Map> resolveInputs( - final Path assetRoot, - final Map> inputsByRole) { - final Map> resolved = new LinkedHashMap<>(); - inputsByRole.forEach((role, inputs) -> resolved.put( - role, - inputs.stream().map(input -> assetRoot.resolve(input).toAbsolutePath().normalize()).toList())); - return Map.copyOf(resolved); - } - private PackerBankCompositionDetails resolveBankCompositionDetails( final PackerRuntimeAsset runtimeAsset, final PackerAssetDeclaration declaration) { @@ -163,15 +151,10 @@ public final class PackerAssetDetailsService { } private List selectedPathsFor(PackerAssetDeclaration declaration) { - if (!declaration.artifacts().isEmpty()) { - return declaration.artifacts().stream() - .sorted(Comparator.comparingInt(PackerAssetArtifactSelection::index)) - .map(PackerAssetArtifactSelection::file) - .toList(); - } - final List selected = new ArrayList<>(); - declaration.inputsByRole().values().forEach(selected::addAll); - return List.copyOf(selected); + return declaration.artifacts().stream() + .sorted(Comparator.comparingInt(PackerAssetArtifactSelection::index)) + .map(PackerAssetArtifactSelection::file) + .toList(); } private Optional resolveSelectedBankFile( diff --git a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerReadMessageMapper.java b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerReadMessageMapper.java index dc11edb4..81658406 100644 --- a/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerReadMessageMapper.java +++ b/prometeu-packer/prometeu-packer-v1/src/main/java/p/packer/services/PackerReadMessageMapper.java @@ -32,7 +32,6 @@ public final class PackerReadMessageMapper { toCodecConfigurationFieldsByCodecDTO(details.codecConfigurationFieldsByCodec()), toCodecConfigurationFieldDTOs(details.metadataFields()), toBankCompositionDetailsDTO(details.bankComposition()), - details.inputsByRole(), toDiagnosticDTOs(details.diagnostics())); } diff --git a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerRuntimeAssetMaterializerTest.java b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerRuntimeAssetMaterializerTest.java index a14b11cc..31d3d910 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerRuntimeAssetMaterializerTest.java +++ b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/repositories/PackerRuntimeAssetMaterializerTest.java @@ -73,7 +73,6 @@ final class PackerRuntimeAssetMaterializerTest { "uuid", "asset", AssetFamilyCatalog.TILE_BANK, - Map.of(), List.of(), OutputFormatCatalog.TILES_INDEXED_V1, OutputCodecCatalog.NONE, diff --git a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/FileSystemPackerWorkspaceServiceTest.java b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/FileSystemPackerWorkspaceServiceTest.java index 4fb2f948..d1e88f88 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/FileSystemPackerWorkspaceServiceTest.java +++ b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/FileSystemPackerWorkspaceServiceTest.java @@ -271,8 +271,7 @@ final class FileSystemPackerWorkspaceServiceTest { assertTrue(updateResult.success()); final var manifest = MAPPER.readTree(assetRoot.resolve("asset.json").toFile()); - assertTrue(manifest.path("inputs").isObject()); - assertTrue(manifest.path("inputs").isEmpty()); + assertTrue(manifest.path("inputs").isMissingNode()); assertTrue(manifest.path("artifacts").isArray()); assertTrue(manifest.path("artifacts").isEmpty()); @@ -304,8 +303,7 @@ final class FileSystemPackerWorkspaceServiceTest { assertEquals(1, loader.loadCount()); final var manifest = MAPPER.readTree(assetRoot.resolve("asset.json").toFile()); - assertTrue(manifest.path("inputs").isObject()); - assertTrue(manifest.path("inputs").isEmpty()); + assertTrue(manifest.path("inputs").isMissingNode()); assertEquals("cancel.png", manifest.path("artifacts").get(0).path("file").asText()); assertEquals(0, manifest.path("artifacts").get(0).path("index").asInt()); assertEquals("confirm.png", manifest.path("artifacts").get(1).path("file").asText()); @@ -497,7 +495,6 @@ final class FileSystemPackerWorkspaceServiceTest { "asset_uuid": "shared-uuid", "name": "ui_atlas", "type": "IMAGE/bank", - "inputs": {}, "output": { "format": "TILES/indexed_v1", "codec": "none" @@ -513,7 +510,6 @@ final class FileSystemPackerWorkspaceServiceTest { "asset_uuid": "shared-uuid", "name": "ui_clone", "type": "IMAGE/bank", - "inputs": {}, "output": { "format": "TILES/indexed_v1", "codec": "none" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDeclarationParserTest.java b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDeclarationParserTest.java index 22a25ff1..70680f0b 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDeclarationParserTest.java +++ b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDeclarationParserTest.java @@ -62,7 +62,7 @@ final class PackerAssetDeclarationParserTest { } @Test - void rejectsUntrustedInputPaths() throws Exception { + void rejectsLegacyInputsField() throws Exception { final Path manifest = tempDir.resolve("asset.json"); Files.writeString(manifest, """ { @@ -79,7 +79,7 @@ final class PackerAssetDeclarationParserTest { final var result = parser.parse(manifest); assertFalse(result.valid()); - assertTrue(result.diagnostics().stream().anyMatch(diagnostic -> diagnostic.message().contains("untrusted path"))); + assertTrue(result.diagnostics().stream().anyMatch(diagnostic -> diagnostic.message().contains("no longer supported"))); } @Test @@ -91,7 +91,6 @@ final class PackerAssetDeclarationParserTest { "asset_uuid": "uuid-video", "name": "bad_asset", "type": "video_bank", - "inputs": { "sprites": ["atlas.png"] }, "output": { "format": "TILES/indexed_v1", "codec": "NONE" }, "preload": { "enabled": true } } diff --git a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDetailsServiceTest.java b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDetailsServiceTest.java index 1087c92a..1b8d58e8 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDetailsServiceTest.java +++ b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerAssetDetailsServiceTest.java @@ -64,8 +64,8 @@ final class PackerAssetDetailsServiceTest { final ObjectMapper mapper = new ObjectMapper(); final ObjectNode manifest = (ObjectNode) mapper.readTree(manifestPath.toFile()); - final ObjectNode inputs = manifest.putObject("inputs"); - inputs.putArray("sprites").add("confirm.png"); + final var artifacts = manifest.putArray("artifacts"); + artifacts.addObject().put("file", "confirm.png").put("index", 0); mapper.writerWithDefaultPrettyPrinter().writeValue(manifestPath.toFile(), manifest); final PackerAssetDetailsService service = service(); @@ -81,7 +81,7 @@ final class PackerAssetDetailsServiceTest { } @Test - void prefersArtifactsSelectionOrderOverLegacyInputs() throws Exception { + void prefersArtifactsSelectionOrder() throws Exception { final Path projectRoot = copyFixture("workspaces/managed-basic", tempDir.resolve("managed-artifacts-order")); final Path assetRoot = projectRoot.resolve("assets/ui/atlas"); final BufferedImage tile = new BufferedImage(16, 16, BufferedImage.TYPE_INT_ARGB); @@ -91,8 +91,6 @@ final class PackerAssetDetailsServiceTest { final ObjectMapper mapper = new ObjectMapper(); final ObjectNode manifest = (ObjectNode) mapper.readTree(manifestPath.toFile()); - final ObjectNode inputs = manifest.putObject("inputs"); - inputs.putArray("sprites").add("a.png"); final var artifacts = manifest.putArray("artifacts"); artifacts.addObject().put("file", "b.png").put("index", 0); artifacts.addObject().put("file", "a.png").put("index", 1); diff --git a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimeRegistryTest.java b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimeRegistryTest.java index b8261576..7022816a 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimeRegistryTest.java +++ b/prometeu-packer/prometeu-packer-v1/src/test/java/p/packer/services/PackerRuntimeRegistryTest.java @@ -54,7 +54,6 @@ final class PackerRuntimeRegistryTest { "asset_uuid": "runtime-refresh-uuid", "name": "ui_sounds", "type": "audio.bank", - "inputs": {}, "output": { "format": "SOUND/bank_v1", "codec": "none" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/invalid-version/assets/bad/asset.json b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/invalid-version/assets/bad/asset.json index 20b158be..c09b25a7 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/invalid-version/assets/bad/asset.json +++ b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/invalid-version/assets/bad/asset.json @@ -3,9 +3,6 @@ "asset_uuid": "future-uuid-1", "name": "future_asset", "type": "tile_bank", - "inputs": { - "sprites": ["future.png"] - }, "output": { "format": "TILES/indexed_v1", "codec": "NONE" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/managed-basic/assets/ui/atlas/asset.json b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/managed-basic/assets/ui/atlas/asset.json index 8bcee8e2..f73d40c2 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/managed-basic/assets/ui/atlas/asset.json +++ b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/managed-basic/assets/ui/atlas/asset.json @@ -3,9 +3,6 @@ "asset_uuid": "fixture-uuid-1", "name": "ui_atlas", "type": "tile_bank", - "inputs": { - "sprites": ["sprites/confirm.png"] - }, "output": { "format": "TILES/indexed_v1", "codec": "NONE" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/orphan-valid/assets/orphans/ui_sounds/asset.json b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/orphan-valid/assets/orphans/ui_sounds/asset.json index 8ee2fbae..1df23770 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/orphan-valid/assets/orphans/ui_sounds/asset.json +++ b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/orphan-valid/assets/orphans/ui_sounds/asset.json @@ -3,9 +3,6 @@ "asset_uuid": "orphan-uuid-1", "name": "ui_sounds", "type": "sound_bank", - "inputs": { - "sources": ["confirm.wav"] - }, "output": { "format": "SOUND/bank_v1", "codec": "NONE" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/orphans/ui_sounds/asset.json b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/orphans/ui_sounds/asset.json index 1436335b..7961b526 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/orphans/ui_sounds/asset.json +++ b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/orphans/ui_sounds/asset.json @@ -3,9 +3,6 @@ "asset_uuid": "orphan-uuid-2", "name": "ui_sounds", "type": "sound_bank", - "inputs": { - "sources": ["confirm.wav"] - }, "output": { "format": "SOUND/bank_v1", "codec": "NONE" diff --git a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/ui/atlas/asset.json b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/ui/atlas/asset.json index d421c8e8..4a071a26 100644 --- a/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/ui/atlas/asset.json +++ b/prometeu-packer/prometeu-packer-v1/src/test/resources/fixtures/workspaces/read-mixed/assets/ui/atlas/asset.json @@ -3,9 +3,6 @@ "asset_uuid": "uuid-1", "name": "ui_atlas", "type": "tile_bank", - "inputs": { - "sprites": ["sprites/confirm.png"] - }, "output": { "format": "TILES/indexed_v1", "codec": "NONE" diff --git a/prometeu-studio/src/main/java/p/studio/utilities/i18n/I18n.java b/prometeu-studio/src/main/java/p/studio/utilities/i18n/I18n.java index 5192e36c..51a0d92d 100644 --- a/prometeu-studio/src/main/java/p/studio/utilities/i18n/I18n.java +++ b/prometeu-studio/src/main/java/p/studio/utilities/i18n/I18n.java @@ -161,7 +161,6 @@ public enum I18n { ASSETS_PROGRESS_REFRESHING("assets.progress.refreshing"), ASSETS_PROGRESS_LOADING_DETAILS("assets.progress.loadingDetails"), ASSETS_LOGS_TITLE("assets.logs.title"), - ASSETS_INPUTS_EMPTY("assets.inputs.empty"), ASSETS_DIAGNOSTICS_EMPTY("assets.diagnostics.empty"), ASSETS_DIAGNOSTICS_DIALOG_TITLE("assets.diagnostics.dialog.title"), ASSETS_DIAGNOSTICS_DIALOG_SUMMARY("assets.diagnostics.dialog.summary"), diff --git a/prometeu-studio/src/main/java/p/studio/workspaces/assets/details/AssetDetailsControl.java b/prometeu-studio/src/main/java/p/studio/workspaces/assets/details/AssetDetailsControl.java index 409907b7..9bac5bb4 100644 --- a/prometeu-studio/src/main/java/p/studio/workspaces/assets/details/AssetDetailsControl.java +++ b/prometeu-studio/src/main/java/p/studio/workspaces/assets/details/AssetDetailsControl.java @@ -471,7 +471,6 @@ public final class AssetDetailsControl extends VBox implements StudioEventAware details.codecConfigurationFieldsByCodec(), details.metadataFields(), mapBankComposition(details.bankComposition()), - Map.copyOf(details.inputsByRole()), mergedDiagnostics); } diff --git a/prometeu-studio/src/main/java/p/studio/workspaces/assets/messages/AssetWorkspaceAssetDetails.java b/prometeu-studio/src/main/java/p/studio/workspaces/assets/messages/AssetWorkspaceAssetDetails.java index 23e56a52..f6e3c569 100644 --- a/prometeu-studio/src/main/java/p/studio/workspaces/assets/messages/AssetWorkspaceAssetDetails.java +++ b/prometeu-studio/src/main/java/p/studio/workspaces/assets/messages/AssetWorkspaceAssetDetails.java @@ -5,7 +5,6 @@ import p.packer.dtos.PackerDiagnosticDTO; import p.packer.messages.assets.OutputCodecCatalog; import p.packer.messages.assets.OutputFormatCatalog; -import java.nio.file.Path; import java.util.List; import java.util.Map; import java.util.Objects; @@ -19,7 +18,6 @@ public record AssetWorkspaceAssetDetails( Map> codecConfigurationFieldsByCodec, List metadataFields, AssetWorkspaceBankCompositionDetails bankComposition, - Map> inputsByRole, List diagnostics) { public AssetWorkspaceAssetDetails { @@ -31,7 +29,6 @@ public record AssetWorkspaceAssetDetails( codecConfigurationFieldsByCodec = Map.copyOf(Objects.requireNonNull(codecConfigurationFieldsByCodec, "codecConfigurationFieldsByCodec")); metadataFields = List.copyOf(Objects.requireNonNull(metadataFields, "metadataFields")); bankComposition = Objects.requireNonNull(bankComposition, "bankComposition"); - inputsByRole = Map.copyOf(Objects.requireNonNull(inputsByRole, "inputsByRole")); diagnostics = List.copyOf(Objects.requireNonNull(diagnostics, "diagnostics")); } } diff --git a/prometeu-studio/src/main/resources/i18n/messages.properties b/prometeu-studio/src/main/resources/i18n/messages.properties index 60c9ff73..66b64954 100644 --- a/prometeu-studio/src/main/resources/i18n/messages.properties +++ b/prometeu-studio/src/main/resources/i18n/messages.properties @@ -152,7 +152,6 @@ assets.progress.idle=Assets workspace idle. assets.progress.refreshing=Refreshing assets... assets.progress.loadingDetails=Loading selected asset details... assets.logs.title=Logs -assets.inputs.empty=No previewable inputs are currently declared for this asset. assets.diagnostics.empty=No diagnostics are currently attached to this asset. assets.diagnostics.dialog.title=Asset Diagnostics assets.diagnostics.dialog.summary={0} diagnostics for {1} diff --git a/test-projects/main/.studio/activities.json b/test-projects/main/.studio/activities.json index 8e076158..c54802ab 100644 --- a/test-projects/main/.studio/activities.json +++ b/test-projects/main/.studio/activities.json @@ -60,7 +60,7 @@ "sticky" : false }, { "source" : "Assets", - "message" : "Discovered asset: bla", + "message" : "Discovered asset: sound", "severity" : "INFO", "sticky" : false }, { @@ -70,7 +70,7 @@ "sticky" : false }, { "source" : "Assets", - "message" : "Discovered asset: ui_atlas", + "message" : "Discovered asset: atlas2", "severity" : "INFO", "sticky" : false }, { @@ -85,12 +85,12 @@ "sticky" : false }, { "source" : "Assets", - "message" : "Discovered asset: ui_atlas", + "message" : "Discovered asset: atlas2", "severity" : "INFO", "sticky" : false }, { "source" : "Assets", - "message" : "Discovered asset: Bigode", + "message" : "Discovered asset: bigode", "severity" : "INFO", "sticky" : false }, { diff --git a/test-projects/main/assets/.prometeu/cache.json b/test-projects/main/assets/.prometeu/cache.json index 8376c09e..9f9137a4 100644 --- a/test-projects/main/assets/.prometeu/cache.json +++ b/test-projects/main/assets/.prometeu/cache.json @@ -10,14 +10,14 @@ "last_modified" : 1773571367191, "fingerprint" : "aa7d241deabcebe29a6096e14eaf16fdc06cf06380c11a507620b00fc7bff094", "metadata" : { - "palette" : { - "originalArgb8888" : [ -265674 ], - "convertedRgb565" : [ -122 ] - }, "tile" : { "width" : 16, "height" : 16, "paletteIndices" : "AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAAAAAAEBAQEBAQEBAQEBAQAAAAABAQEBAQEBAQEBAQEAAAAAAQEBAQEBAAAAAAAAAAAAAAEBAQEBAQAAAAAAAAAAAAABAQEBAQEAAAAAAAAAAAAAAQEBAQEBAAAAAAAAAAAAAAEBAQEBAQAAAAAAAAABAQEBAQEBAQEAAAAAAAAAAQEBAQEBAAAAAAAAAAAAAAEBAQEBAQAAAAAAAAABAQEBAQEBAQEAAAAAAAAAAQEBAQEBAQEBAAAAAAAAAAEBAQEBAQ==" + }, + "palette" : { + "originalArgb8888" : [ -265674 ], + "convertedRgb565" : [ -122 ] } }, "diagnostics" : [ ] diff --git a/test-projects/main/assets/bigode/asset.json b/test-projects/main/assets/bigode/asset.json index f3be3233..e8af8034 100644 --- a/test-projects/main/assets/bigode/asset.json +++ b/test-projects/main/assets/bigode/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "64147d33-e8bf-4272-bb5c-b4c07c0276b3", "name" : "Bigode", "type" : "tile_bank", - "inputs" : { }, "output" : { "format" : "TILES/indexed_v1", "codec" : "NONE", diff --git a/test-projects/main/assets/recovered/atlas2/asset.json b/test-projects/main/assets/recovered/atlas2/asset.json index bc6af686..b3fdeb39 100644 --- a/test-projects/main/assets/recovered/atlas2/asset.json +++ b/test-projects/main/assets/recovered/atlas2/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "b15b319f-5cab-4254-93ea-d83f4742d204", "name" : "ui_atlas", "type" : "tile_bank", - "inputs" : { }, "output" : { "format" : "TILES/indexed_v1", "codec" : "NONE", diff --git a/test-projects/main/assets/recovered/bbb2/asset.json b/test-projects/main/assets/recovered/bbb2/asset.json index b1e721dd..a178aebc 100644 --- a/test-projects/main/assets/recovered/bbb2/asset.json +++ b/test-projects/main/assets/recovered/bbb2/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "f64d3bfe-443d-4703-b62a-face19a32cac", "name" : "bbb2", "type" : "tile_bank", - "inputs" : { }, "output" : { "codec" : "NONE", "format" : "TILES/indexed_v1" diff --git a/test-projects/main/assets/recovered/one-more-atlas/asset.json b/test-projects/main/assets/recovered/one-more-atlas/asset.json index 988ad7e4..2d8e2f02 100644 --- a/test-projects/main/assets/recovered/one-more-atlas/asset.json +++ b/test-projects/main/assets/recovered/one-more-atlas/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "4d9847b0-5a23-421f-8b78-bf3909ca2281", "name" : "one-more-atlas", "type" : "tile_bank", - "inputs" : { }, "output" : { "format" : "TILES/indexed_v1", "codec" : "NONE" diff --git a/test-projects/main/assets/ui/atlas2/asset.json b/test-projects/main/assets/ui/atlas2/asset.json index ac0b28fe..4ae04477 100644 --- a/test-projects/main/assets/ui/atlas2/asset.json +++ b/test-projects/main/assets/ui/atlas2/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "21953cb8-4101-4790-9e5e-d95f5fbc9b5a", "name" : "ui_atlas", "type" : "tile_bank", - "inputs" : { }, "output" : { "format" : "TILES/indexed_v1", "codec" : "NONE", diff --git a/test-projects/main/assets/ui/atlas2/confirm.palette.json b/test-projects/main/assets/ui/atlas2/confirm.palette.json index 2c60a786..33afab5a 100644 --- a/test-projects/main/assets/ui/atlas2/confirm.palette.json +++ b/test-projects/main/assets/ui/atlas2/confirm.palette.json @@ -1,4 +1,4 @@ { - "originalArgb8888" : [ -265674 ], - "convertedRgb565" : [ 65414 ] + "convertedRgb565" : [ 65414 ], + "originalArgb8888" : [ -265674 ] } \ No newline at end of file diff --git a/test-projects/main/assets/ui/atlas2/confirm.tile.json b/test-projects/main/assets/ui/atlas2/confirm.tile.json index dc1c3c19..0df827c6 100644 --- a/test-projects/main/assets/ui/atlas2/confirm.tile.json +++ b/test-projects/main/assets/ui/atlas2/confirm.tile.json @@ -1,5 +1,5 @@ { - "height" : 16, + "width" : 16, "paletteIndices" : [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1 ], - "width" : 16 + "height" : 16 } \ No newline at end of file diff --git a/test-projects/main/assets/ui/one-more-atlas/asset.json b/test-projects/main/assets/ui/one-more-atlas/asset.json index ad2b3afa..1b3c88d1 100644 --- a/test-projects/main/assets/ui/one-more-atlas/asset.json +++ b/test-projects/main/assets/ui/one-more-atlas/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "62a81570-8f47-4612-9288-6060e6c9a2e2", "name" : "one-more-atlas", "type" : "tile_bank", - "inputs" : { }, "output" : { "format" : "TILES/indexed_v1", "codec" : "NONE" diff --git a/test-projects/main/assets/ui/sound/asset.json b/test-projects/main/assets/ui/sound/asset.json index 15903a88..7d34640b 100644 --- a/test-projects/main/assets/ui/sound/asset.json +++ b/test-projects/main/assets/ui/sound/asset.json @@ -3,7 +3,6 @@ "asset_uuid" : "9a7386e7-6f0e-4e4c-9919-0de71e0b7031", "name" : "bla", "type" : "sound_bank", - "inputs" : { }, "output" : { "format" : "SOUND/v1", "codec" : "NONE",