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.
@@ -2498,30 +2498,69 @@ var init_TextureAtlas = __esm({
2498
2498
  var ModelGenerator;
2499
2499
  var init_ModelGenerator = __esm({
2500
2500
  "src/model/ModelGenerator.ts"() {
2501
+ init_CubeFace();
2501
2502
  ModelGenerator = class {
2502
2503
  static {
2503
2504
  this.ITEM_LAYERS = ["layer0", "layer1", "layer2", "layer3", "layer4"];
2504
2505
  }
2506
+ /**
2507
+ * Front and back faces plus one zero-thickness side face per run of texels that border a transparent texel,
2508
+ * like vanilla's ItemModelGenerator. Pass the pixels of a single (first) animation frame.
2509
+ */
2505
2510
  static generateItemModel(imageData, layer) {
2506
2511
  const tintindex = this.ITEM_LAYERS.indexOf(layer);
2512
+ const texture = `#${layer}`;
2507
2513
  const mainElement = {
2508
2514
  from: [0, 0, 7.5],
2509
2515
  to: [16, 16, 8.5],
2510
2516
  faces: {
2511
2517
  "south": {
2512
2518
  uv: [0, 0, 16, 16],
2513
- texture: `#${layer}`,
2519
+ texture,
2514
2520
  tintindex
2515
2521
  },
2516
2522
  "north": {
2517
2523
  uv: [16, 0, 0, 16],
2518
- texture: `#${layer}`,
2524
+ texture,
2519
2525
  tintindex
2520
2526
  }
2521
2527
  },
2522
2528
  shade: true
2523
2529
  };
2524
- return [mainElement];
2530
+ const elements = [mainElement];
2531
+ const { width, height, data } = imageData;
2532
+ const opaque = (x, y) => x >= 0 && y >= 0 && x < width && y < height && data[(y * width + x) * 4 + 3] !== 0;
2533
+ const sx = 16 / width;
2534
+ const sy = 16 / height;
2535
+ const sides = [["up" /* UP */, 0, -1], ["down" /* DOWN */, 0, 1], ["west" /* WEST */, -1, 0], ["east" /* EAST */, 1, 0]];
2536
+ for (const [face, dx, dy] of sides) {
2537
+ const horizontal = dx === 0;
2538
+ const lines = horizontal ? height : width;
2539
+ const length = horizontal ? width : height;
2540
+ for (let line = 0; line < lines; line++) {
2541
+ for (let start = 0; start < length; start++) {
2542
+ const exposed = (i) => horizontal ? opaque(i, line) && !opaque(i, line + dy) : opaque(line, i) && !opaque(line + dx, i);
2543
+ if (!exposed(start)) continue;
2544
+ let end = start + 1;
2545
+ while (end < length && exposed(end)) end++;
2546
+ let uv, from, to;
2547
+ if (horizontal) {
2548
+ const y = 16 - (line + (dy > 0 ? 1 : 0)) * sy;
2549
+ uv = [start * sx, line * sy, end * sx, (line + 1) * sy];
2550
+ from = [start * sx, y, 7.5];
2551
+ to = [end * sx, y, 8.5];
2552
+ } else {
2553
+ const x = (line + (dx > 0 ? 1 : 0)) * sx;
2554
+ uv = [line * sx, start * sy, (line + 1) * sx, end * sy];
2555
+ from = [x, 16 - end * sy, 7.5];
2556
+ to = [x, 16 - start * sy, 8.5];
2557
+ }
2558
+ elements.push({ from, to, faces: { [face]: { uv, texture, tintindex } }, shade: true });
2559
+ start = end;
2560
+ }
2561
+ }
2562
+ }
2563
+ return elements;
2525
2564
  }
2526
2565
  };
2527
2566
  }
@@ -2888,7 +2927,15 @@ var init_UVMapper = __esm({
2888
2927
  for (let layerName of ModelGenerator.ITEM_LAYERS) {
2889
2928
  const textureImage = textureMap[layerName];
2890
2929
  if (textureImage) {
2891
- model.elements.push(...ModelGenerator.generateItemModel(textureImage.data, layerName));
2930
+ const [width, height] = sizes[layerName];
2931
+ const frame = frames[layerName]?.[0].index ?? 0;
2932
+ const columns = textureImage.width / width;
2933
+ model.elements.push(...ModelGenerator.generateItemModel(textureImage.getSectionData(
2934
+ frame % columns * width,
2935
+ Math.floor(frame / columns) * height,
2936
+ width,
2937
+ height
2938
+ ), layerName));
2892
2939
  }
2893
2940
  }
2894
2941
  console.debug(p5, "Item model elements", model.elements);
@@ -4096,7 +4143,6 @@ var init_ModelObject = __esm({
4096
4143
  if (this.options.tints) this.options.tints = { ...this.options.tints };
4097
4144
  this.addEventListener("added", () => this.updateAnimationSubscription());
4098
4145
  this.addEventListener("removed", () => this.updateAnimationSubscription());
4099
- console.log("ModelObject options", this.options);
4100
4146
  }
4101
4147
  static {
4102
4148
  this.DEFAULT_OPTIONS = (0, import_ts_deepmerge5.default)({}, SceneObject.DEFAULT_OPTIONS, {});
@@ -5113,6 +5159,10 @@ var EntityObject = class _EntityObject extends SceneObject {
5113
5159
  uv
5114
5160
  ).clone();
5115
5161
  geometry.translate(cube.origin[0] + width / 2, cube.origin[1] + height / 2, cube.origin[2] + depth / 2);
5162
+ if (Math.min(width + growX * 2, height + growY * 2, depth + growZ * 2) > 0) {
5163
+ const index = Array.from(geometry.getIndex().array);
5164
+ geometry.setIndex(index.concat(index.slice().reverse()));
5165
+ }
5116
5166
  const mesh = this.createMesh(name, geometry, material);
5117
5167
  mesh.renderOrder = renderOrder;
5118
5168
  anchor.add(mesh);
@@ -10530,7 +10580,7 @@ var SKIN_PARTS = Object.values(SkinPart);
10530
10580
  // src/skin/SkinTextureCoordinates.ts
10531
10581
  var baseSkinCoordinates = {
10532
10582
  head: {
10533
- east: {
10583
+ west: {
10534
10584
  // left
10535
10585
  uv: [
10536
10586
  0,
@@ -10539,7 +10589,7 @@ var baseSkinCoordinates = {
10539
10589
  16
10540
10590
  ]
10541
10591
  },
10542
- west: {
10592
+ east: {
10543
10593
  // right
10544
10594
  uv: [
10545
10595
  16,
@@ -10548,7 +10598,7 @@ var baseSkinCoordinates = {
10548
10598
  16
10549
10599
  ]
10550
10600
  },
10551
- north: {
10601
+ south: {
10552
10602
  // front
10553
10603
  uv: [
10554
10604
  8,
@@ -10557,7 +10607,7 @@ var baseSkinCoordinates = {
10557
10607
  16
10558
10608
  ]
10559
10609
  },
10560
- south: {
10610
+ north: {
10561
10611
  // back
10562
10612
  uv: [
10563
10613
  24,
@@ -10569,24 +10619,24 @@ var baseSkinCoordinates = {
10569
10619
  up: {
10570
10620
  // top
10571
10621
  uv: [
10572
- 16,
10573
10622
  8,
10574
- 8,
10575
- 0
10623
+ 0,
10624
+ 16,
10625
+ 8
10576
10626
  ]
10577
10627
  },
10578
10628
  down: {
10579
10629
  // bottom
10580
10630
  uv: [
10581
- 24,
10582
- 0,
10583
10631
  16,
10584
- 8
10632
+ 8,
10633
+ 24,
10634
+ 0
10585
10635
  ]
10586
10636
  }
10587
10637
  },
10588
10638
  body: {
10589
- east: {
10639
+ west: {
10590
10640
  uv: [
10591
10641
  16,
10592
10642
  20,
@@ -10594,7 +10644,7 @@ var baseSkinCoordinates = {
10594
10644
  32
10595
10645
  ]
10596
10646
  },
10597
- west: {
10647
+ east: {
10598
10648
  uv: [
10599
10649
  28,
10600
10650
  20,
@@ -10602,7 +10652,7 @@ var baseSkinCoordinates = {
10602
10652
  32
10603
10653
  ]
10604
10654
  },
10605
- north: {
10655
+ south: {
10606
10656
  uv: [
10607
10657
  20,
10608
10658
  20,
@@ -10610,7 +10660,7 @@ var baseSkinCoordinates = {
10610
10660
  32
10611
10661
  ]
10612
10662
  },
10613
- south: {
10663
+ north: {
10614
10664
  uv: [
10615
10665
  32,
10616
10666
  20,
@@ -10620,23 +10670,23 @@ var baseSkinCoordinates = {
10620
10670
  },
10621
10671
  up: {
10622
10672
  uv: [
10623
- 28,
10624
10673
  20,
10625
- 20,
10626
- 16
10674
+ 16,
10675
+ 28,
10676
+ 20
10627
10677
  ]
10628
10678
  },
10629
10679
  down: {
10630
10680
  uv: [
10631
- 36,
10632
- 16,
10633
10681
  28,
10634
- 20
10682
+ 20,
10683
+ 36,
10684
+ 16
10635
10685
  ]
10636
10686
  }
10637
10687
  },
10638
10688
  leftArm: {
10639
- east: {
10689
+ west: {
10640
10690
  uv: [
10641
10691
  32,
10642
10692
  52,
@@ -10644,7 +10694,7 @@ var baseSkinCoordinates = {
10644
10694
  64
10645
10695
  ]
10646
10696
  },
10647
- west: {
10697
+ east: {
10648
10698
  uv: [
10649
10699
  40,
10650
10700
  52,
@@ -10652,7 +10702,7 @@ var baseSkinCoordinates = {
10652
10702
  64
10653
10703
  ]
10654
10704
  },
10655
- north: {
10705
+ south: {
10656
10706
  uv: [
10657
10707
  36,
10658
10708
  52,
@@ -10660,7 +10710,7 @@ var baseSkinCoordinates = {
10660
10710
  64
10661
10711
  ]
10662
10712
  },
10663
- south: {
10713
+ north: {
10664
10714
  uv: [
10665
10715
  44,
10666
10716
  52,
@@ -10670,23 +10720,23 @@ var baseSkinCoordinates = {
10670
10720
  },
10671
10721
  up: {
10672
10722
  uv: [
10673
- 40,
10674
- 52,
10675
10723
  36,
10676
- 48
10724
+ 48,
10725
+ 40,
10726
+ 52
10677
10727
  ]
10678
10728
  },
10679
10729
  down: {
10680
10730
  uv: [
10681
- 44,
10682
- 48,
10683
10731
  40,
10684
- 52
10732
+ 52,
10733
+ 44,
10734
+ 48
10685
10735
  ]
10686
10736
  }
10687
10737
  },
10688
10738
  rightArm: {
10689
- east: {
10739
+ west: {
10690
10740
  uv: [
10691
10741
  40,
10692
10742
  20,
@@ -10694,7 +10744,7 @@ var baseSkinCoordinates = {
10694
10744
  32
10695
10745
  ]
10696
10746
  },
10697
- west: {
10747
+ east: {
10698
10748
  uv: [
10699
10749
  48,
10700
10750
  20,
@@ -10702,7 +10752,7 @@ var baseSkinCoordinates = {
10702
10752
  32
10703
10753
  ]
10704
10754
  },
10705
- north: {
10755
+ south: {
10706
10756
  uv: [
10707
10757
  44,
10708
10758
  20,
@@ -10710,7 +10760,7 @@ var baseSkinCoordinates = {
10710
10760
  32
10711
10761
  ]
10712
10762
  },
10713
- south: {
10763
+ north: {
10714
10764
  uv: [
10715
10765
  52,
10716
10766
  20,
@@ -10720,23 +10770,23 @@ var baseSkinCoordinates = {
10720
10770
  },
10721
10771
  up: {
10722
10772
  uv: [
10723
- 48,
10724
- 20,
10725
10773
  44,
10726
- 16
10774
+ 16,
10775
+ 48,
10776
+ 20
10727
10777
  ]
10728
10778
  },
10729
10779
  down: {
10730
10780
  uv: [
10731
- 52,
10732
- 16,
10733
10781
  48,
10734
- 20
10782
+ 20,
10783
+ 52,
10784
+ 16
10735
10785
  ]
10736
10786
  }
10737
10787
  },
10738
10788
  leftLeg: {
10739
- east: {
10789
+ west: {
10740
10790
  uv: [
10741
10791
  16,
10742
10792
  52,
@@ -10744,7 +10794,7 @@ var baseSkinCoordinates = {
10744
10794
  64
10745
10795
  ]
10746
10796
  },
10747
- west: {
10797
+ east: {
10748
10798
  uv: [
10749
10799
  24,
10750
10800
  52,
@@ -10752,7 +10802,7 @@ var baseSkinCoordinates = {
10752
10802
  64
10753
10803
  ]
10754
10804
  },
10755
- north: {
10805
+ south: {
10756
10806
  uv: [
10757
10807
  20,
10758
10808
  52,
@@ -10760,7 +10810,7 @@ var baseSkinCoordinates = {
10760
10810
  64
10761
10811
  ]
10762
10812
  },
10763
- south: {
10813
+ north: {
10764
10814
  uv: [
10765
10815
  28,
10766
10816
  52,
@@ -10770,24 +10820,24 @@ var baseSkinCoordinates = {
10770
10820
  },
10771
10821
  up: {
10772
10822
  uv: [
10773
- 24,
10774
- 52,
10775
10823
  20,
10776
- 48
10824
+ 48,
10825
+ 24,
10826
+ 52
10777
10827
  ]
10778
10828
  },
10779
10829
  down: {
10780
10830
  uv: [
10781
- 28,
10782
- 48,
10783
10831
  24,
10784
- 52
10832
+ 52,
10833
+ 28,
10834
+ 48
10785
10835
  ],
10786
10836
  rotation: 180
10787
10837
  }
10788
10838
  },
10789
10839
  rightLeg: {
10790
- east: {
10840
+ west: {
10791
10841
  uv: [
10792
10842
  0,
10793
10843
  20,
@@ -10795,7 +10845,7 @@ var baseSkinCoordinates = {
10795
10845
  32
10796
10846
  ]
10797
10847
  },
10798
- west: {
10848
+ east: {
10799
10849
  uv: [
10800
10850
  8,
10801
10851
  20,
@@ -10803,7 +10853,7 @@ var baseSkinCoordinates = {
10803
10853
  32
10804
10854
  ]
10805
10855
  },
10806
- north: {
10856
+ south: {
10807
10857
  uv: [
10808
10858
  4,
10809
10859
  20,
@@ -10811,7 +10861,7 @@ var baseSkinCoordinates = {
10811
10861
  32
10812
10862
  ]
10813
10863
  },
10814
- south: {
10864
+ north: {
10815
10865
  uv: [
10816
10866
  12,
10817
10867
  20,
@@ -10821,23 +10871,23 @@ var baseSkinCoordinates = {
10821
10871
  },
10822
10872
  up: {
10823
10873
  uv: [
10824
- 8,
10825
- 20,
10826
10874
  4,
10827
- 16
10875
+ 16,
10876
+ 8,
10877
+ 20
10828
10878
  ]
10829
10879
  },
10830
10880
  down: {
10831
10881
  uv: [
10832
- 12,
10833
- 16,
10834
10882
  8,
10835
- 20
10883
+ 20,
10884
+ 12,
10885
+ 16
10836
10886
  ]
10837
10887
  }
10838
10888
  },
10839
10889
  hat: {
10840
- east: {
10890
+ west: {
10841
10891
  uv: [
10842
10892
  32,
10843
10893
  8,
@@ -10845,7 +10895,7 @@ var baseSkinCoordinates = {
10845
10895
  16
10846
10896
  ]
10847
10897
  },
10848
- west: {
10898
+ east: {
10849
10899
  uv: [
10850
10900
  48,
10851
10901
  8,
@@ -10853,7 +10903,7 @@ var baseSkinCoordinates = {
10853
10903
  16
10854
10904
  ]
10855
10905
  },
10856
- north: {
10906
+ south: {
10857
10907
  uv: [
10858
10908
  40,
10859
10909
  8,
@@ -10861,7 +10911,7 @@ var baseSkinCoordinates = {
10861
10911
  16
10862
10912
  ]
10863
10913
  },
10864
- south: {
10914
+ north: {
10865
10915
  uv: [
10866
10916
  56,
10867
10917
  8,
@@ -10871,24 +10921,24 @@ var baseSkinCoordinates = {
10871
10921
  },
10872
10922
  up: {
10873
10923
  uv: [
10874
- 48,
10875
- 8,
10876
10924
  40,
10877
- 0
10925
+ 0,
10926
+ 48,
10927
+ 8
10878
10928
  ]
10879
10929
  },
10880
10930
  down: {
10881
10931
  uv: [
10882
- 56,
10883
- 0,
10884
10932
  48,
10885
- 8
10933
+ 8,
10934
+ 56,
10935
+ 0
10886
10936
  ],
10887
10937
  rotation: 180
10888
10938
  }
10889
10939
  },
10890
10940
  jacket: {
10891
- east: {
10941
+ west: {
10892
10942
  uv: [
10893
10943
  16,
10894
10944
  36,
@@ -10896,7 +10946,7 @@ var baseSkinCoordinates = {
10896
10946
  48
10897
10947
  ]
10898
10948
  },
10899
- west: {
10949
+ east: {
10900
10950
  uv: [
10901
10951
  28,
10902
10952
  36,
@@ -10904,7 +10954,7 @@ var baseSkinCoordinates = {
10904
10954
  48
10905
10955
  ]
10906
10956
  },
10907
- north: {
10957
+ south: {
10908
10958
  uv: [
10909
10959
  20,
10910
10960
  36,
@@ -10912,7 +10962,7 @@ var baseSkinCoordinates = {
10912
10962
  48
10913
10963
  ]
10914
10964
  },
10915
- south: {
10965
+ north: {
10916
10966
  uv: [
10917
10967
  32,
10918
10968
  36,
@@ -10922,24 +10972,24 @@ var baseSkinCoordinates = {
10922
10972
  },
10923
10973
  up: {
10924
10974
  uv: [
10925
- 28,
10926
- 36,
10927
10975
  20,
10928
- 32
10976
+ 32,
10977
+ 28,
10978
+ 36
10929
10979
  ]
10930
10980
  },
10931
10981
  down: {
10932
10982
  uv: [
10933
- 36,
10934
- 32,
10935
10983
  28,
10936
- 36
10984
+ 36,
10985
+ 36,
10986
+ 32
10937
10987
  ],
10938
10988
  rotation: 180
10939
10989
  }
10940
10990
  },
10941
10991
  leftSleeve: {
10942
- east: {
10992
+ west: {
10943
10993
  uv: [
10944
10994
  48,
10945
10995
  52,
@@ -10947,7 +10997,7 @@ var baseSkinCoordinates = {
10947
10997
  64
10948
10998
  ]
10949
10999
  },
10950
- west: {
11000
+ east: {
10951
11001
  uv: [
10952
11002
  56,
10953
11003
  52,
@@ -10955,7 +11005,7 @@ var baseSkinCoordinates = {
10955
11005
  64
10956
11006
  ]
10957
11007
  },
10958
- north: {
11008
+ south: {
10959
11009
  uv: [
10960
11010
  52,
10961
11011
  52,
@@ -10963,7 +11013,7 @@ var baseSkinCoordinates = {
10963
11013
  64
10964
11014
  ]
10965
11015
  },
10966
- south: {
11016
+ north: {
10967
11017
  uv: [
10968
11018
  60,
10969
11019
  52,
@@ -10973,24 +11023,24 @@ var baseSkinCoordinates = {
10973
11023
  },
10974
11024
  up: {
10975
11025
  uv: [
10976
- 56,
10977
11026
  52,
10978
- 52,
10979
- 48
11027
+ 48,
11028
+ 56,
11029
+ 52
10980
11030
  ]
10981
11031
  },
10982
11032
  down: {
10983
11033
  uv: [
10984
- 60,
10985
- 48,
10986
11034
  56,
10987
- 52
11035
+ 52,
11036
+ 60,
11037
+ 48
10988
11038
  ],
10989
11039
  rotation: 180
10990
11040
  }
10991
11041
  },
10992
11042
  rightSleeve: {
10993
- east: {
11043
+ west: {
10994
11044
  uv: [
10995
11045
  40,
10996
11046
  36,
@@ -10998,7 +11048,7 @@ var baseSkinCoordinates = {
10998
11048
  48
10999
11049
  ]
11000
11050
  },
11001
- west: {
11051
+ east: {
11002
11052
  uv: [
11003
11053
  48,
11004
11054
  36,
@@ -11006,7 +11056,7 @@ var baseSkinCoordinates = {
11006
11056
  48
11007
11057
  ]
11008
11058
  },
11009
- north: {
11059
+ south: {
11010
11060
  uv: [
11011
11061
  44,
11012
11062
  36,
@@ -11014,7 +11064,7 @@ var baseSkinCoordinates = {
11014
11064
  48
11015
11065
  ]
11016
11066
  },
11017
- south: {
11067
+ north: {
11018
11068
  uv: [
11019
11069
  52,
11020
11070
  36,
@@ -11024,24 +11074,24 @@ var baseSkinCoordinates = {
11024
11074
  },
11025
11075
  up: {
11026
11076
  uv: [
11027
- 48,
11028
- 36,
11029
11077
  44,
11030
- 32
11078
+ 32,
11079
+ 48,
11080
+ 36
11031
11081
  ]
11032
11082
  },
11033
11083
  down: {
11034
11084
  uv: [
11035
- 52,
11036
- 32,
11037
11085
  48,
11038
- 36
11086
+ 36,
11087
+ 52,
11088
+ 32
11039
11089
  ],
11040
11090
  rotation: 180
11041
11091
  }
11042
11092
  },
11043
11093
  leftTrousers: {
11044
- east: {
11094
+ west: {
11045
11095
  uv: [
11046
11096
  0,
11047
11097
  52,
@@ -11049,7 +11099,7 @@ var baseSkinCoordinates = {
11049
11099
  64
11050
11100
  ]
11051
11101
  },
11052
- west: {
11102
+ east: {
11053
11103
  uv: [
11054
11104
  8,
11055
11105
  52,
@@ -11057,7 +11107,7 @@ var baseSkinCoordinates = {
11057
11107
  64
11058
11108
  ]
11059
11109
  },
11060
- north: {
11110
+ south: {
11061
11111
  uv: [
11062
11112
  4,
11063
11113
  52,
@@ -11065,7 +11115,7 @@ var baseSkinCoordinates = {
11065
11115
  64
11066
11116
  ]
11067
11117
  },
11068
- south: {
11118
+ north: {
11069
11119
  uv: [
11070
11120
  12,
11071
11121
  52,
@@ -11075,23 +11125,23 @@ var baseSkinCoordinates = {
11075
11125
  },
11076
11126
  up: {
11077
11127
  uv: [
11078
- 8,
11079
- 52,
11080
11128
  4,
11081
- 48
11129
+ 48,
11130
+ 8,
11131
+ 52
11082
11132
  ]
11083
11133
  },
11084
11134
  down: {
11085
11135
  uv: [
11086
- 12,
11087
- 48,
11088
11136
  8,
11089
- 52
11137
+ 52,
11138
+ 12,
11139
+ 48
11090
11140
  ]
11091
11141
  }
11092
11142
  },
11093
11143
  rightTrousers: {
11094
- east: {
11144
+ west: {
11095
11145
  uv: [
11096
11146
  0,
11097
11147
  36,
@@ -11099,7 +11149,7 @@ var baseSkinCoordinates = {
11099
11149
  48
11100
11150
  ]
11101
11151
  },
11102
- west: {
11152
+ east: {
11103
11153
  uv: [
11104
11154
  8,
11105
11155
  36,
@@ -11107,7 +11157,7 @@ var baseSkinCoordinates = {
11107
11157
  48
11108
11158
  ]
11109
11159
  },
11110
- north: {
11160
+ south: {
11111
11161
  uv: [
11112
11162
  4,
11113
11163
  36,
@@ -11115,7 +11165,7 @@ var baseSkinCoordinates = {
11115
11165
  48
11116
11166
  ]
11117
11167
  },
11118
- south: {
11168
+ north: {
11119
11169
  uv: [
11120
11170
  12,
11121
11171
  36,
@@ -11125,18 +11175,18 @@ var baseSkinCoordinates = {
11125
11175
  },
11126
11176
  up: {
11127
11177
  uv: [
11128
- 8,
11129
- 36,
11130
11178
  4,
11131
- 32
11179
+ 32,
11180
+ 8,
11181
+ 36
11132
11182
  ]
11133
11183
  },
11134
11184
  down: {
11135
11185
  uv: [
11136
- 12,
11137
- 32,
11138
11186
  8,
11139
- 36
11187
+ 36,
11188
+ 12,
11189
+ 32
11140
11190
  ],
11141
11191
  rotation: 180
11142
11192
  }
@@ -11157,35 +11207,35 @@ var slimSkinTextureCoordinates = {
11157
11207
  ...baseSkinCoordinates,
11158
11208
  leftArm: {
11159
11209
  ...baseSkinCoordinates.leftArm,
11160
- west: { uv: [39, 52, 43, 64] },
11161
- north: { uv: [36, 52, 39, 64] },
11162
- south: { uv: [43, 52, 46, 64] },
11163
- up: { uv: [39, 52, 36, 48] },
11164
- down: { uv: [42, 48, 39, 52] }
11210
+ east: { uv: [39, 52, 43, 64] },
11211
+ south: { uv: [36, 52, 39, 64] },
11212
+ north: { uv: [43, 52, 46, 64] },
11213
+ up: { uv: [36, 48, 39, 52] },
11214
+ down: { uv: [39, 52, 42, 48] }
11165
11215
  },
11166
11216
  rightArm: {
11167
11217
  ...baseSkinCoordinates.rightArm,
11168
- west: { uv: [47, 20, 51, 32] },
11169
- north: { uv: [44, 20, 47, 32] },
11170
- south: { uv: [51, 20, 54, 32] },
11171
- up: { uv: [47, 20, 44, 16] },
11172
- down: { uv: [50, 16, 47, 20] }
11218
+ east: { uv: [47, 20, 51, 32] },
11219
+ south: { uv: [44, 20, 47, 32] },
11220
+ north: { uv: [51, 20, 54, 32] },
11221
+ up: { uv: [44, 16, 47, 20] },
11222
+ down: { uv: [47, 20, 50, 16] }
11173
11223
  },
11174
11224
  leftSleeve: {
11175
11225
  ...baseSkinCoordinates.leftSleeve,
11176
- west: { uv: [55, 52, 59, 64] },
11177
- north: { uv: [52, 52, 55, 64] },
11178
- south: { uv: [59, 52, 62, 64] },
11179
- up: { uv: [55, 52, 52, 48] },
11180
- down: { uv: [58, 48, 55, 52], rotation: 180 }
11226
+ east: { uv: [55, 52, 59, 64] },
11227
+ south: { uv: [52, 52, 55, 64] },
11228
+ north: { uv: [59, 52, 62, 64] },
11229
+ up: { uv: [52, 48, 55, 52] },
11230
+ down: { uv: [55, 52, 58, 48], rotation: 180 }
11181
11231
  },
11182
11232
  rightSleeve: {
11183
11233
  ...baseSkinCoordinates.rightSleeve,
11184
- west: { uv: [47, 36, 51, 48] },
11185
- north: { uv: [44, 36, 47, 48] },
11186
- south: { uv: [51, 36, 54, 48] },
11187
- up: { uv: [47, 36, 44, 32] },
11188
- down: { uv: [50, 32, 47, 36], rotation: 180 }
11234
+ east: { uv: [47, 36, 51, 48] },
11235
+ south: { uv: [44, 36, 47, 48] },
11236
+ north: { uv: [51, 36, 54, 48] },
11237
+ up: { uv: [44, 32, 47, 36] },
11238
+ down: { uv: [47, 36, 50, 32], rotation: 180 }
11189
11239
  }
11190
11240
  };
11191
11241
 
@@ -11425,34 +11475,34 @@ var SkinObject = class extends SceneObject {
11425
11475
  }
11426
11476
  {
11427
11477
  {
11428
- const leftArmGroup = this.createAndAddGroup("leftArm", -5, 22, 0);
11478
+ const leftArmGroup = this.createAndAddGroup("leftArm", 5, 22, 0);
11429
11479
  const leftArmGeo = this.getBoxGeometry("leftArm" /* LEFT_ARM */);
11430
11480
  const leftArm = this.createAndAddMesh("leftArm", leftArmGroup, leftArmGeo, mat, "y" /* Y */, -4);
11431
- leftArm.position.x = this.slim ? -0.5 : -1;
11481
+ leftArm.position.x = this.slim ? 0.5 : 1;
11432
11482
  const leftSleeveGeo = this.getBoxGeometry("leftSleeve" /* LEFT_SLEEVE */);
11433
11483
  const leftSleeve = this.createAndAddMesh("leftSleeve", leftArmGroup, leftSleeveGeo, mat, "y" /* Y */, -4);
11434
- leftSleeve.position.x = this.slim ? -0.5 : -1;
11484
+ leftSleeve.position.x = this.slim ? 0.5 : 1;
11435
11485
  }
11436
11486
  {
11437
- const rightArmGroup = this.createAndAddGroup("rightArm", 5, 22, 0);
11487
+ const rightArmGroup = this.createAndAddGroup("rightArm", -5, 22, 0);
11438
11488
  const rightArmGeo = this.getBoxGeometry("rightArm" /* RIGHT_ARM */);
11439
11489
  const rightArm = this.createAndAddMesh("rightArm", rightArmGroup, rightArmGeo, mat, "y" /* Y */, -4);
11440
- rightArm.position.x = this.slim ? 0.5 : 1;
11490
+ rightArm.position.x = this.slim ? -0.5 : -1;
11441
11491
  const rightSleeveGeo = this.getBoxGeometry("rightSleeve" /* RIGHT_SLEEVE */);
11442
11492
  const rightSleeve = this.createAndAddMesh("rightSleeve", rightArmGroup, rightSleeveGeo, mat, "y" /* Y */, -4);
11443
- rightSleeve.position.x = this.slim ? 0.5 : 1;
11493
+ rightSleeve.position.x = this.slim ? -0.5 : -1;
11444
11494
  }
11445
11495
  }
11446
11496
  {
11447
11497
  {
11448
- const leftLegGroup = this.createAndAddGroup("leftLeg", -1.9, 12, 0);
11498
+ const leftLegGroup = this.createAndAddGroup("leftLeg", 1.9, 12, 0);
11449
11499
  const leftLegGeo = this.getBoxGeometry("leftLeg" /* LEFT_LEG */);
11450
11500
  const leftLeg = this.createAndAddMesh("leftLeg", leftLegGroup, leftLegGeo, mat, "y" /* Y */, -6);
11451
11501
  const leftTrousersGeo = this.getBoxGeometry("leftTrousers" /* LEFT_TROUSERS */);
11452
11502
  const leftTrousers = this.createAndAddMesh("leftTrousers", leftLegGroup, leftTrousersGeo, mat, "y" /* Y */, -6);
11453
11503
  }
11454
11504
  {
11455
- const rightLegGroup = this.createAndAddGroup("rightLeg", 1.9, 12, 0);
11505
+ const rightLegGroup = this.createAndAddGroup("rightLeg", -1.9, 12, 0);
11456
11506
  const rightLegGeo = this.getBoxGeometry("rightLeg" /* RIGHT_LEG */);
11457
11507
  const rightLeg = this.createAndAddMesh("rightLeg", rightLegGroup, rightLegGeo, mat, "y" /* Y */, -6);
11458
11508
  const rightTrousersGeo = this.getBoxGeometry("rightTrousers" /* RIGHT_TROUSERS */);
@@ -11502,9 +11552,10 @@ var SkinObject = class extends SceneObject {
11502
11552
  mesh.geometry = geometry;
11503
11553
  } else {
11504
11554
  const body = this.getGroupByName("body" /* BODY */);
11505
- const group = this.createGroup("cape" /* CAPE */, 0, body ? 0 : 24, 2);
11555
+ const group = this.createGroup("cape" /* CAPE */);
11556
+ group.position.set(0, body ? 0 : 24, -2);
11506
11557
  (body ?? this).add(group);
11507
- group.rotation.set(toRadians(-6), Math.PI, 0);
11558
+ group.rotation.x = toRadians(6);
11508
11559
  const cape = this.createAndAddMesh("cape" /* CAPE */, group, geometry, material);
11509
11560
  cape.position.set(0, -8, -0.5);
11510
11561
  }
@@ -11518,7 +11569,7 @@ var SkinObject = class extends SceneObject {
11518
11569
  updateSlim(slim) {
11519
11570
  if (slim === this.slim) return;
11520
11571
  this.slim = slim;
11521
- const offset = slim ? 0.5 : -0.5;
11572
+ const offset = slim ? -0.5 : 0.5;
11522
11573
  for (const part of ["leftArm" /* LEFT_ARM */, "leftSleeve" /* LEFT_SLEEVE */, "rightArm" /* RIGHT_ARM */, "rightSleeve" /* RIGHT_SLEEVE */]) {
11523
11574
  const mesh = this.getMeshByName(part);
11524
11575
  if (mesh) {
@@ -11615,13 +11666,9 @@ var MineRenderScene = class _MineRenderScene extends import_three30.Scene {
11615
11666
  return this.add(...object);
11616
11667
  }
11617
11668
  async addSceneObject(asset, objectSupplier, _options, parent = this) {
11618
- console.log("addSceneObject", asset);
11619
- console.log("parent", parent);
11620
- console.log(_options);
11621
11669
  this.dirty = true;
11622
11670
  const obj = await objectSupplier();
11623
11671
  if (obj?.options?.instanceMeshes && asset.key && asset.key?.assetType === "models") {
11624
- console.log("instanceMeshes + key");
11625
11672
  let key = asset.key.serialize();
11626
11673
  if (isModelObject(obj)) {
11627
11674
  const { displayPosition, uvLockRotation, tints, cullMask } = obj.options;
@@ -11638,7 +11685,6 @@ var MineRenderScene = class _MineRenderScene extends import_three30.Scene {
11638
11685
  return obj;
11639
11686
  });
11640
11687
  } else {
11641
- console.log("!instanceMeshes | !key");
11642
11688
  obj.scene = this;
11643
11689
  await obj.init();
11644
11690
  if (!isBlockObject(obj)) {