@adatechnology/game-weapons-three 0.3.0 → 0.4.1

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.
Files changed (191) hide show
  1. package/README.md +14 -0
  2. package/assets/weapon-svg/CREDITS.md +25 -0
  3. package/assets/weapon-svg/LICENSE-NOTE.md +18 -0
  4. package/assets/weapon-svg/commons/ak_47.svg +1 -0
  5. package/assets/weapon-svg/commons/barrett_m82a1.svg +1 -0
  6. package/assets/weapon-svg/commons/benelli_m4.svg +1 -0
  7. package/assets/weapon-svg/commons/beretta_92fs.svg +1 -0
  8. package/assets/weapon-svg/commons/colt_m16a2.svg +1 -0
  9. package/assets/weapon-svg/commons/colt_m1911.svg +1 -0
  10. package/assets/weapon-svg/commons/colt_m4a1.svg +1 -0
  11. package/assets/weapon-svg/commons/desert_eagle_mark_xix.svg +1 -0
  12. package/assets/weapon-svg/commons/glock_19.svg +1 -0
  13. package/assets/weapon-svg/commons/hk_mp5a3.svg +1 -0
  14. package/assets/weapon-svg/commons/hk_mp5k.svg +1 -0
  15. package/assets/weapon-svg/commons/mac_10.svg +1 -0
  16. package/assets/weapon-svg/commons/sako_trg_42.svg +1 -0
  17. package/assets/weapon-svg/commons/steyr_aug_a1.svg +1 -0
  18. package/assets/weapon-svg/commons/svd_dragunov.svg +1 -0
  19. package/assets/weapon-svg/commons/utility_knife.svg +1 -0
  20. package/assets/weapon-svg/commons/uzi.svg +1 -0
  21. package/assets/weapon-svg/commons/vz61.svg +1 -0
  22. package/assets/weapon-svg/commons-sources.json +151 -0
  23. package/assets/weapon-svg/credits.html +36 -0
  24. package/assets/weapon-svg/generated/aa_12.svg +1 -0
  25. package/assets/weapon-svg/generated/accuracy_awm.svg +1 -0
  26. package/assets/weapon-svg/generated/ag36.svg +1 -0
  27. package/assets/weapon-svg/generated/ak_12.svg +1 -0
  28. package/assets/weapon-svg/generated/ak_47.svg +1 -0
  29. package/assets/weapon-svg/generated/ak_74.svg +1 -0
  30. package/assets/weapon-svg/generated/akm.svg +1 -0
  31. package/assets/weapon-svg/generated/anti_materiel_50.svg +1 -0
  32. package/assets/weapon-svg/generated/at4.svg +1 -0
  33. package/assets/weapon-svg/generated/axe.svg +1 -0
  34. package/assets/weapon-svg/generated/barrett_m82a1.svg +1 -0
  35. package/assets/weapon-svg/generated/barrett_mrad.svg +1 -0
  36. package/assets/weapon-svg/generated/baseball_bat.svg +1 -0
  37. package/assets/weapon-svg/generated/benelli_m4.svg +1 -0
  38. package/assets/weapon-svg/generated/beretta_92fs.svg +1 -0
  39. package/assets/weapon-svg/generated/blowtorch.svg +1 -0
  40. package/assets/weapon-svg/generated/boito_double_barrel.svg +1 -0
  41. package/assets/weapon-svg/generated/bow_compound.svg +1 -0
  42. package/assets/weapon-svg/generated/browning_m2.svg +1 -0
  43. package/assets/weapon-svg/generated/c4.svg +1 -0
  44. package/assets/weapon-svg/generated/car_fuel_tank.svg +1 -0
  45. package/assets/weapon-svg/generated/carbine_22.svg +1 -0
  46. package/assets/weapon-svg/generated/carl_gustaf_m4.svg +1 -0
  47. package/assets/weapon-svg/generated/cast_iron_skillet.svg +1 -0
  48. package/assets/weapon-svg/generated/cbc_122.svg +1 -0
  49. package/assets/weapon-svg/generated/cbc_7022.svg +1 -0
  50. package/assets/weapon-svg/generated/cbc_pump_military_3_0.svg +1 -0
  51. package/assets/weapon-svg/generated/chainsaw.svg +1 -0
  52. package/assets/weapon-svg/generated/cheytac_m200.svg +1 -0
  53. package/assets/weapon-svg/generated/claw_hammer.svg +1 -0
  54. package/assets/weapon-svg/generated/claymore.svg +1 -0
  55. package/assets/weapon-svg/generated/colt_m16a2.svg +1 -0
  56. package/assets/weapon-svg/generated/colt_m1911.svg +1 -0
  57. package/assets/weapon-svg/generated/colt_m4a1.svg +1 -0
  58. package/assets/weapon-svg/generated/crossbow.svg +1 -0
  59. package/assets/weapon-svg/generated/crowbar.svg +1 -0
  60. package/assets/weapon-svg/generated/cutting_torch.svg +1 -0
  61. package/assets/weapon-svg/generated/cz_75.svg +1 -0
  62. package/assets/weapon-svg/generated/cz_scorpion_evo_3.svg +1 -0
  63. package/assets/weapon-svg/generated/desert_eagle_mark_xix.svg +1 -0
  64. package/assets/weapon-svg/generated/dynamite.svg +1 -0
  65. package/assets/weapon-svg/generated/extinguisher.svg +1 -0
  66. package/assets/weapon-svg/generated/flamethrower.svg +1 -0
  67. package/assets/weapon-svg/generated/flashbang.svg +1 -0
  68. package/assets/weapon-svg/generated/fn_fal.svg +1 -0
  69. package/assets/weapon-svg/generated/fn_five_seven.svg +1 -0
  70. package/assets/weapon-svg/generated/fn_m249.svg +1 -0
  71. package/assets/weapon-svg/generated/fn_mag.svg +1 -0
  72. package/assets/weapon-svg/generated/fn_minimi.svg +1 -0
  73. package/assets/weapon-svg/generated/fn_minimi_para.svg +1 -0
  74. package/assets/weapon-svg/generated/fn_p90.svg +1 -0
  75. package/assets/weapon-svg/generated/fn_parafal.svg +1 -0
  76. package/assets/weapon-svg/generated/fn_scar_h.svg +1 -0
  77. package/assets/weapon-svg/generated/frag_grenade.svg +1 -0
  78. package/assets/weapon-svg/generated/franchi_spas_12.svg +1 -0
  79. package/assets/weapon-svg/generated/fuel_barrel.svg +1 -0
  80. package/assets/weapon-svg/generated/glock_17.svg +1 -0
  81. package/assets/weapon-svg/generated/glock_18.svg +1 -0
  82. package/assets/weapon-svg/generated/glock_19.svg +1 -0
  83. package/assets/weapon-svg/generated/gp_25.svg +1 -0
  84. package/assets/weapon-svg/generated/hacksaw.svg +1 -0
  85. package/assets/weapon-svg/generated/hammer.svg +1 -0
  86. package/assets/weapon-svg/generated/hatchet.svg +1 -0
  87. package/assets/weapon-svg/generated/hk416.svg +1 -0
  88. package/assets/weapon-svg/generated/hk_g36.svg +1 -0
  89. package/assets/weapon-svg/generated/hk_g36c.svg +1 -0
  90. package/assets/weapon-svg/generated/hk_g36k.svg +1 -0
  91. package/assets/weapon-svg/generated/hk_g3a3.svg +1 -0
  92. package/assets/weapon-svg/generated/hk_mp5a3.svg +1 -0
  93. package/assets/weapon-svg/generated/hk_mp5k.svg +1 -0
  94. package/assets/weapon-svg/generated/hk_mp5sd3.svg +1 -0
  95. package/assets/weapon-svg/generated/hk_mp7a1.svg +1 -0
  96. package/assets/weapon-svg/generated/hk_psg_1.svg +1 -0
  97. package/assets/weapon-svg/generated/hk_ump9.svg +1 -0
  98. package/assets/weapon-svg/generated/hk_ump_45.svg +1 -0
  99. package/assets/weapon-svg/generated/hunting_rifle_30_06.svg +1 -0
  100. package/assets/weapon-svg/generated/imbel_ia2.svg +1 -0
  101. package/assets/weapon-svg/generated/improvised_flamethrower.svg +1 -0
  102. package/assets/weapon-svg/generated/improvised_spear.svg +1 -0
  103. package/assets/weapon-svg/generated/iron_pipe.svg +1 -0
  104. package/assets/weapon-svg/generated/kel_tec_ksg.svg +1 -0
  105. package/assets/weapon-svg/generated/knife.svg +1 -0
  106. package/assets/weapon-svg/generated/knights_sr_25_mk11.svg +1 -0
  107. package/assets/weapon-svg/generated/kriss_vector.svg +1 -0
  108. package/assets/weapon-svg/generated/lighter.svg +1 -0
  109. package/assets/weapon-svg/generated/m134.svg +1 -0
  110. package/assets/weapon-svg/generated/m14_ebr.svg +1 -0
  111. package/assets/weapon-svg/generated/m203.svg +1 -0
  112. package/assets/weapon-svg/generated/m24_sws.svg +1 -0
  113. package/assets/weapon-svg/generated/m2_flamethrower.svg +1 -0
  114. package/assets/weapon-svg/generated/m60.svg +1 -0
  115. package/assets/weapon-svg/generated/m72_law.svg +1 -0
  116. package/assets/weapon-svg/generated/m79.svg +1 -0
  117. package/assets/weapon-svg/generated/mac_10.svg +1 -0
  118. package/assets/weapon-svg/generated/machete.svg +1 -0
  119. package/assets/weapon-svg/generated/makarov_pm.svg +1 -0
  120. package/assets/weapon-svg/generated/meat_cleaver.svg +1 -0
  121. package/assets/weapon-svg/generated/mg3.svg +1 -0
  122. package/assets/weapon-svg/generated/mini_uzi.svg +1 -0
  123. package/assets/weapon-svg/generated/molotov.svg +1 -0
  124. package/assets/weapon-svg/generated/mosin_nagant_91_30.svg +1 -0
  125. package/assets/weapon-svg/generated/mossberg_500.svg +1 -0
  126. package/assets/weapon-svg/generated/mossberg_500_cruiser.svg +1 -0
  127. package/assets/weapon-svg/generated/nail_bat.svg +1 -0
  128. package/assets/weapon-svg/generated/pickaxe.svg +1 -0
  129. package/assets/weapon-svg/generated/pipe_bomb.svg +1 -0
  130. package/assets/weapon-svg/generated/pistol_22.svg +1 -0
  131. package/assets/weapon-svg/generated/pistol_45.svg +1 -0
  132. package/assets/weapon-svg/generated/pistol_9mm.svg +1 -0
  133. package/assets/weapon-svg/generated/pkm.svg +1 -0
  134. package/assets/weapon-svg/generated/police_baton.svg +1 -0
  135. package/assets/weapon-svg/generated/pp19_bizon.svg +1 -0
  136. package/assets/weapon-svg/generated/propane_p13.svg +1 -0
  137. package/assets/weapon-svg/generated/pry_bar.svg +1 -0
  138. package/assets/weapon-svg/generated/recurve_bow.svg +1 -0
  139. package/assets/weapon-svg/generated/remington_700.svg +1 -0
  140. package/assets/weapon-svg/generated/remington_700_300wm.svg +1 -0
  141. package/assets/weapon-svg/generated/remington_870.svg +1 -0
  142. package/assets/weapon-svg/generated/revolver_357.svg +1 -0
  143. package/assets/weapon-svg/generated/revolver_38.svg +1 -0
  144. package/assets/weapon-svg/generated/rifle_5_56.svg +1 -0
  145. package/assets/weapon-svg/generated/rifle_7_62x39.svg +1 -0
  146. package/assets/weapon-svg/generated/rifle_bolt_308.svg +1 -0
  147. package/assets/weapon-svg/generated/rossi_puma.svg +1 -0
  148. package/assets/weapon-svg/generated/rpg_7.svg +1 -0
  149. package/assets/weapon-svg/generated/rpk.svg +1 -0
  150. package/assets/weapon-svg/generated/ruger_10_22.svg +1 -0
  151. package/assets/weapon-svg/generated/saiga_12.svg +1 -0
  152. package/assets/weapon-svg/generated/sako_trg_42.svg +1 -0
  153. package/assets/weapon-svg/generated/screwdriver.svg +1 -0
  154. package/assets/weapon-svg/generated/shotgun_double_12.svg +1 -0
  155. package/assets/weapon-svg/generated/shotgun_pump_12.svg +1 -0
  156. package/assets/weapon-svg/generated/shotgun_semi_12.svg +1 -0
  157. package/assets/weapon-svg/generated/sickle.svg +1 -0
  158. package/assets/weapon-svg/generated/sig_mpx.svg +1 -0
  159. package/assets/weapon-svg/generated/sig_sauer_p226.svg +1 -0
  160. package/assets/weapon-svg/generated/sks.svg +1 -0
  161. package/assets/weapon-svg/generated/sledgehammer.svg +1 -0
  162. package/assets/weapon-svg/generated/smg_9mm.svg +1 -0
  163. package/assets/weapon-svg/generated/sniper_338.svg +1 -0
  164. package/assets/weapon-svg/generated/steyr_aug_a1.svg +1 -0
  165. package/assets/weapon-svg/generated/steyr_ssg_69.svg +1 -0
  166. package/assets/weapon-svg/generated/svd_dragunov.svg +1 -0
  167. package/assets/weapon-svg/generated/sw_686.svg +1 -0
  168. package/assets/weapon-svg/generated/sw_model_29.svg +1 -0
  169. package/assets/weapon-svg/generated/tactical_knife.svg +1 -0
  170. package/assets/weapon-svg/generated/taurus_82.svg +1 -0
  171. package/assets/weapon-svg/generated/taurus_g2c.svg +1 -0
  172. package/assets/weapon-svg/generated/taurus_pt100.svg +1 -0
  173. package/assets/weapon-svg/generated/taurus_smt9.svg +1 -0
  174. package/assets/weapon-svg/generated/taurus_t4.svg +1 -0
  175. package/assets/weapon-svg/generated/taurus_t4_civil.svg +1 -0
  176. package/assets/weapon-svg/generated/taurus_th380.svg +1 -0
  177. package/assets/weapon-svg/generated/taurus_ts9.svg +1 -0
  178. package/assets/weapon-svg/generated/thompson_m1a1.svg +1 -0
  179. package/assets/weapon-svg/generated/utility_knife.svg +1 -0
  180. package/assets/weapon-svg/generated/uzi.svg +1 -0
  181. package/assets/weapon-svg/generated/vz61.svg +1 -0
  182. package/assets/weapon-svg/generated/winchester_1894.svg +1 -0
  183. package/assets/weapon-svg/generated/wrench.svg +1 -0
  184. package/assets/weapon-svg/manifest.json +717 -0
  185. package/dist/index.d.ts +22 -1
  186. package/dist/index.global.js +1266 -261
  187. package/dist/index.global.js.map +1 -1
  188. package/dist/index.js +747 -53
  189. package/dist/index.js.map +1 -1
  190. package/package.json +10 -8
  191. package/LICENSE +0 -21
package/dist/index.js CHANGED
@@ -651,56 +651,8 @@ var createLaserRaycast = (THREE, scene, camera, options = {}) => {
651
651
  };
652
652
  };
653
653
 
654
- // src/merge-by-material.ts
655
- var ATTRIBUTES = ["position", "normal", "uv"];
656
- var isVisible = (object) => {
657
- for (let node = object; node; node = node.parent) if (!node.visible) return false;
658
- return true;
659
- };
660
- var bake = (THREE, mesh, matrix) => {
661
- const source = mesh.geometry.index ? mesh.geometry.toNonIndexed() : mesh.geometry.clone();
662
- const baked = new THREE.BufferGeometry();
663
- const count = source.getAttribute("position").count;
664
- for (const name of ATTRIBUTES) {
665
- const attribute = source.getAttribute(name);
666
- baked.setAttribute(name, attribute ?? new THREE.BufferAttribute(new Float32Array(count * (name === "uv" ? 2 : 3)), name === "uv" ? 2 : 3));
667
- }
668
- source.dispose();
669
- return baked.applyMatrix4(matrix);
670
- };
671
- var join = (THREE, geometries) => {
672
- const merged = new THREE.BufferGeometry();
673
- for (const name of ATTRIBUTES) {
674
- const size = (geometries[0]?.getAttribute(name)).itemSize;
675
- const total = geometries.reduce((sum, geometry) => sum + geometry.getAttribute(name).count, 0);
676
- const array = new Float32Array(total * size);
677
- let offset = 0;
678
- for (const geometry of geometries) {
679
- array.set(geometry.getAttribute(name).array, offset);
680
- offset += geometry.getAttribute(name).count * size;
681
- }
682
- merged.setAttribute(name, new THREE.BufferAttribute(array, size));
683
- }
684
- return merged;
685
- };
686
- function mergeByMaterial(THREE, root, space) {
687
- const toSpace = space.matrixWorld.clone().invert();
688
- const byMaterial = /* @__PURE__ */ new Map();
689
- root.traverse((object) => {
690
- const mesh = object;
691
- if (!mesh.isMesh || Array.isArray(mesh.material) || !isVisible(mesh)) return;
692
- const list = byMaterial.get(mesh.material) ?? [];
693
- list.push(bake(THREE, mesh, new THREE.Matrix4().multiplyMatrices(toSpace, mesh.matrixWorld)));
694
- byMaterial.set(mesh.material, list);
695
- });
696
- return [...byMaterial].map(([material, geometries]) => {
697
- const merged = new THREE.Mesh(join(THREE, geometries), material);
698
- for (const geometry of geometries) geometry.dispose();
699
- merged.castShadow = false;
700
- merged.receiveShadow = true;
701
- return merged;
702
- });
703
- }
654
+ // src/props.ts
655
+ import { mergeByMaterial } from "@adatechnology/game-props3d";
704
656
 
705
657
  // src/models/index.ts
706
658
  import { WEAPONS } from "@adatechnology/game-weapons";
@@ -5830,6 +5782,737 @@ function createWeaponFx(options) {
5830
5782
  };
5831
5783
  }
5832
5784
 
5785
+ // assets/weapon-svg/manifest.json
5786
+ var manifest_default = {
5787
+ version: 1,
5788
+ assets: {
5789
+ aa_12: {
5790
+ source: "generated",
5791
+ file: "generated/aa_12.svg"
5792
+ },
5793
+ accuracy_awm: {
5794
+ source: "generated",
5795
+ file: "generated/accuracy_awm.svg"
5796
+ },
5797
+ ag36: {
5798
+ source: "generated",
5799
+ file: "generated/ag36.svg"
5800
+ },
5801
+ ak_12: {
5802
+ source: "generated",
5803
+ file: "generated/ak_12.svg"
5804
+ },
5805
+ ak_47: {
5806
+ source: "commons",
5807
+ file: "commons/ak_47.svg",
5808
+ author: "Bes-ART",
5809
+ license: "CC BY-SA 4.0",
5810
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
5811
+ page: "https://commons.wikimedia.org/wiki/File:AK-47_silhouette.svg"
5812
+ },
5813
+ ak_74: {
5814
+ source: "generated",
5815
+ file: "generated/ak_74.svg"
5816
+ },
5817
+ akm: {
5818
+ source: "generated",
5819
+ file: "generated/akm.svg"
5820
+ },
5821
+ anti_materiel_50: {
5822
+ source: "generated",
5823
+ file: "generated/anti_materiel_50.svg"
5824
+ },
5825
+ at4: {
5826
+ source: "generated",
5827
+ file: "generated/at4.svg"
5828
+ },
5829
+ axe: {
5830
+ source: "generated",
5831
+ file: "generated/axe.svg"
5832
+ },
5833
+ barrett_m82a1: {
5834
+ source: "commons",
5835
+ file: "commons/barrett_m82a1.svg",
5836
+ author: "Bes-ART",
5837
+ license: "CC BY-SA 4.0",
5838
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
5839
+ page: "https://commons.wikimedia.org/wiki/File:Barret_M82_silhouette.svg"
5840
+ },
5841
+ barrett_mrad: {
5842
+ source: "generated",
5843
+ file: "generated/barrett_mrad.svg"
5844
+ },
5845
+ baseball_bat: {
5846
+ source: "generated",
5847
+ file: "generated/baseball_bat.svg"
5848
+ },
5849
+ benelli_m4: {
5850
+ source: "commons",
5851
+ file: "commons/benelli_m4.svg",
5852
+ author: "Bes-ART",
5853
+ license: "CC BY-SA 4.0",
5854
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
5855
+ page: "https://commons.wikimedia.org/wiki/File:Benelli_M4_Super_90_silhouette.svg"
5856
+ },
5857
+ beretta_92fs: {
5858
+ source: "commons",
5859
+ file: "commons/beretta_92fs.svg",
5860
+ author: "Bes-ART",
5861
+ license: "CC BY-SA 4.0",
5862
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
5863
+ page: "https://commons.wikimedia.org/wiki/File:Beretta_M9_silhouette.svg"
5864
+ },
5865
+ blowtorch: {
5866
+ source: "generated",
5867
+ file: "generated/blowtorch.svg"
5868
+ },
5869
+ boito_double_barrel: {
5870
+ source: "generated",
5871
+ file: "generated/boito_double_barrel.svg"
5872
+ },
5873
+ bow_compound: {
5874
+ source: "generated",
5875
+ file: "generated/bow_compound.svg"
5876
+ },
5877
+ browning_m2: {
5878
+ source: "generated",
5879
+ file: "generated/browning_m2.svg"
5880
+ },
5881
+ c4: {
5882
+ source: "generated",
5883
+ file: "generated/c4.svg"
5884
+ },
5885
+ car_fuel_tank: {
5886
+ source: "generated",
5887
+ file: "generated/car_fuel_tank.svg"
5888
+ },
5889
+ carbine_22: {
5890
+ source: "generated",
5891
+ file: "generated/carbine_22.svg"
5892
+ },
5893
+ carl_gustaf_m4: {
5894
+ source: "generated",
5895
+ file: "generated/carl_gustaf_m4.svg"
5896
+ },
5897
+ cast_iron_skillet: {
5898
+ source: "generated",
5899
+ file: "generated/cast_iron_skillet.svg"
5900
+ },
5901
+ cbc_122: {
5902
+ source: "generated",
5903
+ file: "generated/cbc_122.svg"
5904
+ },
5905
+ cbc_7022: {
5906
+ source: "generated",
5907
+ file: "generated/cbc_7022.svg"
5908
+ },
5909
+ cbc_pump_military_3_0: {
5910
+ source: "generated",
5911
+ file: "generated/cbc_pump_military_3_0.svg"
5912
+ },
5913
+ chainsaw: {
5914
+ source: "generated",
5915
+ file: "generated/chainsaw.svg"
5916
+ },
5917
+ cheytac_m200: {
5918
+ source: "generated",
5919
+ file: "generated/cheytac_m200.svg"
5920
+ },
5921
+ claw_hammer: {
5922
+ source: "generated",
5923
+ file: "generated/claw_hammer.svg"
5924
+ },
5925
+ claymore: {
5926
+ source: "generated",
5927
+ file: "generated/claymore.svg"
5928
+ },
5929
+ colt_m16a2: {
5930
+ source: "commons",
5931
+ file: "commons/colt_m16a2.svg",
5932
+ author: "Anonymous",
5933
+ license: "CC0",
5934
+ licenseUrl: "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
5935
+ page: "https://commons.wikimedia.org/wiki/File:M16-Rifle.svg"
5936
+ },
5937
+ colt_m1911: {
5938
+ source: "commons",
5939
+ file: "commons/colt_m1911.svg",
5940
+ author: "Skoll",
5941
+ license: "CC BY 3.0",
5942
+ licenseUrl: "https://creativecommons.org/licenses/by/3.0",
5943
+ page: "https://commons.wikimedia.org/wiki/File:Colt-m1911_-_game-icons.svg"
5944
+ },
5945
+ colt_m4a1: {
5946
+ source: "commons",
5947
+ file: "commons/colt_m4a1.svg",
5948
+ author: "Bes-ART",
5949
+ license: "CC BY-SA 4.0",
5950
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
5951
+ page: "https://commons.wikimedia.org/wiki/File:Colt_M4A1_silhouette.svg"
5952
+ },
5953
+ crossbow: {
5954
+ source: "generated",
5955
+ file: "generated/crossbow.svg"
5956
+ },
5957
+ crowbar: {
5958
+ source: "generated",
5959
+ file: "generated/crowbar.svg"
5960
+ },
5961
+ cutting_torch: {
5962
+ source: "generated",
5963
+ file: "generated/cutting_torch.svg"
5964
+ },
5965
+ cz_75: {
5966
+ source: "generated",
5967
+ file: "generated/cz_75.svg"
5968
+ },
5969
+ cz_scorpion_evo_3: {
5970
+ source: "generated",
5971
+ file: "generated/cz_scorpion_evo_3.svg"
5972
+ },
5973
+ desert_eagle_mark_xix: {
5974
+ source: "commons",
5975
+ file: "commons/desert_eagle_mark_xix.svg",
5976
+ author: "Skoll",
5977
+ license: "CC BY 3.0",
5978
+ licenseUrl: "https://creativecommons.org/licenses/by/3.0",
5979
+ page: "https://commons.wikimedia.org/wiki/File:Desert-eagle_-_game-icons.svg"
5980
+ },
5981
+ dynamite: {
5982
+ source: "generated",
5983
+ file: "generated/dynamite.svg"
5984
+ },
5985
+ extinguisher: {
5986
+ source: "generated",
5987
+ file: "generated/extinguisher.svg"
5988
+ },
5989
+ flamethrower: {
5990
+ source: "generated",
5991
+ file: "generated/flamethrower.svg"
5992
+ },
5993
+ flashbang: {
5994
+ source: "generated",
5995
+ file: "generated/flashbang.svg"
5996
+ },
5997
+ fn_fal: {
5998
+ source: "generated",
5999
+ file: "generated/fn_fal.svg"
6000
+ },
6001
+ fn_five_seven: {
6002
+ source: "generated",
6003
+ file: "generated/fn_five_seven.svg"
6004
+ },
6005
+ fn_m249: {
6006
+ source: "generated",
6007
+ file: "generated/fn_m249.svg"
6008
+ },
6009
+ fn_mag: {
6010
+ source: "generated",
6011
+ file: "generated/fn_mag.svg"
6012
+ },
6013
+ fn_minimi: {
6014
+ source: "generated",
6015
+ file: "generated/fn_minimi.svg"
6016
+ },
6017
+ fn_minimi_para: {
6018
+ source: "generated",
6019
+ file: "generated/fn_minimi_para.svg"
6020
+ },
6021
+ fn_p90: {
6022
+ source: "generated",
6023
+ file: "generated/fn_p90.svg"
6024
+ },
6025
+ fn_parafal: {
6026
+ source: "generated",
6027
+ file: "generated/fn_parafal.svg"
6028
+ },
6029
+ fn_scar_h: {
6030
+ source: "generated",
6031
+ file: "generated/fn_scar_h.svg"
6032
+ },
6033
+ frag_grenade: {
6034
+ source: "generated",
6035
+ file: "generated/frag_grenade.svg"
6036
+ },
6037
+ franchi_spas_12: {
6038
+ source: "generated",
6039
+ file: "generated/franchi_spas_12.svg"
6040
+ },
6041
+ fuel_barrel: {
6042
+ source: "generated",
6043
+ file: "generated/fuel_barrel.svg"
6044
+ },
6045
+ glock_17: {
6046
+ source: "generated",
6047
+ file: "generated/glock_17.svg"
6048
+ },
6049
+ glock_18: {
6050
+ source: "generated",
6051
+ file: "generated/glock_18.svg"
6052
+ },
6053
+ glock_19: {
6054
+ source: "commons",
6055
+ file: "commons/glock_19.svg",
6056
+ author: "Bes-ART",
6057
+ license: "CC BY-SA 4.0",
6058
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
6059
+ page: "https://commons.wikimedia.org/wiki/File:Glock_19_silhouette.svg"
6060
+ },
6061
+ gp_25: {
6062
+ source: "generated",
6063
+ file: "generated/gp_25.svg"
6064
+ },
6065
+ hacksaw: {
6066
+ source: "generated",
6067
+ file: "generated/hacksaw.svg"
6068
+ },
6069
+ hammer: {
6070
+ source: "generated",
6071
+ file: "generated/hammer.svg"
6072
+ },
6073
+ hatchet: {
6074
+ source: "generated",
6075
+ file: "generated/hatchet.svg"
6076
+ },
6077
+ hk416: {
6078
+ source: "generated",
6079
+ file: "generated/hk416.svg"
6080
+ },
6081
+ hk_g36: {
6082
+ source: "generated",
6083
+ file: "generated/hk_g36.svg"
6084
+ },
6085
+ hk_g36c: {
6086
+ source: "generated",
6087
+ file: "generated/hk_g36c.svg"
6088
+ },
6089
+ hk_g36k: {
6090
+ source: "generated",
6091
+ file: "generated/hk_g36k.svg"
6092
+ },
6093
+ hk_g3a3: {
6094
+ source: "generated",
6095
+ file: "generated/hk_g3a3.svg"
6096
+ },
6097
+ hk_mp5a3: {
6098
+ source: "commons",
6099
+ file: "commons/hk_mp5a3.svg",
6100
+ author: "Bes-ART",
6101
+ license: "CC BY-SA 4.0",
6102
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
6103
+ page: "https://commons.wikimedia.org/wiki/File:H%26K_MP5_silhouette.svg"
6104
+ },
6105
+ hk_mp5k: {
6106
+ source: "commons",
6107
+ file: "commons/hk_mp5k.svg",
6108
+ author: "Skoll",
6109
+ license: "CC BY 3.0",
6110
+ licenseUrl: "https://creativecommons.org/licenses/by/3.0",
6111
+ page: "https://commons.wikimedia.org/wiki/File:Mp5k_-_game-icons.svg"
6112
+ },
6113
+ hk_mp5sd3: {
6114
+ source: "generated",
6115
+ file: "generated/hk_mp5sd3.svg"
6116
+ },
6117
+ hk_mp7a1: {
6118
+ source: "generated",
6119
+ file: "generated/hk_mp7a1.svg"
6120
+ },
6121
+ hk_psg_1: {
6122
+ source: "generated",
6123
+ file: "generated/hk_psg_1.svg"
6124
+ },
6125
+ hk_ump9: {
6126
+ source: "generated",
6127
+ file: "generated/hk_ump9.svg"
6128
+ },
6129
+ hk_ump_45: {
6130
+ source: "generated",
6131
+ file: "generated/hk_ump_45.svg"
6132
+ },
6133
+ hunting_rifle_30_06: {
6134
+ source: "generated",
6135
+ file: "generated/hunting_rifle_30_06.svg"
6136
+ },
6137
+ imbel_ia2: {
6138
+ source: "generated",
6139
+ file: "generated/imbel_ia2.svg"
6140
+ },
6141
+ improvised_flamethrower: {
6142
+ source: "generated",
6143
+ file: "generated/improvised_flamethrower.svg"
6144
+ },
6145
+ improvised_spear: {
6146
+ source: "generated",
6147
+ file: "generated/improvised_spear.svg"
6148
+ },
6149
+ iron_pipe: {
6150
+ source: "generated",
6151
+ file: "generated/iron_pipe.svg"
6152
+ },
6153
+ kel_tec_ksg: {
6154
+ source: "generated",
6155
+ file: "generated/kel_tec_ksg.svg"
6156
+ },
6157
+ knife: {
6158
+ source: "generated",
6159
+ file: "generated/knife.svg"
6160
+ },
6161
+ knights_sr_25_mk11: {
6162
+ source: "generated",
6163
+ file: "generated/knights_sr_25_mk11.svg"
6164
+ },
6165
+ kriss_vector: {
6166
+ source: "generated",
6167
+ file: "generated/kriss_vector.svg"
6168
+ },
6169
+ lighter: {
6170
+ source: "generated",
6171
+ file: "generated/lighter.svg"
6172
+ },
6173
+ m134: {
6174
+ source: "generated",
6175
+ file: "generated/m134.svg"
6176
+ },
6177
+ m14_ebr: {
6178
+ source: "generated",
6179
+ file: "generated/m14_ebr.svg"
6180
+ },
6181
+ m203: {
6182
+ source: "generated",
6183
+ file: "generated/m203.svg"
6184
+ },
6185
+ m24_sws: {
6186
+ source: "generated",
6187
+ file: "generated/m24_sws.svg"
6188
+ },
6189
+ m2_flamethrower: {
6190
+ source: "generated",
6191
+ file: "generated/m2_flamethrower.svg"
6192
+ },
6193
+ m60: {
6194
+ source: "generated",
6195
+ file: "generated/m60.svg"
6196
+ },
6197
+ m72_law: {
6198
+ source: "generated",
6199
+ file: "generated/m72_law.svg"
6200
+ },
6201
+ m79: {
6202
+ source: "generated",
6203
+ file: "generated/m79.svg"
6204
+ },
6205
+ mac_10: {
6206
+ source: "commons",
6207
+ file: "commons/mac_10.svg",
6208
+ author: "Skoll",
6209
+ license: "CC BY 3.0",
6210
+ licenseUrl: "https://creativecommons.org/licenses/by/3.0",
6211
+ page: "https://commons.wikimedia.org/wiki/File:Mac-10_-_game-icons.svg"
6212
+ },
6213
+ machete: {
6214
+ source: "generated",
6215
+ file: "generated/machete.svg"
6216
+ },
6217
+ makarov_pm: {
6218
+ source: "generated",
6219
+ file: "generated/makarov_pm.svg"
6220
+ },
6221
+ meat_cleaver: {
6222
+ source: "generated",
6223
+ file: "generated/meat_cleaver.svg"
6224
+ },
6225
+ mg3: {
6226
+ source: "generated",
6227
+ file: "generated/mg3.svg"
6228
+ },
6229
+ mini_uzi: {
6230
+ source: "generated",
6231
+ file: "generated/mini_uzi.svg"
6232
+ },
6233
+ molotov: {
6234
+ source: "generated",
6235
+ file: "generated/molotov.svg"
6236
+ },
6237
+ mosin_nagant_91_30: {
6238
+ source: "generated",
6239
+ file: "generated/mosin_nagant_91_30.svg"
6240
+ },
6241
+ mossberg_500: {
6242
+ source: "generated",
6243
+ file: "generated/mossberg_500.svg"
6244
+ },
6245
+ mossberg_500_cruiser: {
6246
+ source: "generated",
6247
+ file: "generated/mossberg_500_cruiser.svg"
6248
+ },
6249
+ nail_bat: {
6250
+ source: "generated",
6251
+ file: "generated/nail_bat.svg"
6252
+ },
6253
+ pickaxe: {
6254
+ source: "generated",
6255
+ file: "generated/pickaxe.svg"
6256
+ },
6257
+ pipe_bomb: {
6258
+ source: "generated",
6259
+ file: "generated/pipe_bomb.svg"
6260
+ },
6261
+ pistol_22: {
6262
+ source: "generated",
6263
+ file: "generated/pistol_22.svg"
6264
+ },
6265
+ pistol_45: {
6266
+ source: "generated",
6267
+ file: "generated/pistol_45.svg"
6268
+ },
6269
+ pistol_9mm: {
6270
+ source: "generated",
6271
+ file: "generated/pistol_9mm.svg"
6272
+ },
6273
+ pkm: {
6274
+ source: "generated",
6275
+ file: "generated/pkm.svg"
6276
+ },
6277
+ police_baton: {
6278
+ source: "generated",
6279
+ file: "generated/police_baton.svg"
6280
+ },
6281
+ pp19_bizon: {
6282
+ source: "generated",
6283
+ file: "generated/pp19_bizon.svg"
6284
+ },
6285
+ propane_p13: {
6286
+ source: "generated",
6287
+ file: "generated/propane_p13.svg"
6288
+ },
6289
+ pry_bar: {
6290
+ source: "generated",
6291
+ file: "generated/pry_bar.svg"
6292
+ },
6293
+ recurve_bow: {
6294
+ source: "generated",
6295
+ file: "generated/recurve_bow.svg"
6296
+ },
6297
+ remington_700: {
6298
+ source: "generated",
6299
+ file: "generated/remington_700.svg"
6300
+ },
6301
+ remington_700_300wm: {
6302
+ source: "generated",
6303
+ file: "generated/remington_700_300wm.svg"
6304
+ },
6305
+ remington_870: {
6306
+ source: "generated",
6307
+ file: "generated/remington_870.svg"
6308
+ },
6309
+ revolver_357: {
6310
+ source: "generated",
6311
+ file: "generated/revolver_357.svg"
6312
+ },
6313
+ revolver_38: {
6314
+ source: "generated",
6315
+ file: "generated/revolver_38.svg"
6316
+ },
6317
+ rifle_5_56: {
6318
+ source: "generated",
6319
+ file: "generated/rifle_5_56.svg"
6320
+ },
6321
+ rifle_7_62x39: {
6322
+ source: "generated",
6323
+ file: "generated/rifle_7_62x39.svg"
6324
+ },
6325
+ rifle_bolt_308: {
6326
+ source: "generated",
6327
+ file: "generated/rifle_bolt_308.svg"
6328
+ },
6329
+ rossi_puma: {
6330
+ source: "generated",
6331
+ file: "generated/rossi_puma.svg"
6332
+ },
6333
+ rpg_7: {
6334
+ source: "generated",
6335
+ file: "generated/rpg_7.svg"
6336
+ },
6337
+ rpk: {
6338
+ source: "generated",
6339
+ file: "generated/rpk.svg"
6340
+ },
6341
+ ruger_10_22: {
6342
+ source: "generated",
6343
+ file: "generated/ruger_10_22.svg"
6344
+ },
6345
+ saiga_12: {
6346
+ source: "generated",
6347
+ file: "generated/saiga_12.svg"
6348
+ },
6349
+ sako_trg_42: {
6350
+ source: "commons",
6351
+ file: "commons/sako_trg_42.svg",
6352
+ author: "Bes-ART",
6353
+ license: "CC BY-SA 4.0",
6354
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
6355
+ page: "https://commons.wikimedia.org/wiki/File:Sako_TRG_silhouette.svg"
6356
+ },
6357
+ screwdriver: {
6358
+ source: "generated",
6359
+ file: "generated/screwdriver.svg"
6360
+ },
6361
+ shotgun_double_12: {
6362
+ source: "generated",
6363
+ file: "generated/shotgun_double_12.svg"
6364
+ },
6365
+ shotgun_pump_12: {
6366
+ source: "generated",
6367
+ file: "generated/shotgun_pump_12.svg"
6368
+ },
6369
+ shotgun_semi_12: {
6370
+ source: "generated",
6371
+ file: "generated/shotgun_semi_12.svg"
6372
+ },
6373
+ sickle: {
6374
+ source: "generated",
6375
+ file: "generated/sickle.svg"
6376
+ },
6377
+ sig_mpx: {
6378
+ source: "generated",
6379
+ file: "generated/sig_mpx.svg"
6380
+ },
6381
+ sig_sauer_p226: {
6382
+ source: "generated",
6383
+ file: "generated/sig_sauer_p226.svg"
6384
+ },
6385
+ sks: {
6386
+ source: "generated",
6387
+ file: "generated/sks.svg"
6388
+ },
6389
+ sledgehammer: {
6390
+ source: "generated",
6391
+ file: "generated/sledgehammer.svg"
6392
+ },
6393
+ smg_9mm: {
6394
+ source: "generated",
6395
+ file: "generated/smg_9mm.svg"
6396
+ },
6397
+ sniper_338: {
6398
+ source: "generated",
6399
+ file: "generated/sniper_338.svg"
6400
+ },
6401
+ steyr_aug_a1: {
6402
+ source: "commons",
6403
+ file: "commons/steyr_aug_a1.svg",
6404
+ author: "Fleshgrinder",
6405
+ license: "Public domain",
6406
+ licenseUrl: "https://commons.wikimedia.org/wiki/File:Steyr_AUG_A1_407mm.svg",
6407
+ page: "https://commons.wikimedia.org/wiki/File:Steyr_AUG_A1_407mm.svg"
6408
+ },
6409
+ steyr_ssg_69: {
6410
+ source: "generated",
6411
+ file: "generated/steyr_ssg_69.svg"
6412
+ },
6413
+ svd_dragunov: {
6414
+ source: "commons",
6415
+ file: "commons/svd_dragunov.svg",
6416
+ author: "Bes-ART",
6417
+ license: "CC BY-SA 4.0",
6418
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/4.0",
6419
+ page: "https://commons.wikimedia.org/wiki/File:Dragunov_silhouette.svg"
6420
+ },
6421
+ sw_686: {
6422
+ source: "generated",
6423
+ file: "generated/sw_686.svg"
6424
+ },
6425
+ sw_model_29: {
6426
+ source: "generated",
6427
+ file: "generated/sw_model_29.svg"
6428
+ },
6429
+ tactical_knife: {
6430
+ source: "generated",
6431
+ file: "generated/tactical_knife.svg"
6432
+ },
6433
+ taurus_82: {
6434
+ source: "generated",
6435
+ file: "generated/taurus_82.svg"
6436
+ },
6437
+ taurus_g2c: {
6438
+ source: "generated",
6439
+ file: "generated/taurus_g2c.svg"
6440
+ },
6441
+ taurus_pt100: {
6442
+ source: "generated",
6443
+ file: "generated/taurus_pt100.svg"
6444
+ },
6445
+ taurus_smt9: {
6446
+ source: "generated",
6447
+ file: "generated/taurus_smt9.svg"
6448
+ },
6449
+ taurus_t4: {
6450
+ source: "generated",
6451
+ file: "generated/taurus_t4.svg"
6452
+ },
6453
+ taurus_t4_civil: {
6454
+ source: "generated",
6455
+ file: "generated/taurus_t4_civil.svg"
6456
+ },
6457
+ taurus_th380: {
6458
+ source: "generated",
6459
+ file: "generated/taurus_th380.svg"
6460
+ },
6461
+ taurus_ts9: {
6462
+ source: "generated",
6463
+ file: "generated/taurus_ts9.svg"
6464
+ },
6465
+ thompson_m1a1: {
6466
+ source: "generated",
6467
+ file: "generated/thompson_m1a1.svg"
6468
+ },
6469
+ utility_knife: {
6470
+ source: "commons",
6471
+ file: "commons/utility_knife.svg",
6472
+ author: "Lucasbosch",
6473
+ license: "CC BY-SA 3.0",
6474
+ licenseUrl: "https://creativecommons.org/licenses/by-sa/3.0",
6475
+ page: "https://commons.wikimedia.org/wiki/File:OLFA_5019_SVR-2_9_mm_utility_knife_with_ABB_blade.svg"
6476
+ },
6477
+ uzi: {
6478
+ source: "commons",
6479
+ file: "commons/uzi.svg",
6480
+ author: "floatingbrainiac",
6481
+ license: "CC0",
6482
+ licenseUrl: "http://creativecommons.org/publicdomain/zero/1.0/deed.en",
6483
+ page: "https://commons.wikimedia.org/wiki/File:Uzi_silhouette.svg"
6484
+ },
6485
+ vz61: {
6486
+ source: "commons",
6487
+ file: "commons/vz61.svg",
6488
+ author: "Skoll",
6489
+ license: "CC BY 3.0",
6490
+ licenseUrl: "https://creativecommons.org/licenses/by/3.0",
6491
+ page: "https://commons.wikimedia.org/wiki/File:Cz-skorpion_-_game-icons.svg"
6492
+ },
6493
+ winchester_1894: {
6494
+ source: "generated",
6495
+ file: "generated/winchester_1894.svg"
6496
+ },
6497
+ wrench: {
6498
+ source: "generated",
6499
+ file: "generated/wrench.svg"
6500
+ }
6501
+ }
6502
+ };
6503
+
6504
+ // src/thumbnails.ts
6505
+ var WEAPON_THUMBNAILS = manifest_default.assets;
6506
+ function weaponThumbnailCredit(id) {
6507
+ const entry = WEAPON_THUMBNAILS[id];
6508
+ return entry?.source === "commons" && entry.author && entry.license ? `${entry.author}, ${entry.license}` : void 0;
6509
+ }
6510
+ var DEFAULT_THUMBNAIL_BASE = "weapon-svg/";
6511
+ function weaponThumbnailUrl(id, base = DEFAULT_THUMBNAIL_BASE) {
6512
+ const entry = WEAPON_THUMBNAILS[id];
6513
+ return entry ? `${base}${entry.file}` : void 0;
6514
+ }
6515
+
5833
6516
  // src/world-explosives.ts
5834
6517
  var WORLD_EXPLOSIVE_PREFIX = "world_";
5835
6518
  var SHAPES2 = {
@@ -6043,6 +6726,13 @@ function createWeaponsTestModule(options = {}) {
6043
6726
  const accessoryText = accessoryTextOf(locale);
6044
6727
  const audio = options.sound === false ? null : createWeaponAudio(void 0, options.seed === void 0 ? {} : { seed: options.seed });
6045
6728
  const weaponDefs = [...arsenal.weapons.values()].filter((def) => !BODY_ACTIONS.has(def.id));
6729
+ const thumbnailBase = options.thumbnailBase ?? DEFAULT_THUMBNAIL_BASE;
6730
+ const withThumbnail = (item, key) => {
6731
+ const thumbnail = thumbnailBase === false ? void 0 : weaponThumbnailUrl(key, thumbnailBase);
6732
+ if (!thumbnail) return item;
6733
+ const thumbnailCredit = weaponThumbnailCredit(key);
6734
+ return thumbnailCredit ? { ...item, thumbnail, thumbnailCredit } : { ...item, thumbnail };
6735
+ };
6046
6736
  const weaponIds = weaponDefs.filter((def) => !(def.id in ARCHETYPE_MODELS)).map((def) => `${WEAPON_ITEM_PREFIX}${def.id}`);
6047
6737
  const pitchOf = (itemId) => PITCH_BY_ID[itemId.slice(WEAPON_ITEM_PREFIX.length)] ?? DEFAULT_PITCH;
6048
6738
  const worldExplosives = WORLD_EXPLOSIVE_IDS.flatMap((id) => {
@@ -6066,11 +6756,11 @@ function createWeaponsTestModule(options = {}) {
6066
6756
  return fx;
6067
6757
  },
6068
6758
  items: () => [
6069
- ...weaponDefs.map((def) => weaponItem(def, arsenal.name(def.id))),
6759
+ ...weaponDefs.map((def) => withThumbnail(weaponItem(def, arsenal.name(def.id)), def.id)),
6070
6760
  asItem(COUNTER_ITEM_ID, text.counter, counterProp(text.counter), { movable: false }),
6071
6761
  ...TARGETS.map((target) => asItem(target.id, text.targets[target.id] ?? target.id, targetProp(target.id, text.targets[target.id] ?? target.id), { movable: false })),
6072
- ...worldExplosives,
6073
- ...mountedM134
6762
+ ...worldExplosives.map((item) => withThumbnail(item, item.id.slice(WORLD_EXPLOSIVE_PREFIX.length))),
6763
+ ...mountedM134.map((item) => withThumbnail(item, MOUNTED_M134.weaponId))
6074
6764
  ],
6075
6765
  area: () => ({
6076
6766
  placements: [
@@ -6174,12 +6864,14 @@ export {
6174
6864
  CLASS_REFERENCE_ENERGY,
6175
6865
  COUNTER_ITEM_ID,
6176
6866
  DEFAULT_ENERGY_CURVE,
6867
+ DEFAULT_THUMBNAIL_BASE,
6177
6868
  GAME_DISTANCE_CURVE,
6178
6869
  GAME_SOUND_CLASSES,
6179
6870
  MECHANICAL_SOUNDS,
6180
6871
  MODEL_ENTRIES,
6181
6872
  MOUNTED_M134_ITEM_ID,
6182
6873
  WEAPON_ITEM_PREFIX,
6874
+ WEAPON_THUMBNAILS,
6183
6875
  WORLD_EXPLOSIVE_IDS,
6184
6876
  WORLD_EXPLOSIVE_PREFIX,
6185
6877
  applyCondition,
@@ -6205,6 +6897,8 @@ export {
6205
6897
  rigStock,
6206
6898
  rigUnderbarrel,
6207
6899
  weaponProp,
6900
+ weaponThumbnailCredit,
6901
+ weaponThumbnailUrl,
6208
6902
  weaponsLayout,
6209
6903
  worldExplosiveItem
6210
6904
  };