minerender 2.1.0-alpha.50 → 2.1.0-alpha.51

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.
@@ -2496,30 +2496,69 @@ var init_TextureAtlas = __esm({
2496
2496
  var ModelGenerator;
2497
2497
  var init_ModelGenerator = __esm({
2498
2498
  "src/model/ModelGenerator.ts"() {
2499
+ init_CubeFace();
2499
2500
  ModelGenerator = class {
2500
2501
  static {
2501
2502
  this.ITEM_LAYERS = ["layer0", "layer1", "layer2", "layer3", "layer4"];
2502
2503
  }
2504
+ /**
2505
+ * Front and back faces plus one zero-thickness side face per run of texels that border a transparent texel,
2506
+ * like vanilla's ItemModelGenerator. Pass the pixels of a single (first) animation frame.
2507
+ */
2503
2508
  static generateItemModel(imageData, layer) {
2504
2509
  const tintindex = this.ITEM_LAYERS.indexOf(layer);
2510
+ const texture = `#${layer}`;
2505
2511
  const mainElement = {
2506
2512
  from: [0, 0, 7.5],
2507
2513
  to: [16, 16, 8.5],
2508
2514
  faces: {
2509
2515
  "south": {
2510
2516
  uv: [0, 0, 16, 16],
2511
- texture: `#${layer}`,
2517
+ texture,
2512
2518
  tintindex
2513
2519
  },
2514
2520
  "north": {
2515
2521
  uv: [16, 0, 0, 16],
2516
- texture: `#${layer}`,
2522
+ texture,
2517
2523
  tintindex
2518
2524
  }
2519
2525
  },
2520
2526
  shade: true
2521
2527
  };
2522
- return [mainElement];
2528
+ const elements = [mainElement];
2529
+ const { width, height, data } = imageData;
2530
+ const opaque = (x, y) => x >= 0 && y >= 0 && x < width && y < height && data[(y * width + x) * 4 + 3] !== 0;
2531
+ const sx = 16 / width;
2532
+ const sy = 16 / height;
2533
+ const sides = [["up" /* UP */, 0, -1], ["down" /* DOWN */, 0, 1], ["west" /* WEST */, -1, 0], ["east" /* EAST */, 1, 0]];
2534
+ for (const [face, dx, dy] of sides) {
2535
+ const horizontal = dx === 0;
2536
+ const lines = horizontal ? height : width;
2537
+ const length = horizontal ? width : height;
2538
+ for (let line = 0; line < lines; line++) {
2539
+ for (let start = 0; start < length; start++) {
2540
+ const exposed = (i) => horizontal ? opaque(i, line) && !opaque(i, line + dy) : opaque(line, i) && !opaque(line + dx, i);
2541
+ if (!exposed(start)) continue;
2542
+ let end = start + 1;
2543
+ while (end < length && exposed(end)) end++;
2544
+ let uv, from, to;
2545
+ if (horizontal) {
2546
+ const y = 16 - (line + (dy > 0 ? 1 : 0)) * sy;
2547
+ uv = [start * sx, line * sy, end * sx, (line + 1) * sy];
2548
+ from = [start * sx, y, 7.5];
2549
+ to = [end * sx, y, 8.5];
2550
+ } else {
2551
+ const x = (line + (dx > 0 ? 1 : 0)) * sx;
2552
+ uv = [line * sx, start * sy, (line + 1) * sx, end * sy];
2553
+ from = [x, 16 - end * sy, 7.5];
2554
+ to = [x, 16 - start * sy, 8.5];
2555
+ }
2556
+ elements.push({ from, to, faces: { [face]: { uv, texture, tintindex } }, shade: true });
2557
+ start = end;
2558
+ }
2559
+ }
2560
+ }
2561
+ return elements;
2523
2562
  }
2524
2563
  };
2525
2564
  }
@@ -2886,7 +2925,15 @@ var init_UVMapper = __esm({
2886
2925
  for (let layerName of ModelGenerator.ITEM_LAYERS) {
2887
2926
  const textureImage = textureMap[layerName];
2888
2927
  if (textureImage) {
2889
- model.elements.push(...ModelGenerator.generateItemModel(textureImage.data, layerName));
2928
+ const [width, height] = sizes[layerName];
2929
+ const frame = frames[layerName]?.[0].index ?? 0;
2930
+ const columns = textureImage.width / width;
2931
+ model.elements.push(...ModelGenerator.generateItemModel(textureImage.getSectionData(
2932
+ frame % columns * width,
2933
+ Math.floor(frame / columns) * height,
2934
+ width,
2935
+ height
2936
+ ), layerName));
2890
2937
  }
2891
2938
  }
2892
2939
  console.debug(p5, "Item model elements", model.elements);
@@ -4103,7 +4150,6 @@ var init_ModelObject = __esm({
4103
4150
  if (this.options.tints) this.options.tints = { ...this.options.tints };
4104
4151
  this.addEventListener("added", () => this.updateAnimationSubscription());
4105
4152
  this.addEventListener("removed", () => this.updateAnimationSubscription());
4106
- console.log("ModelObject options", this.options);
4107
4153
  }
4108
4154
  static {
4109
4155
  this.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
@@ -4952,6 +4998,10 @@ var EntityObject = class _EntityObject extends SceneObject {
4952
4998
  uv
4953
4999
  ).clone();
4954
5000
  geometry.translate(cube.origin[0] + width / 2, cube.origin[1] + height / 2, cube.origin[2] + depth / 2);
5001
+ if (Math.min(width + growX * 2, height + growY * 2, depth + growZ * 2) > 0) {
5002
+ const index = Array.from(geometry.getIndex().array);
5003
+ geometry.setIndex(index.concat(index.slice().reverse()));
5004
+ }
4955
5005
  const mesh = this.createMesh(name, geometry, material);
4956
5006
  mesh.renderOrder = renderOrder;
4957
5007
  anchor.add(mesh);
@@ -10414,7 +10464,7 @@ var SKIN_PARTS = Object.values(SkinPart);
10414
10464
  // src/skin/SkinTextureCoordinates.ts
10415
10465
  var baseSkinCoordinates = {
10416
10466
  head: {
10417
- east: {
10467
+ west: {
10418
10468
  // left
10419
10469
  uv: [
10420
10470
  0,
@@ -10423,7 +10473,7 @@ var baseSkinCoordinates = {
10423
10473
  16
10424
10474
  ]
10425
10475
  },
10426
- west: {
10476
+ east: {
10427
10477
  // right
10428
10478
  uv: [
10429
10479
  16,
@@ -10432,7 +10482,7 @@ var baseSkinCoordinates = {
10432
10482
  16
10433
10483
  ]
10434
10484
  },
10435
- north: {
10485
+ south: {
10436
10486
  // front
10437
10487
  uv: [
10438
10488
  8,
@@ -10441,7 +10491,7 @@ var baseSkinCoordinates = {
10441
10491
  16
10442
10492
  ]
10443
10493
  },
10444
- south: {
10494
+ north: {
10445
10495
  // back
10446
10496
  uv: [
10447
10497
  24,
@@ -10453,24 +10503,24 @@ var baseSkinCoordinates = {
10453
10503
  up: {
10454
10504
  // top
10455
10505
  uv: [
10456
- 16,
10457
10506
  8,
10458
- 8,
10459
- 0
10507
+ 0,
10508
+ 16,
10509
+ 8
10460
10510
  ]
10461
10511
  },
10462
10512
  down: {
10463
10513
  // bottom
10464
10514
  uv: [
10465
- 24,
10466
- 0,
10467
10515
  16,
10468
- 8
10516
+ 8,
10517
+ 24,
10518
+ 0
10469
10519
  ]
10470
10520
  }
10471
10521
  },
10472
10522
  body: {
10473
- east: {
10523
+ west: {
10474
10524
  uv: [
10475
10525
  16,
10476
10526
  20,
@@ -10478,7 +10528,7 @@ var baseSkinCoordinates = {
10478
10528
  32
10479
10529
  ]
10480
10530
  },
10481
- west: {
10531
+ east: {
10482
10532
  uv: [
10483
10533
  28,
10484
10534
  20,
@@ -10486,7 +10536,7 @@ var baseSkinCoordinates = {
10486
10536
  32
10487
10537
  ]
10488
10538
  },
10489
- north: {
10539
+ south: {
10490
10540
  uv: [
10491
10541
  20,
10492
10542
  20,
@@ -10494,7 +10544,7 @@ var baseSkinCoordinates = {
10494
10544
  32
10495
10545
  ]
10496
10546
  },
10497
- south: {
10547
+ north: {
10498
10548
  uv: [
10499
10549
  32,
10500
10550
  20,
@@ -10504,23 +10554,23 @@ var baseSkinCoordinates = {
10504
10554
  },
10505
10555
  up: {
10506
10556
  uv: [
10507
- 28,
10508
10557
  20,
10509
- 20,
10510
- 16
10558
+ 16,
10559
+ 28,
10560
+ 20
10511
10561
  ]
10512
10562
  },
10513
10563
  down: {
10514
10564
  uv: [
10515
- 36,
10516
- 16,
10517
10565
  28,
10518
- 20
10566
+ 20,
10567
+ 36,
10568
+ 16
10519
10569
  ]
10520
10570
  }
10521
10571
  },
10522
10572
  leftArm: {
10523
- east: {
10573
+ west: {
10524
10574
  uv: [
10525
10575
  32,
10526
10576
  52,
@@ -10528,7 +10578,7 @@ var baseSkinCoordinates = {
10528
10578
  64
10529
10579
  ]
10530
10580
  },
10531
- west: {
10581
+ east: {
10532
10582
  uv: [
10533
10583
  40,
10534
10584
  52,
@@ -10536,7 +10586,7 @@ var baseSkinCoordinates = {
10536
10586
  64
10537
10587
  ]
10538
10588
  },
10539
- north: {
10589
+ south: {
10540
10590
  uv: [
10541
10591
  36,
10542
10592
  52,
@@ -10544,7 +10594,7 @@ var baseSkinCoordinates = {
10544
10594
  64
10545
10595
  ]
10546
10596
  },
10547
- south: {
10597
+ north: {
10548
10598
  uv: [
10549
10599
  44,
10550
10600
  52,
@@ -10554,23 +10604,23 @@ var baseSkinCoordinates = {
10554
10604
  },
10555
10605
  up: {
10556
10606
  uv: [
10557
- 40,
10558
- 52,
10559
10607
  36,
10560
- 48
10608
+ 48,
10609
+ 40,
10610
+ 52
10561
10611
  ]
10562
10612
  },
10563
10613
  down: {
10564
10614
  uv: [
10565
- 44,
10566
- 48,
10567
10615
  40,
10568
- 52
10616
+ 52,
10617
+ 44,
10618
+ 48
10569
10619
  ]
10570
10620
  }
10571
10621
  },
10572
10622
  rightArm: {
10573
- east: {
10623
+ west: {
10574
10624
  uv: [
10575
10625
  40,
10576
10626
  20,
@@ -10578,7 +10628,7 @@ var baseSkinCoordinates = {
10578
10628
  32
10579
10629
  ]
10580
10630
  },
10581
- west: {
10631
+ east: {
10582
10632
  uv: [
10583
10633
  48,
10584
10634
  20,
@@ -10586,7 +10636,7 @@ var baseSkinCoordinates = {
10586
10636
  32
10587
10637
  ]
10588
10638
  },
10589
- north: {
10639
+ south: {
10590
10640
  uv: [
10591
10641
  44,
10592
10642
  20,
@@ -10594,7 +10644,7 @@ var baseSkinCoordinates = {
10594
10644
  32
10595
10645
  ]
10596
10646
  },
10597
- south: {
10647
+ north: {
10598
10648
  uv: [
10599
10649
  52,
10600
10650
  20,
@@ -10604,23 +10654,23 @@ var baseSkinCoordinates = {
10604
10654
  },
10605
10655
  up: {
10606
10656
  uv: [
10607
- 48,
10608
- 20,
10609
10657
  44,
10610
- 16
10658
+ 16,
10659
+ 48,
10660
+ 20
10611
10661
  ]
10612
10662
  },
10613
10663
  down: {
10614
10664
  uv: [
10615
- 52,
10616
- 16,
10617
10665
  48,
10618
- 20
10666
+ 20,
10667
+ 52,
10668
+ 16
10619
10669
  ]
10620
10670
  }
10621
10671
  },
10622
10672
  leftLeg: {
10623
- east: {
10673
+ west: {
10624
10674
  uv: [
10625
10675
  16,
10626
10676
  52,
@@ -10628,7 +10678,7 @@ var baseSkinCoordinates = {
10628
10678
  64
10629
10679
  ]
10630
10680
  },
10631
- west: {
10681
+ east: {
10632
10682
  uv: [
10633
10683
  24,
10634
10684
  52,
@@ -10636,7 +10686,7 @@ var baseSkinCoordinates = {
10636
10686
  64
10637
10687
  ]
10638
10688
  },
10639
- north: {
10689
+ south: {
10640
10690
  uv: [
10641
10691
  20,
10642
10692
  52,
@@ -10644,7 +10694,7 @@ var baseSkinCoordinates = {
10644
10694
  64
10645
10695
  ]
10646
10696
  },
10647
- south: {
10697
+ north: {
10648
10698
  uv: [
10649
10699
  28,
10650
10700
  52,
@@ -10654,24 +10704,24 @@ var baseSkinCoordinates = {
10654
10704
  },
10655
10705
  up: {
10656
10706
  uv: [
10657
- 24,
10658
- 52,
10659
10707
  20,
10660
- 48
10708
+ 48,
10709
+ 24,
10710
+ 52
10661
10711
  ]
10662
10712
  },
10663
10713
  down: {
10664
10714
  uv: [
10665
- 28,
10666
- 48,
10667
10715
  24,
10668
- 52
10716
+ 52,
10717
+ 28,
10718
+ 48
10669
10719
  ],
10670
10720
  rotation: 180
10671
10721
  }
10672
10722
  },
10673
10723
  rightLeg: {
10674
- east: {
10724
+ west: {
10675
10725
  uv: [
10676
10726
  0,
10677
10727
  20,
@@ -10679,7 +10729,7 @@ var baseSkinCoordinates = {
10679
10729
  32
10680
10730
  ]
10681
10731
  },
10682
- west: {
10732
+ east: {
10683
10733
  uv: [
10684
10734
  8,
10685
10735
  20,
@@ -10687,7 +10737,7 @@ var baseSkinCoordinates = {
10687
10737
  32
10688
10738
  ]
10689
10739
  },
10690
- north: {
10740
+ south: {
10691
10741
  uv: [
10692
10742
  4,
10693
10743
  20,
@@ -10695,7 +10745,7 @@ var baseSkinCoordinates = {
10695
10745
  32
10696
10746
  ]
10697
10747
  },
10698
- south: {
10748
+ north: {
10699
10749
  uv: [
10700
10750
  12,
10701
10751
  20,
@@ -10705,23 +10755,23 @@ var baseSkinCoordinates = {
10705
10755
  },
10706
10756
  up: {
10707
10757
  uv: [
10708
- 8,
10709
- 20,
10710
10758
  4,
10711
- 16
10759
+ 16,
10760
+ 8,
10761
+ 20
10712
10762
  ]
10713
10763
  },
10714
10764
  down: {
10715
10765
  uv: [
10716
- 12,
10717
- 16,
10718
10766
  8,
10719
- 20
10767
+ 20,
10768
+ 12,
10769
+ 16
10720
10770
  ]
10721
10771
  }
10722
10772
  },
10723
10773
  hat: {
10724
- east: {
10774
+ west: {
10725
10775
  uv: [
10726
10776
  32,
10727
10777
  8,
@@ -10729,7 +10779,7 @@ var baseSkinCoordinates = {
10729
10779
  16
10730
10780
  ]
10731
10781
  },
10732
- west: {
10782
+ east: {
10733
10783
  uv: [
10734
10784
  48,
10735
10785
  8,
@@ -10737,7 +10787,7 @@ var baseSkinCoordinates = {
10737
10787
  16
10738
10788
  ]
10739
10789
  },
10740
- north: {
10790
+ south: {
10741
10791
  uv: [
10742
10792
  40,
10743
10793
  8,
@@ -10745,7 +10795,7 @@ var baseSkinCoordinates = {
10745
10795
  16
10746
10796
  ]
10747
10797
  },
10748
- south: {
10798
+ north: {
10749
10799
  uv: [
10750
10800
  56,
10751
10801
  8,
@@ -10755,24 +10805,24 @@ var baseSkinCoordinates = {
10755
10805
  },
10756
10806
  up: {
10757
10807
  uv: [
10758
- 48,
10759
- 8,
10760
10808
  40,
10761
- 0
10809
+ 0,
10810
+ 48,
10811
+ 8
10762
10812
  ]
10763
10813
  },
10764
10814
  down: {
10765
10815
  uv: [
10766
- 56,
10767
- 0,
10768
10816
  48,
10769
- 8
10817
+ 8,
10818
+ 56,
10819
+ 0
10770
10820
  ],
10771
10821
  rotation: 180
10772
10822
  }
10773
10823
  },
10774
10824
  jacket: {
10775
- east: {
10825
+ west: {
10776
10826
  uv: [
10777
10827
  16,
10778
10828
  36,
@@ -10780,7 +10830,7 @@ var baseSkinCoordinates = {
10780
10830
  48
10781
10831
  ]
10782
10832
  },
10783
- west: {
10833
+ east: {
10784
10834
  uv: [
10785
10835
  28,
10786
10836
  36,
@@ -10788,7 +10838,7 @@ var baseSkinCoordinates = {
10788
10838
  48
10789
10839
  ]
10790
10840
  },
10791
- north: {
10841
+ south: {
10792
10842
  uv: [
10793
10843
  20,
10794
10844
  36,
@@ -10796,7 +10846,7 @@ var baseSkinCoordinates = {
10796
10846
  48
10797
10847
  ]
10798
10848
  },
10799
- south: {
10849
+ north: {
10800
10850
  uv: [
10801
10851
  32,
10802
10852
  36,
@@ -10806,24 +10856,24 @@ var baseSkinCoordinates = {
10806
10856
  },
10807
10857
  up: {
10808
10858
  uv: [
10809
- 28,
10810
- 36,
10811
10859
  20,
10812
- 32
10860
+ 32,
10861
+ 28,
10862
+ 36
10813
10863
  ]
10814
10864
  },
10815
10865
  down: {
10816
10866
  uv: [
10817
- 36,
10818
- 32,
10819
10867
  28,
10820
- 36
10868
+ 36,
10869
+ 36,
10870
+ 32
10821
10871
  ],
10822
10872
  rotation: 180
10823
10873
  }
10824
10874
  },
10825
10875
  leftSleeve: {
10826
- east: {
10876
+ west: {
10827
10877
  uv: [
10828
10878
  48,
10829
10879
  52,
@@ -10831,7 +10881,7 @@ var baseSkinCoordinates = {
10831
10881
  64
10832
10882
  ]
10833
10883
  },
10834
- west: {
10884
+ east: {
10835
10885
  uv: [
10836
10886
  56,
10837
10887
  52,
@@ -10839,7 +10889,7 @@ var baseSkinCoordinates = {
10839
10889
  64
10840
10890
  ]
10841
10891
  },
10842
- north: {
10892
+ south: {
10843
10893
  uv: [
10844
10894
  52,
10845
10895
  52,
@@ -10847,7 +10897,7 @@ var baseSkinCoordinates = {
10847
10897
  64
10848
10898
  ]
10849
10899
  },
10850
- south: {
10900
+ north: {
10851
10901
  uv: [
10852
10902
  60,
10853
10903
  52,
@@ -10857,24 +10907,24 @@ var baseSkinCoordinates = {
10857
10907
  },
10858
10908
  up: {
10859
10909
  uv: [
10860
- 56,
10861
10910
  52,
10862
- 52,
10863
- 48
10911
+ 48,
10912
+ 56,
10913
+ 52
10864
10914
  ]
10865
10915
  },
10866
10916
  down: {
10867
10917
  uv: [
10868
- 60,
10869
- 48,
10870
10918
  56,
10871
- 52
10919
+ 52,
10920
+ 60,
10921
+ 48
10872
10922
  ],
10873
10923
  rotation: 180
10874
10924
  }
10875
10925
  },
10876
10926
  rightSleeve: {
10877
- east: {
10927
+ west: {
10878
10928
  uv: [
10879
10929
  40,
10880
10930
  36,
@@ -10882,7 +10932,7 @@ var baseSkinCoordinates = {
10882
10932
  48
10883
10933
  ]
10884
10934
  },
10885
- west: {
10935
+ east: {
10886
10936
  uv: [
10887
10937
  48,
10888
10938
  36,
@@ -10890,7 +10940,7 @@ var baseSkinCoordinates = {
10890
10940
  48
10891
10941
  ]
10892
10942
  },
10893
- north: {
10943
+ south: {
10894
10944
  uv: [
10895
10945
  44,
10896
10946
  36,
@@ -10898,7 +10948,7 @@ var baseSkinCoordinates = {
10898
10948
  48
10899
10949
  ]
10900
10950
  },
10901
- south: {
10951
+ north: {
10902
10952
  uv: [
10903
10953
  52,
10904
10954
  36,
@@ -10908,24 +10958,24 @@ var baseSkinCoordinates = {
10908
10958
  },
10909
10959
  up: {
10910
10960
  uv: [
10911
- 48,
10912
- 36,
10913
10961
  44,
10914
- 32
10962
+ 32,
10963
+ 48,
10964
+ 36
10915
10965
  ]
10916
10966
  },
10917
10967
  down: {
10918
10968
  uv: [
10919
- 52,
10920
- 32,
10921
10969
  48,
10922
- 36
10970
+ 36,
10971
+ 52,
10972
+ 32
10923
10973
  ],
10924
10974
  rotation: 180
10925
10975
  }
10926
10976
  },
10927
10977
  leftTrousers: {
10928
- east: {
10978
+ west: {
10929
10979
  uv: [
10930
10980
  0,
10931
10981
  52,
@@ -10933,7 +10983,7 @@ var baseSkinCoordinates = {
10933
10983
  64
10934
10984
  ]
10935
10985
  },
10936
- west: {
10986
+ east: {
10937
10987
  uv: [
10938
10988
  8,
10939
10989
  52,
@@ -10941,7 +10991,7 @@ var baseSkinCoordinates = {
10941
10991
  64
10942
10992
  ]
10943
10993
  },
10944
- north: {
10994
+ south: {
10945
10995
  uv: [
10946
10996
  4,
10947
10997
  52,
@@ -10949,7 +10999,7 @@ var baseSkinCoordinates = {
10949
10999
  64
10950
11000
  ]
10951
11001
  },
10952
- south: {
11002
+ north: {
10953
11003
  uv: [
10954
11004
  12,
10955
11005
  52,
@@ -10959,23 +11009,23 @@ var baseSkinCoordinates = {
10959
11009
  },
10960
11010
  up: {
10961
11011
  uv: [
10962
- 8,
10963
- 52,
10964
11012
  4,
10965
- 48
11013
+ 48,
11014
+ 8,
11015
+ 52
10966
11016
  ]
10967
11017
  },
10968
11018
  down: {
10969
11019
  uv: [
10970
- 12,
10971
- 48,
10972
11020
  8,
10973
- 52
11021
+ 52,
11022
+ 12,
11023
+ 48
10974
11024
  ]
10975
11025
  }
10976
11026
  },
10977
11027
  rightTrousers: {
10978
- east: {
11028
+ west: {
10979
11029
  uv: [
10980
11030
  0,
10981
11031
  36,
@@ -10983,7 +11033,7 @@ var baseSkinCoordinates = {
10983
11033
  48
10984
11034
  ]
10985
11035
  },
10986
- west: {
11036
+ east: {
10987
11037
  uv: [
10988
11038
  8,
10989
11039
  36,
@@ -10991,7 +11041,7 @@ var baseSkinCoordinates = {
10991
11041
  48
10992
11042
  ]
10993
11043
  },
10994
- north: {
11044
+ south: {
10995
11045
  uv: [
10996
11046
  4,
10997
11047
  36,
@@ -10999,7 +11049,7 @@ var baseSkinCoordinates = {
10999
11049
  48
11000
11050
  ]
11001
11051
  },
11002
- south: {
11052
+ north: {
11003
11053
  uv: [
11004
11054
  12,
11005
11055
  36,
@@ -11009,18 +11059,18 @@ var baseSkinCoordinates = {
11009
11059
  },
11010
11060
  up: {
11011
11061
  uv: [
11012
- 8,
11013
- 36,
11014
11062
  4,
11015
- 32
11063
+ 32,
11064
+ 8,
11065
+ 36
11016
11066
  ]
11017
11067
  },
11018
11068
  down: {
11019
11069
  uv: [
11020
- 12,
11021
- 32,
11022
11070
  8,
11023
- 36
11071
+ 36,
11072
+ 12,
11073
+ 32
11024
11074
  ],
11025
11075
  rotation: 180
11026
11076
  }
@@ -11041,35 +11091,35 @@ var slimSkinTextureCoordinates = {
11041
11091
  ...baseSkinCoordinates,
11042
11092
  leftArm: {
11043
11093
  ...baseSkinCoordinates.leftArm,
11044
- west: { uv: [39, 52, 43, 64] },
11045
- north: { uv: [36, 52, 39, 64] },
11046
- south: { uv: [43, 52, 46, 64] },
11047
- up: { uv: [39, 52, 36, 48] },
11048
- down: { uv: [42, 48, 39, 52] }
11094
+ east: { uv: [39, 52, 43, 64] },
11095
+ south: { uv: [36, 52, 39, 64] },
11096
+ north: { uv: [43, 52, 46, 64] },
11097
+ up: { uv: [36, 48, 39, 52] },
11098
+ down: { uv: [39, 52, 42, 48] }
11049
11099
  },
11050
11100
  rightArm: {
11051
11101
  ...baseSkinCoordinates.rightArm,
11052
- west: { uv: [47, 20, 51, 32] },
11053
- north: { uv: [44, 20, 47, 32] },
11054
- south: { uv: [51, 20, 54, 32] },
11055
- up: { uv: [47, 20, 44, 16] },
11056
- down: { uv: [50, 16, 47, 20] }
11102
+ east: { uv: [47, 20, 51, 32] },
11103
+ south: { uv: [44, 20, 47, 32] },
11104
+ north: { uv: [51, 20, 54, 32] },
11105
+ up: { uv: [44, 16, 47, 20] },
11106
+ down: { uv: [47, 20, 50, 16] }
11057
11107
  },
11058
11108
  leftSleeve: {
11059
11109
  ...baseSkinCoordinates.leftSleeve,
11060
- west: { uv: [55, 52, 59, 64] },
11061
- north: { uv: [52, 52, 55, 64] },
11062
- south: { uv: [59, 52, 62, 64] },
11063
- up: { uv: [55, 52, 52, 48] },
11064
- down: { uv: [58, 48, 55, 52], rotation: 180 }
11110
+ east: { uv: [55, 52, 59, 64] },
11111
+ south: { uv: [52, 52, 55, 64] },
11112
+ north: { uv: [59, 52, 62, 64] },
11113
+ up: { uv: [52, 48, 55, 52] },
11114
+ down: { uv: [55, 52, 58, 48], rotation: 180 }
11065
11115
  },
11066
11116
  rightSleeve: {
11067
11117
  ...baseSkinCoordinates.rightSleeve,
11068
- west: { uv: [47, 36, 51, 48] },
11069
- north: { uv: [44, 36, 47, 48] },
11070
- south: { uv: [51, 36, 54, 48] },
11071
- up: { uv: [47, 36, 44, 32] },
11072
- down: { uv: [50, 32, 47, 36], rotation: 180 }
11118
+ east: { uv: [47, 36, 51, 48] },
11119
+ south: { uv: [44, 36, 47, 48] },
11120
+ north: { uv: [51, 36, 54, 48] },
11121
+ up: { uv: [44, 32, 47, 36] },
11122
+ down: { uv: [47, 36, 50, 32], rotation: 180 }
11073
11123
  }
11074
11124
  };
11075
11125
 
@@ -11309,34 +11359,34 @@ var SkinObject = class extends SceneObject {
11309
11359
  }
11310
11360
  {
11311
11361
  {
11312
- const leftArmGroup = this.createAndAddGroup("leftArm", -5, 22, 0);
11362
+ const leftArmGroup = this.createAndAddGroup("leftArm", 5, 22, 0);
11313
11363
  const leftArmGeo = this.getBoxGeometry("leftArm" /* LEFT_ARM */);
11314
11364
  const leftArm = this.createAndAddMesh("leftArm", leftArmGroup, leftArmGeo, mat, "y" /* Y */, -4);
11315
- leftArm.position.x = this.slim ? -0.5 : -1;
11365
+ leftArm.position.x = this.slim ? 0.5 : 1;
11316
11366
  const leftSleeveGeo = this.getBoxGeometry("leftSleeve" /* LEFT_SLEEVE */);
11317
11367
  const leftSleeve = this.createAndAddMesh("leftSleeve", leftArmGroup, leftSleeveGeo, mat, "y" /* Y */, -4);
11318
- leftSleeve.position.x = this.slim ? -0.5 : -1;
11368
+ leftSleeve.position.x = this.slim ? 0.5 : 1;
11319
11369
  }
11320
11370
  {
11321
- const rightArmGroup = this.createAndAddGroup("rightArm", 5, 22, 0);
11371
+ const rightArmGroup = this.createAndAddGroup("rightArm", -5, 22, 0);
11322
11372
  const rightArmGeo = this.getBoxGeometry("rightArm" /* RIGHT_ARM */);
11323
11373
  const rightArm = this.createAndAddMesh("rightArm", rightArmGroup, rightArmGeo, mat, "y" /* Y */, -4);
11324
- rightArm.position.x = this.slim ? 0.5 : 1;
11374
+ rightArm.position.x = this.slim ? -0.5 : -1;
11325
11375
  const rightSleeveGeo = this.getBoxGeometry("rightSleeve" /* RIGHT_SLEEVE */);
11326
11376
  const rightSleeve = this.createAndAddMesh("rightSleeve", rightArmGroup, rightSleeveGeo, mat, "y" /* Y */, -4);
11327
- rightSleeve.position.x = this.slim ? 0.5 : 1;
11377
+ rightSleeve.position.x = this.slim ? -0.5 : -1;
11328
11378
  }
11329
11379
  }
11330
11380
  {
11331
11381
  {
11332
- const leftLegGroup = this.createAndAddGroup("leftLeg", -1.9, 12, 0);
11382
+ const leftLegGroup = this.createAndAddGroup("leftLeg", 1.9, 12, 0);
11333
11383
  const leftLegGeo = this.getBoxGeometry("leftLeg" /* LEFT_LEG */);
11334
11384
  const leftLeg = this.createAndAddMesh("leftLeg", leftLegGroup, leftLegGeo, mat, "y" /* Y */, -6);
11335
11385
  const leftTrousersGeo = this.getBoxGeometry("leftTrousers" /* LEFT_TROUSERS */);
11336
11386
  const leftTrousers = this.createAndAddMesh("leftTrousers", leftLegGroup, leftTrousersGeo, mat, "y" /* Y */, -6);
11337
11387
  }
11338
11388
  {
11339
- const rightLegGroup = this.createAndAddGroup("rightLeg", 1.9, 12, 0);
11389
+ const rightLegGroup = this.createAndAddGroup("rightLeg", -1.9, 12, 0);
11340
11390
  const rightLegGeo = this.getBoxGeometry("rightLeg" /* RIGHT_LEG */);
11341
11391
  const rightLeg = this.createAndAddMesh("rightLeg", rightLegGroup, rightLegGeo, mat, "y" /* Y */, -6);
11342
11392
  const rightTrousersGeo = this.getBoxGeometry("rightTrousers" /* RIGHT_TROUSERS */);
@@ -11386,9 +11436,10 @@ var SkinObject = class extends SceneObject {
11386
11436
  mesh.geometry = geometry;
11387
11437
  } else {
11388
11438
  const body = this.getGroupByName("body" /* BODY */);
11389
- const group = this.createGroup("cape" /* CAPE */, 0, body ? 0 : 24, 2);
11439
+ const group = this.createGroup("cape" /* CAPE */);
11440
+ group.position.set(0, body ? 0 : 24, -2);
11390
11441
  (body ?? this).add(group);
11391
- group.rotation.set(toRadians(-6), Math.PI, 0);
11442
+ group.rotation.x = toRadians(6);
11392
11443
  const cape = this.createAndAddMesh("cape" /* CAPE */, group, geometry, material);
11393
11444
  cape.position.set(0, -8, -0.5);
11394
11445
  }
@@ -11402,7 +11453,7 @@ var SkinObject = class extends SceneObject {
11402
11453
  updateSlim(slim) {
11403
11454
  if (slim === this.slim) return;
11404
11455
  this.slim = slim;
11405
- const offset = slim ? 0.5 : -0.5;
11456
+ const offset = slim ? -0.5 : 0.5;
11406
11457
  for (const part of ["leftArm" /* LEFT_ARM */, "leftSleeve" /* LEFT_SLEEVE */, "rightArm" /* RIGHT_ARM */, "rightSleeve" /* RIGHT_SLEEVE */]) {
11407
11458
  const mesh = this.getMeshByName(part);
11408
11459
  if (mesh) {
@@ -11499,13 +11550,9 @@ var MineRenderScene = class _MineRenderScene extends Scene5 {
11499
11550
  return this.add(...object);
11500
11551
  }
11501
11552
  async addSceneObject(asset, objectSupplier, _options, parent = this) {
11502
- console.log("addSceneObject", asset);
11503
- console.log("parent", parent);
11504
- console.log(_options);
11505
11553
  this.dirty = true;
11506
11554
  const obj = await objectSupplier();
11507
11555
  if (obj?.options?.instanceMeshes && asset.key && asset.key?.assetType === "models") {
11508
- console.log("instanceMeshes + key");
11509
11556
  let key = asset.key.serialize();
11510
11557
  if (isModelObject(obj)) {
11511
11558
  const { displayPosition, uvLockRotation, tints, cullMask } = obj.options;
@@ -11522,7 +11569,6 @@ var MineRenderScene = class _MineRenderScene extends Scene5 {
11522
11569
  return obj;
11523
11570
  });
11524
11571
  } else {
11525
- console.log("!instanceMeshes | !key");
11526
11572
  obj.scene = this;
11527
11573
  await obj.init();
11528
11574
  if (!isBlockObject(obj)) {