同步更新内容(阴险,tag,战利品表,其他资源文件等)
|
@ -1,4 +1,4 @@
|
||||||
// 1.21.1 2025-03-27T19:21:19.6262589 Tags for minecraft:item mod id superbwarfare
|
// 1.21.1 2025-04-02T18:07:51.8627648 Tags for minecraft:item mod id superbwarfare
|
||||||
44a232152f5941d0435a35483b37f8ed22fd10bf data/c/tags/item/dusts.json
|
44a232152f5941d0435a35483b37f8ed22fd10bf data/c/tags/item/dusts.json
|
||||||
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/c/tags/item/dusts/coal_coke.json
|
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/c/tags/item/dusts/coal_coke.json
|
||||||
295ddf906b7133a0558d03e9a60eea18281fe430 data/c/tags/item/dusts/iron.json
|
295ddf906b7133a0558d03e9a60eea18281fe430 data/c/tags/item/dusts/iron.json
|
||||||
|
@ -29,10 +29,10 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/c/tags/item/storage_blocks/lead.js
|
||||||
362d41246c4c832d114e8b8942b105f4010d4ba0 data/superbwarfare/tags/item/blueprint.json
|
362d41246c4c832d114e8b8942b105f4010d4ba0 data/superbwarfare/tags/item/blueprint.json
|
||||||
b2487459d95ca9a319bfbd94e60a48de60e07297 data/superbwarfare/tags/item/blueprint/cannon.json
|
b2487459d95ca9a319bfbd94e60a48de60e07297 data/superbwarfare/tags/item/blueprint/cannon.json
|
||||||
889e4b56462df422f57191f07229009dcf2073e3 data/superbwarfare/tags/item/blueprint/common.json
|
889e4b56462df422f57191f07229009dcf2073e3 data/superbwarfare/tags/item/blueprint/common.json
|
||||||
2512dd03ae847ab6b4a9cc60d32ff3b3a5cdad82 data/superbwarfare/tags/item/blueprint/epic.json
|
3c4adac76810982986b6cd9845192ae8416324f4 data/superbwarfare/tags/item/blueprint/epic.json
|
||||||
8014c67b62b785b4b7e23d8e5aa70343c30b2fbd data/superbwarfare/tags/item/blueprint/legendary.json
|
8014c67b62b785b4b7e23d8e5aa70343c30b2fbd data/superbwarfare/tags/item/blueprint/legendary.json
|
||||||
2a49f09e9374bf7f355aae50be470169406ff2d3 data/superbwarfare/tags/item/blueprint/rare.json
|
3154110c8f6b5d1473d558b7d0d2f752396dff34 data/superbwarfare/tags/item/blueprint/rare.json
|
||||||
748a5e10c7eb644efcfbce889daff4d68a0ceb2b data/superbwarfare/tags/item/gun.json
|
8d846ffd414f5878a783e5a2a094e72df4354f8f data/superbwarfare/tags/item/gun.json
|
||||||
409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/item/handgun.json
|
409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/item/handgun.json
|
||||||
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/item/heavy_weapon.json
|
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/item/heavy_weapon.json
|
||||||
3cc00928c041f710b50eb1f7a817e0345f6f96b3 data/superbwarfare/tags/item/ingots/cemented_carbide.json
|
3cc00928c041f710b50eb1f7a817e0345f6f96b3 data/superbwarfare/tags/item/ingots/cemented_carbide.json
|
||||||
|
@ -40,7 +40,7 @@ a1c6460b9c956972b74d5ad5cd206e9ae3560b03 data/superbwarfare/tags/item/ingots/ste
|
||||||
65ddb0a8a671cc65af8e3754fc23e7d24c3587b7 data/superbwarfare/tags/item/launcher.json
|
65ddb0a8a671cc65af8e3754fc23e7d24c3587b7 data/superbwarfare/tags/item/launcher.json
|
||||||
b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/item/machine_gun.json
|
b404c6fd99d2ca68c6738f225cb7d68ee443c10a data/superbwarfare/tags/item/machine_gun.json
|
||||||
a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/item/military_armor.json
|
a53020091752016da6602ee1b8b7e08823614344 data/superbwarfare/tags/item/military_armor.json
|
||||||
57750741ce5781bb44a44f0d085c6abc2b4651b6 data/superbwarfare/tags/item/normal_gun.json
|
35840286824cc674ec120615dd5dc14980769e15 data/superbwarfare/tags/item/normal_gun.json
|
||||||
15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/item/revolver.json
|
15328cd564c931cc0a4fc000596240f93a7b29a1 data/superbwarfare/tags/item/revolver.json
|
||||||
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/item/rifle.json
|
aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/item/rifle.json
|
||||||
a249d9d052cdc24b34e0e51ab991329f6c76e8ab data/superbwarfare/tags/item/shotgun.json
|
a249d9d052cdc24b34e0e51ab991329f6c76e8ab data/superbwarfare/tags/item/shotgun.json
|
||||||
|
@ -50,6 +50,6 @@ a249d9d052cdc24b34e0e51ab991329f6c76e8ab data/superbwarfare/tags/item/shotgun.js
|
||||||
de0d84361d5208127bff21e915987ec561cdef13 data/superbwarfare/tags/item/storage_blocks/steel.json
|
de0d84361d5208127bff21e915987ec561cdef13 data/superbwarfare/tags/item/storage_blocks/steel.json
|
||||||
9af8a0147d1e920ef2a2b990bc9010367cf3b7df data/superbwarfare/tags/item/use_handgun_ammo.json
|
9af8a0147d1e920ef2a2b990bc9010367cf3b7df data/superbwarfare/tags/item/use_handgun_ammo.json
|
||||||
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/item/use_heavy_ammo.json
|
0ab1b2a8f5433e0d1b03446a9d0d9428e9d64feb data/superbwarfare/tags/item/use_heavy_ammo.json
|
||||||
2899774c6325135847a85b09121ce25587aa275e data/superbwarfare/tags/item/use_rifle_ammo.json
|
ee130846fa0c4e4a51833c6a0b1de7daaa098a73 data/superbwarfare/tags/item/use_rifle_ammo.json
|
||||||
a249d9d052cdc24b34e0e51ab991329f6c76e8ab data/superbwarfare/tags/item/use_shotgun_ammo.json
|
a249d9d052cdc24b34e0e51ab991329f6c76e8ab data/superbwarfare/tags/item/use_shotgun_ammo.json
|
||||||
7a12c751d024c06b3e88657afddc84fce8e13295 data/superbwarfare/tags/item/use_sniper_ammo.json
|
7a12c751d024c06b3e88657afddc84fce8e13295 data/superbwarfare/tags/item/use_sniper_ammo.json
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.21.1 2025-04-02T16:28:49.3323684 Loot Tables
|
// 1.21.1 2025-04-02T18:07:51.8657658 Loot Tables
|
||||||
98386b2e65b2afb7cf5b0cabf6a7b0f062c1e640 data/superbwarfare/loot_table/blocks/barbed_wire.json
|
98386b2e65b2afb7cf5b0cabf6a7b0f062c1e640 data/superbwarfare/loot_table/blocks/barbed_wire.json
|
||||||
811e69929a14e6736015849c220100bb58d914c9 data/superbwarfare/loot_table/blocks/cemented_carbide_block.json
|
811e69929a14e6736015849c220100bb58d914c9 data/superbwarfare/loot_table/blocks/cemented_carbide_block.json
|
||||||
1f482bc1f0a1026d0e1b75ee28c6f541b56747a5 data/superbwarfare/loot_table/blocks/charging_station.json
|
1f482bc1f0a1026d0e1b75ee28c6f541b56747a5 data/superbwarfare/loot_table/blocks/charging_station.json
|
||||||
|
@ -20,4 +20,4 @@ fb31a40f6a04000f317823cbb80eda8588ba9c69 data/superbwarfare/loot_table/blocks/si
|
||||||
073b9c242ea372f7b34883835c0b02a9ca8d94e5 data/superbwarfare/loot_table/blocks/small_container.json
|
073b9c242ea372f7b34883835c0b02a9ca8d94e5 data/superbwarfare/loot_table/blocks/small_container.json
|
||||||
83112ebff477e322bd3d23ed4653c7c02b230473 data/superbwarfare/loot_table/blocks/steel_block.json
|
83112ebff477e322bd3d23ed4653c7c02b230473 data/superbwarfare/loot_table/blocks/steel_block.json
|
||||||
71fc892124b5343e10688cabc2fb7c87d83cfef8 data/superbwarfare/loot_table/blocks/tungsten_block.json
|
71fc892124b5343e10688cabc2fb7c87d83cfef8 data/superbwarfare/loot_table/blocks/tungsten_block.json
|
||||||
f586b1d608c55d6fba6277baf138a6c84855e4c6 data/superbwarfare/loot_table/containers/blueprints.json
|
7e75ff103ccdbcf6be6f61413a4173115195f0a9 data/superbwarfare/loot_table/containers/blueprints.json
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// 1.21.1 2025-03-29T00:41:26.2074689 Item Models: superbwarfare
|
// 1.21.1 2025-04-02T18:07:51.8677118 Item Models: superbwarfare
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/aa_12_blueprint.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_12_blueprint.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/ak_47_blueprint.json
|
||||||
|
@ -41,6 +41,7 @@ e7a6de100f377835831211168d98c8d19434af24 assets/superbwarfare/models/item/he_hea
|
||||||
d23520b099cb796401635fe75b5b852fc957d4ea assets/superbwarfare/models/item/high_energy_explosives.json
|
d23520b099cb796401635fe75b5b852fc957d4ea assets/superbwarfare/models/item/high_energy_explosives.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/hk_416_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/hk_416_blueprint.json
|
||||||
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/hunting_rifle_blueprint.json
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/hunting_rifle_blueprint.json
|
||||||
|
13ca8d5676888ff51f3308d88e4bf67691fa34f8 assets/superbwarfare/models/item/insidious_blueprint.json
|
||||||
3c9dcc3393e16ca354b01162316f1ddae92338ec assets/superbwarfare/models/item/iron_action.json
|
3c9dcc3393e16ca354b01162316f1ddae92338ec assets/superbwarfare/models/item/iron_action.json
|
||||||
6e7a2bd5ffb78bd218e3a55daba3e9c256470757 assets/superbwarfare/models/item/iron_barrel.json
|
6e7a2bd5ffb78bd218e3a55daba3e9c256470757 assets/superbwarfare/models/item/iron_barrel.json
|
||||||
e04bbd61e716fc5d53c9425aba508fc3287bfd57 assets/superbwarfare/models/item/iron_powder.json
|
e04bbd61e716fc5d53c9425aba508fc3287bfd57 assets/superbwarfare/models/item/iron_powder.json
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "minecraft:item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/gun_blueprint"
|
||||||
|
}
|
||||||
|
}
|
|
@ -32,112 +32,117 @@
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:glock_18_blueprint",
|
"name": "superbwarfare:glock_18_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:m_79_blueprint",
|
"name": "superbwarfare:m_79_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:m_4_blueprint",
|
"name": "superbwarfare:m_4_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:sks_blueprint",
|
"name": "superbwarfare:sks_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:m_870_blueprint",
|
"name": "superbwarfare:m_870_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:ak_47_blueprint",
|
"name": "superbwarfare:ak_47_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:k_98_blueprint",
|
"name": "superbwarfare:k_98_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:mosin_nagant_blueprint",
|
"name": "superbwarfare:mosin_nagant_blueprint",
|
||||||
"weight": 62
|
"weight": 42
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:trachelium_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:hunting_rifle_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:rpg_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:bocek_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:hk_416_blueprint",
|
"name": "superbwarfare:hk_416_blueprint",
|
||||||
"weight": 12
|
"weight": 42
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:rpk_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:vector_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:mk_14_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:m_60_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:svd_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:m_98b_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:ak_12_blueprint",
|
"name": "superbwarfare:ak_12_blueprint",
|
||||||
"weight": 12
|
"weight": 42
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "minecraft:item",
|
|
||||||
"name": "superbwarfare:devotion_blueprint",
|
|
||||||
"weight": 12
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
"name": "superbwarfare:qbz_95_blueprint",
|
"name": "superbwarfare:qbz_95_blueprint",
|
||||||
"weight": 12
|
"weight": 42
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:rpg_blueprint",
|
||||||
|
"weight": 42
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:trachelium_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:hunting_rifle_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:bocek_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:rpk_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:vector_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:mk_14_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:m_60_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:svd_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:m_98b_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:devotion_blueprint",
|
||||||
|
"weight": 15
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "minecraft:item",
|
||||||
|
"name": "superbwarfare:insidious_blueprint",
|
||||||
|
"weight": 15
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "minecraft:item",
|
"type": "minecraft:item",
|
||||||
|
|
|
@ -2,17 +2,14 @@
|
||||||
"values": [
|
"values": [
|
||||||
"superbwarfare:trachelium_blueprint",
|
"superbwarfare:trachelium_blueprint",
|
||||||
"superbwarfare:hunting_rifle_blueprint",
|
"superbwarfare:hunting_rifle_blueprint",
|
||||||
"superbwarfare:rpg_blueprint",
|
|
||||||
"superbwarfare:bocek_blueprint",
|
"superbwarfare:bocek_blueprint",
|
||||||
"superbwarfare:hk_416_blueprint",
|
|
||||||
"superbwarfare:rpk_blueprint",
|
"superbwarfare:rpk_blueprint",
|
||||||
"superbwarfare:vector_blueprint",
|
"superbwarfare:vector_blueprint",
|
||||||
"superbwarfare:mk_14_blueprint",
|
"superbwarfare:mk_14_blueprint",
|
||||||
"superbwarfare:m_60_blueprint",
|
"superbwarfare:m_60_blueprint",
|
||||||
"superbwarfare:svd_blueprint",
|
"superbwarfare:svd_blueprint",
|
||||||
"superbwarfare:m_98b_blueprint",
|
"superbwarfare:m_98b_blueprint",
|
||||||
"superbwarfare:ak_12_blueprint",
|
|
||||||
"superbwarfare:devotion_blueprint",
|
"superbwarfare:devotion_blueprint",
|
||||||
"superbwarfare:qbz_95_blueprint"
|
"superbwarfare:insidious_blueprint"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -8,6 +8,10 @@
|
||||||
"superbwarfare:ak_47_blueprint",
|
"superbwarfare:ak_47_blueprint",
|
||||||
"superbwarfare:k_98_blueprint",
|
"superbwarfare:k_98_blueprint",
|
||||||
"superbwarfare:mosin_nagant_blueprint",
|
"superbwarfare:mosin_nagant_blueprint",
|
||||||
"superbwarfare:m2hb_blueprint"
|
"superbwarfare:m2hb_blueprint",
|
||||||
|
"superbwarfare:hk_416_blueprint",
|
||||||
|
"superbwarfare:ak_12_blueprint",
|
||||||
|
"superbwarfare:qbz_95_blueprint",
|
||||||
|
"superbwarfare:rpg_blueprint"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -14,6 +14,7 @@
|
||||||
"superbwarfare:m_4",
|
"superbwarfare:m_4",
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
|
"superbwarfare:insidious",
|
||||||
"superbwarfare:mk_14",
|
"superbwarfare:mk_14",
|
||||||
"superbwarfare:marlin",
|
"superbwarfare:marlin",
|
||||||
"superbwarfare:k_98",
|
"superbwarfare:k_98",
|
||||||
|
|
|
@ -26,6 +26,7 @@
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:k_98",
|
"superbwarfare:k_98",
|
||||||
"superbwarfare:mosin_nagant",
|
"superbwarfare:mosin_nagant",
|
||||||
"superbwarfare:mp_443"
|
"superbwarfare:mp_443",
|
||||||
|
"superbwarfare:insidious"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -12,6 +12,7 @@
|
||||||
"superbwarfare:ak_12",
|
"superbwarfare:ak_12",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:rpk",
|
"superbwarfare:rpk",
|
||||||
"superbwarfare:trachelium"
|
"superbwarfare:trachelium",
|
||||||
|
"superbwarfare:insidious"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -38,8 +38,7 @@ import net.neoforged.neoforge.client.settings.KeyConflictContext;
|
||||||
import net.neoforged.neoforge.network.PacketDistributor;
|
import net.neoforged.neoforge.network.PacketDistributor;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
|
|
||||||
import static com.atsuishio.superbwarfare.event.ClientEventHandler.cantFireTime;
|
import static com.atsuishio.superbwarfare.event.ClientEventHandler.*;
|
||||||
import static com.atsuishio.superbwarfare.event.ClientEventHandler.drawTime;
|
|
||||||
|
|
||||||
|
|
||||||
@EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME, value = Dist.CLIENT)
|
@EventBusSubscriber(bus = EventBusSubscriber.Bus.GAME, value = Dist.CLIENT)
|
||||||
|
@ -211,6 +210,7 @@ public class ClickHandler {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if (key == ModKeyMappings.RELOAD.getKey().getValue()) {
|
if (key == ModKeyMappings.RELOAD.getKey().getValue()) {
|
||||||
|
ClientEventHandler.burstFireSize = 0;
|
||||||
PacketDistributor.sendToServer(new ReloadMessage(0));
|
PacketDistributor.sendToServer(new ReloadMessage(0));
|
||||||
}
|
}
|
||||||
if (key == ModKeyMappings.FIRE_MODE.getKey().getValue()) {
|
if (key == ModKeyMappings.FIRE_MODE.getKey().getValue()) {
|
||||||
|
@ -317,8 +317,17 @@ public class ClickHandler {
|
||||||
ClientEventHandler.holdFire = true;
|
ClientEventHandler.holdFire = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.getItem() instanceof GunItem gunItem && !(player.getVehicle() != null && player.getVehicle() instanceof CannonEntity)) {
|
var tag = NBTTool.getTag(stack);
|
||||||
var tag = NBTTool.getTag(stack);
|
if (stack.getItem() instanceof GunItem gunItem && !(player.getVehicle() != null
|
||||||
|
&& player.getVehicle() instanceof CannonEntity) && clientTimer.getProgress() == 0 && cantFireTime == 0
|
||||||
|
&& (!(tag.getBoolean("is_normal_reloading") || tag.getBoolean("is_empty_reloading"))
|
||||||
|
&& !GunsTool.getGunBooleanTag(tag, "Reloading")
|
||||||
|
&& !GunsTool.getGunBooleanTag(tag, "Charging")
|
||||||
|
&& !GunsTool.getGunBooleanTag(tag, "NeedBoltAction", false))
|
||||||
|
&& cantFireTime == 0
|
||||||
|
&& drawTime < 0.01
|
||||||
|
&& !notInGame()
|
||||||
|
) {
|
||||||
if ((!(tag.getBoolean("is_normal_reloading") || tag.getBoolean("is_empty_reloading"))
|
if ((!(tag.getBoolean("is_normal_reloading") || tag.getBoolean("is_empty_reloading"))
|
||||||
&& !GunsTool.getGunBooleanTag(tag, "Reloading")
|
&& !GunsTool.getGunBooleanTag(tag, "Reloading")
|
||||||
&& !GunsTool.getGunBooleanTag(tag, "Charging")
|
&& !GunsTool.getGunBooleanTag(tag, "Charging")
|
||||||
|
@ -332,14 +341,18 @@ public class ClickHandler {
|
||||||
if (!gunItem.useBackpackAmmo(stack) && GunsTool.getGunIntTag(tag, "Ammo", 0) <= 0 && GunsTool.getGunIntTag(tag, "ReloadTime") == 0) {
|
if (!gunItem.useBackpackAmmo(stack) && GunsTool.getGunIntTag(tag, "Ammo", 0) <= 0 && GunsTool.getGunIntTag(tag, "ReloadTime") == 0) {
|
||||||
if (ReloadConfig.LEFT_CLICK_RELOAD.get()) {
|
if (ReloadConfig.LEFT_CLICK_RELOAD.get()) {
|
||||||
PacketDistributor.sendToServer(new ReloadMessage(0));
|
PacketDistributor.sendToServer(new ReloadMessage(0));
|
||||||
|
ClientEventHandler.burstFireSize = 0;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
PacketDistributor.sendToServer(new FireMessage(0));
|
PacketDistributor.sendToServer(new FireMessage(0));
|
||||||
if (!stack.is(ModItems.BOCEK.get())) {
|
if (GunsTool.getGunIntTag(tag, "FireMode") == 1) {
|
||||||
ClientEventHandler.holdFire = true;
|
if (ClientEventHandler.burstFireSize == 0) {
|
||||||
}
|
ClientEventHandler.burstFireSize = GunsTool.getGunIntTag(tag, "BurstSize", 1);
|
||||||
if (GunsTool.getGunIntTag(tag, "FireMode") == 1 && ClientEventHandler.burstFireSize == 0) {
|
}
|
||||||
ClientEventHandler.burstFireSize = GunsTool.getGunIntTag(tag, "BurstSize", 1);
|
} else {
|
||||||
|
if (!stack.is(ModItems.BOCEK.get())) {
|
||||||
|
ClientEventHandler.holdFire = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.atsuishio.superbwarfare.client.layer.gun;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem;
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||||
|
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||||
|
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||||
|
|
||||||
|
public class InsidiousLayer extends GeoRenderLayer<InsidiousItem> {
|
||||||
|
private static final ResourceLocation LAYER = Mod.loc("textures/item/insidious_e.png");
|
||||||
|
|
||||||
|
public InsidiousLayer(GeoRenderer<InsidiousItem> entityRenderer) {
|
||||||
|
super(entityRenderer);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void render(PoseStack poseStack, InsidiousItem animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||||
|
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||||
|
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 0xFFFFFFFF);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,112 @@
|
||||||
|
package com.atsuishio.superbwarfare.client.model.item;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||||
|
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
|
||||||
|
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem;
|
||||||
|
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.util.Mth;
|
||||||
|
import net.minecraft.world.entity.player.Player;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import software.bernie.geckolib.animation.AnimationState;
|
||||||
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
public class InsidiousItemModel extends GeoModel<InsidiousItem> {
|
||||||
|
|
||||||
|
public static float fireRotY = 0f;
|
||||||
|
public static float fireRotZ = 0f;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getAnimationResource(InsidiousItem animatable) {
|
||||||
|
return Mod.loc("animations/insidious.animation.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getModelResource(InsidiousItem animatable) {
|
||||||
|
return Mod.loc("geo/insidious.geo.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureResource(InsidiousItem animatable) {
|
||||||
|
return Mod.loc("textures/item/insidious.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCustomAnimations(InsidiousItem animatable, long instanceId, AnimationState animationState) {
|
||||||
|
GeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
|
|
||||||
|
Player player = Minecraft.getInstance().player;
|
||||||
|
if (player == null) return;
|
||||||
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
if (!stack.is(ModTags.Items.GUN)) return;
|
||||||
|
|
||||||
|
float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
||||||
|
double zt = ClientEventHandler.zoomTime;
|
||||||
|
double zp = ClientEventHandler.zoomPos;
|
||||||
|
double zpz = ClientEventHandler.zoomPosZ;
|
||||||
|
double swayX = ClientEventHandler.swayX;
|
||||||
|
double swayY = ClientEventHandler.swayY;
|
||||||
|
float moveRotZ = (float) ClientEventHandler.moveRotZ;
|
||||||
|
float movePosX = (float) ClientEventHandler.movePosX;
|
||||||
|
float movePosY = (float) ClientEventHandler.movePosY;
|
||||||
|
double mph = ClientEventHandler.movePosHorizon;
|
||||||
|
double vY = ClientEventHandler.velocityY;
|
||||||
|
double turnRotX = ClientEventHandler.turnRot[0];
|
||||||
|
double turnRotY = ClientEventHandler.turnRot[1];
|
||||||
|
double turnRotZ = ClientEventHandler.turnRot[2];
|
||||||
|
double fpz = ClientEventHandler.firePosZ * 13 * times;
|
||||||
|
double fp = ClientEventHandler.firePos;
|
||||||
|
double fr = ClientEventHandler.fireRot;
|
||||||
|
|
||||||
|
gun.setPosX(4.18f * (float) zp);
|
||||||
|
gun.setPosY(1.25f * (float) zp - (float) (0.2f * zpz));
|
||||||
|
gun.setPosZ(6.2f * (float) zp + (float) (0.5f * zpz));
|
||||||
|
gun.setScaleZ(1f - (0.82f * (float) zp));
|
||||||
|
|
||||||
|
var tag = NBTTool.getTag(stack);
|
||||||
|
tag.putBoolean("HoloHidden", !(gun.getPosX() > 3));
|
||||||
|
NBTTool.saveTag(stack, tag);
|
||||||
|
|
||||||
|
GeoBone shen = getAnimationProcessor().getBone("fireRootNormal");
|
||||||
|
|
||||||
|
fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.2f * ClientEventHandler.recoilHorizon * fpz);
|
||||||
|
fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
|
||||||
|
|
||||||
|
shen.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
|
||||||
|
shen.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||||
|
shen.setPosZ((float) (0.375 * fp + 0.44f * fr + 0.75 * fpz));
|
||||||
|
shen.setRotX((float) (0.01f * fp + 0.08f * fr + 0.01f * fpz));
|
||||||
|
shen.setRotY(fireRotY);
|
||||||
|
shen.setRotZ(fireRotZ);
|
||||||
|
|
||||||
|
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
|
||||||
|
shen.setPosY((float) (shen.getPosY() * (-1 + 0.8 * zt)));
|
||||||
|
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
|
||||||
|
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
|
||||||
|
shen.setRotY((float) (shen.getRotY() * (1 - 0.85 * zt)));
|
||||||
|
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
|
||||||
|
|
||||||
|
CrossHairOverlay.gunRot = shen.getRotZ();
|
||||||
|
GeoBone root = getAnimationProcessor().getBone("root");
|
||||||
|
|
||||||
|
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||||
|
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
|
||||||
|
root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY));
|
||||||
|
root.setRotY((float) (0.2f * movePosX + Mth.DEG_TO_RAD * 300 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotY));
|
||||||
|
root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ));
|
||||||
|
|
||||||
|
GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||||
|
GeoBone main = getAnimationProcessor().getBone("0");
|
||||||
|
|
||||||
|
float numR = (float) (1 - 0.98 * zt);
|
||||||
|
float numP = (float) (1 - 0.92 * zt);
|
||||||
|
|
||||||
|
AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP);
|
||||||
|
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,116 @@
|
||||||
|
package com.atsuishio.superbwarfare.client.renderer.item;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||||
|
import com.atsuishio.superbwarfare.client.model.item.InsidiousItemModel;
|
||||||
|
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.rifle.InsidiousItem;
|
||||||
|
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||||
|
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||||
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.renderer.MultiBufferSource;
|
||||||
|
import net.minecraft.client.renderer.RenderType;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||||
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
|
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||||
|
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class InsidiousItemRenderer extends GeoItemRenderer<InsidiousItem> {
|
||||||
|
|
||||||
|
public InsidiousItemRenderer() {
|
||||||
|
super(new InsidiousItemModel());
|
||||||
|
// TODO render layer
|
||||||
|
// this.addRenderLayer(new InsidiousLayer(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RenderType getRenderType(InsidiousItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) {
|
||||||
|
return RenderType.entityTranslucent(getTextureLocation(animatable));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static final float SCALE_RECIPROCAL = 1.0f / 16.0f;
|
||||||
|
protected boolean renderArms = false;
|
||||||
|
protected MultiBufferSource currentBuffer;
|
||||||
|
protected RenderType renderType;
|
||||||
|
public ItemDisplayContext transformType;
|
||||||
|
protected InsidiousItem animatable;
|
||||||
|
private final Set<String> hiddenBones = new HashSet<>();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) {
|
||||||
|
this.transformType = transformType;
|
||||||
|
if (this.animatable != null)
|
||||||
|
this.animatable.getTransformType(transformType);
|
||||||
|
super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actuallyRender(PoseStack matrixStackIn, InsidiousItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn,
|
||||||
|
int packedOverlayIn, int color) {
|
||||||
|
this.currentBuffer = renderTypeBuffer;
|
||||||
|
this.renderType = type;
|
||||||
|
this.animatable = animatable;
|
||||||
|
super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, color);
|
||||||
|
if (this.renderArms) {
|
||||||
|
this.renderArms = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderRecursively(PoseStack stack, InsidiousItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, int color) {
|
||||||
|
Minecraft mc = Minecraft.getInstance();
|
||||||
|
String name = bone.getName();
|
||||||
|
boolean renderingArms = false;
|
||||||
|
if (name.equals("Lefthand") || name.equals("Righthand")) {
|
||||||
|
bone.setHidden(true);
|
||||||
|
renderingArms = true;
|
||||||
|
} else {
|
||||||
|
bone.setHidden(this.hiddenBones.contains(name));
|
||||||
|
}
|
||||||
|
|
||||||
|
var player = mc.player;
|
||||||
|
if (player == null) return;
|
||||||
|
ItemStack itemStack = player.getMainHandItem();
|
||||||
|
if (!itemStack.is(ModTags.Items.GUN)) return;
|
||||||
|
|
||||||
|
if (name.equals("flare")) {
|
||||||
|
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 2) {
|
||||||
|
bone.setHidden(true);
|
||||||
|
} else {
|
||||||
|
bone.setHidden(false);
|
||||||
|
bone.setScaleX((float) (0.95 + 0.5 * (Math.random() - 0.5)));
|
||||||
|
bone.setScaleY((float) (0.95 + 0.5 * (Math.random() - 0.5)));
|
||||||
|
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("rot1")) {
|
||||||
|
bone.setRotZ((System.currentTimeMillis() % 36000000) / 400f);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("rot2")) {
|
||||||
|
bone.setRotZ(-(System.currentTimeMillis() % 36000000) / 400f);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("cross")) {
|
||||||
|
bone.setHidden(NBTTool.getTag(itemStack).getBoolean("HoloHidden") || !ClientEventHandler.zoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (renderingArms) {
|
||||||
|
AnimationHelper.renderArms(mc, player, this.transformType, stack, name, bone, SCALE_RECIPROCAL, this.currentBuffer, type, packedLightIn, false, false);
|
||||||
|
}
|
||||||
|
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureLocation(InsidiousItem instance) {
|
||||||
|
return super.getTextureLocation(instance);
|
||||||
|
}
|
||||||
|
}
|
|
@ -24,7 +24,7 @@ public enum C4InfoProvider implements IEntityComponentProvider {
|
||||||
tooltip.add(Component.translatable("des.jade_plugin_superbwarfare.c4.remote_control").withStyle(ChatFormatting.YELLOW));
|
tooltip.add(Component.translatable("des.jade_plugin_superbwarfare.c4.remote_control").withStyle(ChatFormatting.YELLOW));
|
||||||
} else {
|
} else {
|
||||||
// 定时
|
// 定时
|
||||||
var timeLeft = ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get() - c4.tickCount;
|
var timeLeft = ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get() - c4.getBombTick();
|
||||||
tooltip.add(Component.translatable(
|
tooltip.add(Component.translatable(
|
||||||
"des.jade_plugin_superbwarfare.c4.time_left",
|
"des.jade_plugin_superbwarfare.c4.time_left",
|
||||||
String.format("%.2f", timeLeft / 20.0)
|
String.format("%.2f", timeLeft / 20.0)
|
||||||
|
|
|
@ -30,28 +30,32 @@ public class ModContainerLootProvider implements LootTableSubProvider {
|
||||||
new PoolTriple(ModItems.TASER_BLUEPRINT.get(), 60, 0),
|
new PoolTriple(ModItems.TASER_BLUEPRINT.get(), 60, 0),
|
||||||
new PoolTriple(ModItems.MARLIN_BLUEPRINT.get(), 60, 0),
|
new PoolTriple(ModItems.MARLIN_BLUEPRINT.get(), 60, 0),
|
||||||
new PoolTriple(ModItems.M_1911_BLUEPRINT.get(), 60, 0),
|
new PoolTriple(ModItems.M_1911_BLUEPRINT.get(), 60, 0),
|
||||||
new PoolTriple(ModItems.GLOCK_18_BLUEPRINT.get(), 62, 0),
|
|
||||||
new PoolTriple(ModItems.M_79_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.GLOCK_18_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.M_4_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.M_79_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.SKS_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.M_4_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.M_870_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.SKS_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.AK_47_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.M_870_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.K_98_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.AK_47_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.MOSIN_NAGANT_BLUEPRINT.get(), 62, 0),
|
new PoolTriple(ModItems.K_98_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.TRACHELIUM_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.MOSIN_NAGANT_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.HUNTING_RIFLE_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.HK_416_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.RPG_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.AK_12_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.BOCEK_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.QBZ_95_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.HK_416_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.RPG_BLUEPRINT.get(), 42, 0),
|
||||||
new PoolTriple(ModItems.RPK_BLUEPRINT.get(), 12, 0),
|
|
||||||
new PoolTriple(ModItems.VECTOR_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.TRACHELIUM_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.MK_14_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.HUNTING_RIFLE_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.M_60_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.BOCEK_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.SVD_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.RPK_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.M_98B_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.VECTOR_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.AK_12_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.MK_14_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.DEVOTION_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.M_60_BLUEPRINT.get(), 15, 0),
|
||||||
new PoolTriple(ModItems.QBZ_95_BLUEPRINT.get(), 12, 0),
|
new PoolTriple(ModItems.SVD_BLUEPRINT.get(), 15, 0),
|
||||||
|
new PoolTriple(ModItems.M_98B_BLUEPRINT.get(), 15, 0),
|
||||||
|
new PoolTriple(ModItems.DEVOTION_BLUEPRINT.get(), 15, 0),
|
||||||
|
new PoolTriple(ModItems.INSIDIOUS_BLUEPRINT.get(), 15, 0),
|
||||||
|
|
||||||
new PoolTriple(ModItems.AA_12_BLUEPRINT.get(), 5, 0),
|
new PoolTriple(ModItems.AA_12_BLUEPRINT.get(), 5, 0),
|
||||||
new PoolTriple(ModItems.NTW_20_BLUEPRINT.get(), 5, 0),
|
new PoolTriple(ModItems.NTW_20_BLUEPRINT.get(), 5, 0),
|
||||||
new PoolTriple(ModItems.MINIGUN_BLUEPRINT.get(), 5, 0),
|
new PoolTriple(ModItems.MINIGUN_BLUEPRINT.get(), 5, 0),
|
||||||
|
|
|
@ -153,6 +153,7 @@ public class ModItemModelProvider extends ItemModelProvider {
|
||||||
cannonBlueprintItem(ModItems.ANNIHILATOR_BLUEPRINT);
|
cannonBlueprintItem(ModItems.ANNIHILATOR_BLUEPRINT);
|
||||||
gunBlueprintItem(ModItems.M_2_HB_BLUEPRINT);
|
gunBlueprintItem(ModItems.M_2_HB_BLUEPRINT);
|
||||||
gunBlueprintItem(ModItems.SECONDARY_CATACLYSM_BLUEPRINT);
|
gunBlueprintItem(ModItems.SECONDARY_CATACLYSM_BLUEPRINT);
|
||||||
|
gunBlueprintItem(ModItems.INSIDIOUS_BLUEPRINT);
|
||||||
|
|
||||||
// blocks
|
// blocks
|
||||||
evenSimplerBlockItem(ModBlocks.BARBED_WIRE);
|
evenSimplerBlockItem(ModBlocks.BARBED_WIRE);
|
||||||
|
|
|
@ -97,7 +97,7 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
ModItems.HOMEMADE_SHOTGUN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(),
|
ModItems.HOMEMADE_SHOTGUN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.SVD.get(), ModItems.M_60.get(), ModItems.MK_14.get(), ModItems.VECTOR.get(),
|
||||||
ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.TRACHELIUM.get(),
|
ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.TRACHELIUM.get(),
|
||||||
ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.M_98B.get(), ModItems.SENTINEL.get(), ModItems.M_870.get(), ModItems.MARLIN.get(), ModItems.GLOCK_17.get(),
|
ModItems.HUNTING_RIFLE.get(), ModItems.NTW_20.get(), ModItems.M_98B.get(), ModItems.SENTINEL.get(), ModItems.M_870.get(), ModItems.MARLIN.get(), ModItems.GLOCK_17.get(),
|
||||||
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get(), ModItems.MP_443.get()
|
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get(), ModItems.MP_443.get(), ModItems.INSIDIOUS.get()
|
||||||
);
|
);
|
||||||
|
|
||||||
this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(
|
this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(
|
||||||
|
@ -105,7 +105,7 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
);
|
);
|
||||||
|
|
||||||
this.tag(ModTags.Items.USE_RIFLE_AMMO).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(),
|
this.tag(ModTags.Items.USE_RIFLE_AMMO).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(), ModItems.MINIGUN.get(), ModItems.DEVOTION.get(), ModItems.M_60.get(),
|
||||||
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get(), ModItems.RPK.get(), ModItems.TRACHELIUM.get());
|
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get(), ModItems.RPK.get(), ModItems.TRACHELIUM.get(), ModItems.INSIDIOUS.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.HOMEMADE_SHOTGUN.get(), ModItems.M_870.get(), ModItems.AA_12.get());
|
this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.HOMEMADE_SHOTGUN.get(), ModItems.M_870.get(), ModItems.AA_12.get());
|
||||||
|
|
||||||
|
@ -122,18 +122,23 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
|
|
||||||
this.tag(ModTags.Items.BLUEPRINT).addTags(ModTags.Items.COMMON_BLUEPRINT, ModTags.Items.RARE_BLUEPRINT, ModTags.Items.EPIC_BLUEPRINT,
|
this.tag(ModTags.Items.BLUEPRINT).addTags(ModTags.Items.COMMON_BLUEPRINT, ModTags.Items.RARE_BLUEPRINT, ModTags.Items.EPIC_BLUEPRINT,
|
||||||
ModTags.Items.LEGENDARY_BLUEPRINT, ModTags.Items.CANNON_BLUEPRINT);
|
ModTags.Items.LEGENDARY_BLUEPRINT, ModTags.Items.CANNON_BLUEPRINT);
|
||||||
|
|
||||||
this.tag(ModTags.Items.COMMON_BLUEPRINT).add(ModItems.GLOCK_17_BLUEPRINT.get(), ModItems.MP_443_BLUEPRINT.get(), ModItems.MARLIN_BLUEPRINT.get(),
|
this.tag(ModTags.Items.COMMON_BLUEPRINT).add(ModItems.GLOCK_17_BLUEPRINT.get(), ModItems.MP_443_BLUEPRINT.get(), ModItems.MARLIN_BLUEPRINT.get(),
|
||||||
ModItems.TASER_BLUEPRINT.get(), ModItems.M_1911_BLUEPRINT.get());
|
ModItems.TASER_BLUEPRINT.get(), ModItems.M_1911_BLUEPRINT.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.RARE_BLUEPRINT).add(ModItems.GLOCK_18_BLUEPRINT.get(), ModItems.M_79_BLUEPRINT.get(), ModItems.M_4_BLUEPRINT.get(),
|
this.tag(ModTags.Items.RARE_BLUEPRINT).add(ModItems.GLOCK_18_BLUEPRINT.get(), ModItems.M_79_BLUEPRINT.get(), ModItems.M_4_BLUEPRINT.get(),
|
||||||
ModItems.SKS_BLUEPRINT.get(), ModItems.M_870_BLUEPRINT.get(), ModItems.AK_47_BLUEPRINT.get(), ModItems.K_98_BLUEPRINT.get(),
|
ModItems.SKS_BLUEPRINT.get(), ModItems.M_870_BLUEPRINT.get(), ModItems.AK_47_BLUEPRINT.get(), ModItems.K_98_BLUEPRINT.get(),
|
||||||
ModItems.MOSIN_NAGANT_BLUEPRINT.get(), ModItems.M_2_HB_BLUEPRINT.get());
|
ModItems.MOSIN_NAGANT_BLUEPRINT.get(), ModItems.M_2_HB_BLUEPRINT.get(), ModItems.HK_416_BLUEPRINT.get(), ModItems.AK_12_BLUEPRINT.get()
|
||||||
this.tag(ModTags.Items.EPIC_BLUEPRINT).add(ModItems.TRACHELIUM_BLUEPRINT.get(), ModItems.HUNTING_RIFLE_BLUEPRINT.get(), ModItems.RPG_BLUEPRINT.get(),
|
, ModItems.QBZ_95_BLUEPRINT.get(), ModItems.RPG_BLUEPRINT.get());
|
||||||
ModItems.BOCEK_BLUEPRINT.get(), ModItems.HK_416_BLUEPRINT.get(), ModItems.RPK_BLUEPRINT.get(), ModItems.VECTOR_BLUEPRINT.get(),
|
|
||||||
ModItems.MK_14_BLUEPRINT.get(), ModItems.M_60_BLUEPRINT.get(), ModItems.SVD_BLUEPRINT.get(), ModItems.M_98B_BLUEPRINT.get(),
|
this.tag(ModTags.Items.EPIC_BLUEPRINT).add(ModItems.TRACHELIUM_BLUEPRINT.get(), ModItems.HUNTING_RIFLE_BLUEPRINT.get(), ModItems.BOCEK_BLUEPRINT.get(),
|
||||||
ModItems.AK_12_BLUEPRINT.get(), ModItems.DEVOTION_BLUEPRINT.get(), ModItems.QBZ_95_BLUEPRINT.get());
|
ModItems.RPK_BLUEPRINT.get(), ModItems.VECTOR_BLUEPRINT.get(), ModItems.MK_14_BLUEPRINT.get(), ModItems.M_60_BLUEPRINT.get(), ModItems.SVD_BLUEPRINT.get(),
|
||||||
|
ModItems.M_98B_BLUEPRINT.get(), ModItems.DEVOTION_BLUEPRINT.get(), ModItems.INSIDIOUS_BLUEPRINT.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.LEGENDARY_BLUEPRINT).add(ModItems.AA_12_BLUEPRINT.get(), ModItems.NTW_20_BLUEPRINT.get(), ModItems.MINIGUN_BLUEPRINT.get(),
|
this.tag(ModTags.Items.LEGENDARY_BLUEPRINT).add(ModItems.AA_12_BLUEPRINT.get(), ModItems.NTW_20_BLUEPRINT.get(), ModItems.MINIGUN_BLUEPRINT.get(),
|
||||||
ModItems.SENTINEL_BLUEPRINT.get(), ModItems.JAVELIN_BLUEPRINT.get(), ModItems.SECONDARY_CATACLYSM_BLUEPRINT.get(), ModItems.MK_42_BLUEPRINT.get(),
|
ModItems.SENTINEL_BLUEPRINT.get(), ModItems.JAVELIN_BLUEPRINT.get(), ModItems.SECONDARY_CATACLYSM_BLUEPRINT.get(), ModItems.MK_42_BLUEPRINT.get(),
|
||||||
ModItems.MLE_1934_BLUEPRINT.get(), ModItems.ANNIHILATOR_BLUEPRINT.get());
|
ModItems.MLE_1934_BLUEPRINT.get(), ModItems.ANNIHILATOR_BLUEPRINT.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CANNON_BLUEPRINT).add(ModItems.MK_42_BLUEPRINT.get(), ModItems.MLE_1934_BLUEPRINT.get(), ModItems.ANNIHILATOR_BLUEPRINT.get());
|
this.tag(ModTags.Items.CANNON_BLUEPRINT).add(ModItems.MK_42_BLUEPRINT.get(), ModItems.MLE_1934_BLUEPRINT.get(), ModItems.ANNIHILATOR_BLUEPRINT.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,14 +1,11 @@
|
||||||
package com.atsuishio.superbwarfare.entity.projectile;
|
package com.atsuishio.superbwarfare.entity.projectile;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
|
import com.atsuishio.superbwarfare.config.server.ExplosionConfig;
|
||||||
import com.atsuishio.superbwarfare.init.ModDamageTypes;
|
|
||||||
import com.atsuishio.superbwarfare.init.ModEntities;
|
import com.atsuishio.superbwarfare.init.ModEntities;
|
||||||
import com.atsuishio.superbwarfare.init.ModItems;
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
import com.atsuishio.superbwarfare.init.ModSounds;
|
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
import com.atsuishio.superbwarfare.tools.CustomExplosion;
|
|
||||||
import com.atsuishio.superbwarfare.tools.EntityFindUtil;
|
import com.atsuishio.superbwarfare.tools.EntityFindUtil;
|
||||||
import com.atsuishio.superbwarfare.tools.NBTTool;
|
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||||
import com.atsuishio.superbwarfare.tools.ParticleTool;
|
|
||||||
import net.minecraft.core.BlockPos;
|
import net.minecraft.core.BlockPos;
|
||||||
import net.minecraft.core.particles.ParticleTypes;
|
import net.minecraft.core.particles.ParticleTypes;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
|
@ -17,6 +14,7 @@ import net.minecraft.nbt.NbtUtils;
|
||||||
import net.minecraft.network.syncher.EntityDataAccessor;
|
import net.minecraft.network.syncher.EntityDataAccessor;
|
||||||
import net.minecraft.network.syncher.EntityDataSerializers;
|
import net.minecraft.network.syncher.EntityDataSerializers;
|
||||||
import net.minecraft.network.syncher.SynchedEntityData;
|
import net.minecraft.network.syncher.SynchedEntityData;
|
||||||
|
import net.minecraft.server.players.OldUsersConverter;
|
||||||
import net.minecraft.sounds.SoundEvent;
|
import net.minecraft.sounds.SoundEvent;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
@ -25,17 +23,13 @@ import net.minecraft.world.InteractionResult;
|
||||||
import net.minecraft.world.entity.*;
|
import net.minecraft.world.entity.*;
|
||||||
import net.minecraft.world.entity.item.ItemEntity;
|
import net.minecraft.world.entity.item.ItemEntity;
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.entity.projectile.Projectile;
|
|
||||||
import net.minecraft.world.entity.projectile.ProjectileUtil;
|
import net.minecraft.world.entity.projectile.ProjectileUtil;
|
||||||
import net.minecraft.world.item.ItemStack;
|
import net.minecraft.world.item.ItemStack;
|
||||||
import net.minecraft.world.level.ClipContext;
|
import net.minecraft.world.level.ClipContext;
|
||||||
import net.minecraft.world.level.Explosion;
|
|
||||||
import net.minecraft.world.level.Level;
|
import net.minecraft.world.level.Level;
|
||||||
import net.minecraft.world.level.block.state.BlockState;
|
import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.*;
|
import net.minecraft.world.phys.*;
|
||||||
import net.minecraft.world.phys.shapes.VoxelShape;
|
import net.minecraft.world.phys.shapes.VoxelShape;
|
||||||
import net.neoforged.neoforge.event.EventHooks;
|
|
||||||
import net.neoforged.neoforge.items.ItemHandlerHelper;
|
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import software.bernie.geckolib.animatable.GeoEntity;
|
import software.bernie.geckolib.animatable.GeoEntity;
|
||||||
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||||
|
@ -44,14 +38,19 @@ import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.ParametersAreNonnullByDefault;
|
import javax.annotation.ParametersAreNonnullByDefault;
|
||||||
|
import java.util.Optional;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
import static com.atsuishio.superbwarfare.item.C4Bomb.TAG_CONTROL;
|
import static com.atsuishio.superbwarfare.item.C4Bomb.TAG_CONTROL;
|
||||||
|
|
||||||
public class C4Entity extends Projectile implements GeoEntity {
|
public class C4Entity extends Entity implements GeoEntity {
|
||||||
|
|
||||||
|
protected static final EntityDataAccessor<Optional<UUID>> OWNER_UUID = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.OPTIONAL_UUID);
|
||||||
protected static final EntityDataAccessor<String> LAST_ATTACKER_UUID = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.STRING);
|
protected static final EntityDataAccessor<String> LAST_ATTACKER_UUID = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.STRING);
|
||||||
protected static final EntityDataAccessor<String> TARGET_UUID = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.STRING);
|
protected static final EntityDataAccessor<String> TARGET_UUID = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.STRING);
|
||||||
public static final EntityDataAccessor<Boolean> IS_CONTROLLABLE = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.BOOLEAN);
|
public static final EntityDataAccessor<Boolean> IS_CONTROLLABLE = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.BOOLEAN);
|
||||||
|
public static final EntityDataAccessor<Integer> BOMB_TICK = SynchedEntityData.defineId(C4Entity.class, EntityDataSerializers.INT);
|
||||||
|
|
||||||
|
|
||||||
public static final int DEFAULT_DEFUSE_PROGRESS = 100;
|
public static final int DEFAULT_DEFUSE_PROGRESS = 100;
|
||||||
|
|
||||||
|
@ -67,37 +66,51 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
|
|
||||||
public C4Entity(LivingEntity owner, Level level) {
|
public C4Entity(LivingEntity owner, Level level) {
|
||||||
super(ModEntities.C_4.get(), level);
|
super(ModEntities.C_4.get(), level);
|
||||||
this.setOwner(owner);
|
this.setOwnerUUID(owner.getUUID());
|
||||||
}
|
}
|
||||||
|
|
||||||
public C4Entity(LivingEntity owner, Level level, boolean isControllable) {
|
public C4Entity(LivingEntity owner, Level level, boolean isControllable) {
|
||||||
super(ModEntities.C_4.get(), level);
|
super(ModEntities.C_4.get(), level);
|
||||||
this.setOwner(owner);
|
this.setOwnerUUID(owner.getUUID());
|
||||||
this.entityData.set(IS_CONTROLLABLE, isControllable);
|
this.entityData.set(IS_CONTROLLABLE, isControllable);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||||
builder.define(LAST_ATTACKER_UUID, "undefined");
|
builder.define(OWNER_UUID, Optional.empty())
|
||||||
builder.define(TARGET_UUID, "undefined");
|
.define(LAST_ATTACKER_UUID, "undefined")
|
||||||
builder.define(IS_CONTROLLABLE, false);
|
.define(TARGET_UUID, "undefined")
|
||||||
|
.define(IS_CONTROLLABLE, false)
|
||||||
|
.define(BOMB_TICK, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOwnerUUID(@Nullable UUID pUuid) {
|
||||||
|
this.entityData.set(OWNER_UUID, Optional.ofNullable(pUuid));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public UUID getOwnerUUID() {
|
||||||
|
return this.entityData.get(OWNER_UUID).orElse(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addAdditionalSaveData(@NotNull CompoundTag compound) {
|
public void addAdditionalSaveData(@NotNull CompoundTag compound) {
|
||||||
super.addAdditionalSaveData(compound);
|
|
||||||
compound.putString("Target", this.entityData.get(TARGET_UUID));
|
compound.putString("Target", this.entityData.get(TARGET_UUID));
|
||||||
compound.putString("LastAttacker", this.entityData.get(LAST_ATTACKER_UUID));
|
compound.putString("LastAttacker", this.entityData.get(LAST_ATTACKER_UUID));
|
||||||
compound.putBoolean("IsControllable", this.entityData.get(IS_CONTROLLABLE));
|
compound.putBoolean("IsControllable", this.entityData.get(IS_CONTROLLABLE));
|
||||||
|
compound.putInt("BombTick", this.entityData.get(BOMB_TICK));
|
||||||
|
|
||||||
if (this.lastState != null) {
|
if (this.lastState != null) {
|
||||||
compound.put("InBlockState", NbtUtils.writeBlockState(this.lastState));
|
compound.put("InBlockState", NbtUtils.writeBlockState(this.lastState));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.getOwnerUUID() != null) {
|
||||||
|
compound.putUUID("Owner", this.getOwnerUUID());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void readAdditionalSaveData(@NotNull CompoundTag compound) {
|
public void readAdditionalSaveData(@NotNull CompoundTag compound) {
|
||||||
super.readAdditionalSaveData(compound);
|
|
||||||
if (compound.contains("LastAttacker")) {
|
if (compound.contains("LastAttacker")) {
|
||||||
this.entityData.set(LAST_ATTACKER_UUID, compound.getString("LastAttacker"));
|
this.entityData.set(LAST_ATTACKER_UUID, compound.getString("LastAttacker"));
|
||||||
}
|
}
|
||||||
|
@ -113,21 +126,43 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
if (compound.contains("IsControllable")) {
|
if (compound.contains("IsControllable")) {
|
||||||
this.entityData.set(IS_CONTROLLABLE, compound.getBoolean("IsControllable"));
|
this.entityData.set(IS_CONTROLLABLE, compound.getBoolean("IsControllable"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (compound.contains("BombTick")) {
|
||||||
|
this.entityData.set(BOMB_TICK, compound.getInt("BombTick"));
|
||||||
|
}
|
||||||
|
|
||||||
|
UUID uuid;
|
||||||
|
if (compound.hasUUID("Owner")) {
|
||||||
|
uuid = compound.getUUID("Owner");
|
||||||
|
} else {
|
||||||
|
String s = compound.getString("Owner");
|
||||||
|
|
||||||
|
assert this.getServer() != null;
|
||||||
|
uuid = OldUsersConverter.convertMobOwnerIfNecessary(this.getServer(), s);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (uuid != null) {
|
||||||
|
try {
|
||||||
|
this.setOwnerUUID(uuid);
|
||||||
|
} catch (Throwable ignored) {
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
public @NotNull InteractionResult interact(Player player, InteractionHand hand) {
|
public @NotNull InteractionResult interact(Player player, InteractionHand hand) {
|
||||||
if (this.getOwner() == player && player.isShiftKeyDown()) {
|
// TODO this.getOwner()
|
||||||
if (!this.level().isClientSide()) {
|
// if (this.getOwner() == player && player.isShiftKeyDown()) {
|
||||||
this.discard();
|
// if (!this.level().isClientSide()) {
|
||||||
}
|
// this.discard();
|
||||||
|
// }
|
||||||
if (!player.getAbilities().instabuild) {
|
//
|
||||||
ItemHandlerHelper.giveItemToPlayer(player, this.getItemStack());
|
// if (!player.getAbilities().instabuild) {
|
||||||
}
|
// ItemHandlerHelper.giveItemToPlayer(player, this.getItemStack());
|
||||||
return InteractionResult.sidedSuccess(this.level().isClientSide());
|
// }
|
||||||
}
|
// return InteractionResult.sidedSuccess(this.level().isClientSide());
|
||||||
|
// }
|
||||||
return InteractionResult.PASS;
|
return InteractionResult.PASS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,18 +171,21 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
super.tick();
|
super.tick();
|
||||||
|
|
||||||
if (!this.entityData.get(IS_CONTROLLABLE)) {
|
if (!this.entityData.get(IS_CONTROLLABLE)) {
|
||||||
if (this.tickCount >= ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get()) {
|
int bombTick = this.entityData.get(BOMB_TICK);
|
||||||
|
|
||||||
|
if (bombTick >= ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get()) {
|
||||||
this.explode();
|
this.explode();
|
||||||
}
|
}
|
||||||
|
|
||||||
int countdown = ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get();
|
int countdown = ExplosionConfig.C4_EXPLOSION_COUNTDOWN.get();
|
||||||
if (countdown - tickCount > 39 && tickCount % ((20 * (countdown - tickCount)) / countdown + 1) == 0) {
|
if (countdown - bombTick > 39 && bombTick % ((20 * (countdown - bombTick)) / countdown + 1) == 0) {
|
||||||
this.level().playSound(null, this.getOnPos(), ModSounds.C4_BEEP.get(), SoundSource.PLAYERS, 1, 1);
|
this.level().playSound(null, this.getOnPos(), ModSounds.C4_BEEP.get(), SoundSource.PLAYERS, 1, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tickCount == countdown - 39) {
|
if (bombTick == countdown - 39) {
|
||||||
this.level().playSound(null, this.getOnPos(), ModSounds.C4_FINAL.get(), SoundSource.PLAYERS, 2, 1);
|
this.level().playSound(null, this.getOnPos(), ModSounds.C4_FINAL.get(), SoundSource.PLAYERS, 2, 1);
|
||||||
}
|
}
|
||||||
|
this.entityData.set(BOMB_TICK, bombTick + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
Vec3 motion = this.getDeltaMovement();
|
Vec3 motion = this.getDeltaMovement();
|
||||||
|
@ -280,19 +318,44 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
this.yRotO = getYRot();
|
this.yRotO = getYRot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void updateRotation() {
|
protected void updateRotation() {
|
||||||
if (getDeltaMovement().length() > 0.05 && !inGround && !onEntity) {
|
if (getDeltaMovement().length() > 0.05 && !inGround && !onEntity) {
|
||||||
super.updateRotation();
|
Vec3 vec3 = this.getDeltaMovement();
|
||||||
|
double d0 = vec3.horizontalDistance();
|
||||||
|
this.setXRot(lerpRotation(this.xRotO, (float) (Mth.atan2(vec3.y, d0) * (double) (180F / (float) Math.PI))));
|
||||||
|
this.setYRot(lerpRotation(this.yRotO, (float) (Mth.atan2(vec3.x, vec3.z) * (double) (180F / (float) Math.PI))));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected static float lerpRotation(float pCurrentRotation, float pTargetRotation) {
|
||||||
|
while (pTargetRotation - pCurrentRotation < -180.0F) {
|
||||||
|
pCurrentRotation -= 360.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
while (pTargetRotation - pCurrentRotation >= 180.0F) {
|
||||||
|
pCurrentRotation += 360.0F;
|
||||||
|
}
|
||||||
|
|
||||||
|
return Mth.lerp(0.2F, pCurrentRotation, pTargetRotation);
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
protected EntityHitResult findHitEntity(Vec3 pStartVec, Vec3 pEndVec) {
|
protected EntityHitResult findHitEntity(Vec3 pStartVec, Vec3 pEndVec) {
|
||||||
return ProjectileUtil.getEntityHitResult(this.level(), this, pStartVec, pEndVec, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0D), this::canHitEntity);
|
return ProjectileUtil.getEntityHitResult(this.level(), this, pStartVec, pEndVec, this.getBoundingBox().expandTowards(this.getDeltaMovement()).inflate(1.0D),
|
||||||
|
this::canHitEntity);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected boolean canHitEntity(Entity pTarget) {
|
||||||
|
if (!pTarget.canBeHitByProjectile()) {
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
// TODO this.getOwner()
|
||||||
|
// Entity entity = this.getOwner();
|
||||||
|
Entity entity = null;
|
||||||
|
return entity == null || !entity.isPassengerOfSameVehicle(pTarget);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHit(HitResult pResult) {
|
protected void onHit(HitResult pResult) {
|
||||||
switch (pResult.getType()) {
|
switch (pResult.getType()) {
|
||||||
case BLOCK:
|
case BLOCK:
|
||||||
|
@ -306,9 +369,7 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHitEntity(@NotNull EntityHitResult pResult) {
|
protected void onHitEntity(@NotNull EntityHitResult pResult) {
|
||||||
super.onHitEntity(pResult);
|
|
||||||
Entity entity = pResult.getEntity();
|
Entity entity = pResult.getEntity();
|
||||||
if (tickCount < 2 || entity == this.getVehicle() || entity instanceof C4Entity) return;
|
if (tickCount < 2 || entity == this.getVehicle() || entity instanceof C4Entity) return;
|
||||||
this.entityData.set(TARGET_UUID, entity.getStringUUID());
|
this.entityData.set(TARGET_UUID, entity.getStringUUID());
|
||||||
|
@ -318,10 +379,8 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
this.xRotO = this.getXRot();
|
this.xRotO = this.getXRot();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void onHitBlock(BlockHitResult pResult) {
|
protected void onHitBlock(BlockHitResult pResult) {
|
||||||
this.lastState = this.level().getBlockState(pResult.getBlockPos());
|
this.lastState = this.level().getBlockState(pResult.getBlockPos());
|
||||||
super.onHitBlock(pResult);
|
|
||||||
Vec3 vec3 = pResult.getLocation().subtract(this.getX(), this.getY(), this.getZ());
|
Vec3 vec3 = pResult.getLocation().subtract(this.getX(), this.getY(), this.getZ());
|
||||||
this.setDeltaMovement(vec3);
|
this.setDeltaMovement(vec3);
|
||||||
Vec3 vec31 = vec3.normalize().scale(0.05F);
|
Vec3 vec31 = vec3.normalize().scale(0.05F);
|
||||||
|
@ -350,13 +409,14 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CustomExplosion explosion = new CustomExplosion(level(), this,
|
// TODO this.getOwner() explosion
|
||||||
ModDamageTypes.causeProjectileBoomDamage(level().registryAccess(), this, this.getOwner()), ExplosionConfig.C4_EXPLOSION_DAMAGE.get(),
|
// CustomExplosion explosion = new CustomExplosion(level(), this,
|
||||||
pos.x, pos.y, pos.z, ExplosionConfig.C4_EXPLOSION_RADIUS.get(), ExplosionConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
// ModDamageTypes.causeProjectileBoomDamage(level().registryAccess(), this, this.getOwner()), ExplosionConfig.C4_EXPLOSION_DAMAGE.get(),
|
||||||
explosion.explode();
|
// pos.x, pos.y, pos.z, ExplosionConfig.C4_EXPLOSION_RADIUS.get(), ExplosionConfig.EXPLOSION_DESTROY.get() ? Explosion.BlockInteraction.DESTROY : Explosion.BlockInteraction.KEEP).setDamageMultiplier(1);
|
||||||
EventHooks.onExplosionStart(level(), explosion);
|
// explosion.explode();
|
||||||
ParticleTool.spawnHugeExplosionParticles(level(), position());
|
// EventHooks.onExplosionStart(level(), explosion);
|
||||||
explosion.finalizeExplosion(false);
|
// ParticleTool.spawnHugeExplosionParticles(level(), position());
|
||||||
|
// explosion.finalizeExplosion(false);
|
||||||
|
|
||||||
this.discard();
|
this.discard();
|
||||||
}
|
}
|
||||||
|
@ -401,4 +461,8 @@ public class C4Entity extends Projectile implements GeoEntity {
|
||||||
this.level().addFreshEntity(entity);
|
this.level().addFreshEntity(entity);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int getBombTick() {
|
||||||
|
return this.entityData.get(BOMB_TICK);
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -559,7 +559,7 @@ public class ClientEventHandler {
|
||||||
burstFireSize = 1;
|
burstFireSize = 1;
|
||||||
}
|
}
|
||||||
if (burstFireSize == 1) {
|
if (burstFireSize == 1) {
|
||||||
cantFireTime = 40;
|
cantFireTime = 30;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1512,6 +1512,7 @@ public class ClientEventHandler {
|
||||||
lungeDraw = 30;
|
lungeDraw = 30;
|
||||||
lungeSprint = 0;
|
lungeSprint = 0;
|
||||||
lungeAttack = 0;
|
lungeAttack = 0;
|
||||||
|
burstFireSize = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void handleWeaponDraw(LivingEntity entity, final CompoundTag tag) {
|
private static void handleWeaponDraw(LivingEntity entity, final CompoundTag tag) {
|
||||||
|
|
|
@ -64,6 +64,7 @@ public class ModItems {
|
||||||
public static final DeferredHolder<Item, M4Item> M_4 = GUNS.register("m_4", M4Item::new);
|
public static final DeferredHolder<Item, M4Item> M_4 = GUNS.register("m_4", M4Item::new);
|
||||||
public static final DeferredHolder<Item, Hk416Item> HK_416 = GUNS.register("hk_416", Hk416Item::new);
|
public static final DeferredHolder<Item, Hk416Item> HK_416 = GUNS.register("hk_416", Hk416Item::new);
|
||||||
public static final DeferredHolder<Item, Qbz95Item> QBZ_95 = GUNS.register("qbz_95", Qbz95Item::new);
|
public static final DeferredHolder<Item, Qbz95Item> QBZ_95 = GUNS.register("qbz_95", Qbz95Item::new);
|
||||||
|
public static final DeferredHolder<Item, InsidiousItem> INSIDIOUS = GUNS.register("insidious", InsidiousItem::new);
|
||||||
public static final DeferredHolder<Item, Mk14Item> MK_14 = GUNS.register("mk_14", Mk14Item::new);
|
public static final DeferredHolder<Item, Mk14Item> MK_14 = GUNS.register("mk_14", Mk14Item::new);
|
||||||
public static final DeferredHolder<Item, MarlinItem> MARLIN = GUNS.register("marlin", MarlinItem::new);
|
public static final DeferredHolder<Item, MarlinItem> MARLIN = GUNS.register("marlin", MarlinItem::new);
|
||||||
public static final DeferredHolder<Item, K98Item> K_98 = GUNS.register("k_98", K98Item::new);
|
public static final DeferredHolder<Item, K98Item> K_98 = GUNS.register("k_98", K98Item::new);
|
||||||
|
@ -244,6 +245,7 @@ public class ModItems {
|
||||||
public static final DeferredHolder<Item, BlueprintItem> JAVELIN_BLUEPRINT = ITEMS.register("javelin_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
public static final DeferredHolder<Item, BlueprintItem> JAVELIN_BLUEPRINT = ITEMS.register("javelin_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
||||||
public static final DeferredHolder<Item, BlueprintItem> M_2_HB_BLUEPRINT = ITEMS.register("m2hb_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
public static final DeferredHolder<Item, BlueprintItem> M_2_HB_BLUEPRINT = ITEMS.register("m2hb_blueprint", () -> new BlueprintItem(Rarity.RARE));
|
||||||
public static final DeferredHolder<Item, BlueprintItem> SECONDARY_CATACLYSM_BLUEPRINT = ITEMS.register("secondary_cataclysm_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
public static final DeferredHolder<Item, BlueprintItem> SECONDARY_CATACLYSM_BLUEPRINT = ITEMS.register("secondary_cataclysm_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
||||||
|
public static final DeferredHolder<Item, BlueprintItem> INSIDIOUS_BLUEPRINT = ITEMS.register("insidious_blueprint", () -> new BlueprintItem(Rarity.EPIC));
|
||||||
public static final DeferredHolder<Item, BlueprintItem> MK_42_BLUEPRINT = ITEMS.register("mk_42_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
public static final DeferredHolder<Item, BlueprintItem> MK_42_BLUEPRINT = ITEMS.register("mk_42_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
||||||
public static final DeferredHolder<Item, BlueprintItem> MLE_1934_BLUEPRINT = ITEMS.register("mle_1934_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
public static final DeferredHolder<Item, BlueprintItem> MLE_1934_BLUEPRINT = ITEMS.register("mle_1934_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
||||||
public static final DeferredHolder<Item, BlueprintItem> ANNIHILATOR_BLUEPRINT = ITEMS.register("annihilator_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
public static final DeferredHolder<Item, BlueprintItem> ANNIHILATOR_BLUEPRINT = ITEMS.register("annihilator_blueprint", () -> new BlueprintItem(ModRarity.getLegendary()));
|
||||||
|
|
|
@ -431,5 +431,11 @@ public class ModSounds {
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_3P = REGISTRY.register("prism_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_3p")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_3P = REGISTRY.register("prism_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_3p")));
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_1P_2 = REGISTRY.register("prism_fire_1p_2", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_1p_2")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_1P_2 = REGISTRY.register("prism_fire_1p_2", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_1p_2")));
|
||||||
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_3P_2 = REGISTRY.register("prism_fire_3p_2", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_3p_2")));
|
public static final DeferredHolder<SoundEvent, SoundEvent> PRISM_FIRE_3P_2 = REGISTRY.register("prism_fire_3p_2", () -> SoundEvent.createVariableRangeEvent(Mod.loc("prism_fire_3p_2")));
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_FIRE_1P = REGISTRY.register("insidious_fire_1p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_fire_1p")));
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_FIRE_3P = REGISTRY.register("insidious_fire_3p", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_fire_3p")));
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_FAR = REGISTRY.register("insidious_far", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_far")));
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_VERYFAR = REGISTRY.register("insidious_veryfar", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_veryfar")));
|
||||||
|
public static final DeferredHolder<SoundEvent, SoundEvent> INSIDIOUS_RELOAD_EMPTY = REGISTRY.register("insidious_reload_empty", () -> SoundEvent.createVariableRangeEvent(Mod.loc("insidious_reload_empty")));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -139,8 +139,16 @@ public class ModVillagers {
|
||||||
new ItemStack(ModItems.M_870_BLUEPRINT.get()), 10, 25, 0.05f));
|
new ItemStack(ModItems.M_870_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
new ItemStack(ModItems.K_98_BLUEPRINT.get()), 10, 25, 0.05f));
|
new ItemStack(ModItems.K_98_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 40),
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
new ItemStack(ModItems.MOSIN_NAGANT_BLUEPRINT.get()), 10, 25, 0.05f));
|
new ItemStack(ModItems.MOSIN_NAGANT_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
|
new ItemStack(ModItems.RPG_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
|
new ItemStack(ModItems.HK_416_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
|
new ItemStack(ModItems.QBZ_95_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
|
trades.get(3).add(new BasicItemListing(new ItemStack(Items.EMERALD, 32),
|
||||||
|
new ItemStack(ModItems.AK_12_BLUEPRINT.get()), 10, 25, 0.05f));
|
||||||
|
|
||||||
// 等级 4 交易
|
// 等级 4 交易
|
||||||
trades.get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 2),
|
trades.get(4).add(new BasicItemListing(new ItemStack(Items.EMERALD, 2),
|
||||||
|
@ -202,10 +210,6 @@ public class ModVillagers {
|
||||||
|
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
||||||
new ItemStack(ModItems.HUNTING_RIFLE_BLUEPRINT.get()), 10, 30, 0.05f));
|
new ItemStack(ModItems.HUNTING_RIFLE_BLUEPRINT.get()), 10, 30, 0.05f));
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
|
||||||
new ItemStack(ModItems.RPG_BLUEPRINT.get()), 10, 30, 0.05f));
|
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
|
||||||
new ItemStack(ModItems.HK_416_BLUEPRINT.get()), 10, 30, 0.05f));
|
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
||||||
new ItemStack(ModItems.RPK_BLUEPRINT.get()), 10, 30, 0.05f));
|
new ItemStack(ModItems.RPK_BLUEPRINT.get()), 10, 30, 0.05f));
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
||||||
|
@ -220,10 +224,6 @@ public class ModVillagers {
|
||||||
new ItemStack(ModItems.M_98B_BLUEPRINT.get()), 10, 30, 0.05f));
|
new ItemStack(ModItems.M_98B_BLUEPRINT.get()), 10, 30, 0.05f));
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
||||||
new ItemStack(ModItems.DEVOTION_BLUEPRINT.get()), 10, 30, 0.05f));
|
new ItemStack(ModItems.DEVOTION_BLUEPRINT.get()), 10, 30, 0.05f));
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
|
||||||
new ItemStack(ModItems.QBZ_95_BLUEPRINT.get()), 10, 30, 0.05f));
|
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 64),
|
|
||||||
new ItemStack(ModItems.AK_12_BLUEPRINT.get()), 10, 30, 0.05f));
|
|
||||||
|
|
||||||
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
|
trades.get(5).add(new BasicItemListing(new ItemStack(Items.EMERALD, 16),
|
||||||
new ItemStack(ModItems.HE_5_INCHES.get(), 1), 8, 10, 0.05f));
|
new ItemStack(ModItems.HE_5_INCHES.get(), 1), 8, 10, 0.05f));
|
||||||
|
|
|
@ -12,7 +12,6 @@ import net.minecraft.server.level.ServerPlayer;
|
||||||
import net.minecraft.sounds.SoundSource;
|
import net.minecraft.sounds.SoundSource;
|
||||||
import net.minecraft.world.InteractionHand;
|
import net.minecraft.world.InteractionHand;
|
||||||
import net.minecraft.world.InteractionResultHolder;
|
import net.minecraft.world.InteractionResultHolder;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
|
||||||
import net.minecraft.world.entity.player.Player;
|
import net.minecraft.world.entity.player.Player;
|
||||||
import net.minecraft.world.entity.projectile.Projectile;
|
import net.minecraft.world.entity.projectile.Projectile;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
|
@ -43,7 +42,7 @@ public class C4Bomb extends Item implements ProjectileItem {
|
||||||
C4Entity entity = new C4Entity(player, level, flag);
|
C4Entity entity = new C4Entity(player, level, flag);
|
||||||
entity.setPos(player.getX() + 0.25 * player.getLookAngle().x, player.getEyeY() - 0.2f + 0.25 * player.getLookAngle().y, player.getZ() + 0.25 * player.getLookAngle().z);
|
entity.setPos(player.getX() + 0.25 * player.getLookAngle().x, player.getEyeY() - 0.2f + 0.25 * player.getLookAngle().y, player.getZ() + 0.25 * player.getLookAngle().z);
|
||||||
entity.setDeltaMovement(0.5 * player.getLookAngle().x, 0.5 * player.getLookAngle().y, 0.5 * player.getLookAngle().z);
|
entity.setDeltaMovement(0.5 * player.getLookAngle().x, 0.5 * player.getLookAngle().y, 0.5 * player.getLookAngle().z);
|
||||||
entity.setOwner(player);
|
entity.setOwnerUUID(player.getUUID());
|
||||||
|
|
||||||
level.addFreshEntity(entity);
|
level.addFreshEntity(entity);
|
||||||
}
|
}
|
||||||
|
@ -83,9 +82,10 @@ public class C4Bomb extends Item implements ProjectileItem {
|
||||||
@Override
|
@Override
|
||||||
@ParametersAreNonnullByDefault
|
@ParametersAreNonnullByDefault
|
||||||
public @NotNull Projectile asProjectile(Level level, Position pos, ItemStack stack, Direction direction) {
|
public @NotNull Projectile asProjectile(Level level, Position pos, ItemStack stack, Direction direction) {
|
||||||
var c4 = new C4Entity((LivingEntity) null, level);
|
// TODO 重写发射器行为
|
||||||
c4.setPos(pos.x(), pos.y(), pos.z());
|
// var c4 = new C4Entity((LivingEntity) null, level);
|
||||||
return c4;
|
// c4.setPos(pos.x(), pos.y(), pos.z());
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -26,7 +26,10 @@ public class Detonator extends Item {
|
||||||
|
|
||||||
public static List<Entity> getC4(Player player, Level level) {
|
public static List<Entity> getC4(Player player, Level level) {
|
||||||
return StreamSupport.stream(EntityFindUtil.getEntities(level).getAll().spliterator(), false)
|
return StreamSupport.stream(EntityFindUtil.getEntities(level).getAll().spliterator(), false)
|
||||||
.filter(e -> e instanceof C4Entity c4 && c4.getOwner() == player)
|
.filter(e -> e instanceof C4Entity c4
|
||||||
|
// TODO c4.getOwner()
|
||||||
|
// && c4.getOwner() == player
|
||||||
|
)
|
||||||
.toList();
|
.toList();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -54,7 +54,7 @@ public class RpgItem extends GunItem implements GeoItem, SpecialFireWeapon {
|
||||||
public static ItemDisplayContext transformType;
|
public static ItemDisplayContext transformType;
|
||||||
|
|
||||||
public RpgItem() {
|
public RpgItem() {
|
||||||
super(new Properties().stacksTo(1).rarity(Rarity.EPIC));
|
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -42,7 +42,7 @@ public class AK12Item extends GunItem implements GeoItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
public AK12Item() {
|
public AK12Item() {
|
||||||
super(new Properties().stacksTo(1).rarity(Rarity.EPIC));
|
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class Hk416Item extends GunItem implements GeoItem {
|
||||||
public static ItemDisplayContext transformType;
|
public static ItemDisplayContext transformType;
|
||||||
|
|
||||||
public Hk416Item() {
|
public Hk416Item() {
|
||||||
super(new Properties().stacksTo(1).rarity(Rarity.EPIC));
|
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,116 @@
|
||||||
|
package com.atsuishio.superbwarfare.item.gun.rifle;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.client.renderer.item.InsidiousItemRenderer;
|
||||||
|
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModItems;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModTags;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
|
import com.atsuishio.superbwarfare.perk.Perk;
|
||||||
|
import com.atsuishio.superbwarfare.perk.PerkHelper;
|
||||||
|
import com.atsuishio.superbwarfare.tools.GunsTool;
|
||||||
|
import com.atsuishio.superbwarfare.tools.NBTTool;
|
||||||
|
import net.minecraft.client.Minecraft;
|
||||||
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.sounds.SoundEvent;
|
||||||
|
import net.minecraft.world.effect.MobEffects;
|
||||||
|
import net.minecraft.world.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemDisplayContext;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
import net.minecraft.world.item.Rarity;
|
||||||
|
import software.bernie.geckolib.animatable.GeoItem;
|
||||||
|
import software.bernie.geckolib.animatable.instance.AnimatableInstanceCache;
|
||||||
|
import software.bernie.geckolib.animation.*;
|
||||||
|
import software.bernie.geckolib.renderer.GeoItemRenderer;
|
||||||
|
import software.bernie.geckolib.util.GeckoLibUtil;
|
||||||
|
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
|
public class InsidiousItem extends GunItem implements GeoItem {
|
||||||
|
|
||||||
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
public static ItemDisplayContext transformType;
|
||||||
|
|
||||||
|
public InsidiousItem() {
|
||||||
|
super(new Properties().stacksTo(1).rarity(Rarity.EPIC));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GeoItemRenderer<? extends Item> getRenderer() {
|
||||||
|
return new InsidiousItemRenderer();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void getTransformType(ItemDisplayContext type) {
|
||||||
|
transformType = type;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayState idlePredicate(AnimationState<InsidiousItem> event) {
|
||||||
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
|
if (player == null) return PlayState.STOP;
|
||||||
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||||
|
|
||||||
|
var tag = NBTTool.getTag(stack);
|
||||||
|
if (tag.getBoolean("is_empty_reloading")) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.insidious.reload"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.insidious.run_fast"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.insidious.run"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.insidious.idle"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||||
|
AnimationController<InsidiousItem> idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate);
|
||||||
|
data.add(idleController);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||||
|
return this.cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static ItemStack getGunInstance() {
|
||||||
|
ItemStack stack = new ItemStack(ModItems.INSIDIOUS.get());
|
||||||
|
GunsTool.initCreativeGun(stack, ModItems.INSIDIOUS.getId().getPath());
|
||||||
|
return stack;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<SoundEvent> getReloadSound() {
|
||||||
|
return Set.of(ModSounds.VECTOR_RELOAD_NORMAL.get(), ModSounds.VECTOR_RELOAD_EMPTY.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getGunIcon() {
|
||||||
|
return Mod.loc("textures/gun_icon/insidious_icon.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGunDisplayName() {
|
||||||
|
return "INSIDIOUS";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean canApplyPerk(Perk perk) {
|
||||||
|
return PerkHelper.RIFLE_PERKS.test(perk) || PerkHelper.MAGAZINE_PERKS.test(perk);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isMagazineReload(ItemStack stack) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getAvailableFireModes() {
|
||||||
|
return FireMode.BURST.flag;
|
||||||
|
}
|
||||||
|
}
|
|
@ -38,7 +38,7 @@ public class Qbz95Item extends GunItem implements GeoItem {
|
||||||
public static ItemDisplayContext transformType;
|
public static ItemDisplayContext transformType;
|
||||||
|
|
||||||
public Qbz95Item() {
|
public Qbz95Item() {
|
||||||
super(new Properties().stacksTo(1).rarity(Rarity.EPIC));
|
super(new Properties().stacksTo(1).rarity(Rarity.RARE));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -146,7 +146,6 @@ public class Qbz95Item extends GunItem implements GeoItem {
|
||||||
final var rootTag = NBTTool.getTag(stack);
|
final var rootTag = NBTTool.getTag(stack);
|
||||||
int scopeType = GunsTool.getAttachmentType(rootTag, GunsTool.AttachmentType.SCOPE);
|
int scopeType = GunsTool.getAttachmentType(rootTag, GunsTool.AttachmentType.SCOPE);
|
||||||
int magType = GunsTool.getAttachmentType(rootTag, GunsTool.AttachmentType.MAGAZINE);
|
int magType = GunsTool.getAttachmentType(rootTag, GunsTool.AttachmentType.MAGAZINE);
|
||||||
;
|
|
||||||
|
|
||||||
if (magType == 1) {
|
if (magType == 1) {
|
||||||
CompoundTag tag = rootTag.getCompound("Attachments");
|
CompoundTag tag = rootTag.getCompound("Attachments");
|
||||||
|
|
|
@ -0,0 +1,611 @@
|
||||||
|
{
|
||||||
|
"format_version": "1.8.0",
|
||||||
|
"animations": {
|
||||||
|
"animation.insidious.idle": {
|
||||||
|
"animation_length": 1
|
||||||
|
},
|
||||||
|
"animation.insidious.reload": {
|
||||||
|
"animation_length": 3,
|
||||||
|
"bones": {
|
||||||
|
"0": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0417": {
|
||||||
|
"pre": [0, 0, 0],
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.125": {
|
||||||
|
"post": [2.5, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": [-5.33, -4.8, -23.37],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.375": {
|
||||||
|
"post": [-8.745, -6.73, -37.66],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": [-4.795, -5.16, -36.31],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": [-9.54131, -5.38038, -28.80396],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5833": {
|
||||||
|
"post": [-10.79799, -6.63854, -38.68136],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.6667": {
|
||||||
|
"post": [-12.90518, -6.42231, -31.2782],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.75": {
|
||||||
|
"post": [-11.96, -6.27, -37.745],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.875": {
|
||||||
|
"post": [-10.365, -5.41, -36.45],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.125": {
|
||||||
|
"post": [-7.33, -3.33, -43.12],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.2083": {
|
||||||
|
"post": [-10.16224, -7.3703, -46.05436],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": [-10.98734, -8.10449, -43.96957],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.375": {
|
||||||
|
"post": [-14.725, -13.11, -43.08],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.4167": {
|
||||||
|
"post": [-11.865, -11.685, -34.695],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.4583": {
|
||||||
|
"post": [-12.39, -12.66, -39.545],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5417": {
|
||||||
|
"post": [-12.915, -13.64, -38.045],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5833": {
|
||||||
|
"post": [-15.28, -11.95, -36.55],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.6667": {
|
||||||
|
"post": [-16.84, -11.19, -29.38],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.75": {
|
||||||
|
"post": [-17.605, -11.36, -26.285],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.7917": {
|
||||||
|
"post": [-12.26, -11.32, -34.25],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.8333": {
|
||||||
|
"post": [-14.52, -11.07, -27.18],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.9167": {
|
||||||
|
"post": [-16.79, -10.81, -32.01],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0": {
|
||||||
|
"post": [-14.335, -10.84, -27.575],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0833": {
|
||||||
|
"post": [-8.5, -6.56, -15.54],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.125": {
|
||||||
|
"post": [1.77, -4.42, -9.53],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.2083": {
|
||||||
|
"post": [0.625, -0.14, 2.5],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.25": {
|
||||||
|
"post": [4.15, 1.63, 5.18],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.3333": {
|
||||||
|
"post": [0.59, 0.41, -1.1425],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.4167": {
|
||||||
|
"post": [-0.62, -0.09, 1.21625],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.5417": {
|
||||||
|
"post": [-0.33125, 0, -0.35],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.6667": {
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.0833": {
|
||||||
|
"post": [-0.35, -0.66, -0.22],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": [-0.715, -0.595, -0.57],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.2917": {
|
||||||
|
"post": [-1.99375, 2.42625, -1.8425],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.375": {
|
||||||
|
"post": [-2.81875, 3.39125, -2.3125],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": [-2.52375, 2.74625, -2.0025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": [-2.31375, 3.14625, -2.0325],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.625": {
|
||||||
|
"post": [-2.53375, 3.19125, -2.1025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.7917": {
|
||||||
|
"post": [-2.60875, 3.56125, -2.6325],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0": {
|
||||||
|
"post": [-2.64375, 3.14625, -2.9025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.125": {
|
||||||
|
"post": [-2.75, 2.04, -3.7],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.2083": {
|
||||||
|
"post": [-2.76, 1.7, -4],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.25": {
|
||||||
|
"post": [-2.78, 1.79, -4.04],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.375": {
|
||||||
|
"post": [-2.59375, 1.86625, -4.1025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.4167": {
|
||||||
|
"post": [-2.29375, 1.37125, -3.7525],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5": {
|
||||||
|
"post": [-2.66375, 1.32625, -4.3225],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.625": {
|
||||||
|
"post": [-2.81875, 2.32625, -4.5025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.75": {
|
||||||
|
"post": [-2.61875, 2.91125, -4.6025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.7917": {
|
||||||
|
"post": [-3.00875, 2.24625, -4.7725],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.875": {
|
||||||
|
"post": [-2.92875, 2.36125, -4.7725],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0": {
|
||||||
|
"post": [-2.89875, 1.54625, -4.5125],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.125": {
|
||||||
|
"post": [-0.59, -0.03, -7.53],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.2083": {
|
||||||
|
"post": [0, -0.32, -2.3],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.25": {
|
||||||
|
"post": [0, -0.21, 0.2],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.3333": {
|
||||||
|
"post": [0, 0.04, -0.15],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.4167": {
|
||||||
|
"post": [0, 0, 0.2],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.5417": {
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"magazine": {
|
||||||
|
"rotation": {
|
||||||
|
"0.5": [0, 0, 0],
|
||||||
|
"0.5417": [-2.5, 0, 0],
|
||||||
|
"0.5833": [-2.5, 0, 0],
|
||||||
|
"0.625": [-2.5, 0, 0],
|
||||||
|
"0.6667": [-2.5, 0, 0],
|
||||||
|
"0.7083": [-2.5, 0, 0],
|
||||||
|
"0.75": [-2.5, 0, 0],
|
||||||
|
"0.7917": [-2.5, 0, 0],
|
||||||
|
"0.8333": [-2.5, 0, 0],
|
||||||
|
"0.875": [-2.5, 0, 0],
|
||||||
|
"0.9167": [-2.5, 0, 0],
|
||||||
|
"0.9583": [-2.5, 0, 0],
|
||||||
|
"1.0": [-2.5, 0, 0],
|
||||||
|
"1.0417": [-2.5, 0, 0],
|
||||||
|
"1.125": [-12.57284, 32.86527, -15.03904],
|
||||||
|
"1.2083": [-8.31, 0, 0],
|
||||||
|
"1.2917": [-3.38, 0, 0],
|
||||||
|
"1.375": [-1.25, 0, 0],
|
||||||
|
"1.4167": [0, 0, 0],
|
||||||
|
"2.2083": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.4583": [0, 0, 0],
|
||||||
|
"0.5": [0, -1, 0],
|
||||||
|
"0.5417": [-0.82, -4.95, -0.07],
|
||||||
|
"0.5833": [-1.98, -10.25, 1.735],
|
||||||
|
"0.625": [-3, -14.09, 4],
|
||||||
|
"0.6667": [-3.23, -14.62, 4.16],
|
||||||
|
"0.7083": [-3.49, -15.02, 4.3],
|
||||||
|
"0.75": [-3.76, -15.3, 4.41],
|
||||||
|
"0.7917": [-4.03, -15.48, 4.48],
|
||||||
|
"0.8333": [-4.28, -15.54, 4.52],
|
||||||
|
"0.875": [-4.5, -15.51, 4.52],
|
||||||
|
"0.9167": [-4.69, -15.38, 4.49],
|
||||||
|
"0.9583": [-4.83, -15.17, 4.43],
|
||||||
|
"1.0": [-4.9, -14.88, 4.32],
|
||||||
|
"1.0417": [-4.81, -14.09, 4],
|
||||||
|
"1.125": [-2.52, -9.08, -2.995],
|
||||||
|
"1.2083": [0.36, -2.95875, -1.2425],
|
||||||
|
"1.2917": [0.27, -3.2575, -0.88],
|
||||||
|
"1.375": [0, -2.95875, -0.24375],
|
||||||
|
"1.4167": [0, 0, 0],
|
||||||
|
"2.2083": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Lefthand": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": [0, 0, 0],
|
||||||
|
"0.0667": [-3.1936, 24.51049, 7.5871],
|
||||||
|
"0.2": [-3.14008, 19.39916, 11.32393],
|
||||||
|
"0.2917": [-4.46292, 0.94838, 16.96183],
|
||||||
|
"0.4583": [-4.46292, 0.94838, 16.96183],
|
||||||
|
"0.7083": [-4.46292, 0.94838, 16.96183],
|
||||||
|
"0.8167": [-28.33435, -12.61568, 45.95484],
|
||||||
|
"1.5417": [-28.33435, -12.61568, 45.95484],
|
||||||
|
"1.75": [-15.82573, 15.60063, 31.96328],
|
||||||
|
"1.8": [-19.88703, 0.29301, 34.55901],
|
||||||
|
"1.9333": [-18.4573, 3.88617, 32.29314],
|
||||||
|
"2.0417": [0, 0, 7],
|
||||||
|
"2.1083": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": [0, 0, 0],
|
||||||
|
"0.0667": [0, -0.8, 0],
|
||||||
|
"0.2": [-0.09, -3.36, 9.03],
|
||||||
|
"0.2917": [-0.15, -2.75, 16],
|
||||||
|
"0.4583": [-0.15, -2.75, 16],
|
||||||
|
"0.7083": [-0.15, -2.75, 16],
|
||||||
|
"0.8167": [-0.55, -2.75, 17.65],
|
||||||
|
"1.5417": [-0.55, -2.75, 17.65],
|
||||||
|
"1.6417": [-1, -3.59, 15.87],
|
||||||
|
"1.75": [-0.55, -7.7, 14.1],
|
||||||
|
"1.8": [-0.55, -3.35, 16.25],
|
||||||
|
"1.9333": [-0.55, -5.5, 14.15],
|
||||||
|
"2.0417": [0, -1, 2],
|
||||||
|
"2.1083": [0, 0, 0]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"camera": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.0833": {
|
||||||
|
"post": [-0.32, 0, 0.39],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.1667": {
|
||||||
|
"post": [1.25, 0.25, 0.22],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.25": {
|
||||||
|
"post": [2.3, 0.59, -0.06],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.3333": {
|
||||||
|
"post": [3.185, 0.82, -0.24],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4167": {
|
||||||
|
"post": [3.35, 0.81, -0.07],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5": {
|
||||||
|
"post": [3.01, 0.62, -0.02],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.5417": {
|
||||||
|
"post": [2.94, 0.01, -1.15],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.625": {
|
||||||
|
"post": [2.9, 0.27, 0.505],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.7083": {
|
||||||
|
"post": [2.84, 0.49, -0.46],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.7917": {
|
||||||
|
"post": [3.05, 0.67, 0.21],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.875": {
|
||||||
|
"post": [3.12, 0.5, 0.065],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.9583": {
|
||||||
|
"post": [3.2, 0.23, 0.27],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.0417": {
|
||||||
|
"post": [3.28, -0.07, 0.34],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.125": {
|
||||||
|
"post": [3.34, -0.3, 0.39],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.2083": {
|
||||||
|
"post": [3.33, -0.43, 0.41],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.2917": {
|
||||||
|
"post": [3.22, -0.37, 0.33],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.375": {
|
||||||
|
"post": [3.15, -0.27, 0.41],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.4167": {
|
||||||
|
"post": [3.31, -0.09, 1.38],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.4583": {
|
||||||
|
"post": [3.11, -0.27, -0.055],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5": {
|
||||||
|
"post": [3.3, -0.38, 0.12],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.5417": {
|
||||||
|
"post": [3.51, -0.51, 0.71],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.625": {
|
||||||
|
"post": [3.52, -0.66, 0.125],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.7083": {
|
||||||
|
"post": [3.48, -0.81, 0.62],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.75": {
|
||||||
|
"post": [3.46, -0.84, 0.71],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.7917": {
|
||||||
|
"post": [3.45, -0.57, 1.6],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.8333": {
|
||||||
|
"post": [3.64, -0.49, 1.185],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.875": {
|
||||||
|
"post": [3.45, -0.57, 0.07],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"1.9583": {
|
||||||
|
"post": [2.91, -0.51, 1.025],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.0417": {
|
||||||
|
"post": [2.09, -0.39, 0.41],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.125": {
|
||||||
|
"post": [0.97, -0.21, 0.12],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.2083": {
|
||||||
|
"post": [-0.23, -0.04, -0.19],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.25": {
|
||||||
|
"post": [-0.62, 0.015, 0.62],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.3333": {
|
||||||
|
"post": [-0.15, -0.005, -0.385],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.4167": {
|
||||||
|
"post": [0.18, -0.06, 0.06],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"2.5417": {
|
||||||
|
"post": [0, 0, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"animation.insidious.run": {
|
||||||
|
"loop": true,
|
||||||
|
"animation_length": 0.8,
|
||||||
|
"bones": {
|
||||||
|
"0": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": [-19.82442, -57.81517, 38.62375],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.2": {
|
||||||
|
"post": [-23.65942, -57.81517, 38.62375],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"post": [-19.82442, -57.81517, 38.62375],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.6": {
|
||||||
|
"post": [-15.98942, -57.81517, 38.62375],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.8": {
|
||||||
|
"post": [-19.82442, -57.81517, 38.62375],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.0": {
|
||||||
|
"post": [6.85, -3.45, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.2": {
|
||||||
|
"post": [4.8, -2.45, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.4": {
|
||||||
|
"post": [3.1, -3.45, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.6": {
|
||||||
|
"post": [4.35, -2.45, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.8": {
|
||||||
|
"post": [6.85, -3.45, 0],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"camera": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": [-0.3, -0.3, 0.3],
|
||||||
|
"0.2": [0.3, 0, -0.3],
|
||||||
|
"0.4": [-0.3, 0.3, 0.3],
|
||||||
|
"0.6": [0.3, 0, -0.3],
|
||||||
|
"0.8": [-0.3, -0.3, 0.3]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"animation.insidious.run_fast": {
|
||||||
|
"loop": true,
|
||||||
|
"animation_length": 0.7,
|
||||||
|
"bones": {
|
||||||
|
"0": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": {
|
||||||
|
"post": [-71.5441, -6.20641, 4.89071],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.175": {
|
||||||
|
"post": [-70.25009, -7.82623, 12.8696],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.35": {
|
||||||
|
"post": [-71.08194, -7.98816, 6.64209],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.525": {
|
||||||
|
"post": [-72.13904, -8.06078, 0.51567],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.7": {
|
||||||
|
"post": [-71.72375, -6.1867, 4.79361],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"position": {
|
||||||
|
"0.025": {
|
||||||
|
"pre": [-4.16372, -0.29873, 1.6264],
|
||||||
|
"post": [-4.16372, -0.29873, 1.6264],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.2": {
|
||||||
|
"post": [-5.48, 1.92384, 0.57456],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.375": {
|
||||||
|
"post": [-6.50607, -0.3312, 1.48533],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.55": {
|
||||||
|
"post": [-5.58238, 1.87846, 0.58809],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
},
|
||||||
|
"0.725": {
|
||||||
|
"post": [-4.16372, -0.29873, 1.6264],
|
||||||
|
"lerp_mode": "catmullrom"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"Lefthand": {
|
||||||
|
"rotation": [-30, -12.5, 7.5],
|
||||||
|
"position": [15, -7, 37]
|
||||||
|
},
|
||||||
|
"camera": {
|
||||||
|
"rotation": {
|
||||||
|
"0.0": [-0.3, -0.3, 0.3],
|
||||||
|
"0.175": [0.3, 0, -0.3],
|
||||||
|
"0.35": [-0.3, 0.3, 0.3],
|
||||||
|
"0.525": [0.3, 0, -0.3],
|
||||||
|
"0.7": [-0.3, -0.3, 0.3]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
4573
src/main/resources/assets/superbwarfare/geo/insidious.geo.json
Normal file
|
@ -48,6 +48,7 @@
|
||||||
"item.superbwarfare.mosin_nagant": "Mosin Nagant",
|
"item.superbwarfare.mosin_nagant": "Mosin Nagant",
|
||||||
"item.superbwarfare.javelin": "FGM-148 Javelin",
|
"item.superbwarfare.javelin": "FGM-148 Javelin",
|
||||||
"item.superbwarfare.secondary_cataclysm": "Secondary Cataclysm",
|
"item.superbwarfare.secondary_cataclysm": "Secondary Cataclysm",
|
||||||
|
"item.superbwarfare.insidious": "Insidious",
|
||||||
|
|
||||||
"des.superbwarfare.guns.damage": "Damage: ",
|
"des.superbwarfare.guns.damage": "Damage: ",
|
||||||
"des.superbwarfare.guns.level": "Level: ",
|
"des.superbwarfare.guns.level": "Level: ",
|
||||||
|
@ -108,6 +109,7 @@
|
||||||
"item.superbwarfare.annihilator_blueprint": "Annihilator Energy Gun Blueprint",
|
"item.superbwarfare.annihilator_blueprint": "Annihilator Energy Gun Blueprint",
|
||||||
"item.superbwarfare.m2hb_blueprint": "M2HB Blueprint",
|
"item.superbwarfare.m2hb_blueprint": "M2HB Blueprint",
|
||||||
"item.superbwarfare.secondary_cataclysm_blueprint": "Secondary Cataclysm Blueprint",
|
"item.superbwarfare.secondary_cataclysm_blueprint": "Secondary Cataclysm Blueprint",
|
||||||
|
"item.superbwarfare.insidious_blueprint": "Insidious Blueprint",
|
||||||
|
|
||||||
"item.superbwarfare.common_material_pack": "Common Material Pack",
|
"item.superbwarfare.common_material_pack": "Common Material Pack",
|
||||||
"item.superbwarfare.rare_material_pack": "Rare Material Pack",
|
"item.superbwarfare.rare_material_pack": "Rare Material Pack",
|
||||||
|
|
|
@ -48,6 +48,7 @@
|
||||||
"item.superbwarfare.mosin_nagant": "莫辛纳甘",
|
"item.superbwarfare.mosin_nagant": "莫辛纳甘",
|
||||||
"item.superbwarfare.javelin": "FGM-148标枪导弹",
|
"item.superbwarfare.javelin": "FGM-148标枪导弹",
|
||||||
"item.superbwarfare.secondary_cataclysm": "二次灾变",
|
"item.superbwarfare.secondary_cataclysm": "二次灾变",
|
||||||
|
"item.superbwarfare.insidious": "阴险",
|
||||||
|
|
||||||
"des.superbwarfare.guns.upgrade_point": "升级点数: ",
|
"des.superbwarfare.guns.upgrade_point": "升级点数: ",
|
||||||
"des.superbwarfare.guns.damage": "伤害: ",
|
"des.superbwarfare.guns.damage": "伤害: ",
|
||||||
|
@ -108,6 +109,7 @@
|
||||||
"item.superbwarfare.annihilator_blueprint": "歼灭者能量炮蓝图",
|
"item.superbwarfare.annihilator_blueprint": "歼灭者能量炮蓝图",
|
||||||
"item.superbwarfare.m2hb_blueprint": "M2HB重机枪蓝图",
|
"item.superbwarfare.m2hb_blueprint": "M2HB重机枪蓝图",
|
||||||
"item.superbwarfare.secondary_cataclysm_blueprint": "二次灾变蓝图",
|
"item.superbwarfare.secondary_cataclysm_blueprint": "二次灾变蓝图",
|
||||||
|
"item.superbwarfare.insidious_blueprint": "阴险蓝图",
|
||||||
|
|
||||||
"item.superbwarfare.common_material_pack": "普通材料包",
|
"item.superbwarfare.common_material_pack": "普通材料包",
|
||||||
"item.superbwarfare.rare_material_pack": "稀有材料包",
|
"item.superbwarfare.rare_material_pack": "稀有材料包",
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"parent": "builtin/entity",
|
||||||
|
"texture_size": [
|
||||||
|
256,
|
||||||
|
256
|
||||||
|
],
|
||||||
|
"gui_light": "front",
|
||||||
|
"display": {
|
||||||
|
"firstperson_righthand": {
|
||||||
|
"translation": [
|
||||||
|
-4.75,
|
||||||
|
1,
|
||||||
|
-0.50
|
||||||
|
],
|
||||||
|
"scale": [
|
||||||
|
1.0,
|
||||||
|
1.0,
|
||||||
|
1.25
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"firstperson_lefthand": {
|
||||||
|
"scale": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"gui": {
|
||||||
|
"rotation": [
|
||||||
|
165.69,
|
||||||
|
-39.63,
|
||||||
|
178.66
|
||||||
|
],
|
||||||
|
"translation": [
|
||||||
|
-1.9,
|
||||||
|
-3.25,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"scale": [
|
||||||
|
0.18,
|
||||||
|
0.18,
|
||||||
|
0.18
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/aa_12_base"
|
"parent": "superbwarfare:item/aa_12_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/ak_12_base"
|
"parent": "superbwarfare:item/ak_12_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/ak_47_base"
|
"parent": "superbwarfare:item/ak_47_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/bocek_base"
|
"parent": "superbwarfare:item/bocek_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/devotion_base"
|
"parent": "superbwarfare:item/devotion_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/glock_17_base"
|
"parent": "superbwarfare:item/glock_17_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/glock_17_base"
|
"parent": "superbwarfare:item/glock_17_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/hk416_base"
|
"parent": "superbwarfare:item/hk416_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/homemade_shotgun_base"
|
"parent": "superbwarfare:item/homemade_shotgun_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/hunting_rifle_base"
|
"parent": "superbwarfare:item/hunting_rifle_base"
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"loader": "neoforge:separate_transforms",
|
||||||
|
"gui_light": "front",
|
||||||
|
"base": {
|
||||||
|
"parent": "superbwarfare:item/insidious_base"
|
||||||
|
},
|
||||||
|
"perspectives": {
|
||||||
|
"gui": {
|
||||||
|
"parent": "superbwarfare:item/insidious_icon"
|
||||||
|
},
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"parent": "superbwarfare:item/insidious_3d"
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"parent": "superbwarfare:item/insidious_3d"
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"parent": "superbwarfare:item/insidious_3d"
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"parent": "superbwarfare:item/insidious_3d"
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"parent": "superbwarfare:item/insidious_3d"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,638 @@
|
||||||
|
{
|
||||||
|
"credit": "Made with Blockbench",
|
||||||
|
"texture_size": [64, 64],
|
||||||
|
"textures": {
|
||||||
|
"0": "superbwarfare:item/insidious_3d",
|
||||||
|
"particle": "superbwarfare:item/insidious_3d"
|
||||||
|
},
|
||||||
|
"elements": [
|
||||||
|
{
|
||||||
|
"from": [7, 6, -9],
|
||||||
|
"to": [9, 7.25, 7],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.75, 0.25, 8.25, 0.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [5.5, 3.5, 9.5, 3.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.25, 7.75, 4.75, 8], "texture": "#0"},
|
||||||
|
"west": {"uv": [5.5, 3.75, 9.5, 4], "texture": "#0"},
|
||||||
|
"up": {"uv": [0.5, 7.5, 0, 3.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [1, 3.5, 0.5, 7.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, 6, 4],
|
||||||
|
"to": [9.25, 9.25, 20],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 0.5, 7.25, 1.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [2.5, 0, 6.5, 0.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 6.5, 6.75, 7.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [2.5, 0.75, 6.5, 1.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.25, 5.5, 2.5, 1.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4, 1.5, 3.25, 5.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, 9.25, 7],
|
||||||
|
"to": [9.25, 11.5, 10],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.75, 5.5, 7.5, 6], "texture": "#0"},
|
||||||
|
"east": {"uv": [1.75, 7, 2.5, 7.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 7, 4.75, 7.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.75, 7, 5.5, 7.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.5, 4.75, 6.75, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [7.5, 4.75, 6.75, 5.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, -1, 10],
|
||||||
|
"to": [9.25, 6, 20],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 3.5, 4.75, 5.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [0, 0, 2.5, 1.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.75, 3.5, 5.5, 5.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [0, 1.75, 2.5, 3.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [1.75, 6, 1, 3.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [2.5, 3.5, 1.75, 6], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, -1.80923, 4.31825],
|
||||||
|
"to": [9.25, 5.44077, 6.31825],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4, 5.25, 4.75, 7], "texture": "#0"},
|
||||||
|
"east": {"uv": [2.5, 5.5, 3, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.75, 5.25, 5.5, 7], "texture": "#0"},
|
||||||
|
"west": {"uv": [3, 5.5, 3.5, 7.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [8, 1, 7.25, 0.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 1, 7.25, 1.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, 2, 2.5],
|
||||||
|
"to": [9.25, 6.25, 5.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1, 6, 1.75, 7], "texture": "#0"},
|
||||||
|
"east": {"uv": [1.75, 6, 2.5, 7], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 4, 6.75, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [6, 5, 6.75, 6], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.5, 7.25, 6.75, 6.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [1.75, 7, 1, 7.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.5, 2.5, -2],
|
||||||
|
"to": [8.75, 2.75, 2.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.5, 8, 4.75, 8.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.25, 1.5, 8.5, 1.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 4.75, 8.25, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.25, 1.75, 8.5, 2], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.5, 3.25, 7.25, 2], "texture": "#0"},
|
||||||
|
"down": {"uv": [2.75, 7.25, 2.5, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.5, 1.02004, -4.94027],
|
||||||
|
"to": [8.75, 1.27004, 0.05973],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 5, 8.25, 5.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.25, 3.25, 8.5, 3.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 6.75, 8.25, 7], "texture": "#0"},
|
||||||
|
"west": {"uv": [5.5, 7.25, 6.75, 7.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [3, 8.5, 2.75, 7.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [3.25, 7.25, 3, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.5, -1.47246, -4.59037],
|
||||||
|
"to": [8.75, -1.22246, -2.09037],
|
||||||
|
"rotation": {"angle": 45, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 7, 8.25, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [6.5, 1.25, 7.25, 1.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 7.75, 8.25, 8], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 2.5, 8.25, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [2.5, 8.25, 2.25, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.25, 7.5, 4, 8.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 6, -6],
|
||||||
|
"to": [7.25, 8.25, 7],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1.5, 7.75, 1.75, 8.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 1.5, 7.25, 2], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.75, 7.75, 5, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 2, 7.25, 2.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.75, 8.75, 3.5, 5.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [4, 5.5, 3.75, 8.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 6, 7],
|
||||||
|
"to": [9.5, 8.25, 12],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.75, 4.75, 8, 5.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [6, 6, 7.25, 6.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [5.25, 7.75, 5.5, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.5, 0, 7.75, 0.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [3.5, 8.5, 3.25, 7.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [7, 7.25, 6.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.75, 6, -6],
|
||||||
|
"to": [9.5, 8.25, 7],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5.5, 7.75, 5.75, 8.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [4, 2.5, 7.25, 3], "texture": "#0"},
|
||||||
|
"south": {"uv": [5.75, 7.75, 6, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [4, 3, 7.25, 3.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [5.75, 7.25, 5.5, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [6, 4, 5.75, 7.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 8.25, -1],
|
||||||
|
"to": [7.25, 9.25, 4.25],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 8, 8.25, 8.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.25, 6, 8.5, 6.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 0.25, 8.5, 0.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.25, 6.25, 8.5, 6.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.25, 8.5, 7, 7.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [7.5, 7.25, 7.25, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, 9.25, 2],
|
||||||
|
"to": [7, 11.25, 2.25],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.75, 6.75, 8, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.5, 7.75, 7.75, 8.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [7.75, 7.75, 8, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [0.5, 8, 0.75, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.5, 0.75, 8.25, 0.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.5, 0.75, 8.25, 1], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.75, 11.25, 2],
|
||||||
|
"to": [9.25, 11.5, 2.25],
|
||||||
|
"rotation": {"angle": 0, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.5, 2.75, 8.25, 3], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.25, 1, 8.5, 1.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [7.5, 3, 8.25, 3.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.25, 1.25, 8.5, 1.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.25, 4.25, 7.5, 4], "texture": "#0"},
|
||||||
|
"down": {"uv": [5, 7.5, 4.25, 7.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [9, 9.25, 2],
|
||||||
|
"to": [9.25, 11.25, 2.25],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 0.5, 8.25, 1], "texture": "#0"},
|
||||||
|
"east": {"uv": [0.75, 8, 1, 8.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8, 1, 8.25, 1.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [1.75, 8, 2, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [1.75, 8.5, 1.5, 8.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [2.5, 8.25, 2.25, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.75, 8.25, -1],
|
||||||
|
"to": [9.5, 9.25, 4.25],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.25, 2.5, 8.5, 2.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.5, 2, 8.75, 2.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 2.75, 8.5, 3], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 2.25, 8.75, 2.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [0.25, 8.75, 0, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [0.5, 7.5, 0.25, 8.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 9.50903, -2.82959],
|
||||||
|
"to": [7.25, 10.50903, 0.17041],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.25, 3, 8.5, 3.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.5, 4.25, 8.25, 4.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4, 8.25, 4.25, 8.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 4.5, 8.25, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.75, 5.5, 7.5, 4.75], "texture": "#0"},
|
||||||
|
"down": {"uv": [5.25, 7.5, 5, 8.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.75, 9.50903, -2.82959],
|
||||||
|
"to": [9.5, 10.50903, 0.17041],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.25, 4, 8.5, 4.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [5.25, 7.5, 6, 7.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 4.25, 8.5, 4.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 5.5, 8.25, 5.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.25, 8.25, 6, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [6.5, 7.5, 6.25, 8.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [6.5, 8.648, 3.25086],
|
||||||
|
"to": [7.25, 9.648, 6.25086],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.5, 8.25, 4.75, 8.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.5, 5.75, 8.25, 6], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 4.5, 8.5, 4.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 6.5, 8.25, 6.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.75, 8.25, 6.5, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [7.75, 6.75, 7.5, 7.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.75, 8.648, 3.25086],
|
||||||
|
"to": [9.5, 9.648, 6.25086],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "x", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.75, 8.25, 5, 8.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.5, 7.5, 8.25, 7.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 4.75, 8.5, 5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.75, 0, 8.5, 0.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [1.25, 8.5, 1, 7.75], "texture": "#0"},
|
||||||
|
"down": {"uv": [1.5, 7.75, 1.25, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, -9],
|
||||||
|
"to": [9.31469, 8.25219, -8.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 8.25, 5.25, 8.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.25, 5, 8.5, 5.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [5.25, 8.25, 5.5, 8.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.25, 5.25, 8.5, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [5.75, 8.5, 5.5, 8.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.5, 5.5, 8.25, 5.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, -8.5],
|
||||||
|
"to": [8.96385, 8.48661, -8],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5.75, 8.25, 6, 8.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.25, 5.75, 8.5, 6], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 8.25, 6.25, 8.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.25, 8.25, 6.5, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.75, 8.5, 6.5, 8.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.5, 6.5, 8.25, 6.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, -8],
|
||||||
|
"to": [8.55, 8.56893, -7.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.25, 6.75, 8.5, 7], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.25, 7, 8.5, 7.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 7.25, 8.5, 7.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 8.25, 7.75, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.5, 7.75, 8.25, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 8.25, 7.75, 8.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, -7.5],
|
||||||
|
"to": [8.13615, 8.48661, -7],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.25, 7.75, 8.5, 8], "texture": "#0"},
|
||||||
|
"east": {"uv": [8, 8.25, 8.25, 8.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 8, 8.5, 8.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.25, 8.25, 8.5, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.75, 0.25, 8.5, 0], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 0.25, 8.5, 0.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, -5.5],
|
||||||
|
"to": [8.13615, 8.48661, -5],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0.5, 8.5, 0.75, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 0.5, 8.75, 0.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [0.75, 8.5, 1, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 0.75, 8.75, 1], "texture": "#0"},
|
||||||
|
"up": {"uv": [1.25, 8.75, 1, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 1, 8.5, 1.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, -7],
|
||||||
|
"to": [9.31469, 8.25219, -6.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [1.25, 8.5, 1.5, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 1.25, 8.75, 1.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [1.5, 8.5, 1.75, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 1.5, 8.75, 1.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [2, 8.75, 1.75, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 1.75, 8.5, 2], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, -6.5],
|
||||||
|
"to": [8.96385, 8.48661, -6],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [2, 8.5, 2.25, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [2.25, 8.5, 2.5, 8.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [2.5, 8.5, 2.75, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 2.5, 8.75, 2.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [3, 8.75, 2.75, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 2.75, 8.5, 3], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, -6],
|
||||||
|
"to": [8.55, 8.56893, -5.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [3, 8.5, 3.25, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 3, 8.75, 3.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [3.25, 8.5, 3.5, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 3.25, 8.75, 3.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [4.25, 8.75, 4, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 4, 8.5, 4.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, -3.5],
|
||||||
|
"to": [8.13615, 8.48661, -3],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [4.25, 8.5, 4.5, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 4.25, 8.75, 4.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [4.5, 8.5, 4.75, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 4.5, 8.75, 4.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [5, 8.75, 4.75, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 4.75, 8.5, 5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, -5],
|
||||||
|
"to": [9.31469, 8.25219, -4.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5, 8.5, 5.25, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 5, 8.75, 5.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [5.25, 8.5, 5.5, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 5.25, 8.75, 5.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [5.75, 8.75, 5.5, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 5.5, 8.5, 5.75], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, -4.5],
|
||||||
|
"to": [8.96385, 8.48661, -4],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [5.75, 8.5, 6, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 5.75, 8.75, 6], "texture": "#0"},
|
||||||
|
"south": {"uv": [6, 8.5, 6.25, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 6, 8.75, 6.25], "texture": "#0"},
|
||||||
|
"up": {"uv": [6.5, 8.75, 6.25, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 6.25, 8.5, 6.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, -4],
|
||||||
|
"to": [8.55, 8.56893, -3.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [6.5, 8.5, 6.75, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 6.5, 8.75, 6.75], "texture": "#0"},
|
||||||
|
"south": {"uv": [6.75, 8.5, 7, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 6.75, 8.75, 7], "texture": "#0"},
|
||||||
|
"up": {"uv": [7.25, 8.75, 7, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 7, 8.5, 7.25], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, -1.5],
|
||||||
|
"to": [8.13615, 8.48661, -1],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [7.25, 8.5, 7.5, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 7.25, 8.75, 7.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [7.5, 8.5, 7.75, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 7.5, 8.75, 7.75], "texture": "#0"},
|
||||||
|
"up": {"uv": [8, 8.75, 7.75, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.75, 7.75, 8.5, 8], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, -3],
|
||||||
|
"to": [9.31469, 8.25219, -2.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8, 8.5, 8.25, 8.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [8.5, 8, 8.75, 8.25], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.25, 8.5, 8.5, 8.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [8.5, 8.25, 8.75, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.75, 8.75, 8.5, 8.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [0.25, 8.75, 0, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, -2.5],
|
||||||
|
"to": [8.96385, 8.48661, -2],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 0, 9, 0.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [0.25, 8.75, 0.5, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 0.25, 9, 0.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [0.5, 8.75, 0.75, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 0.75, 8.75, 0.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [1, 8.75, 0.75, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, -2],
|
||||||
|
"to": [8.55, 8.56893, -1.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 0.75, 9, 1], "texture": "#0"},
|
||||||
|
"east": {"uv": [1, 8.75, 1.25, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 1, 9, 1.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [1.25, 8.75, 1.5, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 1.5, 8.75, 1.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [1.75, 8.75, 1.5, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, 0.5],
|
||||||
|
"to": [8.13615, 8.48661, 1],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 1.5, 9, 1.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [1.75, 8.75, 2, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 1.75, 9, 2], "texture": "#0"},
|
||||||
|
"west": {"uv": [2, 8.75, 2.25, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 2.25, 8.75, 2], "texture": "#0"},
|
||||||
|
"down": {"uv": [2.5, 8.75, 2.25, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, -1],
|
||||||
|
"to": [9.31469, 8.25219, -0.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 2.25, 9, 2.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [2.5, 8.75, 2.75, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 2.5, 9, 2.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [2.75, 8.75, 3, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 3, 8.75, 2.75], "texture": "#0"},
|
||||||
|
"down": {"uv": [3.25, 8.75, 3, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, -0.5],
|
||||||
|
"to": [8.96385, 8.48661, 0],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 3, 9, 3.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [3.25, 8.75, 3.5, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 3.25, 9, 3.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [3.5, 8.75, 3.75, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [4, 9, 3.75, 8.75], "texture": "#0"},
|
||||||
|
"down": {"uv": [4.25, 8.75, 4, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, 0],
|
||||||
|
"to": [8.55, 8.56893, 0.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 4, 9, 4.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [4.25, 8.75, 4.5, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 4.25, 9, 4.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.5, 8.75, 4.75, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 4.75, 8.75, 4.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [5, 8.75, 4.75, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.03615, 7.38661, 2.5],
|
||||||
|
"to": [8.13615, 8.48661, 3],
|
||||||
|
"rotation": {"angle": -22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 4.75, 9, 5], "texture": "#0"},
|
||||||
|
"east": {"uv": [5, 8.75, 5.25, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 5, 9, 5.25], "texture": "#0"},
|
||||||
|
"west": {"uv": [5.25, 8.75, 5.5, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 5.5, 8.75, 5.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [5.75, 8.75, 5.5, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [8.21469, 7.15219, 1],
|
||||||
|
"to": [9.31469, 8.25219, 1.5],
|
||||||
|
"rotation": {"angle": 45, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 5.5, 9, 5.75], "texture": "#0"},
|
||||||
|
"east": {"uv": [5.75, 8.75, 6, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 5.75, 9, 6], "texture": "#0"},
|
||||||
|
"west": {"uv": [6, 8.75, 6.25, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 6.25, 8.75, 6], "texture": "#0"},
|
||||||
|
"down": {"uv": [6.5, 8.75, 6.25, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.86385, 7.38661, 1.5],
|
||||||
|
"to": [8.96385, 8.48661, 2],
|
||||||
|
"rotation": {"angle": 22.5, "axis": "z", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 6.25, 9, 6.5], "texture": "#0"},
|
||||||
|
"east": {"uv": [6.5, 8.75, 6.75, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 6.5, 9, 6.75], "texture": "#0"},
|
||||||
|
"west": {"uv": [6.75, 8.75, 7, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 7, 8.75, 6.75], "texture": "#0"},
|
||||||
|
"down": {"uv": [7.25, 8.75, 7, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7.45, 7.46893, 2],
|
||||||
|
"to": [8.55, 8.56893, 2.5],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [8.75, 7, 9, 7.25], "texture": "#0"},
|
||||||
|
"east": {"uv": [7.25, 8.75, 7.5, 9], "texture": "#0"},
|
||||||
|
"south": {"uv": [8.75, 7.25, 9, 7.5], "texture": "#0"},
|
||||||
|
"west": {"uv": [7.5, 8.75, 7.75, 9], "texture": "#0"},
|
||||||
|
"up": {"uv": [9, 7.75, 8.75, 7.5], "texture": "#0"},
|
||||||
|
"down": {"uv": [8, 8.75, 7.75, 9], "texture": "#0"}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"from": [7, 6, -10],
|
||||||
|
"to": [9, 8.25, -9],
|
||||||
|
"rotation": {"angle": 0, "axis": "y", "origin": [8, 6.9375, 2.75]},
|
||||||
|
"faces": {
|
||||||
|
"north": {"uv": [0.5, 7.5, 1, 8], "texture": "#0"},
|
||||||
|
"east": {"uv": [2, 8, 2.25, 8.5], "texture": "#0"},
|
||||||
|
"south": {"uv": [1.75, 7.5, 2.25, 8], "texture": "#0"},
|
||||||
|
"west": {"uv": [4.25, 8, 4.5, 8.5], "texture": "#0"},
|
||||||
|
"up": {"uv": [8.25, 5.5, 7.75, 5.25], "texture": "#0"},
|
||||||
|
"down": {"uv": [8.25, 7.25, 7.75, 7.5], "texture": "#0"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"display": {
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"translation": [-1.25, 1.5, 0.75],
|
||||||
|
"scale": [0.7, 0.7, 0.7]
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"translation": [-1.25, -1.25, 0.75],
|
||||||
|
"scale": [0, 0, 0]
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"translation": [0, 4.5, 0],
|
||||||
|
"scale": [0.7, 0.7, 0.7]
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"translation": [0, 8.5, 0]
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"rotation": [90, -45, 90],
|
||||||
|
"translation": [-2, 0.75, 0],
|
||||||
|
"scale": [0.75, 0.75, 0.75]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"name": "bone2",
|
||||||
|
"origin": [13, 14, 0],
|
||||||
|
"color": 0,
|
||||||
|
"children": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:displaysettings/insidious.item",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/insidious"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "item/generated",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/insidious_icon"
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/javelin_base"
|
"parent": "superbwarfare:item/javelin_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/k98_base"
|
"parent": "superbwarfare:item/k98_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/lunge_mine_base"
|
"parent": "superbwarfare:item/lunge_mine_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m_1911_base"
|
"parent": "superbwarfare:item/m_1911_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m_4_base"
|
"parent": "superbwarfare:item/m_4_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m_60_base"
|
"parent": "superbwarfare:item/m_60_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m79_base"
|
"parent": "superbwarfare:item/m79_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m_870_base"
|
"parent": "superbwarfare:item/m_870_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/m_98b_base"
|
"parent": "superbwarfare:item/m_98b_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/marlin_base"
|
"parent": "superbwarfare:item/marlin_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/minigun_base"
|
"parent": "superbwarfare:item/minigun_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/mk_14_base"
|
"parent": "superbwarfare:item/mk_14_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/mosin_nagant_base"
|
"parent": "superbwarfare:item/mosin_nagant_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/glock_17_base"
|
"parent": "superbwarfare:item/glock_17_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/ntw_20_base"
|
"parent": "superbwarfare:item/ntw_20_base"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
"loader": "neoforge:separate_transforms",
|
"loader": "neoforge:separate_transforms",
|
||||||
"gui_light": "front",
|
"gui_light": "front",
|
||||||
"base": {
|
"base": {
|
||||||
"parent": "superbwarfare:item/qbz_95_base"
|
"parent": "superbwarfare:item/qbz_95_base"
|
||||||
|
|
Before Width: | Height: | Size: 7.8 KiB After Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 9.9 KiB After Width: | Height: | Size: 9.9 KiB |
Before Width: | Height: | Size: 8.2 KiB After Width: | Height: | Size: 8.2 KiB |
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 8 KiB After Width: | Height: | Size: 8 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.8 KiB |
Before Width: | Height: | Size: 5.3 KiB After Width: | Height: | Size: 5.3 KiB |
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 7 KiB |
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 6.5 KiB After Width: | Height: | Size: 6.5 KiB |
Before Width: | Height: | Size: 7 KiB After Width: | Height: | Size: 7 KiB |
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.6 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 9 KiB After Width: | Height: | Size: 9 KiB |
Before Width: | Height: | Size: 7.7 KiB After Width: | Height: | Size: 7.7 KiB |
Before Width: | Height: | Size: 8.4 KiB After Width: | Height: | Size: 8.4 KiB |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 4.9 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB |
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 16 KiB |