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.
@@ -2418,27 +2418,66 @@ var init_TextureAtlas = __esm({
2418
2418
  var ModelGenerator;
2419
2419
  var init_ModelGenerator = __esm({
2420
2420
  "src/model/ModelGenerator.ts"() {
2421
+ init_CubeFace();
2421
2422
  ModelGenerator = class {
2423
+ /**
2424
+ * Front and back faces plus one zero-thickness side face per run of texels that border a transparent texel,
2425
+ * like vanilla's ItemModelGenerator. Pass the pixels of a single (first) animation frame.
2426
+ */
2422
2427
  static generateItemModel(imageData, layer) {
2423
2428
  const tintindex = this.ITEM_LAYERS.indexOf(layer);
2429
+ const texture = `#${layer}`;
2424
2430
  const mainElement = {
2425
2431
  from: [0, 0, 7.5],
2426
2432
  to: [16, 16, 8.5],
2427
2433
  faces: {
2428
2434
  "south": {
2429
2435
  uv: [0, 0, 16, 16],
2430
- texture: `#${layer}`,
2436
+ texture,
2431
2437
  tintindex
2432
2438
  },
2433
2439
  "north": {
2434
2440
  uv: [16, 0, 0, 16],
2435
- texture: `#${layer}`,
2441
+ texture,
2436
2442
  tintindex
2437
2443
  }
2438
2444
  },
2439
2445
  shade: true
2440
2446
  };
2441
- return [mainElement];
2447
+ const elements = [mainElement];
2448
+ const { width, height, data } = imageData;
2449
+ const opaque = (x, y) => x >= 0 && y >= 0 && x < width && y < height && data[(y * width + x) * 4 + 3] !== 0;
2450
+ const sx = 16 / width;
2451
+ const sy = 16 / height;
2452
+ const sides = [["up" /* UP */, 0, -1], ["down" /* DOWN */, 0, 1], ["west" /* WEST */, -1, 0], ["east" /* EAST */, 1, 0]];
2453
+ for (const [face, dx, dy] of sides) {
2454
+ const horizontal = dx === 0;
2455
+ const lines = horizontal ? height : width;
2456
+ const length = horizontal ? width : height;
2457
+ for (let line = 0; line < lines; line++) {
2458
+ for (let start = 0; start < length; start++) {
2459
+ const exposed = (i) => horizontal ? opaque(i, line) && !opaque(i, line + dy) : opaque(line, i) && !opaque(line + dx, i);
2460
+ if (!exposed(start)) continue;
2461
+ let end = start + 1;
2462
+ while (end < length && exposed(end)) end++;
2463
+ let uv, from, to;
2464
+ if (horizontal) {
2465
+ const y = 16 - (line + (dy > 0 ? 1 : 0)) * sy;
2466
+ uv = [start * sx, line * sy, end * sx, (line + 1) * sy];
2467
+ from = [start * sx, y, 7.5];
2468
+ to = [end * sx, y, 8.5];
2469
+ } else {
2470
+ const x = (line + (dx > 0 ? 1 : 0)) * sx;
2471
+ uv = [line * sx, start * sy, (line + 1) * sx, end * sy];
2472
+ from = [x, 16 - end * sy, 7.5];
2473
+ to = [x, 16 - start * sy, 8.5];
2474
+ }
2475
+ elements.push({ from, to, faces: { [face]: { uv, texture, tintindex } }, shade: true });
2476
+ start = end;
2477
+ }
2478
+ }
2479
+ }
2480
+ return elements;
2442
2481
  }
2443
2482
  };
2444
2483
  ModelGenerator.ITEM_LAYERS = ["layer0", "layer1", "layer2", "layer3", "layer4"];
@@ -2806,7 +2845,15 @@ var init_UVMapper = __esm({
2806
2845
  for (let layerName of ModelGenerator.ITEM_LAYERS) {
2807
2846
  const textureImage = textureMap[layerName];
2808
2847
  if (textureImage) {
2809
- model.elements.push(...ModelGenerator.generateItemModel(textureImage.data, layerName));
2848
+ const [width, height] = sizes[layerName];
2849
+ const frame = frames[layerName]?.[0].index ?? 0;
2850
+ const columns = textureImage.width / width;
2851
+ model.elements.push(...ModelGenerator.generateItemModel(textureImage.getSectionData(
2852
+ frame % columns * width,
2853
+ Math.floor(frame / columns) * height,
2854
+ width,
2855
+ height
2856
+ ), layerName));
2810
2857
  }
2811
2858
  }
2812
2859
  console.debug(p5, "Item model elements", model.elements);
@@ -4013,7 +4060,6 @@ var init_ModelObject = __esm({
4013
4060
  if (this.options.tints) this.options.tints = { ...this.options.tints };
4014
4061
  this.addEventListener("added", () => this.updateAnimationSubscription());
4015
4062
  this.addEventListener("removed", () => this.updateAnimationSubscription());
4016
- console.log("ModelObject options", this.options);
4017
4063
  }
4018
4064
  async init() {
4019
4065
  await this.loadTextures();
@@ -5065,6 +5111,10 @@ var _EntityObject = class _EntityObject extends SceneObject {
5065
5111
  uv
5066
5112
  ).clone();
5067
5113
  geometry.translate(cube.origin[0] + width / 2, cube.origin[1] + height / 2, cube.origin[2] + depth / 2);
5114
+ if (Math.min(width + growX * 2, height + growY * 2, depth + growZ * 2) > 0) {
5115
+ const index = Array.from(geometry.getIndex().array);
5116
+ geometry.setIndex(index.concat(index.slice().reverse()));
5117
+ }
5068
5118
  const mesh = this.createMesh(name, geometry, material);
5069
5119
  mesh.renderOrder = renderOrder;
5070
5120
  anchor.add(mesh);
@@ -10483,7 +10533,7 @@ var SKIN_PARTS = Object.values(SkinPart);
10483
10533
  // src/skin/SkinTextureCoordinates.ts
10484
10534
  var baseSkinCoordinates = {
10485
10535
  head: {
10486
- east: {
10536
+ west: {
10487
10537
  // left
10488
10538
  uv: [
10489
10539
  0,
@@ -10492,7 +10542,7 @@ var baseSkinCoordinates = {
10492
10542
  16
10493
10543
  ]
10494
10544
  },
10495
- west: {
10545
+ east: {
10496
10546
  // right
10497
10547
  uv: [
10498
10548
  16,
@@ -10501,7 +10551,7 @@ var baseSkinCoordinates = {
10501
10551
  16
10502
10552
  ]
10503
10553
  },
10504
- north: {
10554
+ south: {
10505
10555
  // front
10506
10556
  uv: [
10507
10557
  8,
@@ -10510,7 +10560,7 @@ var baseSkinCoordinates = {
10510
10560
  16
10511
10561
  ]
10512
10562
  },
10513
- south: {
10563
+ north: {
10514
10564
  // back
10515
10565
  uv: [
10516
10566
  24,
@@ -10522,24 +10572,24 @@ var baseSkinCoordinates = {
10522
10572
  up: {
10523
10573
  // top
10524
10574
  uv: [
10525
- 16,
10526
10575
  8,
10527
- 8,
10528
- 0
10576
+ 0,
10577
+ 16,
10578
+ 8
10529
10579
  ]
10530
10580
  },
10531
10581
  down: {
10532
10582
  // bottom
10533
10583
  uv: [
10534
- 24,
10535
- 0,
10536
10584
  16,
10537
- 8
10585
+ 8,
10586
+ 24,
10587
+ 0
10538
10588
  ]
10539
10589
  }
10540
10590
  },
10541
10591
  body: {
10542
- east: {
10592
+ west: {
10543
10593
  uv: [
10544
10594
  16,
10545
10595
  20,
@@ -10547,7 +10597,7 @@ var baseSkinCoordinates = {
10547
10597
  32
10548
10598
  ]
10549
10599
  },
10550
- west: {
10600
+ east: {
10551
10601
  uv: [
10552
10602
  28,
10553
10603
  20,
@@ -10555,7 +10605,7 @@ var baseSkinCoordinates = {
10555
10605
  32
10556
10606
  ]
10557
10607
  },
10558
- north: {
10608
+ south: {
10559
10609
  uv: [
10560
10610
  20,
10561
10611
  20,
@@ -10563,7 +10613,7 @@ var baseSkinCoordinates = {
10563
10613
  32
10564
10614
  ]
10565
10615
  },
10566
- south: {
10616
+ north: {
10567
10617
  uv: [
10568
10618
  32,
10569
10619
  20,
@@ -10573,23 +10623,23 @@ var baseSkinCoordinates = {
10573
10623
  },
10574
10624
  up: {
10575
10625
  uv: [
10576
- 28,
10577
10626
  20,
10578
- 20,
10579
- 16
10627
+ 16,
10628
+ 28,
10629
+ 20
10580
10630
  ]
10581
10631
  },
10582
10632
  down: {
10583
10633
  uv: [
10584
- 36,
10585
- 16,
10586
10634
  28,
10587
- 20
10635
+ 20,
10636
+ 36,
10637
+ 16
10588
10638
  ]
10589
10639
  }
10590
10640
  },
10591
10641
  leftArm: {
10592
- east: {
10642
+ west: {
10593
10643
  uv: [
10594
10644
  32,
10595
10645
  52,
@@ -10597,7 +10647,7 @@ var baseSkinCoordinates = {
10597
10647
  64
10598
10648
  ]
10599
10649
  },
10600
- west: {
10650
+ east: {
10601
10651
  uv: [
10602
10652
  40,
10603
10653
  52,
@@ -10605,7 +10655,7 @@ var baseSkinCoordinates = {
10605
10655
  64
10606
10656
  ]
10607
10657
  },
10608
- north: {
10658
+ south: {
10609
10659
  uv: [
10610
10660
  36,
10611
10661
  52,
@@ -10613,7 +10663,7 @@ var baseSkinCoordinates = {
10613
10663
  64
10614
10664
  ]
10615
10665
  },
10616
- south: {
10666
+ north: {
10617
10667
  uv: [
10618
10668
  44,
10619
10669
  52,
@@ -10623,23 +10673,23 @@ var baseSkinCoordinates = {
10623
10673
  },
10624
10674
  up: {
10625
10675
  uv: [
10626
- 40,
10627
- 52,
10628
10676
  36,
10629
- 48
10677
+ 48,
10678
+ 40,
10679
+ 52
10630
10680
  ]
10631
10681
  },
10632
10682
  down: {
10633
10683
  uv: [
10634
- 44,
10635
- 48,
10636
10684
  40,
10637
- 52
10685
+ 52,
10686
+ 44,
10687
+ 48
10638
10688
  ]
10639
10689
  }
10640
10690
  },
10641
10691
  rightArm: {
10642
- east: {
10692
+ west: {
10643
10693
  uv: [
10644
10694
  40,
10645
10695
  20,
@@ -10647,7 +10697,7 @@ var baseSkinCoordinates = {
10647
10697
  32
10648
10698
  ]
10649
10699
  },
10650
- west: {
10700
+ east: {
10651
10701
  uv: [
10652
10702
  48,
10653
10703
  20,
@@ -10655,7 +10705,7 @@ var baseSkinCoordinates = {
10655
10705
  32
10656
10706
  ]
10657
10707
  },
10658
- north: {
10708
+ south: {
10659
10709
  uv: [
10660
10710
  44,
10661
10711
  20,
@@ -10663,7 +10713,7 @@ var baseSkinCoordinates = {
10663
10713
  32
10664
10714
  ]
10665
10715
  },
10666
- south: {
10716
+ north: {
10667
10717
  uv: [
10668
10718
  52,
10669
10719
  20,
@@ -10673,23 +10723,23 @@ var baseSkinCoordinates = {
10673
10723
  },
10674
10724
  up: {
10675
10725
  uv: [
10676
- 48,
10677
- 20,
10678
10726
  44,
10679
- 16
10727
+ 16,
10728
+ 48,
10729
+ 20
10680
10730
  ]
10681
10731
  },
10682
10732
  down: {
10683
10733
  uv: [
10684
- 52,
10685
- 16,
10686
10734
  48,
10687
- 20
10735
+ 20,
10736
+ 52,
10737
+ 16
10688
10738
  ]
10689
10739
  }
10690
10740
  },
10691
10741
  leftLeg: {
10692
- east: {
10742
+ west: {
10693
10743
  uv: [
10694
10744
  16,
10695
10745
  52,
@@ -10697,7 +10747,7 @@ var baseSkinCoordinates = {
10697
10747
  64
10698
10748
  ]
10699
10749
  },
10700
- west: {
10750
+ east: {
10701
10751
  uv: [
10702
10752
  24,
10703
10753
  52,
@@ -10705,7 +10755,7 @@ var baseSkinCoordinates = {
10705
10755
  64
10706
10756
  ]
10707
10757
  },
10708
- north: {
10758
+ south: {
10709
10759
  uv: [
10710
10760
  20,
10711
10761
  52,
@@ -10713,7 +10763,7 @@ var baseSkinCoordinates = {
10713
10763
  64
10714
10764
  ]
10715
10765
  },
10716
- south: {
10766
+ north: {
10717
10767
  uv: [
10718
10768
  28,
10719
10769
  52,
@@ -10723,24 +10773,24 @@ var baseSkinCoordinates = {
10723
10773
  },
10724
10774
  up: {
10725
10775
  uv: [
10726
- 24,
10727
- 52,
10728
10776
  20,
10729
- 48
10777
+ 48,
10778
+ 24,
10779
+ 52
10730
10780
  ]
10731
10781
  },
10732
10782
  down: {
10733
10783
  uv: [
10734
- 28,
10735
- 48,
10736
10784
  24,
10737
- 52
10785
+ 52,
10786
+ 28,
10787
+ 48
10738
10788
  ],
10739
10789
  rotation: 180
10740
10790
  }
10741
10791
  },
10742
10792
  rightLeg: {
10743
- east: {
10793
+ west: {
10744
10794
  uv: [
10745
10795
  0,
10746
10796
  20,
@@ -10748,7 +10798,7 @@ var baseSkinCoordinates = {
10748
10798
  32
10749
10799
  ]
10750
10800
  },
10751
- west: {
10801
+ east: {
10752
10802
  uv: [
10753
10803
  8,
10754
10804
  20,
@@ -10756,7 +10806,7 @@ var baseSkinCoordinates = {
10756
10806
  32
10757
10807
  ]
10758
10808
  },
10759
- north: {
10809
+ south: {
10760
10810
  uv: [
10761
10811
  4,
10762
10812
  20,
@@ -10764,7 +10814,7 @@ var baseSkinCoordinates = {
10764
10814
  32
10765
10815
  ]
10766
10816
  },
10767
- south: {
10817
+ north: {
10768
10818
  uv: [
10769
10819
  12,
10770
10820
  20,
@@ -10774,23 +10824,23 @@ var baseSkinCoordinates = {
10774
10824
  },
10775
10825
  up: {
10776
10826
  uv: [
10777
- 8,
10778
- 20,
10779
10827
  4,
10780
- 16
10828
+ 16,
10829
+ 8,
10830
+ 20
10781
10831
  ]
10782
10832
  },
10783
10833
  down: {
10784
10834
  uv: [
10785
- 12,
10786
- 16,
10787
10835
  8,
10788
- 20
10836
+ 20,
10837
+ 12,
10838
+ 16
10789
10839
  ]
10790
10840
  }
10791
10841
  },
10792
10842
  hat: {
10793
- east: {
10843
+ west: {
10794
10844
  uv: [
10795
10845
  32,
10796
10846
  8,
@@ -10798,7 +10848,7 @@ var baseSkinCoordinates = {
10798
10848
  16
10799
10849
  ]
10800
10850
  },
10801
- west: {
10851
+ east: {
10802
10852
  uv: [
10803
10853
  48,
10804
10854
  8,
@@ -10806,7 +10856,7 @@ var baseSkinCoordinates = {
10806
10856
  16
10807
10857
  ]
10808
10858
  },
10809
- north: {
10859
+ south: {
10810
10860
  uv: [
10811
10861
  40,
10812
10862
  8,
@@ -10814,7 +10864,7 @@ var baseSkinCoordinates = {
10814
10864
  16
10815
10865
  ]
10816
10866
  },
10817
- south: {
10867
+ north: {
10818
10868
  uv: [
10819
10869
  56,
10820
10870
  8,
@@ -10824,24 +10874,24 @@ var baseSkinCoordinates = {
10824
10874
  },
10825
10875
  up: {
10826
10876
  uv: [
10827
- 48,
10828
- 8,
10829
10877
  40,
10830
- 0
10878
+ 0,
10879
+ 48,
10880
+ 8
10831
10881
  ]
10832
10882
  },
10833
10883
  down: {
10834
10884
  uv: [
10835
- 56,
10836
- 0,
10837
10885
  48,
10838
- 8
10886
+ 8,
10887
+ 56,
10888
+ 0
10839
10889
  ],
10840
10890
  rotation: 180
10841
10891
  }
10842
10892
  },
10843
10893
  jacket: {
10844
- east: {
10894
+ west: {
10845
10895
  uv: [
10846
10896
  16,
10847
10897
  36,
@@ -10849,7 +10899,7 @@ var baseSkinCoordinates = {
10849
10899
  48
10850
10900
  ]
10851
10901
  },
10852
- west: {
10902
+ east: {
10853
10903
  uv: [
10854
10904
  28,
10855
10905
  36,
@@ -10857,7 +10907,7 @@ var baseSkinCoordinates = {
10857
10907
  48
10858
10908
  ]
10859
10909
  },
10860
- north: {
10910
+ south: {
10861
10911
  uv: [
10862
10912
  20,
10863
10913
  36,
@@ -10865,7 +10915,7 @@ var baseSkinCoordinates = {
10865
10915
  48
10866
10916
  ]
10867
10917
  },
10868
- south: {
10918
+ north: {
10869
10919
  uv: [
10870
10920
  32,
10871
10921
  36,
@@ -10875,24 +10925,24 @@ var baseSkinCoordinates = {
10875
10925
  },
10876
10926
  up: {
10877
10927
  uv: [
10878
- 28,
10879
- 36,
10880
10928
  20,
10881
- 32
10929
+ 32,
10930
+ 28,
10931
+ 36
10882
10932
  ]
10883
10933
  },
10884
10934
  down: {
10885
10935
  uv: [
10886
- 36,
10887
- 32,
10888
10936
  28,
10889
- 36
10937
+ 36,
10938
+ 36,
10939
+ 32
10890
10940
  ],
10891
10941
  rotation: 180
10892
10942
  }
10893
10943
  },
10894
10944
  leftSleeve: {
10895
- east: {
10945
+ west: {
10896
10946
  uv: [
10897
10947
  48,
10898
10948
  52,
@@ -10900,7 +10950,7 @@ var baseSkinCoordinates = {
10900
10950
  64
10901
10951
  ]
10902
10952
  },
10903
- west: {
10953
+ east: {
10904
10954
  uv: [
10905
10955
  56,
10906
10956
  52,
@@ -10908,7 +10958,7 @@ var baseSkinCoordinates = {
10908
10958
  64
10909
10959
  ]
10910
10960
  },
10911
- north: {
10961
+ south: {
10912
10962
  uv: [
10913
10963
  52,
10914
10964
  52,
@@ -10916,7 +10966,7 @@ var baseSkinCoordinates = {
10916
10966
  64
10917
10967
  ]
10918
10968
  },
10919
- south: {
10969
+ north: {
10920
10970
  uv: [
10921
10971
  60,
10922
10972
  52,
@@ -10926,24 +10976,24 @@ var baseSkinCoordinates = {
10926
10976
  },
10927
10977
  up: {
10928
10978
  uv: [
10929
- 56,
10930
10979
  52,
10931
- 52,
10932
- 48
10980
+ 48,
10981
+ 56,
10982
+ 52
10933
10983
  ]
10934
10984
  },
10935
10985
  down: {
10936
10986
  uv: [
10937
- 60,
10938
- 48,
10939
10987
  56,
10940
- 52
10988
+ 52,
10989
+ 60,
10990
+ 48
10941
10991
  ],
10942
10992
  rotation: 180
10943
10993
  }
10944
10994
  },
10945
10995
  rightSleeve: {
10946
- east: {
10996
+ west: {
10947
10997
  uv: [
10948
10998
  40,
10949
10999
  36,
@@ -10951,7 +11001,7 @@ var baseSkinCoordinates = {
10951
11001
  48
10952
11002
  ]
10953
11003
  },
10954
- west: {
11004
+ east: {
10955
11005
  uv: [
10956
11006
  48,
10957
11007
  36,
@@ -10959,7 +11009,7 @@ var baseSkinCoordinates = {
10959
11009
  48
10960
11010
  ]
10961
11011
  },
10962
- north: {
11012
+ south: {
10963
11013
  uv: [
10964
11014
  44,
10965
11015
  36,
@@ -10967,7 +11017,7 @@ var baseSkinCoordinates = {
10967
11017
  48
10968
11018
  ]
10969
11019
  },
10970
- south: {
11020
+ north: {
10971
11021
  uv: [
10972
11022
  52,
10973
11023
  36,
@@ -10977,24 +11027,24 @@ var baseSkinCoordinates = {
10977
11027
  },
10978
11028
  up: {
10979
11029
  uv: [
10980
- 48,
10981
- 36,
10982
11030
  44,
10983
- 32
11031
+ 32,
11032
+ 48,
11033
+ 36
10984
11034
  ]
10985
11035
  },
10986
11036
  down: {
10987
11037
  uv: [
10988
- 52,
10989
- 32,
10990
11038
  48,
10991
- 36
11039
+ 36,
11040
+ 52,
11041
+ 32
10992
11042
  ],
10993
11043
  rotation: 180
10994
11044
  }
10995
11045
  },
10996
11046
  leftTrousers: {
10997
- east: {
11047
+ west: {
10998
11048
  uv: [
10999
11049
  0,
11000
11050
  52,
@@ -11002,7 +11052,7 @@ var baseSkinCoordinates = {
11002
11052
  64
11003
11053
  ]
11004
11054
  },
11005
- west: {
11055
+ east: {
11006
11056
  uv: [
11007
11057
  8,
11008
11058
  52,
@@ -11010,7 +11060,7 @@ var baseSkinCoordinates = {
11010
11060
  64
11011
11061
  ]
11012
11062
  },
11013
- north: {
11063
+ south: {
11014
11064
  uv: [
11015
11065
  4,
11016
11066
  52,
@@ -11018,7 +11068,7 @@ var baseSkinCoordinates = {
11018
11068
  64
11019
11069
  ]
11020
11070
  },
11021
- south: {
11071
+ north: {
11022
11072
  uv: [
11023
11073
  12,
11024
11074
  52,
@@ -11028,23 +11078,23 @@ var baseSkinCoordinates = {
11028
11078
  },
11029
11079
  up: {
11030
11080
  uv: [
11031
- 8,
11032
- 52,
11033
11081
  4,
11034
- 48
11082
+ 48,
11083
+ 8,
11084
+ 52
11035
11085
  ]
11036
11086
  },
11037
11087
  down: {
11038
11088
  uv: [
11039
- 12,
11040
- 48,
11041
11089
  8,
11042
- 52
11090
+ 52,
11091
+ 12,
11092
+ 48
11043
11093
  ]
11044
11094
  }
11045
11095
  },
11046
11096
  rightTrousers: {
11047
- east: {
11097
+ west: {
11048
11098
  uv: [
11049
11099
  0,
11050
11100
  36,
@@ -11052,7 +11102,7 @@ var baseSkinCoordinates = {
11052
11102
  48
11053
11103
  ]
11054
11104
  },
11055
- west: {
11105
+ east: {
11056
11106
  uv: [
11057
11107
  8,
11058
11108
  36,
@@ -11060,7 +11110,7 @@ var baseSkinCoordinates = {
11060
11110
  48
11061
11111
  ]
11062
11112
  },
11063
- north: {
11113
+ south: {
11064
11114
  uv: [
11065
11115
  4,
11066
11116
  36,
@@ -11068,7 +11118,7 @@ var baseSkinCoordinates = {
11068
11118
  48
11069
11119
  ]
11070
11120
  },
11071
- south: {
11121
+ north: {
11072
11122
  uv: [
11073
11123
  12,
11074
11124
  36,
@@ -11078,18 +11128,18 @@ var baseSkinCoordinates = {
11078
11128
  },
11079
11129
  up: {
11080
11130
  uv: [
11081
- 8,
11082
- 36,
11083
11131
  4,
11084
- 32
11132
+ 32,
11133
+ 8,
11134
+ 36
11085
11135
  ]
11086
11136
  },
11087
11137
  down: {
11088
11138
  uv: [
11089
- 12,
11090
- 32,
11091
11139
  8,
11092
- 36
11140
+ 36,
11141
+ 12,
11142
+ 32
11093
11143
  ],
11094
11144
  rotation: 180
11095
11145
  }
@@ -11110,35 +11160,35 @@ var slimSkinTextureCoordinates = {
11110
11160
  ...baseSkinCoordinates,
11111
11161
  leftArm: {
11112
11162
  ...baseSkinCoordinates.leftArm,
11113
- west: { uv: [39, 52, 43, 64] },
11114
- north: { uv: [36, 52, 39, 64] },
11115
- south: { uv: [43, 52, 46, 64] },
11116
- up: { uv: [39, 52, 36, 48] },
11117
- down: { uv: [42, 48, 39, 52] }
11163
+ east: { uv: [39, 52, 43, 64] },
11164
+ south: { uv: [36, 52, 39, 64] },
11165
+ north: { uv: [43, 52, 46, 64] },
11166
+ up: { uv: [36, 48, 39, 52] },
11167
+ down: { uv: [39, 52, 42, 48] }
11118
11168
  },
11119
11169
  rightArm: {
11120
11170
  ...baseSkinCoordinates.rightArm,
11121
- west: { uv: [47, 20, 51, 32] },
11122
- north: { uv: [44, 20, 47, 32] },
11123
- south: { uv: [51, 20, 54, 32] },
11124
- up: { uv: [47, 20, 44, 16] },
11125
- down: { uv: [50, 16, 47, 20] }
11171
+ east: { uv: [47, 20, 51, 32] },
11172
+ south: { uv: [44, 20, 47, 32] },
11173
+ north: { uv: [51, 20, 54, 32] },
11174
+ up: { uv: [44, 16, 47, 20] },
11175
+ down: { uv: [47, 20, 50, 16] }
11126
11176
  },
11127
11177
  leftSleeve: {
11128
11178
  ...baseSkinCoordinates.leftSleeve,
11129
- west: { uv: [55, 52, 59, 64] },
11130
- north: { uv: [52, 52, 55, 64] },
11131
- south: { uv: [59, 52, 62, 64] },
11132
- up: { uv: [55, 52, 52, 48] },
11133
- down: { uv: [58, 48, 55, 52], rotation: 180 }
11179
+ east: { uv: [55, 52, 59, 64] },
11180
+ south: { uv: [52, 52, 55, 64] },
11181
+ north: { uv: [59, 52, 62, 64] },
11182
+ up: { uv: [52, 48, 55, 52] },
11183
+ down: { uv: [55, 52, 58, 48], rotation: 180 }
11134
11184
  },
11135
11185
  rightSleeve: {
11136
11186
  ...baseSkinCoordinates.rightSleeve,
11137
- west: { uv: [47, 36, 51, 48] },
11138
- north: { uv: [44, 36, 47, 48] },
11139
- south: { uv: [51, 36, 54, 48] },
11140
- up: { uv: [47, 36, 44, 32] },
11141
- down: { uv: [50, 32, 47, 36], rotation: 180 }
11187
+ east: { uv: [47, 36, 51, 48] },
11188
+ south: { uv: [44, 36, 47, 48] },
11189
+ north: { uv: [51, 36, 54, 48] },
11190
+ up: { uv: [44, 32, 47, 36] },
11191
+ down: { uv: [47, 36, 50, 32], rotation: 180 }
11142
11192
  }
11143
11193
  };
11144
11194
 
@@ -11378,34 +11428,34 @@ var SkinObject = class extends SceneObject {
11378
11428
  }
11379
11429
  {
11380
11430
  {
11381
- const leftArmGroup = this.createAndAddGroup("leftArm", -5, 22, 0);
11431
+ const leftArmGroup = this.createAndAddGroup("leftArm", 5, 22, 0);
11382
11432
  const leftArmGeo = this.getBoxGeometry("leftArm" /* LEFT_ARM */);
11383
11433
  const leftArm = this.createAndAddMesh("leftArm", leftArmGroup, leftArmGeo, mat, "y" /* Y */, -4);
11384
- leftArm.position.x = this.slim ? -0.5 : -1;
11434
+ leftArm.position.x = this.slim ? 0.5 : 1;
11385
11435
  const leftSleeveGeo = this.getBoxGeometry("leftSleeve" /* LEFT_SLEEVE */);
11386
11436
  const leftSleeve = this.createAndAddMesh("leftSleeve", leftArmGroup, leftSleeveGeo, mat, "y" /* Y */, -4);
11387
- leftSleeve.position.x = this.slim ? -0.5 : -1;
11437
+ leftSleeve.position.x = this.slim ? 0.5 : 1;
11388
11438
  }
11389
11439
  {
11390
- const rightArmGroup = this.createAndAddGroup("rightArm", 5, 22, 0);
11440
+ const rightArmGroup = this.createAndAddGroup("rightArm", -5, 22, 0);
11391
11441
  const rightArmGeo = this.getBoxGeometry("rightArm" /* RIGHT_ARM */);
11392
11442
  const rightArm = this.createAndAddMesh("rightArm", rightArmGroup, rightArmGeo, mat, "y" /* Y */, -4);
11393
- rightArm.position.x = this.slim ? 0.5 : 1;
11443
+ rightArm.position.x = this.slim ? -0.5 : -1;
11394
11444
  const rightSleeveGeo = this.getBoxGeometry("rightSleeve" /* RIGHT_SLEEVE */);
11395
11445
  const rightSleeve = this.createAndAddMesh("rightSleeve", rightArmGroup, rightSleeveGeo, mat, "y" /* Y */, -4);
11396
- rightSleeve.position.x = this.slim ? 0.5 : 1;
11446
+ rightSleeve.position.x = this.slim ? -0.5 : -1;
11397
11447
  }
11398
11448
  }
11399
11449
  {
11400
11450
  {
11401
- const leftLegGroup = this.createAndAddGroup("leftLeg", -1.9, 12, 0);
11451
+ const leftLegGroup = this.createAndAddGroup("leftLeg", 1.9, 12, 0);
11402
11452
  const leftLegGeo = this.getBoxGeometry("leftLeg" /* LEFT_LEG */);
11403
11453
  const leftLeg = this.createAndAddMesh("leftLeg", leftLegGroup, leftLegGeo, mat, "y" /* Y */, -6);
11404
11454
  const leftTrousersGeo = this.getBoxGeometry("leftTrousers" /* LEFT_TROUSERS */);
11405
11455
  const leftTrousers = this.createAndAddMesh("leftTrousers", leftLegGroup, leftTrousersGeo, mat, "y" /* Y */, -6);
11406
11456
  }
11407
11457
  {
11408
- const rightLegGroup = this.createAndAddGroup("rightLeg", 1.9, 12, 0);
11458
+ const rightLegGroup = this.createAndAddGroup("rightLeg", -1.9, 12, 0);
11409
11459
  const rightLegGeo = this.getBoxGeometry("rightLeg" /* RIGHT_LEG */);
11410
11460
  const rightLeg = this.createAndAddMesh("rightLeg", rightLegGroup, rightLegGeo, mat, "y" /* Y */, -6);
11411
11461
  const rightTrousersGeo = this.getBoxGeometry("rightTrousers" /* RIGHT_TROUSERS */);
@@ -11455,9 +11505,10 @@ var SkinObject = class extends SceneObject {
11455
11505
  mesh.geometry = geometry;
11456
11506
  } else {
11457
11507
  const body = this.getGroupByName("body" /* BODY */);
11458
- const group = this.createGroup("cape" /* CAPE */, 0, body ? 0 : 24, 2);
11508
+ const group = this.createGroup("cape" /* CAPE */);
11509
+ group.position.set(0, body ? 0 : 24, -2);
11459
11510
  (body ?? this).add(group);
11460
- group.rotation.set(toRadians(-6), Math.PI, 0);
11511
+ group.rotation.x = toRadians(6);
11461
11512
  const cape = this.createAndAddMesh("cape" /* CAPE */, group, geometry, material);
11462
11513
  cape.position.set(0, -8, -0.5);
11463
11514
  }
@@ -11471,7 +11522,7 @@ var SkinObject = class extends SceneObject {
11471
11522
  updateSlim(slim) {
11472
11523
  if (slim === this.slim) return;
11473
11524
  this.slim = slim;
11474
- const offset = slim ? 0.5 : -0.5;
11525
+ const offset = slim ? -0.5 : 0.5;
11475
11526
  for (const part of ["leftArm" /* LEFT_ARM */, "leftSleeve" /* LEFT_SLEEVE */, "rightArm" /* RIGHT_ARM */, "rightSleeve" /* RIGHT_SLEEVE */]) {
11476
11527
  const mesh = this.getMeshByName(part);
11477
11528
  if (mesh) {
@@ -11565,13 +11616,9 @@ var _MineRenderScene = class _MineRenderScene extends import_three30.Scene {
11565
11616
  return this.add(...object);
11566
11617
  }
11567
11618
  async addSceneObject(asset, objectSupplier, _options, parent = this) {
11568
- console.log("addSceneObject", asset);
11569
- console.log("parent", parent);
11570
- console.log(_options);
11571
11619
  this.dirty = true;
11572
11620
  const obj = await objectSupplier();
11573
11621
  if (obj?.options?.instanceMeshes && asset.key && asset.key?.assetType === "models") {
11574
- console.log("instanceMeshes + key");
11575
11622
  let key = asset.key.serialize();
11576
11623
  if (isModelObject(obj)) {
11577
11624
  const { displayPosition, uvLockRotation, tints, cullMask } = obj.options;
@@ -11588,7 +11635,6 @@ var _MineRenderScene = class _MineRenderScene extends import_three30.Scene {
11588
11635
  return obj;
11589
11636
  });
11590
11637
  } else {
11591
- console.log("!instanceMeshes | !key");
11592
11638
  obj.scene = this;
11593
11639
  await obj.init();
11594
11640
  if (!isBlockObject(obj)) {