添加海月权杖
This commit is contained in:
parent
45156fe81c
commit
f85f44dc67
18 changed files with 18767 additions and 112 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.21.1 2025-04-30T21:39:38.9407598 Tags for minecraft:item mod id superbwarfare
|
// 1.21.1 2025-05-21T01:16:55.9839971 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
|
||||||
|
@ -32,8 +32,8 @@ b2461a0f5cf318dde060f2b111a01c77234a0681 data/superbwarfare/tags/item/blueprint/
|
||||||
3c4adac76810982986b6cd9845192ae8416324f4 data/superbwarfare/tags/item/blueprint/epic.json
|
3c4adac76810982986b6cd9845192ae8416324f4 data/superbwarfare/tags/item/blueprint/epic.json
|
||||||
db74863ba36706ced4f45eed4cbc0bb0d87aa0f9 data/superbwarfare/tags/item/blueprint/legendary.json
|
db74863ba36706ced4f45eed4cbc0bb0d87aa0f9 data/superbwarfare/tags/item/blueprint/legendary.json
|
||||||
3154110c8f6b5d1473d558b7d0d2f752396dff34 data/superbwarfare/tags/item/blueprint/rare.json
|
3154110c8f6b5d1473d558b7d0d2f752396dff34 data/superbwarfare/tags/item/blueprint/rare.json
|
||||||
8d846ffd414f5878a783e5a2a094e72df4354f8f data/superbwarfare/tags/item/gun.json
|
e1b7851d212bf40b90454ce77fd25fad78b8424e data/superbwarfare/tags/item/gun.json
|
||||||
409af265147e812b6f6558c51f1cb83b0f61b7d3 data/superbwarfare/tags/item/handgun.json
|
cd469bd18f1d19893b79c9cff9970e4db7e0e484 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
|
||||||
a1c6460b9c956972b74d5ad5cd206e9ae3560b03 data/superbwarfare/tags/item/ingots/steel.json
|
a1c6460b9c956972b74d5ad5cd206e9ae3560b03 data/superbwarfare/tags/item/ingots/steel.json
|
||||||
|
@ -41,7 +41,7 @@ d39c5c787667ce78c214bc2fbd4931891ebaf936 data/superbwarfare/tags/item/launcher.j
|
||||||
ab580f3989177c0589c43ca346db571011600187 data/superbwarfare/tags/item/launcher/grenade.json
|
ab580f3989177c0589c43ca346db571011600187 data/superbwarfare/tags/item/launcher/grenade.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
|
||||||
8ea4fb7d3981141a953bd5510e8c76fb790307aa data/superbwarfare/tags/item/normal_gun.json
|
a38ce936246513bfdbf9c0b58807ae361c6edd78 data/superbwarfare/tags/item/normal_gun.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
|
||||||
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/item/smg.json
|
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/item/smg.json
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"superbwarfare:glock_18",
|
"superbwarfare:glock_18",
|
||||||
"superbwarfare:mp_443",
|
"superbwarfare:mp_443",
|
||||||
"superbwarfare:m_1911",
|
"superbwarfare:m_1911",
|
||||||
|
"superbwarfare:aurelia_sceptre",
|
||||||
"superbwarfare:homemade_shotgun",
|
"superbwarfare:homemade_shotgun",
|
||||||
"superbwarfare:trachelium",
|
"superbwarfare:trachelium",
|
||||||
"superbwarfare:vector",
|
"superbwarfare:vector",
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
"superbwarfare:glock_17",
|
"superbwarfare:glock_17",
|
||||||
"superbwarfare:glock_18",
|
"superbwarfare:glock_18",
|
||||||
"superbwarfare:m_1911",
|
"superbwarfare:m_1911",
|
||||||
"superbwarfare:mp_443"
|
"superbwarfare:mp_443",
|
||||||
|
"superbwarfare:aurelia_sceptre"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -25,6 +25,7 @@
|
||||||
"superbwarfare:rpg",
|
"superbwarfare:rpg",
|
||||||
"superbwarfare:glock_18",
|
"superbwarfare:glock_18",
|
||||||
"superbwarfare:m_1911",
|
"superbwarfare:m_1911",
|
||||||
|
"superbwarfare:aurelia_sceptre",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:k_98",
|
"superbwarfare:k_98",
|
||||||
"superbwarfare:mosin_nagant",
|
"superbwarfare:mosin_nagant",
|
||||||
|
|
|
@ -0,0 +1,125 @@
|
||||||
|
package com.atsuishio.superbwarfare.client.model.item;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.handgun.AureliaSceptre;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import software.bernie.geckolib.animation.AnimationState;
|
||||||
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
public class AureliaSceptreModel extends GeoModel<AureliaSceptre> {
|
||||||
|
|
||||||
|
public static float fireRotY = 0f;
|
||||||
|
public static float fireRotZ = 0f;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getAnimationResource(AureliaSceptre animatable) {
|
||||||
|
return Mod.loc("animations/aurelia_sceptre.animation.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getModelResource(AureliaSceptre animatable) {
|
||||||
|
return Mod.loc("geo/aurelia_sceptre.geo.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getTextureResource(AureliaSceptre animatable) {
|
||||||
|
return Mod.loc("textures/item/aurelia_sceptre.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setCustomAnimations(AureliaSceptre animatable, long instanceId, AnimationState animationState) {
|
||||||
|
// TODO 动画
|
||||||
|
// GeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
|
// GeoBone slide = getAnimationProcessor().getBone("huatao");
|
||||||
|
// GeoBone bullet = getAnimationProcessor().getBone("bullet");
|
||||||
|
//
|
||||||
|
// Player player = Minecraft.getInstance().player;
|
||||||
|
// if (player == null) return;
|
||||||
|
// ItemStack stack = player.getMainHandItem();
|
||||||
|
// if (!(stack.getItem() instanceof GunItem)) 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 fpz = ClientEventHandler.firePosZ * 13 * times;
|
||||||
|
// double fp = ClientEventHandler.firePos;
|
||||||
|
// double fr = ClientEventHandler.fireRot;
|
||||||
|
//
|
||||||
|
// gun.setPosX(1.23f * (float) zp);
|
||||||
|
// gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz));
|
||||||
|
// gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
|
||||||
|
// gun.setScaleZ(1f - (0.55f * (float) zp));
|
||||||
|
//
|
||||||
|
// GeoBone body = getAnimationProcessor().getBone("gun");
|
||||||
|
//
|
||||||
|
// fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
|
||||||
|
// fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
|
||||||
|
//
|
||||||
|
// body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
|
||||||
|
// body.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||||
|
// body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz));
|
||||||
|
// body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz));
|
||||||
|
// body.setRotY(fireRotY);
|
||||||
|
// body.setRotZ(fireRotZ);
|
||||||
|
//
|
||||||
|
// body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt)));
|
||||||
|
// body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt)));
|
||||||
|
// body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt)));
|
||||||
|
// body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt)));
|
||||||
|
// body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt)));
|
||||||
|
// body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
|
||||||
|
//
|
||||||
|
// CrossHairOverlay.gunRot = body.getRotZ();
|
||||||
|
//
|
||||||
|
// slide.setPosZ(1.5f * (float) fp);
|
||||||
|
//
|
||||||
|
// ClientEventHandler.gunRootMove(getAnimationProcessor());
|
||||||
|
//
|
||||||
|
// GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||||
|
// GeoBone main = getAnimationProcessor().getBone("0");
|
||||||
|
//
|
||||||
|
// float numR = (float) (1 - 0.12 * zt);
|
||||||
|
// float numP = (float) (1 - 0.68 * zt);
|
||||||
|
//
|
||||||
|
// var data = GunData.from(stack);
|
||||||
|
//
|
||||||
|
// if (data.reload.time() > 0) {
|
||||||
|
// main.setRotX(numR * main.getRotX());
|
||||||
|
// main.setRotY(numR * main.getRotY());
|
||||||
|
// main.setRotZ(numR * main.getRotZ());
|
||||||
|
// main.setPosX(numP * main.getPosX());
|
||||||
|
// main.setPosY(numP * main.getPosY());
|
||||||
|
// main.setPosZ(numP * main.getPosZ());
|
||||||
|
// camera.setRotX(numR * camera.getRotX());
|
||||||
|
// camera.setRotY(numR * camera.getRotY());
|
||||||
|
// camera.setRotZ(numR * camera.getRotZ());
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||||
|
// AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
|
||||||
|
//
|
||||||
|
// GeoBone shell = getAnimationProcessor().getBone("shell");
|
||||||
|
// GeoBone barrel = getAnimationProcessor().getBone("guan");
|
||||||
|
// if (data.holdOpen.get()) {
|
||||||
|
// slide.setPosZ(1.5f);
|
||||||
|
// barrel.setRotX(4 * Mth.DEG_TO_RAD);
|
||||||
|
// bullet.setScaleX(0);
|
||||||
|
// bullet.setScaleY(0);
|
||||||
|
// bullet.setScaleZ(0);
|
||||||
|
//
|
||||||
|
// shell.setScaleX(0);
|
||||||
|
// shell.setScaleY(0);
|
||||||
|
// shell.setScaleZ(0);
|
||||||
|
// } else {
|
||||||
|
// barrel.setRotX(0);
|
||||||
|
// bullet.setScaleX(1);
|
||||||
|
// bullet.setScaleY(1);
|
||||||
|
// bullet.setScaleZ(1);
|
||||||
|
//
|
||||||
|
// shell.setScaleX(1);
|
||||||
|
// shell.setScaleY(1);
|
||||||
|
// shell.setScaleZ(1);
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,19 +1,9 @@
|
||||||
package com.atsuishio.superbwarfare.client.model.item;
|
package com.atsuishio.superbwarfare.client.model.item;
|
||||||
|
|
||||||
import com.atsuishio.superbwarfare.Mod;
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
|
||||||
import com.atsuishio.superbwarfare.client.overlay.CrossHairOverlay;
|
|
||||||
import com.atsuishio.superbwarfare.data.gun.GunData;
|
|
||||||
import com.atsuishio.superbwarfare.event.ClientEventHandler;
|
|
||||||
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
|
||||||
import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item;
|
import com.atsuishio.superbwarfare.item.gun.handgun.Glock17Item;
|
||||||
import net.minecraft.client.Minecraft;
|
|
||||||
import net.minecraft.resources.ResourceLocation;
|
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.animation.AnimationState;
|
||||||
import software.bernie.geckolib.cache.object.GeoBone;
|
|
||||||
import software.bernie.geckolib.model.GeoModel;
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
public class Glock17ItemModel extends GeoModel<Glock17Item> {
|
public class Glock17ItemModel extends GeoModel<Glock17Item> {
|
||||||
|
@ -23,112 +13,113 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getAnimationResource(Glock17Item animatable) {
|
public ResourceLocation getAnimationResource(Glock17Item animatable) {
|
||||||
return Mod.loc("animations/glock17.animation.json");
|
return Mod.loc("animations/aurelia_sceptre.animation.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getModelResource(Glock17Item animatable) {
|
public ResourceLocation getModelResource(Glock17Item animatable) {
|
||||||
return Mod.loc("geo/glock17.geo.json");
|
return Mod.loc("geo/aurelia_sceptre.geo.json");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getTextureResource(Glock17Item animatable) {
|
public ResourceLocation getTextureResource(Glock17Item animatable) {
|
||||||
return Mod.loc("textures/item/glock17.png");
|
return Mod.loc("textures/item/aurelia_sceptre.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setCustomAnimations(Glock17Item animatable, long instanceId, AnimationState animationState) {
|
public void setCustomAnimations(Glock17Item animatable, long instanceId, AnimationState animationState) {
|
||||||
GeoBone gun = getAnimationProcessor().getBone("bone");
|
// TODO 动画
|
||||||
GeoBone slide = getAnimationProcessor().getBone("huatao");
|
// GeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
GeoBone bullet = getAnimationProcessor().getBone("bullet");
|
// GeoBone slide = getAnimationProcessor().getBone("huatao");
|
||||||
|
// GeoBone bullet = getAnimationProcessor().getBone("bullet");
|
||||||
Player player = Minecraft.getInstance().player;
|
//
|
||||||
if (player == null) return;
|
// Player player = Minecraft.getInstance().player;
|
||||||
ItemStack stack = player.getMainHandItem();
|
// if (player == null) return;
|
||||||
if (!(stack.getItem() instanceof GunItem)) return;
|
// ItemStack stack = player.getMainHandItem();
|
||||||
|
// if (!(stack.getItem() instanceof GunItem)) return;
|
||||||
float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
//
|
||||||
double zt = ClientEventHandler.zoomTime;
|
// float times = 0.6f * (float) Math.min(Minecraft.getInstance().getTimer().getRealtimeDeltaTicks(), 0.8);
|
||||||
double zp = ClientEventHandler.zoomPos;
|
// double zt = ClientEventHandler.zoomTime;
|
||||||
double zpz = ClientEventHandler.zoomPosZ;
|
// double zp = ClientEventHandler.zoomPos;
|
||||||
double fpz = ClientEventHandler.firePosZ * 13 * times;
|
// double zpz = ClientEventHandler.zoomPosZ;
|
||||||
double fp = ClientEventHandler.firePos;
|
// double fpz = ClientEventHandler.firePosZ * 13 * times;
|
||||||
double fr = ClientEventHandler.fireRot;
|
// double fp = ClientEventHandler.firePos;
|
||||||
|
// double fr = ClientEventHandler.fireRot;
|
||||||
gun.setPosX(1.23f * (float) zp);
|
//
|
||||||
gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz));
|
// gun.setPosX(1.23f * (float) zp);
|
||||||
gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
|
// gun.setPosY(1.43f * (float) zp - (float) (0.2f * zpz));
|
||||||
gun.setScaleZ(1f - (0.55f * (float) zp));
|
// gun.setPosZ(7f * (float) zp + (float) (0.3f * zpz));
|
||||||
|
// gun.setScaleZ(1f - (0.55f * (float) zp));
|
||||||
GeoBone body = getAnimationProcessor().getBone("gun");
|
//
|
||||||
|
// GeoBone body = getAnimationProcessor().getBone("gun");
|
||||||
fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
|
//
|
||||||
fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
|
// fireRotY = (float) Mth.lerp(0.3f * times, fireRotY, 0.6f * ClientEventHandler.recoilHorizon * fpz);
|
||||||
|
// fireRotZ = (float) Mth.lerp(2f * times, fireRotZ, (0.4f + 0.5 * fpz) * ClientEventHandler.recoilHorizon);
|
||||||
body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
|
//
|
||||||
body.setPosY((float) (0.15f * fp + 0.18f * fr));
|
// body.setPosX(-0.4f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
|
||||||
body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz));
|
// body.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||||
body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz));
|
// body.setPosZ((float) (1.935 * fp + 0.16f * fr + 0.925 * fpz));
|
||||||
body.setRotY(fireRotY);
|
// body.setRotX((float) (0.08f * fp + 0.1f * fr + 0.35f * fpz));
|
||||||
body.setRotZ(fireRotZ);
|
// body.setRotY(fireRotY);
|
||||||
|
// body.setRotZ(fireRotZ);
|
||||||
body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt)));
|
//
|
||||||
body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt)));
|
// body.setPosX((float) (body.getPosX() * (1 - 0.4 * zt)));
|
||||||
body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt)));
|
// body.setPosY((float) (body.getPosY() * (-1 + 0.5 * zt)));
|
||||||
body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt)));
|
// body.setPosZ((float) (body.getPosZ() * (1 - 0.3 * zt)));
|
||||||
body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt)));
|
// body.setRotX((float) (body.getRotX() * (1 - 0.8 * zt)));
|
||||||
body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
|
// body.setRotY((float) (body.getRotY() * (1 - 0.7 * zt)));
|
||||||
|
// body.setRotZ((float) (body.getRotZ() * (1 - 0.65 * zt)));
|
||||||
CrossHairOverlay.gunRot = body.getRotZ();
|
//
|
||||||
|
// CrossHairOverlay.gunRot = body.getRotZ();
|
||||||
slide.setPosZ(1.5f * (float) fp);
|
//
|
||||||
|
// slide.setPosZ(1.5f * (float) fp);
|
||||||
ClientEventHandler.gunRootMove(getAnimationProcessor());
|
//
|
||||||
|
// ClientEventHandler.gunRootMove(getAnimationProcessor());
|
||||||
GeoBone camera = getAnimationProcessor().getBone("camera");
|
//
|
||||||
GeoBone main = getAnimationProcessor().getBone("0");
|
// GeoBone camera = getAnimationProcessor().getBone("camera");
|
||||||
|
// GeoBone main = getAnimationProcessor().getBone("0");
|
||||||
float numR = (float) (1 - 0.12 * zt);
|
//
|
||||||
float numP = (float) (1 - 0.68 * zt);
|
// float numR = (float) (1 - 0.12 * zt);
|
||||||
|
// float numP = (float) (1 - 0.68 * zt);
|
||||||
var data = GunData.from(stack);
|
//
|
||||||
|
// var data = GunData.from(stack);
|
||||||
if (data.reload.time() > 0) {
|
//
|
||||||
main.setRotX(numR * main.getRotX());
|
// if (data.reload.time() > 0) {
|
||||||
main.setRotY(numR * main.getRotY());
|
// main.setRotX(numR * main.getRotX());
|
||||||
main.setRotZ(numR * main.getRotZ());
|
// main.setRotY(numR * main.getRotY());
|
||||||
main.setPosX(numP * main.getPosX());
|
// main.setRotZ(numR * main.getRotZ());
|
||||||
main.setPosY(numP * main.getPosY());
|
// main.setPosX(numP * main.getPosX());
|
||||||
main.setPosZ(numP * main.getPosZ());
|
// main.setPosY(numP * main.getPosY());
|
||||||
camera.setRotX(numR * camera.getRotX());
|
// main.setPosZ(numP * main.getPosZ());
|
||||||
camera.setRotY(numR * camera.getRotY());
|
// camera.setRotX(numR * camera.getRotX());
|
||||||
camera.setRotZ(numR * camera.getRotZ());
|
// camera.setRotY(numR * camera.getRotY());
|
||||||
}
|
// camera.setRotZ(numR * camera.getRotZ());
|
||||||
|
// }
|
||||||
ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
//
|
||||||
AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
|
// ClientEventHandler.handleReloadShake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||||
|
// AnimationHelper.handleShellsAnimation(getAnimationProcessor(), 0.7f, 1f);
|
||||||
GeoBone shell = getAnimationProcessor().getBone("shell");
|
//
|
||||||
GeoBone barrel = getAnimationProcessor().getBone("guan");
|
// GeoBone shell = getAnimationProcessor().getBone("shell");
|
||||||
if (data.holdOpen.get()) {
|
// GeoBone barrel = getAnimationProcessor().getBone("guan");
|
||||||
slide.setPosZ(1.5f);
|
// if (data.holdOpen.get()) {
|
||||||
barrel.setRotX(4 * Mth.DEG_TO_RAD);
|
// slide.setPosZ(1.5f);
|
||||||
bullet.setScaleX(0);
|
// barrel.setRotX(4 * Mth.DEG_TO_RAD);
|
||||||
bullet.setScaleY(0);
|
// bullet.setScaleX(0);
|
||||||
bullet.setScaleZ(0);
|
// bullet.setScaleY(0);
|
||||||
|
// bullet.setScaleZ(0);
|
||||||
shell.setScaleX(0);
|
//
|
||||||
shell.setScaleY(0);
|
// shell.setScaleX(0);
|
||||||
shell.setScaleZ(0);
|
// shell.setScaleY(0);
|
||||||
} else {
|
// shell.setScaleZ(0);
|
||||||
barrel.setRotX(0);
|
// } else {
|
||||||
bullet.setScaleX(1);
|
// barrel.setRotX(0);
|
||||||
bullet.setScaleY(1);
|
// bullet.setScaleX(1);
|
||||||
bullet.setScaleZ(1);
|
// bullet.setScaleY(1);
|
||||||
|
// bullet.setScaleZ(1);
|
||||||
shell.setScaleX(1);
|
//
|
||||||
shell.setScaleY(1);
|
// shell.setScaleX(1);
|
||||||
shell.setScaleZ(1);
|
// shell.setScaleY(1);
|
||||||
}
|
// shell.setScaleZ(1);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
package com.atsuishio.superbwarfare.client.renderer.gun;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.client.AnimationHelper;
|
||||||
|
import com.atsuishio.superbwarfare.client.model.item.AureliaSceptreModel;
|
||||||
|
import com.atsuishio.superbwarfare.client.renderer.CustomGunRenderer;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.handgun.AureliaSceptre;
|
||||||
|
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.world.item.ItemStack;
|
||||||
|
import software.bernie.geckolib.cache.object.GeoBone;
|
||||||
|
|
||||||
|
public class AureliaSceptreRenderer extends CustomGunRenderer<AureliaSceptre> {
|
||||||
|
|
||||||
|
public AureliaSceptreRenderer() {
|
||||||
|
super(new AureliaSceptreModel());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void renderRecursively(PoseStack stack, AureliaSceptre 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(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
var player = mc.player;
|
||||||
|
if (player == null) return;
|
||||||
|
ItemStack itemStack = player.getMainHandItem();
|
||||||
|
if (!(itemStack.getItem() instanceof GunItem)) return;
|
||||||
|
|
||||||
|
// TODO 准心?
|
||||||
|
AnimationHelper.handleShootFlare(name, stack, itemStack, bone, buffer, packedLightIn, 0, 0, 0.3022, 0.3);
|
||||||
|
|
||||||
|
if (renderingArms) {
|
||||||
|
AnimationHelper.renderArms(player, this.transformType, stack, name, bone, this.currentBuffer, type, packedLightIn, false);
|
||||||
|
}
|
||||||
|
super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, color);
|
||||||
|
}
|
||||||
|
}
|
|
@ -75,11 +75,18 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
this.tag(cTag("plates")).addTags(cTag("plates/copper"));
|
this.tag(cTag("plates")).addTags(cTag("plates/copper"));
|
||||||
this.tag(cTag("plates/copper")).add(ModItems.COPPER_PLATE.get());
|
this.tag(cTag("plates/copper")).add(ModItems.COPPER_PLATE.get());
|
||||||
|
|
||||||
|
// TODO 清理枪械Tag
|
||||||
ModItems.GUNS.getEntries().forEach(registryObject -> this.tag(ModTags.Items.GUN).add(registryObject.get()));
|
ModItems.GUNS.getEntries().forEach(registryObject -> this.tag(ModTags.Items.GUN).add(registryObject.get()));
|
||||||
|
|
||||||
this.tag(ModTags.Items.SMG).add(ModItems.VECTOR.get());
|
this.tag(ModTags.Items.SMG).add(ModItems.VECTOR.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.HANDGUN).add(ModItems.TRACHELIUM.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.MP_443.get());
|
this.tag(ModTags.Items.HANDGUN).add(ModItems.TRACHELIUM.get(),
|
||||||
|
ModItems.GLOCK_17.get(),
|
||||||
|
ModItems.GLOCK_18.get(),
|
||||||
|
ModItems.M_1911.get(),
|
||||||
|
ModItems.MP_443.get(),
|
||||||
|
ModItems.AURELIA_SCEPTRE.get()
|
||||||
|
);
|
||||||
|
|
||||||
this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(),
|
this.tag(ModTags.Items.RIFLE).add(ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.SKS.get(),
|
||||||
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get());
|
ModItems.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get());
|
||||||
|
@ -97,7 +104,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.M_79.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.M_79.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.RPG.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.RPG.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(), ModItems.SECONDARY_CATACLYSM.get(),
|
ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.AURELIA_SCEPTRE.get(), ModItems.QBZ_95.get(), ModItems.K_98.get(), ModItems.MOSIN_NAGANT.get(), ModItems.MP_443.get(), ModItems.INSIDIOUS.get(), ModItems.SECONDARY_CATACLYSM.get(),
|
||||||
ModItems.TASER.get(), ModItems.MINIGUN.get());
|
ModItems.TASER.get(), ModItems.MINIGUN.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.LAUNCHER).add(ModItems.RPG.get(), ModItems.JAVELIN.get())
|
this.tag(ModTags.Items.LAUNCHER).add(ModItems.RPG.get(), ModItems.JAVELIN.get())
|
||||||
|
|
|
@ -55,6 +55,7 @@ public class ModItems {
|
||||||
public static final DeferredHolder<Item, Glock18Item> GLOCK_18 = GUNS.register("glock_18", Glock18Item::new);
|
public static final DeferredHolder<Item, Glock18Item> GLOCK_18 = GUNS.register("glock_18", Glock18Item::new);
|
||||||
public static final DeferredHolder<Item, Mp443Item> MP_443 = GUNS.register("mp_443", Mp443Item::new);
|
public static final DeferredHolder<Item, Mp443Item> MP_443 = GUNS.register("mp_443", Mp443Item::new);
|
||||||
public static final DeferredHolder<Item, M1911Item> M_1911 = GUNS.register("m_1911", M1911Item::new);
|
public static final DeferredHolder<Item, M1911Item> M_1911 = GUNS.register("m_1911", M1911Item::new);
|
||||||
|
public static final DeferredHolder<Item, AureliaSceptre> AURELIA_SCEPTRE = GUNS.register("aurelia_sceptre", AureliaSceptre::new);
|
||||||
public static final DeferredHolder<Item, HomemadeShotgunItem> HOMEMADE_SHOTGUN = GUNS.register("homemade_shotgun", HomemadeShotgunItem::new);
|
public static final DeferredHolder<Item, HomemadeShotgunItem> HOMEMADE_SHOTGUN = GUNS.register("homemade_shotgun", HomemadeShotgunItem::new);
|
||||||
public static final DeferredHolder<Item, Trachelium> TRACHELIUM = GUNS.register("trachelium", Trachelium::new);
|
public static final DeferredHolder<Item, Trachelium> TRACHELIUM = GUNS.register("trachelium", Trachelium::new);
|
||||||
public static final DeferredHolder<Item, VectorItem> VECTOR = GUNS.register("vector", VectorItem::new);
|
public static final DeferredHolder<Item, VectorItem> VECTOR = GUNS.register("vector", VectorItem::new);
|
||||||
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
package com.atsuishio.superbwarfare.item.gun.handgun;
|
||||||
|
|
||||||
|
import com.atsuishio.superbwarfare.Mod;
|
||||||
|
import com.atsuishio.superbwarfare.client.renderer.gun.AureliaSceptreRenderer;
|
||||||
|
import com.atsuishio.superbwarfare.data.gun.GunData;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModEnumExtensions;
|
||||||
|
import com.atsuishio.superbwarfare.init.ModSounds;
|
||||||
|
import com.atsuishio.superbwarfare.item.gun.GunItem;
|
||||||
|
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.item.Item;
|
||||||
|
import net.minecraft.world.item.ItemStack;
|
||||||
|
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.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.function.Consumer;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class AureliaSceptre extends GunItem implements GeoItem {
|
||||||
|
|
||||||
|
private final AnimatableInstanceCache cache = GeckoLibUtil.createInstanceCache(this);
|
||||||
|
|
||||||
|
public AureliaSceptre() {
|
||||||
|
super(new Properties().stacksTo(1).rarity(ModEnumExtensions.getLegendary()));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Supplier<GeoItemRenderer<? extends Item>> getRenderer() {
|
||||||
|
return AureliaSceptreRenderer::new;
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayState fireAnimPredicate(AnimationState<AureliaSceptre> event) {
|
||||||
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
|
if (player == null) return PlayState.STOP;
|
||||||
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||||
|
|
||||||
|
// TODO 装填动画
|
||||||
|
// if (GunData.from(stack).reload.empty()) {
|
||||||
|
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aurelia_sceptre.reload_empty"));
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// if (GunData.from(stack).reload.normal()) {
|
||||||
|
// return event.setAndContinue(RawAnimation.begin().thenPlay("animation.aurelia_sceptre.reload_normal"));
|
||||||
|
// }
|
||||||
|
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.idle"));
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayState idlePredicate(AnimationState<AureliaSceptre> event) {
|
||||||
|
LocalPlayer player = Minecraft.getInstance().player;
|
||||||
|
if (player == null) return PlayState.STOP;
|
||||||
|
ItemStack stack = player.getMainHandItem();
|
||||||
|
if (!(stack.getItem() instanceof GunItem)) return PlayState.STOP;
|
||||||
|
|
||||||
|
// TODO 冲刺动画
|
||||||
|
// if (player.isSprinting() && player.onGround()
|
||||||
|
// && ClientEventHandler.cantSprint == 0
|
||||||
|
// && !(GunData.from(stack).reload.normal() || GunData.from(stack).reload.empty()) && ClientEventHandler.drawTime < 0.01) {
|
||||||
|
// if (ClientEventHandler.tacticalSprint) {
|
||||||
|
// return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.run_fast"));
|
||||||
|
// } else {
|
||||||
|
// return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.run"));
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.aurelia_sceptre.idle"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||||
|
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
|
||||||
|
data.add(fireAnimController);
|
||||||
|
var idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate);
|
||||||
|
data.add(idleController);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AnimatableInstanceCache getAnimatableInstanceCache() {
|
||||||
|
return this.cache;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Set<SoundEvent> getReloadSound() {
|
||||||
|
// TODO 音效
|
||||||
|
return Set.of(ModSounds.GLOCK_17_RELOAD_EMPTY.get(), ModSounds.GLOCK_17_RELOAD_NORMAL.get());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getGunIcon() {
|
||||||
|
// TODO 图标
|
||||||
|
return Mod.loc("textures/gun_icon/aurelia_sceptre_icon.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGunDisplayName() {
|
||||||
|
return "AURELIA SCEPTRE";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addReloadTimeBehavior(Map<Integer, Consumer<GunData>> behaviors) {
|
||||||
|
super.addReloadTimeBehavior(behaviors);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"format_version": "1.8.0",
|
||||||
|
"animations": {
|
||||||
|
"animation.aurelia_sceptre.idle": {
|
||||||
|
"loop": true,
|
||||||
|
"bones": {
|
||||||
|
"group": {
|
||||||
|
"rotation": [
|
||||||
|
90,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18279
src/main/resources/assets/superbwarfare/geo/aurelia_sceptre.geo.json
Normal file
18279
src/main/resources/assets/superbwarfare/geo/aurelia_sceptre.geo.json
Normal file
File diff suppressed because it is too large
Load diff
|
@ -43,6 +43,7 @@
|
||||||
"item.superbwarfare.glock_18": "GLOCK-18",
|
"item.superbwarfare.glock_18": "GLOCK-18",
|
||||||
"item.superbwarfare.m_1911": "M1911A1",
|
"item.superbwarfare.m_1911": "M1911A1",
|
||||||
"item.superbwarfare.mp_443": "MP-443",
|
"item.superbwarfare.mp_443": "MP-443",
|
||||||
|
"item.superbwarfare.aurelia_sceptre": "Aurelia Sceptre",
|
||||||
"item.superbwarfare.qbz_95": "QBZ-95-1",
|
"item.superbwarfare.qbz_95": "QBZ-95-1",
|
||||||
"item.superbwarfare.k_98": "KAR-98K",
|
"item.superbwarfare.k_98": "KAR-98K",
|
||||||
"item.superbwarfare.mosin_nagant": "Mosin Nagant",
|
"item.superbwarfare.mosin_nagant": "Mosin Nagant",
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
"item.superbwarfare.glock_18": "格洛克18手枪",
|
"item.superbwarfare.glock_18": "格洛克18手枪",
|
||||||
"item.superbwarfare.m_1911": "M1911手枪",
|
"item.superbwarfare.m_1911": "M1911手枪",
|
||||||
"item.superbwarfare.mp_443": "MP-443手枪",
|
"item.superbwarfare.mp_443": "MP-443手枪",
|
||||||
|
"item.superbwarfare.aurelia_sceptre": "海月权杖",
|
||||||
"item.superbwarfare.qbz_95": "95-1式自动步枪",
|
"item.superbwarfare.qbz_95": "95-1式自动步枪",
|
||||||
"item.superbwarfare.k_98": "KAR-98K",
|
"item.superbwarfare.k_98": "KAR-98K",
|
||||||
"item.superbwarfare.mosin_nagant": "莫辛纳甘",
|
"item.superbwarfare.mosin_nagant": "莫辛纳甘",
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
"loader": "neoforge:separate_transforms",
|
||||||
|
"gui_light": "front",
|
||||||
|
"base": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_base"
|
||||||
|
},
|
||||||
|
"perspectives": {
|
||||||
|
"gui": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_icon"
|
||||||
|
},
|
||||||
|
"thirdperson_righthand": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_3d"
|
||||||
|
},
|
||||||
|
"thirdperson_lefthand": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_3d"
|
||||||
|
},
|
||||||
|
"ground": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_3d"
|
||||||
|
},
|
||||||
|
"fixed": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_3d"
|
||||||
|
},
|
||||||
|
"head": {
|
||||||
|
"parent": "superbwarfare:item/aurelia_sceptre_3d"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"parent": "superbwarfare:displaysettings/aurelia_sceptre.item",
|
||||||
|
"textures": {
|
||||||
|
"layer0": "superbwarfare:item/aurelia_sceptre"
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 16 KiB |
|
@ -0,0 +1,39 @@
|
||||||
|
{
|
||||||
|
"Spread": 0.5,
|
||||||
|
"RecoilX": 0,
|
||||||
|
"RecoilY": 0,
|
||||||
|
"Damage": 26,
|
||||||
|
"Headshot": 1.5,
|
||||||
|
"Velocity": 14,
|
||||||
|
"Magazine": 4,
|
||||||
|
"Weight": 1,
|
||||||
|
"NormalReloadTime": 20,
|
||||||
|
"EmptyReloadTime": 20,
|
||||||
|
"BypassesArmor": 0.44,
|
||||||
|
"SoundRadius": 2,
|
||||||
|
"RPM": 1100,
|
||||||
|
"BurstAmount": 4,
|
||||||
|
"AvailableFireModes": [
|
||||||
|
"Burst"
|
||||||
|
],
|
||||||
|
"DefaultFireMode": "Burst",
|
||||||
|
"AmmoType": "@HandgunAmmo",
|
||||||
|
"AvailablePerks": [
|
||||||
|
"@Ammo",
|
||||||
|
"superbwarfare:heal_clip",
|
||||||
|
"superbwarfare:field_doctor",
|
||||||
|
"superbwarfare:fourth_times_charm",
|
||||||
|
"superbwarfare:subsistence",
|
||||||
|
"superbwarfare:powerful_attraction",
|
||||||
|
"superbwarfare:intelligent_chip",
|
||||||
|
"superbwarfare:kill_clip",
|
||||||
|
"superbwarfare:gutshot_straight",
|
||||||
|
"superbwarfare:monster_hunter",
|
||||||
|
"superbwarfare:vorpal_weapon",
|
||||||
|
"superbwarfare:firefly",
|
||||||
|
"!superbwarfare:micro_missile",
|
||||||
|
"!superbwarfare:longer_wire",
|
||||||
|
"!superbwarfare:butterfly_bullet",
|
||||||
|
"!superbwarfare:cupid_arrow"
|
||||||
|
]
|
||||||
|
}
|
Loading…
Add table
Reference in a new issue