gdcore-tools 2.0.0-gd-v5.5.228-autobuild → 2.0.0-gd-v5.5.230-autobuild
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Runtime/CustomRuntimeObject.js +1 -1
- package/dist/Runtime/CustomRuntimeObject.js.map +2 -2
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js +1 -1
- package/dist/Runtime/CustomRuntimeObjectInstanceContainer.js.map +2 -2
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js +1 -1
- package/dist/Runtime/Extensions/AnchorBehavior/anchorruntimebehavior.js.map +2 -2
- package/dist/Runtime/Extensions/BBText/JsExtension.js +102 -40
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BBText/bbtextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/JsExtension.js +81 -40
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js +1 -1
- package/dist/Runtime/Extensions/BitmapText/bitmaptextruntimeobject.js.map +2 -2
- package/dist/Runtime/Extensions/JsExtensionTypes.d.ts +3 -1
- package/dist/Runtime/Extensions/Physics3DBehavior/JsExtension.js +17 -17
- package/dist/Runtime/Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.js +1 -1
- package/dist/Runtime/Extensions/Physics3DBehavior/Physics3DRuntimeBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js +1 -1
- package/dist/Runtime/Extensions/Physics3DBehavior/PhysicsCharacter3DRuntimeBehavior.js.map +2 -2
- package/dist/Runtime/Extensions/Spine/CMakeLists.txt +12 -9
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js +1 -1
- package/dist/Runtime/Extensions/TextObject/textruntimeobject-pixi-renderer.js.map +2 -2
- package/dist/Runtime/Extensions/TileMap/JsExtension.js +4 -2
- package/dist/Runtime/types/project-data.d.ts +14 -1
- package/dist/lib/libGD.cjs +1 -1
- package/dist/lib/libGD.wasm +0 -0
- package/gd.d.ts +49 -0
- package/package.json +1 -1
|
@@ -81,6 +81,19 @@ module.exports = {
|
|
|
81
81
|
.setLabel(_('Base alignment'))
|
|
82
82
|
.setGroup(_('Appearance'));
|
|
83
83
|
|
|
84
|
+
if (!objectContent.verticalTextAlignment) {
|
|
85
|
+
objectContent.verticalTextAlignment = 'top';
|
|
86
|
+
}
|
|
87
|
+
objectProperties
|
|
88
|
+
.getOrCreate('verticalTextAlignment')
|
|
89
|
+
.setValue(objectContent.verticalTextAlignment)
|
|
90
|
+
.setType('choice')
|
|
91
|
+
.addExtraInfo('top')
|
|
92
|
+
.addExtraInfo('center')
|
|
93
|
+
.addExtraInfo('bottom')
|
|
94
|
+
.setLabel(_('Vertical alignment'))
|
|
95
|
+
.setGroup(_('Appearance'));
|
|
96
|
+
|
|
84
97
|
objectProperties
|
|
85
98
|
.getOrCreate('fontFamily')
|
|
86
99
|
.setValue(objectContent.fontFamily)
|
|
@@ -89,13 +102,6 @@ module.exports = {
|
|
|
89
102
|
.setLabel(_('Font'))
|
|
90
103
|
.setGroup(_('Font'));
|
|
91
104
|
|
|
92
|
-
objectProperties
|
|
93
|
-
.getOrCreate('wordWrap')
|
|
94
|
-
.setValue(objectContent.wordWrap ? 'true' : 'false')
|
|
95
|
-
.setType('boolean')
|
|
96
|
-
.setLabel(_('Word wrapping'))
|
|
97
|
-
.setGroup(_('Appearance'));
|
|
98
|
-
|
|
99
105
|
objectProperties
|
|
100
106
|
.getOrCreate('visible')
|
|
101
107
|
.setValue(objectContent.visible ? 'true' : 'false')
|
|
@@ -113,7 +119,7 @@ module.exports = {
|
|
|
113
119
|
color: '0;0;0',
|
|
114
120
|
fontFamily: 'Arial',
|
|
115
121
|
align: 'left',
|
|
116
|
-
|
|
122
|
+
verticalTextAlignment: 'top',
|
|
117
123
|
};
|
|
118
124
|
|
|
119
125
|
objectBBText.updateInitialInstanceProperty = function (
|
|
@@ -371,19 +377,6 @@ module.exports = {
|
|
|
371
377
|
expressionLabel: _('Get the text alignment'),
|
|
372
378
|
expressionDescription: _('Get the text alignment'),
|
|
373
379
|
},
|
|
374
|
-
{
|
|
375
|
-
functionName: 'WordWrap',
|
|
376
|
-
iconPath: 'res/actions/scaleWidth24_black.png',
|
|
377
|
-
type: 'boolean',
|
|
378
|
-
instructionLabel: _('Word wrap'),
|
|
379
|
-
paramLabel: _('Word wrap'),
|
|
380
|
-
conditionDescription: _('Check if word wrap is enabled.'),
|
|
381
|
-
conditionSentence: _('Word wrap is enabled'),
|
|
382
|
-
actionDescription: _('Set word wrap'),
|
|
383
|
-
actionSentence: _('Activate word wrap for _PARAM0_: _PARAM1_'),
|
|
384
|
-
expressionLabel: '',
|
|
385
|
-
expressionDescription: '',
|
|
386
|
-
},
|
|
387
380
|
{
|
|
388
381
|
functionName: 'WrappingWidth',
|
|
389
382
|
iconPath: 'res/actions/scaleWidth24_black.png',
|
|
@@ -405,6 +398,35 @@ module.exports = {
|
|
|
405
398
|
|
|
406
399
|
addSettersAndGettersToObject(object, setterAndGetterProperties, 'BBText');
|
|
407
400
|
|
|
401
|
+
object
|
|
402
|
+
.addCondition(
|
|
403
|
+
'IsWordWrap',
|
|
404
|
+
_('Word wrapping'),
|
|
405
|
+
_('Check if word wrapping is enabled.'),
|
|
406
|
+
_('_PARAM0_ word wrapping is enabled'),
|
|
407
|
+
'',
|
|
408
|
+
'res/conditions/wordWrap24_black.png',
|
|
409
|
+
'res/conditions/wordWrap_black.png'
|
|
410
|
+
)
|
|
411
|
+
.addParameter('object', 'BBText', 'BBText', false)
|
|
412
|
+
.getCodeExtraInformation()
|
|
413
|
+
.setFunctionName('isWrapping');
|
|
414
|
+
|
|
415
|
+
object
|
|
416
|
+
.addAction(
|
|
417
|
+
'SetWordWrap',
|
|
418
|
+
_('Word wrapping'),
|
|
419
|
+
_('De/activate word wrapping.'),
|
|
420
|
+
_('Activate word wrapping of _PARAM0_: _PARAM1_'),
|
|
421
|
+
'',
|
|
422
|
+
'res/actions/wordWrap24_black.png',
|
|
423
|
+
'res/actions/wordWrap_black.png'
|
|
424
|
+
)
|
|
425
|
+
.addParameter('object', 'BBText', 'BBText', false)
|
|
426
|
+
.addParameter('yesorno', _('Activate word wrapping'), '', false)
|
|
427
|
+
.getCodeExtraInformation()
|
|
428
|
+
.setFunctionName('setWrapping');
|
|
429
|
+
|
|
408
430
|
object
|
|
409
431
|
.addAction(
|
|
410
432
|
`SetFontFamily2`,
|
|
@@ -485,14 +507,16 @@ module.exports = {
|
|
|
485
507
|
instance,
|
|
486
508
|
associatedObjectConfiguration,
|
|
487
509
|
pixiContainer,
|
|
488
|
-
pixiResourcesLoader
|
|
510
|
+
pixiResourcesLoader,
|
|
511
|
+
propertyOverridings
|
|
489
512
|
) {
|
|
490
513
|
super(
|
|
491
514
|
project,
|
|
492
515
|
instance,
|
|
493
516
|
associatedObjectConfiguration,
|
|
494
517
|
pixiContainer,
|
|
495
|
-
pixiResourcesLoader
|
|
518
|
+
pixiResourcesLoader,
|
|
519
|
+
propertyOverridings
|
|
496
520
|
);
|
|
497
521
|
|
|
498
522
|
const bbTextStyles = {
|
|
@@ -502,7 +526,6 @@ module.exports = {
|
|
|
502
526
|
fontSize: '24px',
|
|
503
527
|
fill: '#cccccc',
|
|
504
528
|
tagStyle: 'bbcode',
|
|
505
|
-
wordWrap: true,
|
|
506
529
|
wordWrapWidth: 250, // This value is the default wrapping width of the runtime object.
|
|
507
530
|
align: 'left',
|
|
508
531
|
},
|
|
@@ -532,7 +555,9 @@ module.exports = {
|
|
|
532
555
|
gd.ObjectJsImplementation
|
|
533
556
|
);
|
|
534
557
|
|
|
535
|
-
const rawText =
|
|
558
|
+
const rawText = this._propertyOverridings.has('Text')
|
|
559
|
+
? this._propertyOverridings.get('Text')
|
|
560
|
+
: object.content.text;
|
|
536
561
|
if (rawText !== this._pixiObject.text) {
|
|
537
562
|
this._pixiObject.text = rawText;
|
|
538
563
|
}
|
|
@@ -574,11 +599,18 @@ module.exports = {
|
|
|
574
599
|
});
|
|
575
600
|
}
|
|
576
601
|
|
|
577
|
-
const wordWrap =
|
|
602
|
+
const wordWrap = this._instance.hasCustomSize();
|
|
578
603
|
if (wordWrap !== this._pixiObject._style.wordWrap) {
|
|
579
604
|
this._pixiObject._style.wordWrap = wordWrap;
|
|
580
605
|
this._pixiObject.dirty = true;
|
|
581
606
|
}
|
|
607
|
+
if (this._instance.hasCustomSize()) {
|
|
608
|
+
const customWidth = this.getCustomWidth();
|
|
609
|
+
if (this._pixiObject._style.wordWrapWidth !== customWidth) {
|
|
610
|
+
this._pixiObject._style.wordWrapWidth = customWidth;
|
|
611
|
+
this._pixiObject.dirty = true;
|
|
612
|
+
}
|
|
613
|
+
}
|
|
582
614
|
|
|
583
615
|
const align = object.content.align;
|
|
584
616
|
if (align !== this._pixiObject._style.align) {
|
|
@@ -586,25 +618,42 @@ module.exports = {
|
|
|
586
618
|
this._pixiObject.dirty = true;
|
|
587
619
|
}
|
|
588
620
|
|
|
589
|
-
this._pixiObject.
|
|
590
|
-
|
|
621
|
+
if (this._instance.hasCustomSize() && this._pixiObject.width !== 0) {
|
|
622
|
+
const alignmentX =
|
|
623
|
+
object.content.align === 'right'
|
|
624
|
+
? 1
|
|
625
|
+
: object.content.align === 'center'
|
|
626
|
+
? 0.5
|
|
627
|
+
: 0;
|
|
628
|
+
|
|
629
|
+
const width = this.getCustomWidth();
|
|
630
|
+
|
|
631
|
+
// A vector from the custom size center to the renderer center.
|
|
632
|
+
const centerToCenterX =
|
|
633
|
+
(width - this._pixiObject.width) * (alignmentX - 0.5);
|
|
634
|
+
|
|
635
|
+
this._pixiObject.position.x = this._instance.getX() + width / 2;
|
|
636
|
+
this._pixiObject.anchor.x =
|
|
637
|
+
0.5 - centerToCenterX / this._pixiObject.width;
|
|
638
|
+
} else {
|
|
639
|
+
this._pixiObject.position.x =
|
|
640
|
+
this._instance.getX() + this._pixiObject.width / 2;
|
|
641
|
+
this._pixiObject.anchor.x = 0.5;
|
|
642
|
+
}
|
|
643
|
+
const alignmentY =
|
|
644
|
+
object.content.verticalTextAlignment === 'bottom'
|
|
645
|
+
? 1
|
|
646
|
+
: object.content.verticalTextAlignment === 'center'
|
|
647
|
+
? 0.5
|
|
648
|
+
: 0;
|
|
591
649
|
this._pixiObject.position.y =
|
|
592
|
-
this._instance.getY() + this._pixiObject.height
|
|
650
|
+
this._instance.getY() + this._pixiObject.height * (0.5 - alignmentY);
|
|
651
|
+
this._pixiObject.anchor.y = 0.5;
|
|
652
|
+
|
|
593
653
|
this._pixiObject.rotation = RenderedInstance.toRad(
|
|
594
654
|
this._instance.getAngle()
|
|
595
655
|
);
|
|
596
656
|
|
|
597
|
-
if (this._instance.hasCustomSize() && this._pixiObject) {
|
|
598
|
-
const customWidth = this.getCustomWidth();
|
|
599
|
-
if (
|
|
600
|
-
this._pixiObject &&
|
|
601
|
-
this._pixiObject._style.wordWrapWidth !== customWidth
|
|
602
|
-
) {
|
|
603
|
-
this._pixiObject._style.wordWrapWidth = customWidth;
|
|
604
|
-
this._pixiObject.dirty = true;
|
|
605
|
-
}
|
|
606
|
-
}
|
|
607
|
-
|
|
608
657
|
// Do not hide completely an object so it can still be manipulated
|
|
609
658
|
const alphaForDisplay = Math.max(
|
|
610
659
|
this._instance.getOpacity() / 255,
|
|
@@ -626,6 +675,19 @@ module.exports = {
|
|
|
626
675
|
getDefaultHeight() {
|
|
627
676
|
return this._pixiObject.height;
|
|
628
677
|
}
|
|
678
|
+
|
|
679
|
+
getOriginY() {
|
|
680
|
+
const object = gd.castObject(
|
|
681
|
+
this._associatedObjectConfiguration,
|
|
682
|
+
gd.ObjectJsImplementation
|
|
683
|
+
);
|
|
684
|
+
const height = this.getHeight();
|
|
685
|
+
return object.content.verticalTextAlignment === 'bottom'
|
|
686
|
+
? height
|
|
687
|
+
: object.content.verticalTextAlignment === 'center'
|
|
688
|
+
? height / 2
|
|
689
|
+
: 0;
|
|
690
|
+
}
|
|
629
691
|
}
|
|
630
692
|
|
|
631
693
|
objectsRenderingService.registerInstanceRenderer(
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(i){class
|
|
1
|
+
var gdjs;(function(i){class s{constructor(t,e){this._object=t,this._pixiObject=new MultiStyleText(t._text,{default:{fontFamily:e.getGame().getFontManager().getFontFamily(t._fontFamily),fontSize:t._fontSize+"px",fill:i.rgbToHexNumber(t._color[0],t._color[1],t._color[2]),tagStyle:"bbcode",wordWrap:t._wrapping,wordWrapWidth:t._wrappingWidth,align:t._textAlign}}),e.getLayer("").getRenderer().addRendererObject(this._pixiObject,t.getZOrder()),this.updateAlignment(),this.updateText(),this.updatePosition(),this.updateAngle(),this.updateOpacity()}getRendererObject(){return this._pixiObject}updateWordWrap(){this._pixiObject._style.wordWrap=this._object._wrapping,this._pixiObject.dirty=!0,this.updatePosition()}updateWrappingWidth(){this._pixiObject._style.wordWrapWidth=this._object._wrappingWidth,this._pixiObject.dirty=!0,this.updatePosition()}updateText(){this._pixiObject.text=this._object._text,this.updatePosition()}updateColor(){this._pixiObject.textStyles.default.fill=i.rgbToHexNumber(this._object._color[0],this._object._color[1],this._object._color[2]),this._pixiObject.dirty=!0}updateAlignment(){this._pixiObject._style.align=this._object._textAlign,this._pixiObject.dirty=!0}updateFontFamily(){this._pixiObject.textStyles.default.fontFamily=this._object.getInstanceContainer().getGame().getFontManager().getFontFamily(this._object._fontFamily),this._pixiObject.dirty=!0}updateFontSize(){this._pixiObject.textStyles.default.fontSize=this._object._fontSize+"px",this._pixiObject.dirty=!0}updatePosition(){if(this._object.isWrapping()&&this._pixiObject.width!==0){const e=this._object._textAlign==="right"?1:this._object._textAlign==="center"?.5:0,o=this._object.getWrappingWidth(),h=(o-this._pixiObject.width)*(e-.5);this._pixiObject.position.x=this._object.x+o/2,this._pixiObject.anchor.x=.5-h/this._pixiObject.width}else this._pixiObject.position.x=this._object.x+this._pixiObject.width/2,this._pixiObject.anchor.x=.5;const t=this._object._verticalTextAlignment==="bottom"?1:this._object._verticalTextAlignment==="center"?.5:0;this._pixiObject.position.y=this._object.y+this._pixiObject.height*(.5-t),this._pixiObject.anchor.y=.5}updateAngle(){this._pixiObject.rotation=i.toRad(this._object.angle)}updateOpacity(){this._pixiObject.alpha=this._object._opacity/255}getWidth(){return this._pixiObject.width}getHeight(){return this._pixiObject.height}destroy(){this._pixiObject.destroy(!0)}}i.BBTextRuntimeObjectPixiRenderer=s,i.BBTextRuntimeObjectRenderer=s})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=bbtextruntimeobject-pixi-renderer.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/BBText/bbtextruntimeobject-pixi-renderer.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /**\n * The PIXI.js renderer for the BBCode Text runtime object.\n */\n export class BBTextRuntimeObjectPixiRenderer {\n _object: gdjs.BBTextRuntimeObject;\n _pixiObject: MultiStyleText;\n\n /**\n * @param runtimeObject The object to render\n * @param instanceContainer The gdjs.RuntimeInstanceContainer in which the object is\n */\n constructor(\n runtimeObject: gdjs.BBTextRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n\n this._pixiObject = new MultiStyleText(runtimeObject._text, {\n default: {\n fontFamily: instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(runtimeObject._fontFamily),\n fontSize: runtimeObject._fontSize + 'px',\n fill: gdjs.rgbToHexNumber(\n runtimeObject._color[0],\n runtimeObject._color[1],\n runtimeObject._color[2]\n ),\n tagStyle: 'bbcode',\n wordWrap: runtimeObject.
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIS,OAAsC,CAQ3C,YACE,EACA,EACA,CACA,KAAK,QAAU,EAEf,KAAK,YAAc,GAAI,gBAAe,EAAc,MAAO,CACzD,QAAS,CACP,WAAY,EACT,UACA,iBACA,cAAc,EAAc,aAC/B,SAAU,EAAc,UAAY,KACpC,KAAM,EAAK,eACT,EAAc,OAAO,GACrB,EAAc,OAAO,GACrB,EAAc,OAAO,IAEvB,SAAU,SACV,SAAU,EAAc,UACxB,cAAe,EAAc,eAC7B,MAAO,EAAc,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n /**\n * The PIXI.js renderer for the BBCode Text runtime object.\n */\n export class BBTextRuntimeObjectPixiRenderer {\n _object: gdjs.BBTextRuntimeObject;\n _pixiObject: MultiStyleText;\n\n /**\n * @param runtimeObject The object to render\n * @param instanceContainer The gdjs.RuntimeInstanceContainer in which the object is\n */\n constructor(\n runtimeObject: gdjs.BBTextRuntimeObject,\n instanceContainer: gdjs.RuntimeInstanceContainer\n ) {\n this._object = runtimeObject;\n\n this._pixiObject = new MultiStyleText(runtimeObject._text, {\n default: {\n fontFamily: instanceContainer\n .getGame()\n .getFontManager()\n .getFontFamily(runtimeObject._fontFamily),\n fontSize: runtimeObject._fontSize + 'px',\n fill: gdjs.rgbToHexNumber(\n runtimeObject._color[0],\n runtimeObject._color[1],\n runtimeObject._color[2]\n ),\n tagStyle: 'bbcode',\n wordWrap: runtimeObject._wrapping,\n wordWrapWidth: runtimeObject._wrappingWidth,\n align: runtimeObject._textAlign as PIXI.TextStyleAlign | undefined,\n },\n });\n instanceContainer\n .getLayer('')\n .getRenderer()\n .addRendererObject(this._pixiObject, runtimeObject.getZOrder());\n\n this.updateAlignment();\n this.updateText();\n this.updatePosition();\n this.updateAngle();\n this.updateOpacity();\n }\n\n getRendererObject() {\n return this._pixiObject;\n }\n\n updateWordWrap(): void {\n //@ts-ignore Private member usage.\n this._pixiObject._style.wordWrap = this._object._wrapping;\n this._pixiObject.dirty = true;\n this.updatePosition();\n }\n\n updateWrappingWidth(): void {\n //@ts-ignore Private member usage.\n this._pixiObject._style.wordWrapWidth = this._object._wrappingWidth;\n this._pixiObject.dirty = true;\n this.updatePosition();\n }\n\n updateText(): void {\n this._pixiObject.text = this._object._text;\n this.updatePosition();\n }\n\n updateColor(): void {\n //@ts-ignore Private member usage.\n this._pixiObject.textStyles.default.fill = gdjs.rgbToHexNumber(\n this._object._color[0],\n this._object._color[1],\n this._object._color[2]\n );\n this._pixiObject.dirty = true;\n }\n\n updateAlignment(): void {\n //@ts-ignore Private member usage.\n this._pixiObject._style.align = this._object._textAlign;\n this._pixiObject.dirty = true;\n }\n\n updateFontFamily(): void {\n //@ts-ignore Private member usage.\n this._pixiObject.textStyles.default.fontFamily = this._object\n .getInstanceContainer()\n .getGame()\n .getFontManager()\n .getFontFamily(this._object._fontFamily);\n this._pixiObject.dirty = true;\n }\n\n updateFontSize(): void {\n //@ts-ignore Private member usage.\n this._pixiObject.textStyles.default.fontSize =\n this._object._fontSize + 'px';\n this._pixiObject.dirty = true;\n }\n\n updatePosition(): void {\n if (this._object.isWrapping() && this._pixiObject.width !== 0) {\n const alignmentX =\n this._object._textAlign === 'right'\n ? 1\n : this._object._textAlign === 'center'\n ? 0.5\n : 0;\n\n const width = this._object.getWrappingWidth();\n\n // A vector from the custom size center to the renderer center.\n const centerToCenterX =\n (width - this._pixiObject.width) * (alignmentX - 0.5);\n\n this._pixiObject.position.x = this._object.x + width / 2;\n this._pixiObject.anchor.x =\n 0.5 - centerToCenterX / this._pixiObject.width;\n } else {\n this._pixiObject.position.x =\n this._object.x + this._pixiObject.width / 2;\n this._pixiObject.anchor.x = 0.5;\n }\n\n const alignmentY =\n this._object._verticalTextAlignment === 'bottom'\n ? 1\n : this._object._verticalTextAlignment === 'center'\n ? 0.5\n : 0;\n this._pixiObject.position.y =\n this._object.y + this._pixiObject.height * (0.5 - alignmentY);\n this._pixiObject.anchor.y = 0.5;\n }\n\n updateAngle(): void {\n this._pixiObject.rotation = gdjs.toRad(this._object.angle);\n }\n\n updateOpacity(): void {\n this._pixiObject.alpha = this._object._opacity / 255;\n }\n\n getWidth(): float {\n return this._pixiObject.width;\n }\n\n getHeight(): float {\n return this._pixiObject.height;\n }\n\n destroy(): void {\n this._pixiObject.destroy(true);\n }\n }\n\n export const BBTextRuntimeObjectRenderer = BBTextRuntimeObjectPixiRenderer;\n export type BBTextRuntimeObjectRenderer = BBTextRuntimeObjectPixiRenderer;\n}\n"],
|
|
5
|
+
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,CAIS,OAAsC,CAQ3C,YACE,EACA,EACA,CACA,KAAK,QAAU,EAEf,KAAK,YAAc,GAAI,gBAAe,EAAc,MAAO,CACzD,QAAS,CACP,WAAY,EACT,UACA,iBACA,cAAc,EAAc,aAC/B,SAAU,EAAc,UAAY,KACpC,KAAM,EAAK,eACT,EAAc,OAAO,GACrB,EAAc,OAAO,GACrB,EAAc,OAAO,IAEvB,SAAU,SACV,SAAU,EAAc,UACxB,cAAe,EAAc,eAC7B,MAAO,EAAc,cAGzB,EACG,SAAS,IACT,cACA,kBAAkB,KAAK,YAAa,EAAc,aAErD,KAAK,kBACL,KAAK,aACL,KAAK,iBACL,KAAK,cACL,KAAK,gBAGP,mBAAoB,CAClB,MAAO,MAAK,YAGd,gBAAuB,CAErB,KAAK,YAAY,OAAO,SAAW,KAAK,QAAQ,UAChD,KAAK,YAAY,MAAQ,GACzB,KAAK,iBAGP,qBAA4B,CAE1B,KAAK,YAAY,OAAO,cAAgB,KAAK,QAAQ,eACrD,KAAK,YAAY,MAAQ,GACzB,KAAK,iBAGP,YAAmB,CACjB,KAAK,YAAY,KAAO,KAAK,QAAQ,MACrC,KAAK,iBAGP,aAAoB,CAElB,KAAK,YAAY,WAAW,QAAQ,KAAO,EAAK,eAC9C,KAAK,QAAQ,OAAO,GACpB,KAAK,QAAQ,OAAO,GACpB,KAAK,QAAQ,OAAO,IAEtB,KAAK,YAAY,MAAQ,GAG3B,iBAAwB,CAEtB,KAAK,YAAY,OAAO,MAAQ,KAAK,QAAQ,WAC7C,KAAK,YAAY,MAAQ,GAG3B,kBAAyB,CAEvB,KAAK,YAAY,WAAW,QAAQ,WAAa,KAAK,QACnD,uBACA,UACA,iBACA,cAAc,KAAK,QAAQ,aAC9B,KAAK,YAAY,MAAQ,GAG3B,gBAAuB,CAErB,KAAK,YAAY,WAAW,QAAQ,SAClC,KAAK,QAAQ,UAAY,KAC3B,KAAK,YAAY,MAAQ,GAG3B,gBAAuB,CACrB,GAAI,KAAK,QAAQ,cAAgB,KAAK,YAAY,QAAU,EAAG,CAC7D,KAAM,GACJ,KAAK,QAAQ,aAAe,QACxB,EACA,KAAK,QAAQ,aAAe,SAC1B,GACA,EAEF,EAAQ,KAAK,QAAQ,mBAGrB,EACH,GAAQ,KAAK,YAAY,OAAU,GAAa,IAEnD,KAAK,YAAY,SAAS,EAAI,KAAK,QAAQ,EAAI,EAAQ,EACvD,KAAK,YAAY,OAAO,EACtB,GAAM,EAAkB,KAAK,YAAY,UAE3C,MAAK,YAAY,SAAS,EACxB,KAAK,QAAQ,EAAI,KAAK,YAAY,MAAQ,EAC5C,KAAK,YAAY,OAAO,EAAI,GAG9B,KAAM,GACJ,KAAK,QAAQ,yBAA2B,SACpC,EACA,KAAK,QAAQ,yBAA2B,SACtC,GACA,EACR,KAAK,YAAY,SAAS,EACxB,KAAK,QAAQ,EAAI,KAAK,YAAY,OAAU,IAAM,GACpD,KAAK,YAAY,OAAO,EAAI,GAG9B,aAAoB,CAClB,KAAK,YAAY,SAAW,EAAK,MAAM,KAAK,QAAQ,OAGtD,eAAsB,CACpB,KAAK,YAAY,MAAQ,KAAK,QAAQ,SAAW,IAGnD,UAAkB,CAChB,MAAO,MAAK,YAAY,MAG1B,WAAmB,CACjB,MAAO,MAAK,YAAY,OAG1B,SAAgB,CACd,KAAK,YAAY,QAAQ,KAxJtB,EAAM,kCA4JA,8BAA8B,IAhKnC",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(i){class n extends i.RuntimeObject{constructor(t,e){super(t,e);this._wrappingWidth=250;this._opacity=parseFloat(e.content.opacity),this._text=e.content.text,this._color=i.rgbOrHexToRGBColor(e.content.color),this._fontFamily=e.content.fontFamily,this._fontSize=parseFloat(e.content.fontSize),this.
|
|
1
|
+
var gdjs;(function(i){class n extends i.RuntimeObject{constructor(t,e){super(t,e);this._wrapping=!1;this._wrappingWidth=250;this._opacity=parseFloat(e.content.opacity),this._text=e.content.text,this._color=i.rgbOrHexToRGBColor(e.content.color),this._fontFamily=e.content.fontFamily,this._fontSize=parseFloat(e.content.fontSize),this._textAlign=e.content.align,this._verticalTextAlignment=e.content.verticalTextAlignment||"top",this.hidden=!e.content.visible,this._renderer=new i.BBTextRuntimeObjectRenderer(this,t),this.onCreated()}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(t,e){return t.content.opacity!==e.content.opacity&&this.setOpacity(e.content.opacity),t.content.visible!==e.content.visible&&this.hide(!e.content.visible),t.content.text!==e.content.text&&this.setBBText(e.content.text),t.content.color!==e.content.color&&(this._color=i.rgbOrHexToRGBColor(e.content.color),this._renderer.updateColor()),t.content.fontFamily!==e.content.fontFamily&&this.setFontFamily(e.content.fontFamily),t.content.fontSize!==e.content.fontSize&&this.setFontSize(e.content.fontSize),t.content.wordWrap!==e.content.wordWrap&&this.setWrapping(e.content.wordWrap),t.content.align!==e.content.align&&this.setTextAlignment(e.content.align),t.content.verticalTextAlignment!==e.content.verticalTextAlignment&&this.setVerticalTextAlignment(e.content.verticalTextAlignment),!0}getNetworkSyncData(){return{...super.getNetworkSyncData(),text:this._text,o:this._opacity,c:this._color,ff:this._fontFamily,fs:this._fontSize,wwrap:this._wrapping,wwidth:this._wrappingWidth,align:this._textAlign,vta:this._verticalTextAlignment,hidden:this.hidden}}updateFromNetworkSyncData(t){super.updateFromNetworkSyncData(t),this._text!==void 0&&this.setBBText(t.text),this._opacity!==void 0&&this.setOpacity(t.o),this._color!==void 0&&(this._color=t.c,this._renderer.updateColor()),this._fontFamily!==void 0&&this.setFontFamily(t.ff),this._fontSize!==void 0&&this.setFontSize(t.fs),this._wrapping!==void 0&&this.setWrapping(t.wwrap),this._wrappingWidth!==void 0&&this.setWrappingWidth(t.wwidth),this._textAlign!==void 0&&this.setTextAlignment(t.align),this._verticalTextAlignment!==void 0&&this.setVerticalTextAlignment(t.vta),this.hidden!==void 0&&this.hide(t.hidden)}extraInitializationFromInitialInstance(t){t.customSize?(this.setWrappingWidth(t.width),this.setWrapping(!0)):this.setWrappingWidth(250),t.opacity!==void 0&&this.setOpacity(t.opacity)}onDestroyed(){super.onDestroyed(),this._renderer.destroy()}setBBText(t){this._text=t,this._renderer.updateText(),this.invalidateHitboxes()}getBBText(){return this._text}setColor(t){this._color=i.rgbOrHexToRGBColor(t),this._renderer.updateColor()}getColor(){return this._color[0]+";"+this._color[1]+";"+this._color[2]}setFontSize(t){this._fontSize=t,this._renderer.updateFontSize()}getFontSize(){return this._fontSize}setFontFamily(t){this._fontFamily=t,this._renderer.updateFontFamily()}getFontFamily(){return this._fontFamily}setAlignment(t){this.setTextAlignment(t)}setTextAlignment(t){this._textAlign=t,this._renderer.updateAlignment()}getAlignment(){return this.getTextAlignment()}getTextAlignment(){return this._textAlign}setVerticalTextAlignment(t){this._verticalTextAlignment=t,this._renderer.updatePosition()}getVerticalTextAlignment(){return this._verticalTextAlignment}setX(t){super.setX(t),this._renderer.updatePosition()}setY(t){super.setY(t),this._renderer.updatePosition()}setAngle(t){super.setAngle(t),this._renderer.updateAngle()}setOpacity(t){t<0&&(t=0),t>255&&(t=255),this._opacity=t,this._renderer.updateOpacity()}getOpacity(){return this._opacity}setWrappingWidth(t){this._wrappingWidth!==t&&(this._wrappingWidth=t,this._renderer.updateWrappingWidth(),this.invalidateHitboxes())}getWrappingWidth(){return this._wrappingWidth}setWrapping(t){this._wrapping!==t&&(this._wrapping=t,this._renderer.updateWordWrap(),this.invalidateHitboxes())}isWrapping(){return this._wrapping}getWidth(){return this._wrapping?this._wrappingWidth:this._renderer.getWidth()}getHeight(){return this._renderer.getHeight()}getDrawableY(){return this.getY()-(this._verticalTextAlignment==="center"?this.getHeight()/2:this._verticalTextAlignment==="bottom"?this.getHeight():0)}}i.BBTextRuntimeObject=n,i.registerObject("BBText::BBText",i.BBTextRuntimeObject)})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=bbtextruntimeobject.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../GDevelop/Extensions/BBText/bbtextruntimeobject.ts"],
|
|
4
|
-
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BBTextRuntimeObject} */\n export type BBTextObjectDataType = {\n /** The base parameters of the BBText */\n content: {\n /** The opacity of the BBText */\n opacity: number;\n /** Deprecated - Is the text visible? */\n visible: boolean;\n /** Content of the text */\n text: string;\n /** The color of the text */\n color: string;\n /** The font of the text */\n fontFamily: string;\n /** The size of the text */\n fontSize: number;\n /** Activate word wrap if set to true */\n wordWrap: boolean;\n /** Alignment of the text: \"left\", \"center\" or \"right\" */\n align: 'left' | 'center' | 'right';\n };\n };\n export type BBTextObjectData = ObjectData & BBTextObjectDataType;\n\n export type BBTextObjectNetworkSyncDataType = {\n text: string;\n o: float;\n c: number[];\n ff: string;\n fs: number;\n wwrap: boolean;\n wwidth: float;\n align: string;\n hidden: boolean;\n };\n\n export type BBTextObjectNetworkSyncData = ObjectNetworkSyncData &\n BBTextObjectNetworkSyncDataType;\n\n /**\n * Displays a rich text using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows).\n */\n export class BBTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.OpacityHandler\n {\n _opacity: float;\n\n _text: string;\n\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _color: integer[];\n _fontFamily: string;\n _fontSize: number;\n\n _wordWrap: boolean;\n _wrappingWidth: float = 250;\n\n // This value is the default wrapping width of the runtime object.\n _align: string;\n _renderer: gdjs.BBTextRuntimeObjectRenderer;\n\n // While this should rather be exposed as a property for all objects, honor the \"visible\"\n // property that is specific to this object.\n hidden: boolean;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param objectData The object data used to initialize the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: BBTextObjectData\n ) {\n super(instanceContainer, objectData);\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._opacity = parseFloat(objectData.content.opacity);\n this._text = objectData.content.text;\n this._color = gdjs.rgbOrHexToRGBColor(objectData.content.color);\n this._fontFamily = objectData.content.fontFamily;\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._fontSize = parseFloat(objectData.content.fontSize);\n this._wordWrap = objectData.content.wordWrap;\n this._align = objectData.content.align;\n this._renderer = new gdjs.BBTextRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n this.hidden = !objectData.content.visible;\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n updateFromObjectData(\n oldObjectData: BBTextObjectDataType,\n newObjectData: BBTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.visible !== newObjectData.content.visible) {\n this.hide(!newObjectData.content.visible);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setBBText(newObjectData.content.text);\n }\n if (oldObjectData.content.color !== newObjectData.content.color) {\n this._color = gdjs.rgbOrHexToRGBColor(newObjectData.content.color);\n this._renderer.updateColor();\n }\n if (\n oldObjectData.content.fontFamily !== newObjectData.content.fontFamily\n ) {\n this.setFontFamily(newObjectData.content.fontFamily);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWordWrap(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setAlignment(newObjectData.content.align);\n }\n return true;\n }\n\n getNetworkSyncData(): BBTextObjectNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n text: this._text,\n o: this._opacity,\n c: this._color,\n ff: this._fontFamily,\n fs: this._fontSize,\n wwrap: this._wordWrap,\n wwidth: this._wrappingWidth,\n align: this._align,\n hidden: this.hidden,\n };\n }\n\n updateFromNetworkSyncData(\n networkSyncData: BBTextObjectNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n if (this._text !== undefined) {\n this.setBBText(networkSyncData.text);\n }\n if (this._opacity !== undefined) {\n this.setOpacity(networkSyncData.o);\n }\n if (this._color !== undefined) {\n this._color = networkSyncData.c;\n this._renderer.updateColor();\n }\n if (this._fontFamily !== undefined) {\n this.setFontFamily(networkSyncData.ff);\n }\n if (this._fontSize !== undefined) {\n this.setFontSize(networkSyncData.fs);\n }\n if (this._wordWrap !== undefined) {\n this.setWordWrap(networkSyncData.wwrap);\n }\n if (this._wrappingWidth !== undefined) {\n this.setWrappingWidth(networkSyncData.wwidth);\n }\n if (this._align !== undefined) {\n this.setAlignment(networkSyncData.align);\n }\n if (this.hidden !== undefined) {\n this.hide(networkSyncData.hidden);\n }\n }\n\n /**\n * Initialize the extra parameters that could be set for an instance.\n */\n extraInitializationFromInitialInstance(initialInstanceData: InstanceData) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n } else {\n this.setWrappingWidth(\n // This value is the default wrapping width of the runtime object.\n 250\n );\n }\n if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\n }\n }\n\n onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the markup text to display.\n */\n setBBText(text): void {\n this._text = text;\n this._renderer.updateText();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the markup text displayed by the object.\n */\n getBBText() {\n return this._text;\n }\n\n setColor(rgbColorString): void {\n this._color = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateColor();\n }\n\n /**\n * Get the base color.\n * @return The color as a \"R;G;B\" string, for example: \"255;0;0\"\n */\n getColor(): string {\n return this._color[0] + ';' + this._color[1] + ';' + this._color[2];\n }\n\n setFontSize(fontSize): void {\n this._fontSize = fontSize;\n this._renderer.updateFontSize();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontFamily(fontFamily): void {\n this._fontFamily = fontFamily;\n this._renderer.updateFontFamily();\n }\n\n getFontFamily() {\n return this._fontFamily;\n }\n\n setAlignment(align): void {\n this._align = align;\n this._renderer.updateAlignment();\n }\n\n getAlignment() {\n return this._align;\n }\n\n /**\n * Set object position on X axis.\n * @param x The new position X of the object.\n */\n setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n /**\n * Set object position on Y axis.\n * @param y The new position Y of the object.\n */\n setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n /**\n * Set the angle of the object.\n * @param angle The new angle of the object.\n */\n setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity() {\n return this._opacity;\n }\n\n /**\n * Set the width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n if (this._wrappingWidth === width) return;\n\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWordWrap(wordWrap: boolean): void {\n if (this._wordWrap === wordWrap) return;\n\n this._wordWrap = wordWrap;\n this._renderer.updateWordWrap();\n this.invalidateHitboxes();\n }\n\n getWordWrap() {\n return this._wordWrap;\n }\n\n /**\n * Get the width of the object.\n */\n getWidth(): float {\n return this._renderer.getWidth();\n }\n\n /**\n * Get the height of the object.\n */\n getHeight(): float {\n return this._renderer.getHeight();\n }\n }\n // @ts-ignore\n gdjs.registerObject('BBText::BBText', gdjs.BBTextRuntimeObject);\n}\n"],
|
|
5
|
-
"mappings": "AAAA,GAAU,MAAV,UAAU,EAAV,
|
|
4
|
+
"sourcesContent": ["namespace gdjs {\n /** Base parameters for {@link gdjs.BBTextRuntimeObject} */\n export type BBTextObjectDataType = {\n /** The base parameters of the BBText */\n content: {\n /** The opacity of the BBText */\n opacity: number;\n /** Deprecated - Is the text visible? */\n visible: boolean;\n /** Content of the text */\n text: string;\n /** The color of the text */\n color: string;\n /** The font of the text */\n fontFamily: string;\n /** The size of the text */\n fontSize: number;\n /** Activate word wrap if set to true */\n wordWrap: boolean;\n /** Alignment of the text: \"left\", \"center\" or \"right\" */\n align: 'left' | 'center' | 'right';\n verticalTextAlignment: 'top' | 'center' | 'bottom';\n };\n };\n export type BBTextObjectData = ObjectData & BBTextObjectDataType;\n\n export type BBTextObjectNetworkSyncDataType = {\n text: string;\n o: float;\n c: number[];\n ff: string;\n fs: number;\n wwrap: boolean;\n wwidth: float;\n align: string;\n vta: string;\n hidden: boolean;\n };\n\n export type BBTextObjectNetworkSyncData = ObjectNetworkSyncData &\n BBTextObjectNetworkSyncDataType;\n\n /**\n * Displays a rich text using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows).\n */\n export class BBTextRuntimeObject\n extends gdjs.RuntimeObject\n implements gdjs.OpacityHandler\n {\n _opacity: float;\n\n _text: string;\n\n /** color in format [r, g, b], where each component is in the range [0, 255] */\n _color: integer[];\n _fontFamily: string;\n _fontSize: float;\n\n _wrapping: boolean = false;\n _wrappingWidth: float = 250;\n\n _textAlign: string;\n _verticalTextAlignment: string;\n\n _renderer: gdjs.BBTextRuntimeObjectRenderer;\n\n // While this should rather be exposed as a property for all objects, honor the \"visible\"\n // property that is specific to this object.\n hidden: boolean;\n\n /**\n * @param instanceContainer The container the object belongs to.\n * @param objectData The object data used to initialize the object\n */\n constructor(\n instanceContainer: gdjs.RuntimeInstanceContainer,\n objectData: BBTextObjectData\n ) {\n super(instanceContainer, objectData);\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._opacity = parseFloat(objectData.content.opacity);\n this._text = objectData.content.text;\n this._color = gdjs.rgbOrHexToRGBColor(objectData.content.color);\n this._fontFamily = objectData.content.fontFamily;\n // @ts-ignore - parseFloat should not be required, but GDevelop 5.0 beta 92 and below were storing it as a string.\n this._fontSize = parseFloat(objectData.content.fontSize);\n this._textAlign = objectData.content.align;\n this._verticalTextAlignment =\n objectData.content.verticalTextAlignment || 'top';\n this.hidden = !objectData.content.visible;\n\n this._renderer = new gdjs.BBTextRuntimeObjectRenderer(\n this,\n instanceContainer\n );\n\n // *ALWAYS* call `this.onCreated()` at the very end of your object constructor.\n this.onCreated();\n }\n\n override getRendererObject() {\n return this._renderer.getRendererObject();\n }\n\n // @ts-ignore\n override updateFromObjectData(\n oldObjectData: BBTextObjectDataType,\n newObjectData: BBTextObjectDataType\n ): boolean {\n if (oldObjectData.content.opacity !== newObjectData.content.opacity) {\n this.setOpacity(newObjectData.content.opacity);\n }\n if (oldObjectData.content.visible !== newObjectData.content.visible) {\n this.hide(!newObjectData.content.visible);\n }\n if (oldObjectData.content.text !== newObjectData.content.text) {\n this.setBBText(newObjectData.content.text);\n }\n if (oldObjectData.content.color !== newObjectData.content.color) {\n this._color = gdjs.rgbOrHexToRGBColor(newObjectData.content.color);\n this._renderer.updateColor();\n }\n if (\n oldObjectData.content.fontFamily !== newObjectData.content.fontFamily\n ) {\n this.setFontFamily(newObjectData.content.fontFamily);\n }\n if (oldObjectData.content.fontSize !== newObjectData.content.fontSize) {\n this.setFontSize(newObjectData.content.fontSize);\n }\n if (oldObjectData.content.wordWrap !== newObjectData.content.wordWrap) {\n this.setWrapping(newObjectData.content.wordWrap);\n }\n if (oldObjectData.content.align !== newObjectData.content.align) {\n this.setTextAlignment(newObjectData.content.align);\n }\n if (\n oldObjectData.content.verticalTextAlignment !==\n newObjectData.content.verticalTextAlignment\n ) {\n this.setVerticalTextAlignment(\n newObjectData.content.verticalTextAlignment\n );\n }\n return true;\n }\n\n override getNetworkSyncData(): BBTextObjectNetworkSyncData {\n return {\n ...super.getNetworkSyncData(),\n text: this._text,\n o: this._opacity,\n c: this._color,\n ff: this._fontFamily,\n fs: this._fontSize,\n wwrap: this._wrapping,\n wwidth: this._wrappingWidth,\n align: this._textAlign,\n vta: this._verticalTextAlignment,\n hidden: this.hidden,\n };\n }\n\n override updateFromNetworkSyncData(\n networkSyncData: BBTextObjectNetworkSyncData\n ): void {\n super.updateFromNetworkSyncData(networkSyncData);\n if (this._text !== undefined) {\n this.setBBText(networkSyncData.text);\n }\n if (this._opacity !== undefined) {\n this.setOpacity(networkSyncData.o);\n }\n if (this._color !== undefined) {\n this._color = networkSyncData.c;\n this._renderer.updateColor();\n }\n if (this._fontFamily !== undefined) {\n this.setFontFamily(networkSyncData.ff);\n }\n if (this._fontSize !== undefined) {\n this.setFontSize(networkSyncData.fs);\n }\n if (this._wrapping !== undefined) {\n this.setWrapping(networkSyncData.wwrap);\n }\n if (this._wrappingWidth !== undefined) {\n this.setWrappingWidth(networkSyncData.wwidth);\n }\n if (this._textAlign !== undefined) {\n this.setTextAlignment(networkSyncData.align);\n }\n if (this._verticalTextAlignment !== undefined) {\n this.setVerticalTextAlignment(networkSyncData.vta);\n }\n if (this.hidden !== undefined) {\n this.hide(networkSyncData.hidden);\n }\n }\n\n override extraInitializationFromInitialInstance(\n initialInstanceData: InstanceData\n ) {\n if (initialInstanceData.customSize) {\n this.setWrappingWidth(initialInstanceData.width);\n this.setWrapping(true);\n } else {\n this.setWrappingWidth(\n // This value is the default wrapping width of the runtime object.\n 250\n );\n }\n if (initialInstanceData.opacity !== undefined) {\n this.setOpacity(initialInstanceData.opacity);\n }\n }\n\n override onDestroyed(): void {\n super.onDestroyed();\n this._renderer.destroy();\n }\n\n /**\n * Set the markup text to display.\n */\n setBBText(text: string): void {\n this._text = text;\n this._renderer.updateText();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the markup text displayed by the object.\n */\n getBBText() {\n return this._text;\n }\n\n setColor(rgbColorString: string): void {\n this._color = gdjs.rgbOrHexToRGBColor(rgbColorString);\n this._renderer.updateColor();\n }\n\n /**\n * Get the base color.\n * @return The color as a \"R;G;B\" string, for example: \"255;0;0\"\n */\n getColor(): string {\n return this._color[0] + ';' + this._color[1] + ';' + this._color[2];\n }\n\n setFontSize(fontSize: float): void {\n this._fontSize = fontSize;\n this._renderer.updateFontSize();\n }\n\n getFontSize() {\n return this._fontSize;\n }\n\n setFontFamily(fontFamily: string): void {\n this._fontFamily = fontFamily;\n this._renderer.updateFontFamily();\n }\n\n getFontFamily(): string {\n return this._fontFamily;\n }\n\n /**\n * @deprecated Use `setTextAlignment` instead\n */\n setAlignment(align: string): void {\n this.setTextAlignment(align);\n }\n\n setTextAlignment(align: string): void {\n this._textAlign = align;\n this._renderer.updateAlignment();\n }\n\n /**\n * @deprecated Use `getTextAlignment` instead\n */\n getAlignment(): string {\n return this.getTextAlignment();\n }\n\n getTextAlignment(): string {\n return this._textAlign;\n }\n\n /**\n * Set the text alignment on Y axis for multiline text objects.\n * @param alignment The text alignment.\n */\n setVerticalTextAlignment(alignment: string): void {\n this._verticalTextAlignment = alignment;\n this._renderer.updatePosition();\n }\n\n /**\n * Get the text alignment on Y axis of text object.\n * @return The text alignment.\n */\n getVerticalTextAlignment(): string {\n return this._verticalTextAlignment;\n }\n\n override setX(x: float): void {\n super.setX(x);\n this._renderer.updatePosition();\n }\n\n override setY(y: float): void {\n super.setY(y);\n this._renderer.updatePosition();\n }\n\n override setAngle(angle: float): void {\n super.setAngle(angle);\n this._renderer.updateAngle();\n }\n\n /**\n * Set object opacity.\n * @param opacity The new opacity of the object (0-255).\n */\n setOpacity(opacity: float): void {\n if (opacity < 0) {\n opacity = 0;\n }\n if (opacity > 255) {\n opacity = 255;\n }\n this._opacity = opacity;\n this._renderer.updateOpacity();\n }\n\n /**\n * Get object opacity.\n */\n getOpacity() {\n return this._opacity;\n }\n\n /**\n * Set the width.\n * @param width The new width in pixels.\n */\n setWrappingWidth(width: float): void {\n if (this._wrappingWidth === width) return;\n\n this._wrappingWidth = width;\n this._renderer.updateWrappingWidth();\n this.invalidateHitboxes();\n }\n\n /**\n * Get the wrapping width of the object.\n */\n getWrappingWidth(): float {\n return this._wrappingWidth;\n }\n\n setWrapping(wordWrap: boolean): void {\n if (this._wrapping === wordWrap) return;\n\n this._wrapping = wordWrap;\n this._renderer.updateWordWrap();\n this.invalidateHitboxes();\n }\n\n isWrapping() {\n return this._wrapping;\n }\n\n override getWidth(): float {\n return this._wrapping ? this._wrappingWidth : this._renderer.getWidth();\n }\n\n override getHeight(): float {\n return this._renderer.getHeight();\n }\n\n override getDrawableY(): float {\n return (\n this.getY() -\n (this._verticalTextAlignment === 'center'\n ? this.getHeight() / 2\n : this._verticalTextAlignment === 'bottom'\n ? this.getHeight()\n : 0)\n );\n }\n }\n // @ts-ignore\n gdjs.registerObject('BBText::BBText', gdjs.BBTextRuntimeObject);\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -67,6 +67,19 @@ module.exports = {
|
|
|
67
67
|
.setLabel(_('Alignment'))
|
|
68
68
|
.setGroup(_('Appearance'));
|
|
69
69
|
|
|
70
|
+
if (!objectContent.verticalTextAlignment) {
|
|
71
|
+
objectContent.verticalTextAlignment = 'top';
|
|
72
|
+
}
|
|
73
|
+
objectProperties
|
|
74
|
+
.getOrCreate('verticalTextAlignment')
|
|
75
|
+
.setValue(objectContent.verticalTextAlignment)
|
|
76
|
+
.setType('choice')
|
|
77
|
+
.addExtraInfo('top')
|
|
78
|
+
.addExtraInfo('center')
|
|
79
|
+
.addExtraInfo('bottom')
|
|
80
|
+
.setLabel(_('Vertical alignment'))
|
|
81
|
+
.setGroup(_('Appearance'));
|
|
82
|
+
|
|
70
83
|
objectProperties
|
|
71
84
|
.getOrCreate('bitmapFontResourceName')
|
|
72
85
|
.setValue(objectContent.bitmapFontResourceName)
|
|
@@ -97,13 +110,6 @@ module.exports = {
|
|
|
97
110
|
.setLabel(_('Font tint'))
|
|
98
111
|
.setGroup(_('Font'));
|
|
99
112
|
|
|
100
|
-
objectProperties
|
|
101
|
-
.getOrCreate('wordWrap')
|
|
102
|
-
.setValue(objectContent.wordWrap ? 'true' : 'false')
|
|
103
|
-
.setType('boolean')
|
|
104
|
-
.setLabel(_('Word wrapping'))
|
|
105
|
-
.setGroup(_('Appearance'));
|
|
106
|
-
|
|
107
113
|
return objectProperties;
|
|
108
114
|
};
|
|
109
115
|
bitmapTextObject.content = {
|
|
@@ -115,7 +121,7 @@ module.exports = {
|
|
|
115
121
|
bitmapFontResourceName: '',
|
|
116
122
|
textureAtlasResourceName: '',
|
|
117
123
|
align: 'left',
|
|
118
|
-
|
|
124
|
+
verticalTextAlignment: 'top',
|
|
119
125
|
};
|
|
120
126
|
|
|
121
127
|
bitmapTextObject.updateInitialInstanceProperty = function (
|
|
@@ -341,7 +347,7 @@ module.exports = {
|
|
|
341
347
|
_('Alignment ("left", "right" or "center")')
|
|
342
348
|
)
|
|
343
349
|
)
|
|
344
|
-
.setFunctionName('
|
|
350
|
+
.setFunctionName('getTextAlignment');
|
|
345
351
|
|
|
346
352
|
object
|
|
347
353
|
.addAction(
|
|
@@ -361,36 +367,36 @@ module.exports = {
|
|
|
361
367
|
false
|
|
362
368
|
)
|
|
363
369
|
.getCodeExtraInformation()
|
|
364
|
-
.setFunctionName('
|
|
370
|
+
.setFunctionName('setTextAlignment');
|
|
365
371
|
|
|
366
372
|
object
|
|
367
373
|
.addCondition(
|
|
368
374
|
'WordWrap',
|
|
369
|
-
_('Word
|
|
370
|
-
_('Check if word
|
|
371
|
-
_('_PARAM0_ word
|
|
375
|
+
_('Word wrapping'),
|
|
376
|
+
_('Check if word wrapping is enabled.'),
|
|
377
|
+
_('_PARAM0_ word wrapping is enabled'),
|
|
372
378
|
'',
|
|
373
379
|
'res/conditions/wordWrap24_black.png',
|
|
374
380
|
'res/conditions/wordWrap_black.png'
|
|
375
381
|
)
|
|
376
382
|
.addParameter('object', _('Bitmap text'), 'BitmapTextObject', false)
|
|
377
383
|
.getCodeExtraInformation()
|
|
378
|
-
.setFunctionName('
|
|
384
|
+
.setFunctionName('isWrapping');
|
|
379
385
|
|
|
380
386
|
object
|
|
381
387
|
.addAction(
|
|
382
388
|
'SetWordWrap',
|
|
383
|
-
_('Word
|
|
389
|
+
_('Word wrapping'),
|
|
384
390
|
_('De/activate word wrapping.'),
|
|
385
|
-
_('Activate word
|
|
391
|
+
_('Activate word wrapping of _PARAM0_: _PARAM1_'),
|
|
386
392
|
'',
|
|
387
393
|
'res/actions/wordWrap24_black.png',
|
|
388
394
|
'res/actions/wordWrap_black.png'
|
|
389
395
|
)
|
|
390
396
|
.addParameter('object', _('Bitmap text'), 'BitmapTextObject', false)
|
|
391
|
-
.addParameter('yesorno', _('Activate word
|
|
397
|
+
.addParameter('yesorno', _('Activate word wrapping'), '', false)
|
|
392
398
|
.getCodeExtraInformation()
|
|
393
|
-
.setFunctionName('
|
|
399
|
+
.setFunctionName('setWrapping');
|
|
394
400
|
|
|
395
401
|
object
|
|
396
402
|
.addExpressionAndConditionAndAction(
|
|
@@ -624,14 +630,16 @@ module.exports = {
|
|
|
624
630
|
instance,
|
|
625
631
|
associatedObjectConfiguration,
|
|
626
632
|
pixiContainer,
|
|
627
|
-
pixiResourcesLoader
|
|
633
|
+
pixiResourcesLoader,
|
|
634
|
+
propertyOverridings
|
|
628
635
|
) {
|
|
629
636
|
super(
|
|
630
637
|
project,
|
|
631
638
|
instance,
|
|
632
639
|
associatedObjectConfiguration,
|
|
633
640
|
pixiContainer,
|
|
634
|
-
pixiResourcesLoader
|
|
641
|
+
pixiResourcesLoader,
|
|
642
|
+
propertyOverridings
|
|
635
643
|
);
|
|
636
644
|
|
|
637
645
|
// We'll track changes of the font to trigger the loading of the new font.
|
|
@@ -657,8 +665,9 @@ module.exports = {
|
|
|
657
665
|
|
|
658
666
|
// Update the rendered text properties (note: Pixi is only
|
|
659
667
|
// applying changes if there were changed).
|
|
660
|
-
|
|
661
|
-
|
|
668
|
+
this._pixiObject.text = this._propertyOverridings.has('Text')
|
|
669
|
+
? this._propertyOverridings.get('Text')
|
|
670
|
+
: object.content.text;
|
|
662
671
|
|
|
663
672
|
const align = object.content.align;
|
|
664
673
|
this._pixiObject.align = align;
|
|
@@ -704,20 +713,45 @@ module.exports = {
|
|
|
704
713
|
}
|
|
705
714
|
|
|
706
715
|
// Set up the wrapping width if enabled.
|
|
707
|
-
const
|
|
708
|
-
|
|
709
|
-
this._pixiObject.
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
} else {
|
|
713
|
-
this._pixiObject.maxWidth = 0;
|
|
716
|
+
const oldMaxWidth = this._pixiObject.maxWidth;
|
|
717
|
+
this._pixiObject.maxWidth = this._instance.hasCustomSize()
|
|
718
|
+
? this.getCustomWidth() / this._pixiObject.scale.x
|
|
719
|
+
: 0;
|
|
720
|
+
if (oldMaxWidth !== this._pixiObject.maxWidth) {
|
|
714
721
|
this._pixiObject.dirty = true;
|
|
715
722
|
}
|
|
716
723
|
|
|
717
|
-
this.
|
|
718
|
-
|
|
724
|
+
if (this._instance.hasCustomSize() && this.getDefaultWidth() !== 0) {
|
|
725
|
+
const alignmentX =
|
|
726
|
+
object.content.align === 'right'
|
|
727
|
+
? 1
|
|
728
|
+
: object.content.align === 'center'
|
|
729
|
+
? 0.5
|
|
730
|
+
: 0;
|
|
731
|
+
|
|
732
|
+
const width = this.getCustomWidth();
|
|
733
|
+
const renderedWidth = this.getDefaultWidth();
|
|
734
|
+
|
|
735
|
+
// A vector from the custom size center to the renderer center.
|
|
736
|
+
const centerToCenterX = (width - renderedWidth) * (alignmentX - 0.5);
|
|
737
|
+
|
|
738
|
+
this._pixiObject.position.x = this._instance.getX() + width / 2;
|
|
739
|
+
this._pixiObject.anchor.x = 0.5 - centerToCenterX / renderedWidth;
|
|
740
|
+
} else {
|
|
741
|
+
this._pixiObject.position.x =
|
|
742
|
+
this._instance.getX() + this.getDefaultWidth() / 2;
|
|
743
|
+
this._pixiObject.anchor.x = 0.5;
|
|
744
|
+
}
|
|
745
|
+
const alignmentY =
|
|
746
|
+
object.content.verticalTextAlignment === 'bottom'
|
|
747
|
+
? 1
|
|
748
|
+
: object.content.verticalTextAlignment === 'center'
|
|
749
|
+
? 0.5
|
|
750
|
+
: 0;
|
|
719
751
|
this._pixiObject.position.y =
|
|
720
|
-
this._instance.getY() +
|
|
752
|
+
this._instance.getY() + this.getDefaultHeight() * (0.5 - alignmentY);
|
|
753
|
+
this._pixiObject.anchor.y = 0.5;
|
|
754
|
+
|
|
721
755
|
this._pixiObject.rotation = RenderedInstance.toRad(
|
|
722
756
|
this._instance.getAngle()
|
|
723
757
|
);
|
|
@@ -738,18 +772,25 @@ module.exports = {
|
|
|
738
772
|
releaseBitmapFont(fontName);
|
|
739
773
|
}
|
|
740
774
|
|
|
741
|
-
/**
|
|
742
|
-
* Return the width of the instance, when it's not resized.
|
|
743
|
-
*/
|
|
744
775
|
getDefaultWidth() {
|
|
745
|
-
return this._pixiObject.
|
|
776
|
+
return this._pixiObject.textWidth * this._pixiObject.scale.x;
|
|
746
777
|
}
|
|
747
778
|
|
|
748
|
-
/**
|
|
749
|
-
* Return the height of the instance, when it's not resized.
|
|
750
|
-
*/
|
|
751
779
|
getDefaultHeight() {
|
|
752
|
-
return this._pixiObject.
|
|
780
|
+
return this._pixiObject.textHeight * this._pixiObject.scale.y;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
getOriginY() {
|
|
784
|
+
const object = gd.castObject(
|
|
785
|
+
this._associatedObjectConfiguration,
|
|
786
|
+
gd.ObjectJsImplementation
|
|
787
|
+
);
|
|
788
|
+
const height = this.getHeight();
|
|
789
|
+
return object.content.verticalTextAlignment === 'bottom'
|
|
790
|
+
? height
|
|
791
|
+
: object.content.verticalTextAlignment === 'center'
|
|
792
|
+
? height / 2
|
|
793
|
+
: 0;
|
|
753
794
|
}
|
|
754
795
|
}
|
|
755
796
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var gdjs;(function(
|
|
1
|
+
var gdjs;(function(s){class o{constructor(t,i){this._object=t;const e=i.getGame().getBitmapFontManager().obtainBitmapFont(t._bitmapFontResourceName,t._textureAtlasResourceName);this._pixiObject=new PIXI.BitmapText(t._text,{fontName:e.font,fontSize:e.size}),i.getLayer("").getRenderer().addRendererObject(this._pixiObject,t.getZOrder()),this.updateAlignment(),this.updateTextContent(),this.updateAngle(),this.updateOpacity(),this.updateScale(),this.updateWrappingWidth(),this.updateTint()}getRendererObject(){return this._pixiObject}onDestroy(){this._object.getInstanceContainer().getGame().getBitmapFontManager().releaseBitmapFont(this._pixiObject.fontName),this._pixiObject.destroy()}getFontSize(){return this._pixiObject.fontSize}updateFont(){const t=this._object.getInstanceContainer().getGame().getBitmapFontManager().obtainBitmapFont(this._object._bitmapFontResourceName,this._object._textureAtlasResourceName);this._object.getInstanceContainer().getGame().getBitmapFontManager().releaseBitmapFont(this._pixiObject.fontName),this._pixiObject.fontName=t.font,this._pixiObject.fontSize=t.size,this.updatePosition()}updateTint(){this._pixiObject.tint=s.rgbToHexNumber(this._object._tint[0],this._object._tint[1],this._object._tint[2]),this._pixiObject.dirty=!0}getTint(){return this._object._tint[0]+";"+this._object._tint[1]+";"+this._object._tint[2]}updateScale(){this._pixiObject.scale.set(Math.max(this._object._scaleX,0),Math.max(this._object._scaleY,0)),this.updatePosition()}getScale(){return Math.max(this._pixiObject.scale.x,this._pixiObject.scale.y)}updateWrappingWidth(){this._object._wrapping?(this._pixiObject.maxWidth=this._object._wrappingWidth/this._object._scaleX,this._pixiObject.dirty=!0):(this._pixiObject.maxWidth=0,this._pixiObject.dirty=!0),this.updatePosition()}updateTextContent(){this._pixiObject.text=this._object._text,this.updatePosition()}updateAlignment(){this._pixiObject.align=this._object._textAlign,this.updatePosition()}updatePosition(){if(this._object.isWrapping()&&this.getWidth()!==0){const i=this._object._textAlign==="right"?1:this._object._textAlign==="center"?.5:0,e=this._object.getWrappingWidth(),n=this.getWidth(),a=(e-n)*(i-.5);this._pixiObject.position.x=this._object.x+e/2,this._pixiObject.anchor.x=.5-a/n}else this._pixiObject.position.x=this._object.x+this.getWidth()/2,this._pixiObject.anchor.x=.5;const t=this._object._verticalTextAlignment==="bottom"?1:this._object._verticalTextAlignment==="center"?.5:0;this._pixiObject.position.y=this._object.y+this.getHeight()*(.5-t),this._pixiObject.anchor.y=.5}updateAngle(){this._pixiObject.rotation=s.toRad(this._object.angle)}updateOpacity(){this._pixiObject.alpha=this._object._opacity/255}getWidth(){return this._pixiObject.textWidth*this.getScale()}getHeight(){return this._pixiObject.textHeight*this.getScale()}}s.BitmapTextRuntimeObjectPixiRenderer=o,s.BitmapTextRuntimeObjectRenderer=o})(gdjs||(gdjs={}));
|
|
2
2
|
//# sourceMappingURL=bitmaptextruntimeobject-pixi-renderer.js.map
|