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.
@@ -2416,27 +2416,66 @@ var init_TextureAtlas = __esm({
2416
2416
  var ModelGenerator;
2417
2417
  var init_ModelGenerator = __esm({
2418
2418
  "src/model/ModelGenerator.ts"() {
2419
+ init_CubeFace();
2419
2420
  ModelGenerator = class {
2421
+ /**
2422
+ * Front and back faces plus one zero-thickness side face per run of texels that border a transparent texel,
2423
+ * like vanilla's ItemModelGenerator. Pass the pixels of a single (first) animation frame.
2424
+ */
2420
2425
  static generateItemModel(imageData, layer) {
2421
2426
  const tintindex = this.ITEM_LAYERS.indexOf(layer);
2427
+ const texture = `#${layer}`;
2422
2428
  const mainElement = {
2423
2429
  from: [0, 0, 7.5],
2424
2430
  to: [16, 16, 8.5],
2425
2431
  faces: {
2426
2432
  "south": {
2427
2433
  uv: [0, 0, 16, 16],
2428
- texture: `#${layer}`,
2434
+ texture,
2429
2435
  tintindex
2430
2436
  },
2431
2437
  "north": {
2432
2438
  uv: [16, 0, 0, 16],
2433
- texture: `#${layer}`,
2439
+ texture,
2434
2440
  tintindex
2435
2441
  }
2436
2442
  },
2437
2443
  shade: true
2438
2444
  };
2439
- return [mainElement];
2445
+ const elements = [mainElement];
2446
+ const { width, height, data } = imageData;
2447
+ const opaque = (x, y) => x >= 0 && y >= 0 && x < width && y < height && data[(y * width + x) * 4 + 3] !== 0;
2448
+ const sx = 16 / width;
2449
+ const sy = 16 / height;
2450
+ const sides = [["up" /* UP */, 0, -1], ["down" /* DOWN */, 0, 1], ["west" /* WEST */, -1, 0], ["east" /* EAST */, 1, 0]];
2451
+ for (const [face, dx, dy] of sides) {
2452
+ const horizontal = dx === 0;
2453
+ const lines = horizontal ? height : width;
2454
+ const length = horizontal ? width : height;
2455
+ for (let line = 0; line < lines; line++) {
2456
+ for (let start = 0; start < length; start++) {
2457
+ const exposed = (i) => horizontal ? opaque(i, line) && !opaque(i, line + dy) : opaque(line, i) && !opaque(line + dx, i);
2458
+ if (!exposed(start)) continue;
2459
+ let end = start + 1;
2460
+ while (end < length && exposed(end)) end++;
2461
+ let uv, from, to;
2462
+ if (horizontal) {
2463
+ const y = 16 - (line + (dy > 0 ? 1 : 0)) * sy;
2464
+ uv = [start * sx, line * sy, end * sx, (line + 1) * sy];
2465
+ from = [start * sx, y, 7.5];
2466
+ to = [end * sx, y, 8.5];
2467
+ } else {
2468
+ const x = (line + (dx > 0 ? 1 : 0)) * sx;
2469
+ uv = [line * sx, start * sy, (line + 1) * sx, end * sy];
2470
+ from = [x, 16 - end * sy, 7.5];
2471
+ to = [x, 16 - start * sy, 8.5];
2472
+ }
2473
+ elements.push({ from, to, faces: { [face]: { uv, texture, tintindex } }, shade: true });
2474
+ start = end;
2475
+ }
2476
+ }
2477
+ }
2478
+ return elements;
2440
2479
  }
2441
2480
  };
2442
2481
  ModelGenerator.ITEM_LAYERS = ["layer0", "layer1", "layer2", "layer3", "layer4"];
@@ -2804,7 +2843,15 @@ var init_UVMapper = __esm({
2804
2843
  for (let layerName of ModelGenerator.ITEM_LAYERS) {
2805
2844
  const textureImage = textureMap[layerName];
2806
2845
  if (textureImage) {
2807
- model.elements.push(...ModelGenerator.generateItemModel(textureImage.data, layerName));
2846
+ const [width, height] = sizes[layerName];
2847
+ const frame = frames[layerName]?.[0].index ?? 0;
2848
+ const columns = textureImage.width / width;
2849
+ model.elements.push(...ModelGenerator.generateItemModel(textureImage.getSectionData(
2850
+ frame % columns * width,
2851
+ Math.floor(frame / columns) * height,
2852
+ width,
2853
+ height
2854
+ ), layerName));
2808
2855
  }
2809
2856
  }
2810
2857
  console.debug(p5, "Item model elements", model.elements);
@@ -4020,7 +4067,6 @@ var init_ModelObject = __esm({
4020
4067
  if (this.options.tints) this.options.tints = { ...this.options.tints };
4021
4068
  this.addEventListener("added", () => this.updateAnimationSubscription());
4022
4069
  this.addEventListener("removed", () => this.updateAnimationSubscription());
4023
- console.log("ModelObject options", this.options);
4024
4070
  }
4025
4071
  async init() {
4026
4072
  await this.loadTextures();
@@ -4903,6 +4949,10 @@ var _EntityObject = class _EntityObject extends SceneObject {
4903
4949
  uv
4904
4950
  ).clone();
4905
4951
  geometry.translate(cube.origin[0] + width / 2, cube.origin[1] + height / 2, cube.origin[2] + depth / 2);
4952
+ if (Math.min(width + growX * 2, height + growY * 2, depth + growZ * 2) > 0) {
4953
+ const index = Array.from(geometry.getIndex().array);
4954
+ geometry.setIndex(index.concat(index.slice().reverse()));
4955
+ }
4906
4956
  const mesh = this.createMesh(name, geometry, material);
4907
4957
  mesh.renderOrder = renderOrder;
4908
4958
  anchor.add(mesh);
@@ -10366,7 +10416,7 @@ var SKIN_PARTS = Object.values(SkinPart);
10366
10416
  // src/skin/SkinTextureCoordinates.ts
10367
10417
  var baseSkinCoordinates = {
10368
10418
  head: {
10369
- east: {
10419
+ west: {
10370
10420
  // left
10371
10421
  uv: [
10372
10422
  0,
@@ -10375,7 +10425,7 @@ var baseSkinCoordinates = {
10375
10425
  16
10376
10426
  ]
10377
10427
  },
10378
- west: {
10428
+ east: {
10379
10429
  // right
10380
10430
  uv: [
10381
10431
  16,
@@ -10384,7 +10434,7 @@ var baseSkinCoordinates = {
10384
10434
  16
10385
10435
  ]
10386
10436
  },
10387
- north: {
10437
+ south: {
10388
10438
  // front
10389
10439
  uv: [
10390
10440
  8,
@@ -10393,7 +10443,7 @@ var baseSkinCoordinates = {
10393
10443
  16
10394
10444
  ]
10395
10445
  },
10396
- south: {
10446
+ north: {
10397
10447
  // back
10398
10448
  uv: [
10399
10449
  24,
@@ -10405,24 +10455,24 @@ var baseSkinCoordinates = {
10405
10455
  up: {
10406
10456
  // top
10407
10457
  uv: [
10408
- 16,
10409
10458
  8,
10410
- 8,
10411
- 0
10459
+ 0,
10460
+ 16,
10461
+ 8
10412
10462
  ]
10413
10463
  },
10414
10464
  down: {
10415
10465
  // bottom
10416
10466
  uv: [
10417
- 24,
10418
- 0,
10419
10467
  16,
10420
- 8
10468
+ 8,
10469
+ 24,
10470
+ 0
10421
10471
  ]
10422
10472
  }
10423
10473
  },
10424
10474
  body: {
10425
- east: {
10475
+ west: {
10426
10476
  uv: [
10427
10477
  16,
10428
10478
  20,
@@ -10430,7 +10480,7 @@ var baseSkinCoordinates = {
10430
10480
  32
10431
10481
  ]
10432
10482
  },
10433
- west: {
10483
+ east: {
10434
10484
  uv: [
10435
10485
  28,
10436
10486
  20,
@@ -10438,7 +10488,7 @@ var baseSkinCoordinates = {
10438
10488
  32
10439
10489
  ]
10440
10490
  },
10441
- north: {
10491
+ south: {
10442
10492
  uv: [
10443
10493
  20,
10444
10494
  20,
@@ -10446,7 +10496,7 @@ var baseSkinCoordinates = {
10446
10496
  32
10447
10497
  ]
10448
10498
  },
10449
- south: {
10499
+ north: {
10450
10500
  uv: [
10451
10501
  32,
10452
10502
  20,
@@ -10456,23 +10506,23 @@ var baseSkinCoordinates = {
10456
10506
  },
10457
10507
  up: {
10458
10508
  uv: [
10459
- 28,
10460
10509
  20,
10461
- 20,
10462
- 16
10510
+ 16,
10511
+ 28,
10512
+ 20
10463
10513
  ]
10464
10514
  },
10465
10515
  down: {
10466
10516
  uv: [
10467
- 36,
10468
- 16,
10469
10517
  28,
10470
- 20
10518
+ 20,
10519
+ 36,
10520
+ 16
10471
10521
  ]
10472
10522
  }
10473
10523
  },
10474
10524
  leftArm: {
10475
- east: {
10525
+ west: {
10476
10526
  uv: [
10477
10527
  32,
10478
10528
  52,
@@ -10480,7 +10530,7 @@ var baseSkinCoordinates = {
10480
10530
  64
10481
10531
  ]
10482
10532
  },
10483
- west: {
10533
+ east: {
10484
10534
  uv: [
10485
10535
  40,
10486
10536
  52,
@@ -10488,7 +10538,7 @@ var baseSkinCoordinates = {
10488
10538
  64
10489
10539
  ]
10490
10540
  },
10491
- north: {
10541
+ south: {
10492
10542
  uv: [
10493
10543
  36,
10494
10544
  52,
@@ -10496,7 +10546,7 @@ var baseSkinCoordinates = {
10496
10546
  64
10497
10547
  ]
10498
10548
  },
10499
- south: {
10549
+ north: {
10500
10550
  uv: [
10501
10551
  44,
10502
10552
  52,
@@ -10506,23 +10556,23 @@ var baseSkinCoordinates = {
10506
10556
  },
10507
10557
  up: {
10508
10558
  uv: [
10509
- 40,
10510
- 52,
10511
10559
  36,
10512
- 48
10560
+ 48,
10561
+ 40,
10562
+ 52
10513
10563
  ]
10514
10564
  },
10515
10565
  down: {
10516
10566
  uv: [
10517
- 44,
10518
- 48,
10519
10567
  40,
10520
- 52
10568
+ 52,
10569
+ 44,
10570
+ 48
10521
10571
  ]
10522
10572
  }
10523
10573
  },
10524
10574
  rightArm: {
10525
- east: {
10575
+ west: {
10526
10576
  uv: [
10527
10577
  40,
10528
10578
  20,
@@ -10530,7 +10580,7 @@ var baseSkinCoordinates = {
10530
10580
  32
10531
10581
  ]
10532
10582
  },
10533
- west: {
10583
+ east: {
10534
10584
  uv: [
10535
10585
  48,
10536
10586
  20,
@@ -10538,7 +10588,7 @@ var baseSkinCoordinates = {
10538
10588
  32
10539
10589
  ]
10540
10590
  },
10541
- north: {
10591
+ south: {
10542
10592
  uv: [
10543
10593
  44,
10544
10594
  20,
@@ -10546,7 +10596,7 @@ var baseSkinCoordinates = {
10546
10596
  32
10547
10597
  ]
10548
10598
  },
10549
- south: {
10599
+ north: {
10550
10600
  uv: [
10551
10601
  52,
10552
10602
  20,
@@ -10556,23 +10606,23 @@ var baseSkinCoordinates = {
10556
10606
  },
10557
10607
  up: {
10558
10608
  uv: [
10559
- 48,
10560
- 20,
10561
10609
  44,
10562
- 16
10610
+ 16,
10611
+ 48,
10612
+ 20
10563
10613
  ]
10564
10614
  },
10565
10615
  down: {
10566
10616
  uv: [
10567
- 52,
10568
- 16,
10569
10617
  48,
10570
- 20
10618
+ 20,
10619
+ 52,
10620
+ 16
10571
10621
  ]
10572
10622
  }
10573
10623
  },
10574
10624
  leftLeg: {
10575
- east: {
10625
+ west: {
10576
10626
  uv: [
10577
10627
  16,
10578
10628
  52,
@@ -10580,7 +10630,7 @@ var baseSkinCoordinates = {
10580
10630
  64
10581
10631
  ]
10582
10632
  },
10583
- west: {
10633
+ east: {
10584
10634
  uv: [
10585
10635
  24,
10586
10636
  52,
@@ -10588,7 +10638,7 @@ var baseSkinCoordinates = {
10588
10638
  64
10589
10639
  ]
10590
10640
  },
10591
- north: {
10641
+ south: {
10592
10642
  uv: [
10593
10643
  20,
10594
10644
  52,
@@ -10596,7 +10646,7 @@ var baseSkinCoordinates = {
10596
10646
  64
10597
10647
  ]
10598
10648
  },
10599
- south: {
10649
+ north: {
10600
10650
  uv: [
10601
10651
  28,
10602
10652
  52,
@@ -10606,24 +10656,24 @@ var baseSkinCoordinates = {
10606
10656
  },
10607
10657
  up: {
10608
10658
  uv: [
10609
- 24,
10610
- 52,
10611
10659
  20,
10612
- 48
10660
+ 48,
10661
+ 24,
10662
+ 52
10613
10663
  ]
10614
10664
  },
10615
10665
  down: {
10616
10666
  uv: [
10617
- 28,
10618
- 48,
10619
10667
  24,
10620
- 52
10668
+ 52,
10669
+ 28,
10670
+ 48
10621
10671
  ],
10622
10672
  rotation: 180
10623
10673
  }
10624
10674
  },
10625
10675
  rightLeg: {
10626
- east: {
10676
+ west: {
10627
10677
  uv: [
10628
10678
  0,
10629
10679
  20,
@@ -10631,7 +10681,7 @@ var baseSkinCoordinates = {
10631
10681
  32
10632
10682
  ]
10633
10683
  },
10634
- west: {
10684
+ east: {
10635
10685
  uv: [
10636
10686
  8,
10637
10687
  20,
@@ -10639,7 +10689,7 @@ var baseSkinCoordinates = {
10639
10689
  32
10640
10690
  ]
10641
10691
  },
10642
- north: {
10692
+ south: {
10643
10693
  uv: [
10644
10694
  4,
10645
10695
  20,
@@ -10647,7 +10697,7 @@ var baseSkinCoordinates = {
10647
10697
  32
10648
10698
  ]
10649
10699
  },
10650
- south: {
10700
+ north: {
10651
10701
  uv: [
10652
10702
  12,
10653
10703
  20,
@@ -10657,23 +10707,23 @@ var baseSkinCoordinates = {
10657
10707
  },
10658
10708
  up: {
10659
10709
  uv: [
10660
- 8,
10661
- 20,
10662
10710
  4,
10663
- 16
10711
+ 16,
10712
+ 8,
10713
+ 20
10664
10714
  ]
10665
10715
  },
10666
10716
  down: {
10667
10717
  uv: [
10668
- 12,
10669
- 16,
10670
10718
  8,
10671
- 20
10719
+ 20,
10720
+ 12,
10721
+ 16
10672
10722
  ]
10673
10723
  }
10674
10724
  },
10675
10725
  hat: {
10676
- east: {
10726
+ west: {
10677
10727
  uv: [
10678
10728
  32,
10679
10729
  8,
@@ -10681,7 +10731,7 @@ var baseSkinCoordinates = {
10681
10731
  16
10682
10732
  ]
10683
10733
  },
10684
- west: {
10734
+ east: {
10685
10735
  uv: [
10686
10736
  48,
10687
10737
  8,
@@ -10689,7 +10739,7 @@ var baseSkinCoordinates = {
10689
10739
  16
10690
10740
  ]
10691
10741
  },
10692
- north: {
10742
+ south: {
10693
10743
  uv: [
10694
10744
  40,
10695
10745
  8,
@@ -10697,7 +10747,7 @@ var baseSkinCoordinates = {
10697
10747
  16
10698
10748
  ]
10699
10749
  },
10700
- south: {
10750
+ north: {
10701
10751
  uv: [
10702
10752
  56,
10703
10753
  8,
@@ -10707,24 +10757,24 @@ var baseSkinCoordinates = {
10707
10757
  },
10708
10758
  up: {
10709
10759
  uv: [
10710
- 48,
10711
- 8,
10712
10760
  40,
10713
- 0
10761
+ 0,
10762
+ 48,
10763
+ 8
10714
10764
  ]
10715
10765
  },
10716
10766
  down: {
10717
10767
  uv: [
10718
- 56,
10719
- 0,
10720
10768
  48,
10721
- 8
10769
+ 8,
10770
+ 56,
10771
+ 0
10722
10772
  ],
10723
10773
  rotation: 180
10724
10774
  }
10725
10775
  },
10726
10776
  jacket: {
10727
- east: {
10777
+ west: {
10728
10778
  uv: [
10729
10779
  16,
10730
10780
  36,
@@ -10732,7 +10782,7 @@ var baseSkinCoordinates = {
10732
10782
  48
10733
10783
  ]
10734
10784
  },
10735
- west: {
10785
+ east: {
10736
10786
  uv: [
10737
10787
  28,
10738
10788
  36,
@@ -10740,7 +10790,7 @@ var baseSkinCoordinates = {
10740
10790
  48
10741
10791
  ]
10742
10792
  },
10743
- north: {
10793
+ south: {
10744
10794
  uv: [
10745
10795
  20,
10746
10796
  36,
@@ -10748,7 +10798,7 @@ var baseSkinCoordinates = {
10748
10798
  48
10749
10799
  ]
10750
10800
  },
10751
- south: {
10801
+ north: {
10752
10802
  uv: [
10753
10803
  32,
10754
10804
  36,
@@ -10758,24 +10808,24 @@ var baseSkinCoordinates = {
10758
10808
  },
10759
10809
  up: {
10760
10810
  uv: [
10761
- 28,
10762
- 36,
10763
10811
  20,
10764
- 32
10812
+ 32,
10813
+ 28,
10814
+ 36
10765
10815
  ]
10766
10816
  },
10767
10817
  down: {
10768
10818
  uv: [
10769
- 36,
10770
- 32,
10771
10819
  28,
10772
- 36
10820
+ 36,
10821
+ 36,
10822
+ 32
10773
10823
  ],
10774
10824
  rotation: 180
10775
10825
  }
10776
10826
  },
10777
10827
  leftSleeve: {
10778
- east: {
10828
+ west: {
10779
10829
  uv: [
10780
10830
  48,
10781
10831
  52,
@@ -10783,7 +10833,7 @@ var baseSkinCoordinates = {
10783
10833
  64
10784
10834
  ]
10785
10835
  },
10786
- west: {
10836
+ east: {
10787
10837
  uv: [
10788
10838
  56,
10789
10839
  52,
@@ -10791,7 +10841,7 @@ var baseSkinCoordinates = {
10791
10841
  64
10792
10842
  ]
10793
10843
  },
10794
- north: {
10844
+ south: {
10795
10845
  uv: [
10796
10846
  52,
10797
10847
  52,
@@ -10799,7 +10849,7 @@ var baseSkinCoordinates = {
10799
10849
  64
10800
10850
  ]
10801
10851
  },
10802
- south: {
10852
+ north: {
10803
10853
  uv: [
10804
10854
  60,
10805
10855
  52,
@@ -10809,24 +10859,24 @@ var baseSkinCoordinates = {
10809
10859
  },
10810
10860
  up: {
10811
10861
  uv: [
10812
- 56,
10813
10862
  52,
10814
- 52,
10815
- 48
10863
+ 48,
10864
+ 56,
10865
+ 52
10816
10866
  ]
10817
10867
  },
10818
10868
  down: {
10819
10869
  uv: [
10820
- 60,
10821
- 48,
10822
10870
  56,
10823
- 52
10871
+ 52,
10872
+ 60,
10873
+ 48
10824
10874
  ],
10825
10875
  rotation: 180
10826
10876
  }
10827
10877
  },
10828
10878
  rightSleeve: {
10829
- east: {
10879
+ west: {
10830
10880
  uv: [
10831
10881
  40,
10832
10882
  36,
@@ -10834,7 +10884,7 @@ var baseSkinCoordinates = {
10834
10884
  48
10835
10885
  ]
10836
10886
  },
10837
- west: {
10887
+ east: {
10838
10888
  uv: [
10839
10889
  48,
10840
10890
  36,
@@ -10842,7 +10892,7 @@ var baseSkinCoordinates = {
10842
10892
  48
10843
10893
  ]
10844
10894
  },
10845
- north: {
10895
+ south: {
10846
10896
  uv: [
10847
10897
  44,
10848
10898
  36,
@@ -10850,7 +10900,7 @@ var baseSkinCoordinates = {
10850
10900
  48
10851
10901
  ]
10852
10902
  },
10853
- south: {
10903
+ north: {
10854
10904
  uv: [
10855
10905
  52,
10856
10906
  36,
@@ -10860,24 +10910,24 @@ var baseSkinCoordinates = {
10860
10910
  },
10861
10911
  up: {
10862
10912
  uv: [
10863
- 48,
10864
- 36,
10865
10913
  44,
10866
- 32
10914
+ 32,
10915
+ 48,
10916
+ 36
10867
10917
  ]
10868
10918
  },
10869
10919
  down: {
10870
10920
  uv: [
10871
- 52,
10872
- 32,
10873
10921
  48,
10874
- 36
10922
+ 36,
10923
+ 52,
10924
+ 32
10875
10925
  ],
10876
10926
  rotation: 180
10877
10927
  }
10878
10928
  },
10879
10929
  leftTrousers: {
10880
- east: {
10930
+ west: {
10881
10931
  uv: [
10882
10932
  0,
10883
10933
  52,
@@ -10885,7 +10935,7 @@ var baseSkinCoordinates = {
10885
10935
  64
10886
10936
  ]
10887
10937
  },
10888
- west: {
10938
+ east: {
10889
10939
  uv: [
10890
10940
  8,
10891
10941
  52,
@@ -10893,7 +10943,7 @@ var baseSkinCoordinates = {
10893
10943
  64
10894
10944
  ]
10895
10945
  },
10896
- north: {
10946
+ south: {
10897
10947
  uv: [
10898
10948
  4,
10899
10949
  52,
@@ -10901,7 +10951,7 @@ var baseSkinCoordinates = {
10901
10951
  64
10902
10952
  ]
10903
10953
  },
10904
- south: {
10954
+ north: {
10905
10955
  uv: [
10906
10956
  12,
10907
10957
  52,
@@ -10911,23 +10961,23 @@ var baseSkinCoordinates = {
10911
10961
  },
10912
10962
  up: {
10913
10963
  uv: [
10914
- 8,
10915
- 52,
10916
10964
  4,
10917
- 48
10965
+ 48,
10966
+ 8,
10967
+ 52
10918
10968
  ]
10919
10969
  },
10920
10970
  down: {
10921
10971
  uv: [
10922
- 12,
10923
- 48,
10924
10972
  8,
10925
- 52
10973
+ 52,
10974
+ 12,
10975
+ 48
10926
10976
  ]
10927
10977
  }
10928
10978
  },
10929
10979
  rightTrousers: {
10930
- east: {
10980
+ west: {
10931
10981
  uv: [
10932
10982
  0,
10933
10983
  36,
@@ -10935,7 +10985,7 @@ var baseSkinCoordinates = {
10935
10985
  48
10936
10986
  ]
10937
10987
  },
10938
- west: {
10988
+ east: {
10939
10989
  uv: [
10940
10990
  8,
10941
10991
  36,
@@ -10943,7 +10993,7 @@ var baseSkinCoordinates = {
10943
10993
  48
10944
10994
  ]
10945
10995
  },
10946
- north: {
10996
+ south: {
10947
10997
  uv: [
10948
10998
  4,
10949
10999
  36,
@@ -10951,7 +11001,7 @@ var baseSkinCoordinates = {
10951
11001
  48
10952
11002
  ]
10953
11003
  },
10954
- south: {
11004
+ north: {
10955
11005
  uv: [
10956
11006
  12,
10957
11007
  36,
@@ -10961,18 +11011,18 @@ var baseSkinCoordinates = {
10961
11011
  },
10962
11012
  up: {
10963
11013
  uv: [
10964
- 8,
10965
- 36,
10966
11014
  4,
10967
- 32
11015
+ 32,
11016
+ 8,
11017
+ 36
10968
11018
  ]
10969
11019
  },
10970
11020
  down: {
10971
11021
  uv: [
10972
- 12,
10973
- 32,
10974
11022
  8,
10975
- 36
11023
+ 36,
11024
+ 12,
11025
+ 32
10976
11026
  ],
10977
11027
  rotation: 180
10978
11028
  }
@@ -10993,35 +11043,35 @@ var slimSkinTextureCoordinates = {
10993
11043
  ...baseSkinCoordinates,
10994
11044
  leftArm: {
10995
11045
  ...baseSkinCoordinates.leftArm,
10996
- west: { uv: [39, 52, 43, 64] },
10997
- north: { uv: [36, 52, 39, 64] },
10998
- south: { uv: [43, 52, 46, 64] },
10999
- up: { uv: [39, 52, 36, 48] },
11000
- down: { uv: [42, 48, 39, 52] }
11046
+ east: { uv: [39, 52, 43, 64] },
11047
+ south: { uv: [36, 52, 39, 64] },
11048
+ north: { uv: [43, 52, 46, 64] },
11049
+ up: { uv: [36, 48, 39, 52] },
11050
+ down: { uv: [39, 52, 42, 48] }
11001
11051
  },
11002
11052
  rightArm: {
11003
11053
  ...baseSkinCoordinates.rightArm,
11004
- west: { uv: [47, 20, 51, 32] },
11005
- north: { uv: [44, 20, 47, 32] },
11006
- south: { uv: [51, 20, 54, 32] },
11007
- up: { uv: [47, 20, 44, 16] },
11008
- down: { uv: [50, 16, 47, 20] }
11054
+ east: { uv: [47, 20, 51, 32] },
11055
+ south: { uv: [44, 20, 47, 32] },
11056
+ north: { uv: [51, 20, 54, 32] },
11057
+ up: { uv: [44, 16, 47, 20] },
11058
+ down: { uv: [47, 20, 50, 16] }
11009
11059
  },
11010
11060
  leftSleeve: {
11011
11061
  ...baseSkinCoordinates.leftSleeve,
11012
- west: { uv: [55, 52, 59, 64] },
11013
- north: { uv: [52, 52, 55, 64] },
11014
- south: { uv: [59, 52, 62, 64] },
11015
- up: { uv: [55, 52, 52, 48] },
11016
- down: { uv: [58, 48, 55, 52], rotation: 180 }
11062
+ east: { uv: [55, 52, 59, 64] },
11063
+ south: { uv: [52, 52, 55, 64] },
11064
+ north: { uv: [59, 52, 62, 64] },
11065
+ up: { uv: [52, 48, 55, 52] },
11066
+ down: { uv: [55, 52, 58, 48], rotation: 180 }
11017
11067
  },
11018
11068
  rightSleeve: {
11019
11069
  ...baseSkinCoordinates.rightSleeve,
11020
- west: { uv: [47, 36, 51, 48] },
11021
- north: { uv: [44, 36, 47, 48] },
11022
- south: { uv: [51, 36, 54, 48] },
11023
- up: { uv: [47, 36, 44, 32] },
11024
- down: { uv: [50, 32, 47, 36], rotation: 180 }
11070
+ east: { uv: [47, 36, 51, 48] },
11071
+ south: { uv: [44, 36, 47, 48] },
11072
+ north: { uv: [51, 36, 54, 48] },
11073
+ up: { uv: [44, 32, 47, 36] },
11074
+ down: { uv: [47, 36, 50, 32], rotation: 180 }
11025
11075
  }
11026
11076
  };
11027
11077
 
@@ -11261,34 +11311,34 @@ var SkinObject = class extends SceneObject {
11261
11311
  }
11262
11312
  {
11263
11313
  {
11264
- const leftArmGroup = this.createAndAddGroup("leftArm", -5, 22, 0);
11314
+ const leftArmGroup = this.createAndAddGroup("leftArm", 5, 22, 0);
11265
11315
  const leftArmGeo = this.getBoxGeometry("leftArm" /* LEFT_ARM */);
11266
11316
  const leftArm = this.createAndAddMesh("leftArm", leftArmGroup, leftArmGeo, mat, "y" /* Y */, -4);
11267
- leftArm.position.x = this.slim ? -0.5 : -1;
11317
+ leftArm.position.x = this.slim ? 0.5 : 1;
11268
11318
  const leftSleeveGeo = this.getBoxGeometry("leftSleeve" /* LEFT_SLEEVE */);
11269
11319
  const leftSleeve = this.createAndAddMesh("leftSleeve", leftArmGroup, leftSleeveGeo, mat, "y" /* Y */, -4);
11270
- leftSleeve.position.x = this.slim ? -0.5 : -1;
11320
+ leftSleeve.position.x = this.slim ? 0.5 : 1;
11271
11321
  }
11272
11322
  {
11273
- const rightArmGroup = this.createAndAddGroup("rightArm", 5, 22, 0);
11323
+ const rightArmGroup = this.createAndAddGroup("rightArm", -5, 22, 0);
11274
11324
  const rightArmGeo = this.getBoxGeometry("rightArm" /* RIGHT_ARM */);
11275
11325
  const rightArm = this.createAndAddMesh("rightArm", rightArmGroup, rightArmGeo, mat, "y" /* Y */, -4);
11276
- rightArm.position.x = this.slim ? 0.5 : 1;
11326
+ rightArm.position.x = this.slim ? -0.5 : -1;
11277
11327
  const rightSleeveGeo = this.getBoxGeometry("rightSleeve" /* RIGHT_SLEEVE */);
11278
11328
  const rightSleeve = this.createAndAddMesh("rightSleeve", rightArmGroup, rightSleeveGeo, mat, "y" /* Y */, -4);
11279
- rightSleeve.position.x = this.slim ? 0.5 : 1;
11329
+ rightSleeve.position.x = this.slim ? -0.5 : -1;
11280
11330
  }
11281
11331
  }
11282
11332
  {
11283
11333
  {
11284
- const leftLegGroup = this.createAndAddGroup("leftLeg", -1.9, 12, 0);
11334
+ const leftLegGroup = this.createAndAddGroup("leftLeg", 1.9, 12, 0);
11285
11335
  const leftLegGeo = this.getBoxGeometry("leftLeg" /* LEFT_LEG */);
11286
11336
  const leftLeg = this.createAndAddMesh("leftLeg", leftLegGroup, leftLegGeo, mat, "y" /* Y */, -6);
11287
11337
  const leftTrousersGeo = this.getBoxGeometry("leftTrousers" /* LEFT_TROUSERS */);
11288
11338
  const leftTrousers = this.createAndAddMesh("leftTrousers", leftLegGroup, leftTrousersGeo, mat, "y" /* Y */, -6);
11289
11339
  }
11290
11340
  {
11291
- const rightLegGroup = this.createAndAddGroup("rightLeg", 1.9, 12, 0);
11341
+ const rightLegGroup = this.createAndAddGroup("rightLeg", -1.9, 12, 0);
11292
11342
  const rightLegGeo = this.getBoxGeometry("rightLeg" /* RIGHT_LEG */);
11293
11343
  const rightLeg = this.createAndAddMesh("rightLeg", rightLegGroup, rightLegGeo, mat, "y" /* Y */, -6);
11294
11344
  const rightTrousersGeo = this.getBoxGeometry("rightTrousers" /* RIGHT_TROUSERS */);
@@ -11338,9 +11388,10 @@ var SkinObject = class extends SceneObject {
11338
11388
  mesh.geometry = geometry;
11339
11389
  } else {
11340
11390
  const body = this.getGroupByName("body" /* BODY */);
11341
- const group = this.createGroup("cape" /* CAPE */, 0, body ? 0 : 24, 2);
11391
+ const group = this.createGroup("cape" /* CAPE */);
11392
+ group.position.set(0, body ? 0 : 24, -2);
11342
11393
  (body ?? this).add(group);
11343
- group.rotation.set(toRadians(-6), Math.PI, 0);
11394
+ group.rotation.x = toRadians(6);
11344
11395
  const cape = this.createAndAddMesh("cape" /* CAPE */, group, geometry, material);
11345
11396
  cape.position.set(0, -8, -0.5);
11346
11397
  }
@@ -11354,7 +11405,7 @@ var SkinObject = class extends SceneObject {
11354
11405
  updateSlim(slim) {
11355
11406
  if (slim === this.slim) return;
11356
11407
  this.slim = slim;
11357
- const offset = slim ? 0.5 : -0.5;
11408
+ const offset = slim ? -0.5 : 0.5;
11358
11409
  for (const part of ["leftArm" /* LEFT_ARM */, "leftSleeve" /* LEFT_SLEEVE */, "rightArm" /* RIGHT_ARM */, "rightSleeve" /* RIGHT_SLEEVE */]) {
11359
11410
  const mesh = this.getMeshByName(part);
11360
11411
  if (mesh) {
@@ -11448,13 +11499,9 @@ var _MineRenderScene = class _MineRenderScene extends Scene5 {
11448
11499
  return this.add(...object);
11449
11500
  }
11450
11501
  async addSceneObject(asset, objectSupplier, _options, parent = this) {
11451
- console.log("addSceneObject", asset);
11452
- console.log("parent", parent);
11453
- console.log(_options);
11454
11502
  this.dirty = true;
11455
11503
  const obj = await objectSupplier();
11456
11504
  if (obj?.options?.instanceMeshes && asset.key && asset.key?.assetType === "models") {
11457
- console.log("instanceMeshes + key");
11458
11505
  let key = asset.key.serialize();
11459
11506
  if (isModelObject(obj)) {
11460
11507
  const { displayPosition, uvLockRotation, tints, cullMask } = obj.options;
@@ -11471,7 +11518,6 @@ var _MineRenderScene = class _MineRenderScene extends Scene5 {
11471
11518
  return obj;
11472
11519
  });
11473
11520
  } else {
11474
- console.log("!instanceMeshes | !key");
11475
11521
  obj.scene = this;
11476
11522
  await obj.init();
11477
11523
  if (!isBlockObject(obj)) {