AK添加配件
This commit is contained in:
parent
7af8ca583c
commit
490840184d
42 changed files with 14122 additions and 5727 deletions
|
@ -1,4 +1,4 @@
|
|||
// 1.20.1 2024-10-20T16:11:59.726701 Tags for minecraft:item mod id superbwarfare
|
||||
// 1.20.1 2024-10-23T17:29:33.3301118 Tags for minecraft:item mod id superbwarfare
|
||||
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
||||
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
||||
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
||||
|
@ -27,7 +27,12 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le
|
|||
3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json
|
||||
144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json
|
||||
4d4dfd25a2a749e000e1bb742c2f984d4e094e5d data/superbwarfare/tags/items/cannot_reload.json
|
||||
5e4b48e22d53f009abdfe557e5911c728ba5f715 data/superbwarfare/tags/items/can_custom_gun.json
|
||||
5e4b48e22d53f009abdfe557e5911c728ba5f715 data/superbwarfare/tags/items/can_apply_barrel.json
|
||||
5e4b48e22d53f009abdfe557e5911c728ba5f715 data/superbwarfare/tags/items/can_apply_grip.json
|
||||
73b1b24e00ea24b494900d06c03c03368f9433ff data/superbwarfare/tags/items/can_apply_magazine.json
|
||||
73b1b24e00ea24b494900d06c03c03368f9433ff data/superbwarfare/tags/items/can_apply_scope.json
|
||||
5e4b48e22d53f009abdfe557e5911c728ba5f715 data/superbwarfare/tags/items/can_apply_stock.json
|
||||
73b1b24e00ea24b494900d06c03c03368f9433ff data/superbwarfare/tags/items/can_custom_gun.json
|
||||
dff9ff6d6637951191906cb55a210ae5a3ad5cd6 data/superbwarfare/tags/items/extra_one_ammo.json
|
||||
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
||||
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12",
|
||||
"superbwarfare:ak_47"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12",
|
||||
"superbwarfare:ak_47"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12"
|
||||
]
|
||||
}
|
|
@ -1,5 +1,6 @@
|
|||
{
|
||||
"values": [
|
||||
"superbwarfare:ak_12"
|
||||
"superbwarfare:ak_12",
|
||||
"superbwarfare:ak_47"
|
||||
]
|
||||
}
|
|
@ -158,6 +158,8 @@ public class ClickHandler {
|
|||
if (player == null) return;
|
||||
if (player.isSpectator()) return;
|
||||
|
||||
ItemStack stack = player.getMainHandItem();
|
||||
|
||||
setKeyState(event);
|
||||
|
||||
int key = event.getKey();
|
||||
|
@ -173,27 +175,30 @@ public class ClickHandler {
|
|||
}
|
||||
if (key == ModKeyMappings.EDIT_MODE.getKey().getValue()) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditModeMessage(0));
|
||||
editModelShake();
|
||||
}
|
||||
|
||||
|
||||
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
|
||||
if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue()) {
|
||||
if (key == ModKeyMappings.EDIT_SCOPE.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_SCOPE)) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(0));
|
||||
editModelShake();
|
||||
}
|
||||
if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue()) {
|
||||
if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_BARREL) && !player.isCrouching()) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(1));
|
||||
editModelShake();
|
||||
}
|
||||
if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue()) {
|
||||
if (key == ModKeyMappings.EDIT_MAGAZINE.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_MAGAZINE)) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(2));
|
||||
editModelShake();
|
||||
}
|
||||
if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue()) {
|
||||
if (key == ModKeyMappings.EDIT_STOCK.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_STOCK)) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(3));
|
||||
editModelShake();
|
||||
}
|
||||
|
||||
if (key == ModKeyMappings.EDIT_BARREL.getKey().getValue() && stack.is(ModTags.Items.CAN_APPLY_GRIP) && player.isCrouching()) {
|
||||
ModUtils.PACKET_HANDLER.sendToServer(new EditMessage(4));
|
||||
editModelShake();
|
||||
}
|
||||
|
||||
}
|
||||
if (key == ModKeyMappings.SENSITIVITY_INCREASE.getKey().getValue()) {
|
||||
|
|
|
@ -13,6 +13,7 @@ public class ItemModelHelper {
|
|||
splitBoneName(bone, name, "Magazine", tag);
|
||||
splitBoneName(bone, name, "Barrel", tag);
|
||||
splitBoneName(bone, name, "Stock", tag);
|
||||
splitBoneName(bone, name, "Grip", tag);
|
||||
}
|
||||
|
||||
private static void splitBoneName(GeoBone bone, String boneName, String tagName, CompoundTag tag) {
|
||||
|
|
|
@ -15,6 +15,8 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
|||
import software.bernie.geckolib.core.animation.AnimationState;
|
||||
import software.bernie.geckolib.model.GeoModel;
|
||||
|
||||
import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne;
|
||||
|
||||
public class AK12ItemModel extends GeoModel<AK12Item> {
|
||||
|
||||
@Override
|
||||
|
@ -75,7 +77,7 @@ public class AK12ItemModel extends GeoModel<AK12Item> {
|
|||
default -> 0f;
|
||||
};
|
||||
float scaleZ = switch (type) {
|
||||
case 0 -> 0.55f;
|
||||
case 0 -> 0.45f;
|
||||
case 1 -> 0.4f;
|
||||
case 2 -> 0.77f;
|
||||
case 3 -> 0.78f;
|
||||
|
@ -101,7 +103,7 @@ public class AK12ItemModel extends GeoModel<AK12Item> {
|
|||
scope2.setScaleZ(1f - (0.3f * (float) zp));
|
||||
scope3.setScaleZ(1f - (0.7f * (float) zp));
|
||||
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.8));
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.85));
|
||||
|
||||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||
|
@ -122,6 +124,13 @@ public class AK12ItemModel extends GeoModel<AK12Item> {
|
|||
cross3.setRotZ(0.01f * (float) (ClientEventHandler.recoilHorizon * fp));
|
||||
cross3.setPosY(-0.23f * (float) (fp + 2.3 * fr));
|
||||
|
||||
CoreGeoBone l = getAnimationProcessor().getBone("l");
|
||||
CoreGeoBone r = getAnimationProcessor().getBone("r");
|
||||
if (isProne(player)) {
|
||||
l.setRotX(-90 * Mth.DEG_TO_RAD);
|
||||
r.setRotX(-90 * Mth.DEG_TO_RAD);
|
||||
}
|
||||
|
||||
CoreGeoBone root = getAnimationProcessor().getBone("root");
|
||||
|
||||
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
package net.mcreator.superbwarfare.client.model.item;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.gun.rifle.AK47Item;
|
||||
import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.util.Mth;
|
||||
|
@ -35,7 +36,7 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
|
|||
public void setCustomAnimations(AK47Item animatable, long instanceId, AnimationState animationState) {
|
||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
|
||||
CoreGeoBone scope = getAnimationProcessor().getBone("kobra");
|
||||
CoreGeoBone scope = getAnimationProcessor().getBone("Scope1");
|
||||
CoreGeoBone shuan = getAnimationProcessor().getBone("shuan");
|
||||
|
||||
Player player = Minecraft.getInstance().player;
|
||||
|
@ -60,10 +61,29 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
|
|||
double fp = ClientEventHandler.firePos;
|
||||
double fr = ClientEventHandler.fireRot;
|
||||
|
||||
gun.setPosX(1.97f * (float) zp);
|
||||
gun.setPosY(0.011f * (float) zp - (float) (0.2f * zpz));
|
||||
gun.setPosZ(3.8f * (float) zp + (float) (0.5f * zpz));
|
||||
gun.setScaleZ(1f - (0.2f * (float) zp));
|
||||
int type = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE);
|
||||
|
||||
float posY = switch (type) {
|
||||
case 0,2,3 -> 1.071f;
|
||||
case 1 -> 0.261f;
|
||||
default -> 0f;
|
||||
};
|
||||
float scaleZ = switch (type) {
|
||||
case 0,2,3 -> 0.55f;
|
||||
case 1 -> 0.2f;
|
||||
default -> 0f;
|
||||
};
|
||||
// float posZ = switch (type) {
|
||||
// case 0, 1 -> 2.8f;
|
||||
// case 2 -> 2.8f;
|
||||
// case 3 -> 2.8f;
|
||||
// default -> 0f;
|
||||
// };
|
||||
|
||||
gun.setPosX(1.962f * (float) zp);
|
||||
gun.setPosY(posY * (float) zp - (float) (0.2f * zpz));
|
||||
gun.setPosZ(2.8f * (float) zp + (float) (0.5f * zpz));
|
||||
gun.setScaleZ(1f - (scaleZ * (float) zp));
|
||||
scope.setScaleZ(1f - (0.4f * (float) zp));
|
||||
|
||||
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.8));
|
||||
|
@ -71,12 +91,12 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
|
|||
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||
shen.setPosY((float) (0.15f * fp + 0.18f * fr));
|
||||
shen.setPosZ((float) (0.275 * fp + 0.34f * fr + 0.65 * fpz));
|
||||
shen.setRotX((float) (0.01f * fp + 0.05f * fr + 0.01f * fpz));
|
||||
shen.setRotX((float) (0.01f * fp + 0.08f * fr + 0.01f * fpz));
|
||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
||||
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
|
||||
|
||||
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
|
||||
shen.setPosY((float) (shen.getPosY() * (-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.9 * zt)));
|
||||
|
@ -96,7 +116,7 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
|
|||
CoreGeoBone main = getAnimationProcessor().getBone("0");
|
||||
|
||||
float numR = (float) (1 - 0.94 * zt);
|
||||
float numP = (float) (1 - 0.8 * zt);
|
||||
float numP = (float) (1 - 0.92 * zt);
|
||||
|
||||
if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) {
|
||||
main.setRotX(numR * main.getRotX());
|
||||
|
|
|
@ -2,10 +2,12 @@ package net.mcreator.superbwarfare.client.renderer.item;
|
|||
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||
import net.mcreator.superbwarfare.client.ItemModelHelper;
|
||||
import net.mcreator.superbwarfare.client.layer.AK47Layer;
|
||||
import net.mcreator.superbwarfare.client.model.item.AK47ItemModel;
|
||||
import net.mcreator.superbwarfare.item.gun.rifle.AK47Item;
|
||||
import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.PlayerModel;
|
||||
import net.minecraft.client.player.AbstractClientPlayer;
|
||||
|
@ -78,42 +80,80 @@ public class AK47ItemRenderer extends GeoItemRenderer<AK47Item> {
|
|||
bone.setHidden(this.hiddenBones.contains(name));
|
||||
}
|
||||
|
||||
if (name.equals("flare")) {
|
||||
Player player = Minecraft.getInstance().player;
|
||||
ItemStack itemStack = null;
|
||||
if (player != null) {
|
||||
itemStack = player.getMainHandItem();
|
||||
}
|
||||
if (itemStack != null && itemStack.getOrCreateTag().getDouble("flash_time") > 0) {
|
||||
bone.setHidden(false);
|
||||
bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||
} else {
|
||||
bone.setHidden(true);
|
||||
}
|
||||
}
|
||||
Player player = mc.player;
|
||||
if (player != null) {
|
||||
ItemStack itemStack = player.getMainHandItem();
|
||||
|
||||
if (name.equals("holo")) {
|
||||
Player player = Minecraft.getInstance().player;
|
||||
ItemStack itemStack = null;
|
||||
if (player != null) {
|
||||
itemStack = player.getMainHandItem();
|
||||
if (name.equals("Cross1")) {
|
||||
bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||
|| GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS
|
||||
|| GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1);
|
||||
}
|
||||
if (player != null) {
|
||||
bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS);
|
||||
|
||||
// if (name.equals("Cross2")) {
|
||||
// bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||
// || GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS
|
||||
// || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2);
|
||||
// }
|
||||
|
||||
// if (name.equals("Cross3")) {
|
||||
// bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||
// || GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) != GLFW.GLFW_PRESS
|
||||
// || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 3);
|
||||
// }
|
||||
|
||||
// if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2
|
||||
// && (name.equals("hidden"))) {
|
||||
// bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS);
|
||||
// }
|
||||
//
|
||||
// if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 3
|
||||
// && (name.equals("jing") || name.equals("Barrel") || name.equals("humu") || name.equals("qiangguan") || name.equals("houzhunxing"))) {
|
||||
// bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS);
|
||||
// }
|
||||
|
||||
if (name.equals("flare")) {
|
||||
// if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 1) {
|
||||
// bone.setPosZ(2.25f);
|
||||
// }
|
||||
if (itemStack.getOrCreateTag().getDouble("flash_time") == 0 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 2) {
|
||||
bone.setHidden(true);
|
||||
} else {
|
||||
bone.setHidden(false);
|
||||
bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5)));
|
||||
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||
}
|
||||
}
|
||||
|
||||
if (name.equals("daogui")) {
|
||||
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 0);
|
||||
}
|
||||
|
||||
if (name.equals("Mag0")) {
|
||||
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.MAGAZINE) != 0);
|
||||
}
|
||||
|
||||
if (name.equals("Mag1")) {
|
||||
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.MAGAZINE) != 1);
|
||||
}
|
||||
|
||||
if (name.equals("Mag2")) {
|
||||
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.MAGAZINE) != 2);
|
||||
}
|
||||
|
||||
ItemModelHelper.handleGunAttachments(bone, itemStack, name);
|
||||
}
|
||||
|
||||
|
||||
if (this.transformType.firstPerson() && renderingArms) {
|
||||
AbstractClientPlayer player = mc.player;
|
||||
AbstractClientPlayer localPlayer = mc.player;
|
||||
|
||||
if (player == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player);
|
||||
PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(localPlayer);
|
||||
PlayerModel<AbstractClientPlayer> model = playerRenderer.getModel();
|
||||
stack.pushPose();
|
||||
RenderUtils.translateMatrixToBone(stack, bone);
|
||||
|
@ -121,7 +161,7 @@ public class AK47ItemRenderer extends GeoItemRenderer<AK47Item> {
|
|||
RenderUtils.rotateMatrixAroundBone(stack, bone);
|
||||
RenderUtils.scaleMatrixForBone(stack, bone);
|
||||
RenderUtils.translateAwayFromPivotPoint(stack, bone);
|
||||
ResourceLocation loc = player.getSkinTextureLocation();
|
||||
ResourceLocation loc = localPlayer.getSkinTextureLocation();
|
||||
VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc));
|
||||
VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc));
|
||||
if (name.equals("Lefthand")) {
|
||||
|
|
|
@ -110,9 +110,20 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
|||
ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(),ModItems.NTW_20.get(), ModItems.M_98B.get(),
|
||||
ModItems.SENTINEL.get(), ModItems.GLOCK_17.get(),ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.QBZ_95.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_CUSTOM_GUN).add(ModItems.AK_12.get());
|
||||
|
||||
this.tag(ModTags.Items.MILITARY_ARMOR).add(ModItems.RU_CHEST_6B43.get(), ModItems.US_CHEST_IOTV.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_CUSTOM_GUN).add(ModItems.AK_12.get(), ModItems.AK_47.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_APPLY_BARREL).add(ModItems.AK_12.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_APPLY_GRIP).add(ModItems.AK_12.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_APPLY_SCOPE).add(ModItems.AK_12.get(), ModItems.AK_47.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_APPLY_MAGAZINE).add(ModItems.AK_12.get(), ModItems.AK_47.get());
|
||||
|
||||
this.tag(ModTags.Items.CAN_APPLY_STOCK).add(ModItems.AK_12.get());
|
||||
|
||||
}
|
||||
|
||||
private static TagKey<Item> forgeTag(String name) {
|
||||
|
|
|
@ -264,7 +264,7 @@ public class ClientEventHandler {
|
|||
if (player.isCrouching() && player.getBbHeight() >= 1 && !isProne(player)) {
|
||||
pose = 0.85f;
|
||||
} else if (isProne(player)) {
|
||||
pose = player.getMainHandItem().getOrCreateTag().getDouble("bipod") == 1 ? 0 : 0.25f;
|
||||
pose = GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.GRIP) == 3 ? 0 : 0.25f;
|
||||
} else {
|
||||
pose = 1;
|
||||
}
|
||||
|
@ -391,7 +391,7 @@ public class ClientEventHandler {
|
|||
if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && isProne(player)) {
|
||||
pose = 0.85;
|
||||
} else if (isProne(player)) {
|
||||
pose = player.getMainHandItem().getOrCreateTag().getDouble("bipod") == 1 ? 0 : 0.25f;
|
||||
pose = GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.GRIP) == 3 ? 0 : 0.25f;
|
||||
} else {
|
||||
pose = 1;
|
||||
}
|
||||
|
@ -630,13 +630,26 @@ public class ClientEventHandler {
|
|||
CompoundTag tag = player.getMainHandItem().getOrCreateTag();
|
||||
float times = (float) Math.min(Minecraft.getInstance().getDeltaFrameTime(), 1.6);
|
||||
int barrelType = GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.BARREL);
|
||||
int gripType = GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.GRIP);
|
||||
|
||||
double recoil = switch (barrelType) {
|
||||
case 1 -> 0.7;
|
||||
case 1 -> 0.9;
|
||||
case 2 -> 1.3;
|
||||
default -> 1.8;
|
||||
};
|
||||
|
||||
double gripRecoilX = switch (gripType) {
|
||||
case 1 -> 0.95;
|
||||
case 2 -> 0.65;
|
||||
default -> 1;
|
||||
};
|
||||
|
||||
double gripRecoilY = switch (gripType) {
|
||||
case 1 -> 0.6;
|
||||
case 2 -> 0.95;
|
||||
default -> 1;
|
||||
};
|
||||
|
||||
double cusWeight = player.getMainHandItem().getOrCreateTag().getDouble("CustomWeight");
|
||||
|
||||
float gunRecoilX = (float) tag.getDouble("recoil_x") * 60;
|
||||
|
@ -654,21 +667,25 @@ public class ClientEventHandler {
|
|||
if (player.isShiftKeyDown() && player.getBbHeight() >= 1 && !isProne(player)) {
|
||||
pose = 0.7f;
|
||||
} else if (isProne(player)) {
|
||||
if (tag.getDouble("bipod") == 1) {
|
||||
if (GunsTool.getAttachmentType(player.getMainHandItem(), GunsTool.AttachmentType.GRIP) == 3) {
|
||||
pose = 0.1f;
|
||||
} else {
|
||||
pose = 0.5f;
|
||||
}
|
||||
}
|
||||
|
||||
float newYaw = player.getYRot() - (float) (0.6 * recoilHorizon * pose * times * (0.5 + fireSpread) * recoil * (1 - 0.06 * cusWeight));
|
||||
// 水平后座
|
||||
|
||||
float newYaw = player.getYRot() - (float) (0.6 * recoilHorizon * pose * times * (0.5 + fireSpread) * recoil * (1 - 0.06 * cusWeight) * gripRecoilX);
|
||||
player.setYRot(newYaw);
|
||||
player.yRotO = player.getYRot();
|
||||
|
||||
double sinRes = 0;
|
||||
|
||||
// 竖直后座
|
||||
|
||||
if (0 < recoilTime && recoilTime < 0.5) {
|
||||
float newPitch = (float) (player.getXRot() - 0.02f * gunRecoilX * times * recoil * (1 - 0.06 * cusWeight));
|
||||
float newPitch = (float) (player.getXRot() - 0.02f * gunRecoilX * times * recoil * (1 - 0.06 * cusWeight) * gripRecoilY);
|
||||
player.setXRot(newPitch);
|
||||
player.xRotO = player.getXRot();
|
||||
}
|
||||
|
@ -684,7 +701,7 @@ public class ClientEventHandler {
|
|||
}
|
||||
|
||||
if (0 < recoilTime && recoilTime < 2.5) {
|
||||
float newPitch = player.getXRot() - (float) (1.5 * pose * gunRecoilX * (sinRes + Mth.clamp(0.5 - recoilTime, 0, 0.5)) * times * (0.5 + fireSpread) * recoil * (1 - 0.06 * cusWeight));
|
||||
float newPitch = player.getXRot() - (float) (1.5 * pose * gunRecoilX * (sinRes + Mth.clamp(0.5 - recoilTime, 0, 0.5)) * times * (0.5 + fireSpread) * recoil * (1 - 0.06 * cusWeight) * gripRecoilY);
|
||||
player.setXRot(newPitch);
|
||||
player.xRotO = player.getXRot();
|
||||
}
|
||||
|
|
|
@ -252,7 +252,7 @@ public class GunEventHandler {
|
|||
}
|
||||
|
||||
projectile.setPos(player.getX() - 0.1 * player.getLookAngle().x, player.getEyeY() - 0.1 - 0.1 * player.getLookAngle().y, player.getZ() + -0.1 * player.getLookAngle().z);
|
||||
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.0005f, player.getLookAngle().z, velocity,
|
||||
projectile.shoot(player.getLookAngle().x, player.getLookAngle().y + 0.001f, player.getLookAngle().z, velocity,
|
||||
(float) spared);
|
||||
player.level().addFreshEntity(projectile);
|
||||
}
|
||||
|
@ -475,7 +475,14 @@ public class GunEventHandler {
|
|||
String origin = stack.getItem().getDescriptionId();
|
||||
String name = origin.substring(origin.lastIndexOf(".") + 1);
|
||||
|
||||
SoundEvent sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(ModUtils.MODID, name + "_reload_normal"));
|
||||
SoundEvent sound1p;
|
||||
|
||||
if (stack.is(ModItems.AK_47.get()) && GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2) {
|
||||
sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(ModUtils.MODID, name + "_reload_normal_drum"));
|
||||
} else {
|
||||
sound1p = ForgeRegistries.SOUND_EVENTS.getValue(new ResourceLocation(ModUtils.MODID, name + "_reload_normal"));
|
||||
}
|
||||
|
||||
if (sound1p != null && player instanceof ServerPlayer serverPlayer) {
|
||||
SoundTool.playLocalSound(serverPlayer, sound1p, 10f, 1f);
|
||||
}
|
||||
|
|
|
@ -191,7 +191,7 @@ public class PlayerEventHandler {
|
|||
*/
|
||||
private static void handlePlayerSprint(Player player) {
|
||||
if (player.getMainHandItem().getOrCreateTag().getInt("flash_time") > 0 || player.getMainHandItem().getOrCreateTag().getInt("fire_animation") > 0) {
|
||||
player.getPersistentData().putDouble("noRun", 20);
|
||||
player.getPersistentData().putDouble("noRun", 10);
|
||||
}
|
||||
|
||||
if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).holdFire) {
|
||||
|
|
|
@ -2,7 +2,9 @@ package net.mcreator.superbwarfare.init;
|
|||
|
||||
import com.mojang.blaze3d.platform.InputConstants;
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.network.message.*;
|
||||
import net.mcreator.superbwarfare.network.message.BreathMessage;
|
||||
import net.mcreator.superbwarfare.network.message.FireModeMessage;
|
||||
import net.mcreator.superbwarfare.network.message.InteractMessage;
|
||||
import net.minecraft.client.KeyMapping;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraftforge.api.distmarker.Dist;
|
||||
|
@ -74,6 +76,8 @@ public class ModKeyMappings {
|
|||
public static final KeyMapping EDIT_BARREL = new KeyMapping("key.superbwarfare.edit_barrel", GLFW.GLFW_KEY_LEFT, "key.categories.superbwarfare");
|
||||
public static final KeyMapping EDIT_MAGAZINE = new KeyMapping("key.superbwarfare.edit_magazine", GLFW.GLFW_KEY_DOWN, "key.categories.superbwarfare");
|
||||
public static final KeyMapping EDIT_STOCK = new KeyMapping("key.superbwarfare.edit_stock", GLFW.GLFW_KEY_RIGHT, "key.categories.superbwarfare");
|
||||
// public static final KeyMapping EDIT_GRIP = new KeyMapping("key.superbwarfare.edit_grip", KeyConflictContext.IN_GAME,
|
||||
// KeyModifier.SHIFT, InputConstants.Type.KEYSYM, GLFW.GLFW_KEY_LEFT, "key.categories.superbwarfare");
|
||||
|
||||
@SubscribeEvent
|
||||
public static void registerKeyMappings(RegisterKeyMappingsEvent event) {
|
||||
|
|
|
@ -73,6 +73,7 @@ public class ModSounds {
|
|||
public static final RegistryObject<SoundEvent> AK_47_FAR = REGISTRY.register("ak_47_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_47_far")));
|
||||
public static final RegistryObject<SoundEvent> AK_47_VERYFAR = REGISTRY.register("ak_47_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_47_veryfar")));
|
||||
public static final RegistryObject<SoundEvent> AK_47_RELOAD_NORMAL = REGISTRY.register("ak_47_reload_normal", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_47_reload_normal")));
|
||||
public static final RegistryObject<SoundEvent> AK_47_RELOAD_NORMAL_DRUM = REGISTRY.register("ak_47_reload_normal_drum", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_47_reload_normal_drum")));
|
||||
public static final RegistryObject<SoundEvent> AK_47_RELOAD_EMPTY = REGISTRY.register("ak_47_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_47_reload_empty")));
|
||||
|
||||
public static final RegistryObject<SoundEvent> AK_12_FIRE_1P = REGISTRY.register("ak_12_fire_1p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "ak_12_fire_1p")));
|
||||
|
|
|
@ -33,6 +33,12 @@ public class ModTags {
|
|||
public static final TagKey<Item> IS_AUTO_WEAPON = tag("is_auto_weapon");
|
||||
public static final TagKey<Item> CAN_CUSTOM_GUN = tag("can_custom_gun");
|
||||
|
||||
public static final TagKey<Item> CAN_APPLY_BARREL = tag("can_apply_barrel");
|
||||
public static final TagKey<Item> CAN_APPLY_SCOPE = tag("can_apply_scope");
|
||||
public static final TagKey<Item> CAN_APPLY_GRIP = tag("can_apply_grip");
|
||||
public static final TagKey<Item> CAN_APPLY_MAGAZINE = tag("can_apply_magazine");
|
||||
public static final TagKey<Item> CAN_APPLY_STOCK= tag("can_apply_stock");
|
||||
|
||||
public static final TagKey<Item> MILITARY_ARMOR = tag("military_armor");
|
||||
public static final TagKey<Item> MILITARY_ARMOR_HEAVY = tag("military_armor_heavy");
|
||||
|
||||
|
|
|
@ -177,15 +177,6 @@ public abstract class GunItem extends Item {
|
|||
stack.getOrCreateTag().putInt("ammo", Math.min(mag, stack.getOrCreateTag().getInt("ammo") + 2));
|
||||
}
|
||||
}
|
||||
|
||||
// int ctmMag = stack.getOrCreateTag().getInt("mag");
|
||||
// if (stack.is(ModTags.Items.USE_SNIPER_AMMO)) {
|
||||
// stack.getOrCreateTag().putInt("customMag", (int) (Math.ceil(0.1 * PerkHelper.getItemPerkLevel(ModPerks.DIMENSION_MAGAZINE.get(), stack) * ctmMag)));
|
||||
// } else if (stack.is(ModTags.Items.USE_SHOTGUN_AMMO)) {
|
||||
// stack.getOrCreateTag().putInt("customMag", (int) (Math.ceil(0.075 * PerkHelper.getItemPerkLevel(ModPerks.DIMENSION_MAGAZINE.get(), stack) * ctmMag)));
|
||||
// } else {
|
||||
// stack.getOrCreateTag().putInt("customMag", (int) (Math.ceil(0.15 * PerkHelper.getItemPerkLevel(ModPerks.DIMENSION_MAGAZINE.get(), stack) * ctmMag)));
|
||||
// }
|
||||
}
|
||||
|
||||
private void handleGunAttachment(ItemStack stack) {
|
||||
|
@ -216,9 +207,15 @@ public abstract class GunItem extends Item {
|
|||
default -> 0;
|
||||
};
|
||||
|
||||
double gripWeight = switch (tag.getInt("Grip")) {
|
||||
case 1, 2 -> 0.5;
|
||||
case 3 -> 1;
|
||||
default -> 0;
|
||||
};
|
||||
|
||||
double soundRadius = tag.getInt("Barrel") == 2 ? 0.25 : 1;
|
||||
|
||||
stack.getOrCreateTag().putDouble("CustomWeight", scopeWeight + barrelWeight + magazineWeight + stockWeight);
|
||||
stack.getOrCreateTag().putDouble("CustomWeight", scopeWeight + barrelWeight + magazineWeight + stockWeight + gripWeight);
|
||||
stack.getOrCreateTag().putDouble("CustomSoundRadius", soundRadius);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package net.mcreator.superbwarfare.item.gun.rifle;
|
||||
|
||||
import net.mcreator.superbwarfare.ModUtils;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.mcreator.superbwarfare.client.renderer.item.AK47ItemRenderer;
|
||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||
import net.mcreator.superbwarfare.init.ModItems;
|
||||
|
@ -8,10 +9,10 @@ import net.mcreator.superbwarfare.init.ModSounds;
|
|||
import net.mcreator.superbwarfare.init.ModTags;
|
||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||
import net.mcreator.superbwarfare.network.ModVariables;
|
||||
import net.mcreator.superbwarfare.perk.Perk;
|
||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||
import net.mcreator.superbwarfare.client.PoseTool;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.model.HumanoidModel;
|
||||
import net.minecraft.client.player.LocalPlayer;
|
||||
|
@ -20,11 +21,13 @@ import net.minecraft.resources.ResourceLocation;
|
|||
import net.minecraft.sounds.SoundEvent;
|
||||
import net.minecraft.world.InteractionHand;
|
||||
import net.minecraft.world.effect.MobEffects;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.LivingEntity;
|
||||
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 net.minecraft.world.level.Level;
|
||||
import net.minecraftforge.client.extensions.common.IClientItemExtensions;
|
||||
import software.bernie.geckolib.animatable.GeoItem;
|
||||
import software.bernie.geckolib.core.animatable.instance.AnimatableInstanceCache;
|
||||
|
@ -84,7 +87,11 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
}
|
||||
|
||||
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal"));
|
||||
if (GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE) == 2) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal_drum"));
|
||||
} else {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.reload_normal"));
|
||||
}
|
||||
}
|
||||
|
||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||
|
@ -98,10 +105,25 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.idle"));
|
||||
}
|
||||
|
||||
private PlayState editPredicate(AnimationState<AK47Item> 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;
|
||||
|
||||
if (player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).edit) {
|
||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.ak47.edit"));
|
||||
}
|
||||
|
||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.ak47.idle"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||
var idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
||||
data.add(idleController);
|
||||
var editController = new AnimationController<>(this, "editController", 1, this::editPredicate);
|
||||
data.add(editController);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -119,6 +141,34 @@ public class AK47Item extends GunItem implements GeoItem, AnimatedItem {
|
|||
public void setAnimationProcedure(String procedure) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
|
||||
super.inventoryTick(stack, world, entity, slot, selected);
|
||||
|
||||
int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE);
|
||||
int barrelType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.BARREL);
|
||||
int magType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE);
|
||||
int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK);
|
||||
|
||||
int customMag = switch (magType) {
|
||||
case 1 -> 15;
|
||||
case 2 -> 40;
|
||||
default -> 0;
|
||||
};
|
||||
|
||||
double customZoom = switch (scopeType) {
|
||||
case 0, 1 -> 0;
|
||||
case 2 -> 2.75;
|
||||
default -> stack.getOrCreateTag().getDouble("CustomZoom");
|
||||
};
|
||||
|
||||
stack.getOrCreateTag().putBoolean("CanAdjustZoomFov", scopeType == 3);
|
||||
|
||||
stack.getOrCreateTag().putDouble("CustomZoom", customZoom);
|
||||
|
||||
stack.getOrCreateTag().putInt("customMag", customMag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ResourceLocation getGunIcon() {
|
||||
return new ResourceLocation(ModUtils.MODID, "textures/gun_icon/ak_47_icon.png");
|
||||
|
|
|
@ -64,6 +64,12 @@ public class EditMessage {
|
|||
att %= 3;
|
||||
tag.putInt("Stock", att);
|
||||
}
|
||||
case 4 -> {
|
||||
int att = tag.getInt("Grip");
|
||||
att++;
|
||||
att %= 4;
|
||||
tag.putInt("Grip", att);
|
||||
}
|
||||
}
|
||||
stack.addTagElement("Attachments", tag);
|
||||
SoundTool.playLocalSound(player, ModSounds.EDIT.get(), 1f, 1f);
|
||||
|
|
|
@ -164,7 +164,8 @@ public class GunsTool {
|
|||
SCOPE("Scope"),
|
||||
MAGAZINE("Magazine"),
|
||||
BARREL("Barrel"),
|
||||
STOCK("Stock");
|
||||
STOCK("Stock"),
|
||||
GRIP("Grip");
|
||||
|
||||
private final String name;
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -200,11 +200,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"magazine2": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
},
|
||||
"Lefthand": {
|
||||
"rotation": {
|
||||
"vector": [-1.41476, -16.33468, -1.66483]
|
||||
|
@ -902,32 +897,39 @@
|
|||
"easing": "easeOutSine"
|
||||
},
|
||||
"1.1": {
|
||||
"vector": [-49.77006, 64.26495, -91.19885]
|
||||
"vector": [8.96186, 2.0287, -3.2794]
|
||||
},
|
||||
"1.1333": {
|
||||
"vector": [-47.55314, 65.39596, -103.44208]
|
||||
"vector": [10.14796, 1.03822, -17.5079]
|
||||
},
|
||||
"1.2": {
|
||||
"vector": [-46.07222, 70.25928, -87.18593]
|
||||
"vector": [15.47014, -1.87641, -9.25971]
|
||||
},
|
||||
"1.2667": {
|
||||
"vector": [-16.54273, 37.67935, -40.57865]
|
||||
"vector": [-2.21105, -13.60693, 5.606]
|
||||
},
|
||||
"1.3167": {
|
||||
"vector": [-13.30798, -10.54682, 23.55855]
|
||||
"vector": [-12.93896, -12.29493, 22.09467]
|
||||
},
|
||||
"1.3833": {
|
||||
"vector": [-16.2633, -16.81844, 40.76366]
|
||||
},
|
||||
"1.45": {
|
||||
"vector": [-19.26177, -22.55603, 58.49338],
|
||||
"vector": [-26.42462, -24.4908, 57.19633],
|
||||
"easing": "linear"
|
||||
},
|
||||
"1.55": {
|
||||
"vector": [-23.13815, -22.34869, 50.80967],
|
||||
"easing": "linear"
|
||||
},
|
||||
"1.6333": {
|
||||
"vector": [-30.96238, -13.84396, 58.89893]
|
||||
"vector": [-30.61838, -18.5508, 57.11005]
|
||||
},
|
||||
"1.7333": {
|
||||
"vector": [-27.96238, -13.84396, 58.89893]
|
||||
"vector": [-29.15028, -18.84594, 56.47139]
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [-22.71238, -13.84396, 58.89893]
|
||||
"vector": [-29.15028, -18.84594, 56.47139]
|
||||
},
|
||||
"1.9167": {
|
||||
"vector": [-25.10279, -2.73231, 57.98657],
|
||||
|
@ -985,6 +987,10 @@
|
|||
"vector": [-2.65755, -2.13952, 4.93059],
|
||||
"easing": "linear"
|
||||
},
|
||||
"1.55": {
|
||||
"vector": [-2.65755, -2.13952, 4.93059],
|
||||
"easing": "linear"
|
||||
},
|
||||
"1.6333": {
|
||||
"vector": [-3.27214, -1.48037, 6.08189]
|
||||
},
|
||||
|
@ -992,7 +998,7 @@
|
|||
"vector": [-3.21729, -1.68999, 6.47986]
|
||||
},
|
||||
"1.8333": {
|
||||
"vector": [-3.87892, -2.04721, 6.87809]
|
||||
"vector": [-3.21729, -1.68999, 6.47986]
|
||||
},
|
||||
"1.9167": {
|
||||
"vector": [-4.22575, -1.43666, 6.09951],
|
||||
|
@ -1435,18 +1441,16 @@
|
|||
},
|
||||
"bolt": {
|
||||
"position": {
|
||||
"0.1833": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.25": {
|
||||
"vector": [0, 0, 0]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [0, 0, 3.75],
|
||||
"vector": [0, 0, 4.75],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"2.1667": {
|
||||
"vector": [0, 0, 3.75]
|
||||
"vector": [0, 0, 4.75],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"2.2333": {
|
||||
"vector": [0, 0, 0]
|
||||
|
@ -1506,11 +1510,11 @@
|
|||
"vector": [1.18594, 2.81484, -4.66016]
|
||||
},
|
||||
"0.3333": {
|
||||
"vector": [1.18594, 2.81484, -0.91016],
|
||||
"vector": [1.24383, 3.06327, -0.87708],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"2.1667": {
|
||||
"vector": [1.18594, 2.81484, -0.91016],
|
||||
"vector": [1.24383, 3.06327, -0.87708],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"2.2833": {
|
||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -334,7 +334,7 @@
|
|||
"key.superbwarfare.config": "Open Config Screen",
|
||||
"key.superbwarfare.edit_mode": "Edit Weapon",
|
||||
"key.superbwarfare.edit_scope": "Switch Scope",
|
||||
"key.superbwarfare.edit_barrel": "Switch Barrel",
|
||||
"key.superbwarfare.edit_barrel": "Switch Barrel / Grip(Sneak)",
|
||||
"key.superbwarfare.edit_magazine": "Switch Magazine",
|
||||
"key.superbwarfare.edit_stock": "Switch Stock",
|
||||
|
||||
|
|
|
@ -334,7 +334,7 @@
|
|||
"key.superbwarfare.config": "打开配置界面",
|
||||
"key.superbwarfare.edit_mode": "改装",
|
||||
"key.superbwarfare.edit_scope": "切换瞄准镜",
|
||||
"key.superbwarfare.edit_barrel": "切换枪管配件",
|
||||
"key.superbwarfare.edit_barrel": "切换枪管配件/握把(潜行)",
|
||||
"key.superbwarfare.edit_magazine": "切换弹匣",
|
||||
"key.superbwarfare.edit_stock": "切换枪托",
|
||||
|
||||
|
|
|
@ -9,8 +9,13 @@
|
|||
"firstperson_righthand": {
|
||||
"translation": [
|
||||
-6.5,
|
||||
3.75,
|
||||
5
|
||||
3.5,
|
||||
4.5
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1.2
|
||||
]
|
||||
},
|
||||
"firstperson_lefthand": {
|
||||
|
|
|
@ -279,6 +279,14 @@
|
|||
}
|
||||
]
|
||||
},
|
||||
"ak_47_reload_normal_drum": {
|
||||
"sounds": [
|
||||
{
|
||||
"name": "superbwarfare:ak_47/ak_47_reload_normal_drum",
|
||||
"stream": false
|
||||
}
|
||||
]
|
||||
},
|
||||
"ak_47_reload_empty": {
|
||||
"sounds": [
|
||||
{
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 92 KiB |
Binary file not shown.
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 34 KiB |
Binary file not shown.
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 13 KiB |
|
@ -1,4 +1,6 @@
|
|||
{
|
||||
"MinZoom": 1.25,
|
||||
"MaxZoom": 6,
|
||||
"spread": 4,
|
||||
"recoil_x": 0.002,
|
||||
"recoil_y": 0.012,
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"CustomZoom": 0.75,
|
||||
"spread": 5,
|
||||
"bipod": 1,
|
||||
"recoil_x": 0.0018,
|
||||
"recoil_y": 0.01,
|
||||
"damage": 9.5,
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"spread": 5,
|
||||
"bipod": 1,
|
||||
"recoil_x": 0.004,
|
||||
"recoil_y": 0.014,
|
||||
"damage": 9,
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"CustomZoom": 3.75,
|
||||
"spread": 5,
|
||||
"bipod": 1,
|
||||
"recoil_x": 0.006,
|
||||
"recoil_y": 0.014,
|
||||
"damage": 12,
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"CustomZoom": 3.75,
|
||||
"bipod": 1,
|
||||
"spread": 8,
|
||||
"recoil_x": 0.01,
|
||||
"recoil_y": 0.038,
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"spread": 5.5,
|
||||
"bipod": 1,
|
||||
"recoil_x": 0.0018,
|
||||
"recoil_y": 0.012,
|
||||
"damage": 8.75,
|
||||
|
|
Loading…
Add table
Reference in a new issue