Fix rendered custom objects in the editor with an overriding of children configuration (#7585)

- Fix children overriding to only apply to the default variant at runtime
This commit is contained in:
D8H
2025-05-02 12:51:14 +02:00
committed by GitHub
parent bdab12b1e6
commit 60d332e872
4 changed files with 29 additions and 6 deletions

View File

@@ -105,7 +105,14 @@ namespace gdjs {
return;
}
let usedVariantData: EventsBasedObjectVariantData = eventsBasedObjectData;
if (!eventsBasedObjectData.defaultVariant) {
eventsBasedObjectData.defaultVariant = {
...eventsBasedObjectData,
name: '',
};
}
let usedVariantData: EventsBasedObjectVariantData =
eventsBasedObjectData.defaultVariant;
if (customObjectData.variant) {
for (
let variantIndex = 0;

View File

@@ -80,7 +80,11 @@ namespace gdjs {
++i
) {
const childObjectData = eventsBasedObjectVariantData.objects[i];
if (customObjectData.childrenContent) {
// The children configuration override only applies to the default variant.
if (
customObjectData.childrenContent &&
!eventsBasedObjectVariantData.name
) {
this.registerObject({
...childObjectData,
// The custom object overrides its events-based object configuration.

View File

@@ -212,6 +212,9 @@ declare interface EventsBasedObjectData
name: string;
isInnerAreaFollowingParentSize: boolean;
variants: Array<EventsBasedObjectVariantData>;
/** Added at runtime to have the default variant with an empty name instead
* of the events-based object name. */
defaultVariant?: EventsBasedObjectVariantData;
}
declare interface EventsBasedObjectVariantData extends InstanceContainerData {