添加夕雾花左轮的配件适配
This commit is contained in:
parent
24287b7328
commit
123e7bf075
30 changed files with 16402 additions and 1628 deletions
|
@ -1,4 +1,4 @@
|
||||||
// 1.20.1 2024-11-17T15:53:56.1798981 Tags for minecraft:item mod id superbwarfare
|
// 1.20.1 2024-11-23T23:05:38.8366049 Tags for minecraft:item mod id superbwarfare
|
||||||
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
cf8d49a8d2872286d1a9c3d4a7e1c2b7690db0b8 data/forge/tags/items/dusts.json
|
||||||
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
0fa06c2ff83bf09797e3ddff90f62d1124e645b4 data/forge/tags/items/dusts/coal_coke.json
|
||||||
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
295ddf906b7133a0558d03e9a60eea18281fe430 data/forge/tags/items/dusts/iron.json
|
||||||
|
@ -27,12 +27,12 @@ af6fd64b4a685c353f243763db268f7b2304c009 data/forge/tags/items/storage_blocks/le
|
||||||
3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json
|
3743c2790deca7e779d3e4b82f092de39b446988 data/forge/tags/items/storage_blocks/steel.json
|
||||||
144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json
|
144e54d908121dee498b2ebba3b24b09fd6f18d9 data/forge/tags/items/storage_blocks/tungsten.json
|
||||||
4d4dfd25a2a749e000e1bb742c2f984d4e094e5d data/superbwarfare/tags/items/cannot_reload.json
|
4d4dfd25a2a749e000e1bb742c2f984d4e094e5d data/superbwarfare/tags/items/cannot_reload.json
|
||||||
785859aa510afdd9153a306eda6acfac71eefa9f data/superbwarfare/tags/items/can_apply_barrel.json
|
61eb85190c6bd4373fe3f033dfdf4659a1c70744 data/superbwarfare/tags/items/can_apply_barrel.json
|
||||||
25f2401d6f8c466b44274bcb6eddad6fa6f6d94f data/superbwarfare/tags/items/can_apply_grip.json
|
d2176acdd2d0337c17bd99b71f6afc812d21afdd data/superbwarfare/tags/items/can_apply_grip.json
|
||||||
785859aa510afdd9153a306eda6acfac71eefa9f data/superbwarfare/tags/items/can_apply_magazine.json
|
785859aa510afdd9153a306eda6acfac71eefa9f data/superbwarfare/tags/items/can_apply_magazine.json
|
||||||
785859aa510afdd9153a306eda6acfac71eefa9f data/superbwarfare/tags/items/can_apply_scope.json
|
61eb85190c6bd4373fe3f033dfdf4659a1c70744 data/superbwarfare/tags/items/can_apply_scope.json
|
||||||
92e3d5c30f3d6893d64dddc24d748250a6760ba4 data/superbwarfare/tags/items/can_apply_stock.json
|
d6eaee42f107abb373a5c30759232b218a25635d data/superbwarfare/tags/items/can_apply_stock.json
|
||||||
785859aa510afdd9153a306eda6acfac71eefa9f data/superbwarfare/tags/items/can_custom_gun.json
|
61eb85190c6bd4373fe3f033dfdf4659a1c70744 data/superbwarfare/tags/items/can_custom_gun.json
|
||||||
dff9ff6d6637951191906cb55a210ae5a3ad5cd6 data/superbwarfare/tags/items/extra_one_ammo.json
|
dff9ff6d6637951191906cb55a210ae5a3ad5cd6 data/superbwarfare/tags/items/extra_one_ammo.json
|
||||||
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
52598e22974c8da0d2852defe4c9005e1d67744b data/superbwarfare/tags/items/gun.json
|
||||||
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
62eb408544731ce4cfcd119d8a6cc74731189ac0 data/superbwarfare/tags/items/handgun.json
|
||||||
|
@ -48,7 +48,7 @@ aaa533157491a82b8e23b2914deef67c4078cbed data/superbwarfare/tags/items/rifle.jso
|
||||||
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
|
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/shotgun.json
|
||||||
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/items/smg.json
|
4aca0fa3f8b9f2a4920041e35e46dae7e93d5482 data/superbwarfare/tags/items/smg.json
|
||||||
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/sniper_rifle.json
|
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/sniper_rifle.json
|
||||||
89139144b7557cfd8fdeca93b0af28e69bb18d76 data/superbwarfare/tags/items/use_handgun_ammo.json
|
202756a5a9085f5883ca34424a79c1b7831101a9 data/superbwarfare/tags/items/use_handgun_ammo.json
|
||||||
cb6859a204e1601f93895960caa5cefda0b78b08 data/superbwarfare/tags/items/use_rifle_ammo.json
|
2899774c6325135847a85b09121ce25587aa275e data/superbwarfare/tags/items/use_rifle_ammo.json
|
||||||
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/use_shotgun_ammo.json
|
acd4d19dfadb71a1cec43e9c0f4a38fe8d3cf8cb data/superbwarfare/tags/items/use_shotgun_ammo.json
|
||||||
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/use_sniper_ammo.json
|
13a23684e04832bea5dfbd2c0a9d9ed52dcb3422 data/superbwarfare/tags/items/use_sniper_ammo.json
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
"superbwarfare:m_4",
|
"superbwarfare:m_4",
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:vector"
|
"superbwarfare:vector",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:ak_47",
|
"superbwarfare:ak_47",
|
||||||
"superbwarfare:vector"
|
"superbwarfare:vector",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
"superbwarfare:m_4",
|
"superbwarfare:m_4",
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:vector"
|
"superbwarfare:vector",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -4,6 +4,7 @@
|
||||||
"superbwarfare:ak_47",
|
"superbwarfare:ak_47",
|
||||||
"superbwarfare:m_4",
|
"superbwarfare:m_4",
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:vector"
|
"superbwarfare:vector",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -5,6 +5,7 @@
|
||||||
"superbwarfare:m_4",
|
"superbwarfare:m_4",
|
||||||
"superbwarfare:hk_416",
|
"superbwarfare:hk_416",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:vector"
|
"superbwarfare:vector",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,6 +1,5 @@
|
||||||
{
|
{
|
||||||
"values": [
|
"values": [
|
||||||
"superbwarfare:trachelium",
|
|
||||||
"superbwarfare:glock_17",
|
"superbwarfare:glock_17",
|
||||||
"superbwarfare:glock_18",
|
"superbwarfare:glock_18",
|
||||||
"superbwarfare:m_1911",
|
"superbwarfare:m_1911",
|
||||||
|
|
|
@ -11,6 +11,7 @@
|
||||||
"superbwarfare:ak_47",
|
"superbwarfare:ak_47",
|
||||||
"superbwarfare:ak_12",
|
"superbwarfare:ak_12",
|
||||||
"superbwarfare:qbz_95",
|
"superbwarfare:qbz_95",
|
||||||
"superbwarfare:rpk"
|
"superbwarfare:rpk",
|
||||||
|
"superbwarfare:trachelium"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -116,7 +116,8 @@ public class ClickHandler {
|
||||||
|
|
||||||
if (player.getMainHandItem().is(ModTags.Items.GUN)
|
if (player.getMainHandItem().is(ModTags.Items.GUN)
|
||||||
|| stack.is(ModItems.MONITOR.get())
|
|| stack.is(ModItems.MONITOR.get())
|
||||||
|| (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity && player.getMainHandItem().getItem() instanceof CannonShellItem)) {
|
|| (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity && player.getMainHandItem().getItem() instanceof CannonShellItem)
|
||||||
|
|| (stack.is(Items.SPYGLASS) && player.isScoping() && player.getOffhandItem().is(ModItems.FIRING_PARAMETERS.get()))) {
|
||||||
if (button == ModKeyMappings.FIRE.getKey().getValue()) {
|
if (button == ModKeyMappings.FIRE.getKey().getValue()) {
|
||||||
handleWeaponFirePress(player, stack);
|
handleWeaponFirePress(player, stack);
|
||||||
}
|
}
|
||||||
|
@ -236,7 +237,8 @@ public class ClickHandler {
|
||||||
|
|
||||||
if (player.getMainHandItem().is(ModTags.Items.GUN)
|
if (player.getMainHandItem().is(ModTags.Items.GUN)
|
||||||
|| stack.is(ModItems.MONITOR.get())
|
|| stack.is(ModItems.MONITOR.get())
|
||||||
|| (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity && player.getMainHandItem().getItem() instanceof CannonShellItem)) {
|
|| (player.getVehicle() != null && player.getVehicle() instanceof ICannonEntity && player.getMainHandItem().getItem() instanceof CannonShellItem)
|
||||||
|
|| (stack.is(Items.SPYGLASS) && player.isScoping() && player.getOffhandItem().is(ModItems.FIRING_PARAMETERS.get()))) {
|
||||||
if (key == ModKeyMappings.FIRE.getKey().getValue()) {
|
if (key == ModKeyMappings.FIRE.getKey().getValue()) {
|
||||||
handleWeaponFirePress(player, stack);
|
handleWeaponFirePress(player, stack);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
||||||
|
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
import net.minecraft.util.Mth;
|
import net.minecraft.util.Mth;
|
||||||
|
@ -14,8 +15,18 @@ import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
|
||||||
import software.bernie.geckolib.core.animation.AnimationState;
|
import software.bernie.geckolib.core.animation.AnimationState;
|
||||||
import software.bernie.geckolib.model.GeoModel;
|
import software.bernie.geckolib.model.GeoModel;
|
||||||
|
|
||||||
|
import static net.mcreator.superbwarfare.event.PlayerEventHandler.isProne;
|
||||||
|
|
||||||
public class TracheliumItemModel extends GeoModel<Trachelium> {
|
public class TracheliumItemModel extends GeoModel<Trachelium> {
|
||||||
|
|
||||||
|
public static float posYAlt = -0.83f;
|
||||||
|
public static float scaleZAlt = 0.8f;
|
||||||
|
public static float posZAlt = 13.7f;
|
||||||
|
|
||||||
|
public static float fireRotY = 0f;
|
||||||
|
public static float fireRotZ = 0f;
|
||||||
|
public static float rotXBipod = 0f;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ResourceLocation getAnimationResource(Trachelium animatable) {
|
public ResourceLocation getAnimationResource(Trachelium animatable) {
|
||||||
return ModUtils.loc("animations/trachelium.animation.json");
|
return ModUtils.loc("animations/trachelium.animation.json");
|
||||||
|
@ -36,6 +47,13 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
|
||||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
CoreGeoBone hammer = getAnimationProcessor().getBone("jichui");
|
CoreGeoBone hammer = getAnimationProcessor().getBone("jichui");
|
||||||
CoreGeoBone lun = getAnimationProcessor().getBone("lun");
|
CoreGeoBone lun = getAnimationProcessor().getBone("lun");
|
||||||
|
CoreGeoBone barrel1 = getAnimationProcessor().getBone("Barrel1");
|
||||||
|
CoreGeoBone barrel2 = getAnimationProcessor().getBone("Barrel2");
|
||||||
|
CoreGeoBone flare = getAnimationProcessor().getBone("flare");
|
||||||
|
CoreGeoBone camera = getAnimationProcessor().getBone("camera");
|
||||||
|
CoreGeoBone main = getAnimationProcessor().getBone("0");
|
||||||
|
CoreGeoBone scope2 = getAnimationProcessor().getBone("Scope2");
|
||||||
|
// CoreGeoBone scope3 = getAnimationProcessor().getBone("Scope3");
|
||||||
|
|
||||||
Player player = Minecraft.getInstance().player;
|
Player player = Minecraft.getInstance().player;
|
||||||
if (player == null) return;
|
if (player == null) return;
|
||||||
|
@ -60,38 +78,79 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
|
||||||
double fp = ClientEventHandler.firePos;
|
double fp = ClientEventHandler.firePos;
|
||||||
double fr = ClientEventHandler.fireRot;
|
double fr = ClientEventHandler.fireRot;
|
||||||
|
|
||||||
gun.setPosX(1.26f * (float) zp);
|
int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK);
|
||||||
gun.setPosY(1.1f * (float) zp - (float) (0.6f * zpz));
|
int barrelType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.BARREL);
|
||||||
gun.setPosZ((float) zp + (float) (0.2f * zpz));
|
int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE);
|
||||||
gun.setScaleZ(1f - (0.2f * (float) zp));
|
int gripType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP);
|
||||||
|
|
||||||
|
posYAlt = Mth.lerp(times, posYAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? -1.98f : -0.83f);
|
||||||
|
scaleZAlt = Mth.lerp(times, scaleZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? 0.4f : 0.8f);
|
||||||
|
posZAlt = Mth.lerp(times, posZAlt, stack.getOrCreateTag().getBoolean("ScopeAlt") ? 7.5f : 13.7f);
|
||||||
|
|
||||||
|
float posY = switch (scopeType) {
|
||||||
|
case 0 -> 1.1f;
|
||||||
|
case 1 -> -0.18f;
|
||||||
|
case 2 -> posYAlt;
|
||||||
|
case 3 -> 1.1f;
|
||||||
|
default -> 0f;
|
||||||
|
};
|
||||||
|
float scaleZ = switch (scopeType) {
|
||||||
|
case 0 -> 0.2f;
|
||||||
|
case 1 -> 0.6f;
|
||||||
|
case 2 -> scaleZAlt;
|
||||||
|
case 3 -> 0.2f;
|
||||||
|
default -> 0f;
|
||||||
|
};
|
||||||
|
float posZ = switch (scopeType) {
|
||||||
|
case 0 -> 1f;
|
||||||
|
case 1 -> 6f;
|
||||||
|
case 2 -> posZAlt;
|
||||||
|
case 3 -> 1f;
|
||||||
|
default -> 0f;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
float posZAlt = stockType == 2 ? 1 : 0;
|
||||||
|
|
||||||
|
gun.setPosX((float) (3.48f * zp));
|
||||||
|
gun.setPosY((float) (posY * zp - 0.2f * zpz));
|
||||||
|
gun.setPosZ((float)(posZ * zp + 0.2f * zpz) + posZAlt);
|
||||||
|
gun.setScaleZ((float) (1f - scaleZ * zp));
|
||||||
|
|
||||||
|
scope2.setScaleZ(1f - (0.7f * (float) zp));
|
||||||
|
|
||||||
CoreGeoBone shen;
|
CoreGeoBone shen;
|
||||||
if (zt < 0.5) {
|
if (zt < 0.5) {
|
||||||
shen = getAnimationProcessor().getBone("fireRootNormal");
|
shen = getAnimationProcessor().getBone("fireRootNormal");
|
||||||
} else {
|
} else {
|
||||||
shen = getAnimationProcessor().getBone("fireRoot0");
|
shen = switch (scopeType) {
|
||||||
// shen = switch (type) {
|
case 0 -> getAnimationProcessor().getBone("fireRoot0");
|
||||||
// case 0 -> getAnimationProcessor().getBone("fireRoot0");
|
case 1 -> getAnimationProcessor().getBone("fireRoot1");
|
||||||
// case 1 -> getAnimationProcessor().getBone("fireRoot1");
|
case 2 -> getAnimationProcessor().getBone("fireRoot2");
|
||||||
// case 2 -> getAnimationProcessor().getBone("fireRoot2");
|
case 3 -> getAnimationProcessor().getBone("fireRoot3");
|
||||||
// default -> getAnimationProcessor().getBone("fireRootNormal");
|
default -> 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((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
|
||||||
shen.setPosY((float) (0.2f * fp + 0.24f * fr));
|
shen.setPosY((float) (0.2f * fp + 0.24f * fr));
|
||||||
shen.setPosZ((float) (1.225 * fp + 0.1f * fr + 0.55 * fpz));
|
shen.setPosZ((float) (1.225 * fp + 0.1f * fr + 0.55 * fpz));
|
||||||
shen.setRotX((float) (0.2f * fp + 0.2f * fr + 0.2f * fpz));
|
shen.setRotX((float) (0.2f * fp + 0.2f * fr + 0.2f * fpz));
|
||||||
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
|
shen.setRotY(fireRotY);
|
||||||
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
|
shen.setRotZ(fireRotZ);
|
||||||
|
|
||||||
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
|
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
|
||||||
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
|
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt) * (isProne(player) ? 0.03 : 1)));
|
||||||
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
|
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt) * (isProne(player) ? 0.4 : 1)));
|
||||||
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
|
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt) * (barrelType == 1 ? 0.4 : 1) * (stockType == 1 ? 0.6 : 1) * (gripType == 1 ? 0.8 : 1) * (isProne(player) ? 0.03 : 1)));
|
||||||
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
|
||||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
|
||||||
|
|
||||||
|
stack.getOrCreateTag().putBoolean("HoloHidden", (gun.getPosX() <= 3 || Mth.abs(shen.getRotX()) > (scopeType == 2 ? 3 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotX()) > (scopeType == 2 ? 5.7 : 1) * Mth.DEG_TO_RAD || Mth.abs(main.getRotY()) > 3 * Mth.DEG_TO_RAD));
|
||||||
|
|
||||||
hammer.setRotX(50 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverPreTime);
|
hammer.setRotX(50 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverPreTime);
|
||||||
lun.setRotZ(-60 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverWheelPreTime);
|
lun.setRotZ(-60 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverWheelPreTime);
|
||||||
CoreGeoBone ammo = getAnimationProcessor().getBone("ammo");
|
CoreGeoBone ammo = getAnimationProcessor().getBone("ammo");
|
||||||
|
@ -103,17 +162,37 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
|
||||||
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
|
||||||
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
|
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
|
||||||
root.setPosZ(!stack.getOrCreateTag().getBoolean("DA") && !stack.getOrCreateTag().getBoolean("canImmediatelyShoot")? 0.2f * (float) ClientEventHandler.revolverPreTime : 0);
|
root.setPosZ(!stack.getOrCreateTag().getBoolean("DA") && !stack.getOrCreateTag().getBoolean("canImmediatelyShoot")? 0.2f * (float) ClientEventHandler.revolverPreTime : 0);
|
||||||
root.setRotX((float) (swayX - Mth.DEG_TO_RAD * 60 * ClientEventHandler.drawTime + Mth.DEG_TO_RAD * turnRotX - 0.15f * vY) + (!stack.getOrCreateTag().getBoolean("DA") && !stack.getOrCreateTag().getBoolean("canImmediatelyShoot") ? 2 * Mth.DEG_TO_RAD * (float) ClientEventHandler.revolverPreTime : 0));
|
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.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));
|
root.setRotZ((float) (0.2f * movePosX + moveRotZ + Mth.DEG_TO_RAD * 90 * ClientEventHandler.drawTime + 2.7f * mph + Mth.DEG_TO_RAD * turnRotZ));
|
||||||
|
|
||||||
CoreGeoBone camera = getAnimationProcessor().getBone("camera");
|
CoreGeoBone l = getAnimationProcessor().getBone("l");
|
||||||
CoreGeoBone main = getAnimationProcessor().getBone("0");
|
CoreGeoBone r = getAnimationProcessor().getBone("r");
|
||||||
|
rotXBipod = Mth.lerp(1.5f * times, rotXBipod, isProne(player) ? -90 : 0);
|
||||||
|
l.setRotX(rotXBipod * Mth.DEG_TO_RAD);
|
||||||
|
r.setRotX(rotXBipod * Mth.DEG_TO_RAD);
|
||||||
|
|
||||||
float numR = (float) (1 - 0.22 * zt);
|
float numR = (float) (1 - 0.22 * zt);
|
||||||
float numP = (float) (1 - 0.48 * zt);
|
float numP = (float) (1 - 0.48 * zt);
|
||||||
|
|
||||||
AnimationHelper.handleReloadShakeAnimation(stack, main, camera, numR, numP);
|
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());
|
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(), Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
|
||||||
|
|
||||||
|
barrel1.setPosZ((scopeType == 0 && gripType == 0) ? 17.9f : 0);
|
||||||
|
barrel2.setPosZ((scopeType == 0 && gripType == 0) ? 15.3f : 3);
|
||||||
|
|
||||||
|
float flarePosZ = 0;
|
||||||
|
|
||||||
|
if (scopeType > 0 || gripType > 0) {
|
||||||
|
if (barrelType == 1) {
|
||||||
|
flarePosZ = -21;
|
||||||
|
} else {
|
||||||
|
flarePosZ = -18;
|
||||||
|
}
|
||||||
|
} else if (barrelType == 1) {
|
||||||
|
flarePosZ = -3;
|
||||||
|
}
|
||||||
|
|
||||||
|
flare.setPosZ(flarePosZ);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,11 +43,7 @@ public class VectorItemModel extends GeoModel<VectorItem> {
|
||||||
public void setCustomAnimations(VectorItem animatable, long instanceId, AnimationState animationState) {
|
public void setCustomAnimations(VectorItem animatable, long instanceId, AnimationState animationState) {
|
||||||
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
CoreGeoBone gun = getAnimationProcessor().getBone("bone");
|
||||||
CoreGeoBone scope = getAnimationProcessor().getBone("Scope1");
|
CoreGeoBone scope = getAnimationProcessor().getBone("Scope1");
|
||||||
// CoreGeoBone scope2 = getAnimationProcessor().getBone("Scope2");
|
|
||||||
// CoreGeoBone scope3 = getAnimationProcessor().getBone("Scope3");
|
|
||||||
CoreGeoBone cross1 = getAnimationProcessor().getBone("Cross1");
|
CoreGeoBone cross1 = getAnimationProcessor().getBone("Cross1");
|
||||||
// CoreGeoBone cross2 = getAnimationProcessor().getBone("Cross2");
|
|
||||||
// CoreGeoBone cross3 = getAnimationProcessor().getBone("Cross3");
|
|
||||||
CoreGeoBone kmj = getAnimationProcessor().getBone("kuaimanji");
|
CoreGeoBone kmj = getAnimationProcessor().getBone("kuaimanji");
|
||||||
CoreGeoBone sight1fold = getAnimationProcessor().getBone("SightFold1");
|
CoreGeoBone sight1fold = getAnimationProcessor().getBone("SightFold1");
|
||||||
CoreGeoBone sight2fold = getAnimationProcessor().getBone("SightFold2");
|
CoreGeoBone sight2fold = getAnimationProcessor().getBone("SightFold2");
|
||||||
|
@ -110,7 +106,6 @@ public class VectorItemModel extends GeoModel<VectorItem> {
|
||||||
case 0 -> getAnimationProcessor().getBone("fireRoot0");
|
case 0 -> getAnimationProcessor().getBone("fireRoot0");
|
||||||
case 1 -> getAnimationProcessor().getBone("fireRoot1");
|
case 1 -> getAnimationProcessor().getBone("fireRoot1");
|
||||||
case 2 -> getAnimationProcessor().getBone("fireRoot2");
|
case 2 -> getAnimationProcessor().getBone("fireRoot2");
|
||||||
case 3 -> getAnimationProcessor().getBone("fireRoot3");
|
|
||||||
default -> getAnimationProcessor().getBone("fireRootNormal");
|
default -> getAnimationProcessor().getBone("fireRootNormal");
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -133,8 +128,6 @@ public class VectorItemModel extends GeoModel<VectorItem> {
|
||||||
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.4 * zt)));
|
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.4 * zt)));
|
||||||
|
|
||||||
cross1.setPosY(-0.25f * (float) fpz);
|
cross1.setPosY(-0.25f * (float) fpz);
|
||||||
// cross2.setPosY(-0.7f * (float) fpz);
|
|
||||||
// cross3.setPosY(-0.2f * (float) fpz);
|
|
||||||
|
|
||||||
rotXSight = Mth.lerp(1.5f * times, rotXSight, type == 0 ? 0 : 90);
|
rotXSight = Mth.lerp(1.5f * times, rotXSight, type == 0 ? 0 : 90);
|
||||||
sight1fold.setRotX(rotXSight * Mth.DEG_TO_RAD);
|
sight1fold.setRotX(rotXSight * Mth.DEG_TO_RAD);
|
||||||
|
|
|
@ -3,10 +3,12 @@ package net.mcreator.superbwarfare.client.renderer.item;
|
||||||
import com.mojang.blaze3d.vertex.PoseStack;
|
import com.mojang.blaze3d.vertex.PoseStack;
|
||||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||||
import net.mcreator.superbwarfare.client.AnimationHelper;
|
import net.mcreator.superbwarfare.client.AnimationHelper;
|
||||||
|
import net.mcreator.superbwarfare.client.ItemModelHelper;
|
||||||
import net.mcreator.superbwarfare.client.layer.TracheliumLayer;
|
import net.mcreator.superbwarfare.client.layer.TracheliumLayer;
|
||||||
import net.mcreator.superbwarfare.client.model.item.TracheliumItemModel;
|
import net.mcreator.superbwarfare.client.model.item.TracheliumItemModel;
|
||||||
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
import net.mcreator.superbwarfare.event.ClientEventHandler;
|
||||||
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
import net.mcreator.superbwarfare.item.gun.handgun.Trachelium;
|
||||||
|
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||||
import net.minecraft.client.Minecraft;
|
import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.PlayerModel;
|
import net.minecraft.client.model.PlayerModel;
|
||||||
import net.minecraft.client.player.AbstractClientPlayer;
|
import net.minecraft.client.player.AbstractClientPlayer;
|
||||||
|
@ -80,14 +82,57 @@ public class TracheliumItemRenderer extends GeoItemRenderer<Trachelium> {
|
||||||
|
|
||||||
Player player = mc.player;
|
Player player = mc.player;
|
||||||
if (player != null) {
|
if (player != null) {
|
||||||
|
ItemStack itemStack = player.getMainHandItem();
|
||||||
|
|
||||||
|
if (name.equals("humu")) {
|
||||||
|
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 0 && GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.GRIP) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("qianzhunxing1")) {
|
||||||
|
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) > 0 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.GRIP) > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("railup")) {
|
||||||
|
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("raildown")) {
|
||||||
|
bone.setHidden(GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.GRIP) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("Cross1")) {
|
||||||
|
bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||||
|
|| !ClientEventHandler.zoom
|
||||||
|
|| GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("Cross2")) {
|
||||||
|
bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||||
|
|| !ClientEventHandler.zoom
|
||||||
|
|| GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2
|
||||||
|
|| itemStack.getOrCreateTag().getBoolean("ScopeAlt"));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (name.equals("CrossAlt")) {
|
||||||
|
bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden")
|
||||||
|
|| !ClientEventHandler.zoom
|
||||||
|
|| GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) != 2
|
||||||
|
|| !(itemStack.getOrCreateTag().getBoolean("ScopeAlt")));
|
||||||
|
}
|
||||||
|
|
||||||
|
if (GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.SCOPE) == 2 && !itemStack.getOrCreateTag().getBoolean("ScopeAlt") && (name.equals("hidden"))) {
|
||||||
|
bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && ClientEventHandler.zoom);
|
||||||
|
}
|
||||||
|
|
||||||
|
ItemModelHelper.handleGunAttachments(bone, itemStack, name);
|
||||||
|
|
||||||
if (name.equals("flare")) {
|
if (name.equals("flare")) {
|
||||||
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5) {
|
if (ClientEventHandler.firePosTimer == 0 || ClientEventHandler.firePosTimer > 0.5 || GunsTool.getAttachmentType(itemStack, GunsTool.AttachmentType.BARREL) == 2) {
|
||||||
bone.setHidden(true);
|
bone.setHidden(true);
|
||||||
} else {
|
} else {
|
||||||
bone.setHidden(false);
|
bone.setHidden(false);
|
||||||
bone.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5)));
|
bone.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5)));
|
||||||
bone.setScaleY((float) (0.75 + 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)));
|
bone.setRotZ((float) (0.5 * (Math.random() - 0.5)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,10 +88,10 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
ModItems.SKS.get(), ModItems.RPK.get(), ModItems.HK_416.get(), ModItems.AA_12.get(), ModItems.M_4.get(), ModItems.DEVOTION.get(), ModItems.NTW_20.get(),
|
ModItems.SKS.get(), 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());
|
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.USE_HANDGUN_AMMO).add(ModItems.TRACHELIUM.get(), ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.USE_HANDGUN_AMMO).add(ModItems.GLOCK_17.get(), ModItems.GLOCK_18.get(), ModItems.M_1911.get(), ModItems.VECTOR.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(),
|
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.MK_14.get(), ModItems.MARLIN.get(), ModItems.AK_47.get(), ModItems.AK_12.get(), ModItems.QBZ_95.get(), ModItems.RPK.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get());
|
this.tag(ModTags.Items.USE_SHOTGUN_AMMO).add(ModItems.ABEKIRI.get(), ModItems.M_870.get(), ModItems.AA_12.get());
|
||||||
|
|
||||||
|
@ -118,17 +118,17 @@ public class ModItemTagProvider extends ItemTagsProvider {
|
||||||
|
|
||||||
this.tag(ModTags.Items.MILITARY_ARMOR).add(ModItems.RU_CHEST_6B43.get(), ModItems.US_CHEST_IOTV.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(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_CUSTOM_GUN).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CAN_APPLY_BARREL).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_APPLY_BARREL).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CAN_APPLY_GRIP).add(ModItems.AK_12.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.AK_47.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_APPLY_GRIP).add(ModItems.AK_12.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.AK_47.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CAN_APPLY_SCOPE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_APPLY_SCOPE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CAN_APPLY_MAGAZINE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_APPLY_MAGAZINE).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.QBZ_95.get(), ModItems.VECTOR.get());
|
||||||
|
|
||||||
this.tag(ModTags.Items.CAN_APPLY_STOCK).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.VECTOR.get());
|
this.tag(ModTags.Items.CAN_APPLY_STOCK).add(ModItems.AK_12.get(), ModItems.AK_47.get(), ModItems.M_4.get(), ModItems.HK_416.get(), ModItems.VECTOR.get(), ModItems.TRACHELIUM.get());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ import net.minecraft.server.level.ServerLevel;
|
||||||
import net.minecraft.server.level.ServerPlayer;
|
import net.minecraft.server.level.ServerPlayer;
|
||||||
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.world.entity.Entity;
|
import net.minecraft.world.entity.Entity;
|
||||||
import net.minecraft.world.entity.EntityType;
|
import net.minecraft.world.entity.EntityType;
|
||||||
import net.minecraft.world.entity.LivingEntity;
|
import net.minecraft.world.entity.LivingEntity;
|
||||||
|
@ -27,6 +28,7 @@ import net.minecraft.world.level.block.state.BlockState;
|
||||||
import net.minecraft.world.phys.BlockHitResult;
|
import net.minecraft.world.phys.BlockHitResult;
|
||||||
import net.minecraft.world.phys.EntityHitResult;
|
import net.minecraft.world.phys.EntityHitResult;
|
||||||
import net.minecraft.world.phys.HitResult;
|
import net.minecraft.world.phys.HitResult;
|
||||||
|
import net.minecraft.world.phys.Vec3;
|
||||||
import net.minecraftforge.network.NetworkHooks;
|
import net.minecraftforge.network.NetworkHooks;
|
||||||
import net.minecraftforge.network.PacketDistributor;
|
import net.minecraftforge.network.PacketDistributor;
|
||||||
import net.minecraftforge.network.PlayMessages;
|
import net.minecraftforge.network.PlayMessages;
|
||||||
|
@ -137,6 +139,15 @@ public class HandGrenadeEntity extends ThrowableItemProjectile {
|
||||||
1, 0, 0, 0, 0.01, true);
|
1, 0, 0, 0, 0.01, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void shootFromRotation(Entity pShooter, float pX, float pY, float pZ, float pVelocity, float pInaccuracy) {
|
||||||
|
float f = -Mth.sin(pY * 0.017453292F) * Mth.cos(pX * 0.017453292F);
|
||||||
|
float f1 = -Mth.sin((pX + pZ) * 0.017453292F);
|
||||||
|
float f2 = Mth.cos(pY * 0.017453292F) * Mth.cos(pX * 0.017453292F);
|
||||||
|
this.shoot((double)f, (double)f1, (double)f2, pVelocity, pInaccuracy);
|
||||||
|
Vec3 vec3 = pShooter.getDeltaMovement();
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().add(vec3.x, pShooter.onGround() ? 0.0 : -vec3.y, vec3.z));
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected float getGravity() {
|
protected float getGravity() {
|
||||||
|
|
|
@ -585,7 +585,7 @@ public class ProjectileEntity extends Entity implements IEntityAdditionalSpawnDa
|
||||||
public void shoot(Player player, double vecX, double vecY, double vecZ, float velocity, float spread) {
|
public void shoot(Player player, double vecX, double vecY, double vecZ, float velocity, float spread) {
|
||||||
Vec3 vec3 = (new Vec3(vecX, vecY, vecZ)).normalize().
|
Vec3 vec3 = (new Vec3(vecX, vecY, vecZ)).normalize().
|
||||||
add(this.random.triangle(0.0D, 0.0172275D * (double) spread), this.random.triangle(0.0D, 0.0172275D * (double) spread), this.random.triangle(0.0D, 0.0172275D * (double) spread)).
|
add(this.random.triangle(0.0D, 0.0172275D * (double) spread), this.random.triangle(0.0D, 0.0172275D * (double) spread), this.random.triangle(0.0D, 0.0172275D * (double) spread)).
|
||||||
add(player.getDeltaMovement().x, player.getDeltaMovement().y() + 0.078, player.getDeltaMovement().z).
|
add(player.getDeltaMovement().x, player.onGround() ? 0.0 : 0.05 * player.getDeltaMovement().y, player.getDeltaMovement().z).
|
||||||
scale(velocity);
|
scale(velocity);
|
||||||
this.setDeltaMovement(vec3);
|
this.setDeltaMovement(vec3);
|
||||||
double d0 = vec3.horizontalDistance();
|
double d0 = vec3.horizontalDistance();
|
||||||
|
|
|
@ -165,4 +165,14 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti
|
||||||
this.yRotO = this.getYRot();
|
this.yRotO = this.getYRot();
|
||||||
this.xRotO = this.getXRot();
|
this.xRotO = this.getXRot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shootFromRotation(Entity pShooter, float pX, float pY, float pZ, float pVelocity, float pInaccuracy) {
|
||||||
|
float f = -Mth.sin(pY * 0.017453292F) * Mth.cos(pX * 0.017453292F);
|
||||||
|
float f1 = -Mth.sin((pX + pZ) * 0.017453292F);
|
||||||
|
float f2 = Mth.cos(pY * 0.017453292F) * Mth.cos(pX * 0.017453292F);
|
||||||
|
this.shoot((double)f, (double)f1, (double)f2, pVelocity, pInaccuracy);
|
||||||
|
Vec3 vec3 = pShooter.getDeltaMovement();
|
||||||
|
this.setDeltaMovement(this.getDeltaMovement().add(vec3.x, pShooter.onGround() ? 0.0 : -vec3.y, vec3.z));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -180,7 +180,7 @@ public class GunEventHandler {
|
||||||
if (!player.level().isClientSide()) {
|
if (!player.level().isClientSide()) {
|
||||||
float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot");
|
float headshot = (float) heldItem.getOrCreateTag().getDouble("headshot");
|
||||||
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) perkDamage(heldItem);
|
float damage = (float) (heldItem.getOrCreateTag().getDouble("damage") + heldItem.getOrCreateTag().getDouble("sentinelChargeDamage")) * (float) perkDamage(heldItem);
|
||||||
float velocity = (float) heldItem.getOrCreateTag().getDouble("velocity") * (float) perkSpeed(heldItem);
|
float velocity = (float) ((heldItem.getOrCreateTag().getDouble("velocity") + heldItem.getOrCreateTag().getDouble("CustomVelocity")) * perkSpeed(heldItem));
|
||||||
int projectileAmount = (int) heldItem.getOrCreateTag().getDouble("projectile_amount");
|
int projectileAmount = (int) heldItem.getOrCreateTag().getDouble("projectile_amount");
|
||||||
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
float bypassArmorRate = (float) heldItem.getOrCreateTag().getDouble("BypassesArmor");
|
||||||
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
|
boolean zoom = player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zoom;
|
||||||
|
|
|
@ -22,6 +22,10 @@ public class ModSounds {
|
||||||
public static final RegistryObject<SoundEvent> TRACHELIUM_FIRE_3P = REGISTRY.register("trachelium_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_fire_3p")));
|
public static final RegistryObject<SoundEvent> TRACHELIUM_FIRE_3P = REGISTRY.register("trachelium_fire_3p", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_fire_3p")));
|
||||||
public static final RegistryObject<SoundEvent> TRACHELIUM_FAR = REGISTRY.register("trachelium_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_far")));
|
public static final RegistryObject<SoundEvent> TRACHELIUM_FAR = REGISTRY.register("trachelium_far", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_far")));
|
||||||
public static final RegistryObject<SoundEvent> TRACHELIUM_VERYFAR = REGISTRY.register("trachelium_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_veryfar")));
|
public static final RegistryObject<SoundEvent> TRACHELIUM_VERYFAR = REGISTRY.register("trachelium_veryfar", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_veryfar")));
|
||||||
|
|
||||||
|
public static final RegistryObject<SoundEvent> TRACHELIUM_FIRE_1P_S = REGISTRY.register("trachelium_fire_1p_s", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_fire_1p_s")));
|
||||||
|
public static final RegistryObject<SoundEvent> TRACHELIUM_FIRE_3P_S = REGISTRY.register("trachelium_fire_3p_s", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_fire_3p_s")));
|
||||||
|
public static final RegistryObject<SoundEvent> TRACHELIUM_FAR_S = REGISTRY.register("trachelium_far_s", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_far_s")));
|
||||||
public static final RegistryObject<SoundEvent> TRACHELIUM_RELOAD_EMPTY = REGISTRY.register("trachelium_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_reload_empty")));
|
public static final RegistryObject<SoundEvent> TRACHELIUM_RELOAD_EMPTY = REGISTRY.register("trachelium_reload_empty", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_reload_empty")));
|
||||||
public static final RegistryObject<SoundEvent> TRACHELIUM_BOLT = REGISTRY.register("trachelium_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_bolt")));
|
public static final RegistryObject<SoundEvent> TRACHELIUM_BOLT = REGISTRY.register("trachelium_bolt", () -> SoundEvent.createVariableRangeEvent(new ResourceLocation(ModUtils.MODID, "trachelium_bolt")));
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import net.mcreator.superbwarfare.init.ModSounds;
|
||||||
import net.mcreator.superbwarfare.init.ModTags;
|
import net.mcreator.superbwarfare.init.ModTags;
|
||||||
import net.mcreator.superbwarfare.item.AnimatedItem;
|
import net.mcreator.superbwarfare.item.AnimatedItem;
|
||||||
import net.mcreator.superbwarfare.item.gun.GunItem;
|
import net.mcreator.superbwarfare.item.gun.GunItem;
|
||||||
|
import net.mcreator.superbwarfare.network.ModVariables;
|
||||||
import net.mcreator.superbwarfare.perk.Perk;
|
import net.mcreator.superbwarfare.perk.Perk;
|
||||||
import net.mcreator.superbwarfare.perk.PerkHelper;
|
import net.mcreator.superbwarfare.perk.PerkHelper;
|
||||||
import net.mcreator.superbwarfare.tools.GunsTool;
|
import net.mcreator.superbwarfare.tools.GunsTool;
|
||||||
|
@ -18,6 +19,7 @@ import net.minecraft.client.Minecraft;
|
||||||
import net.minecraft.client.model.HumanoidModel;
|
import net.minecraft.client.model.HumanoidModel;
|
||||||
import net.minecraft.client.player.LocalPlayer;
|
import net.minecraft.client.player.LocalPlayer;
|
||||||
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
|
||||||
|
import net.minecraft.nbt.CompoundTag;
|
||||||
import net.minecraft.network.chat.Component;
|
import net.minecraft.network.chat.Component;
|
||||||
import net.minecraft.network.chat.Style;
|
import net.minecraft.network.chat.Style;
|
||||||
import net.minecraft.resources.ResourceLocation;
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
@ -85,11 +87,38 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||||
|
|
||||||
|
boolean stock = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK) == 2;
|
||||||
|
boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) > 0 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE) > 0;
|
||||||
|
|
||||||
if (ClientEventHandler.firePosTimer > 0 && ClientEventHandler.firePosTimer < 1.7) {
|
if (ClientEventHandler.firePosTimer > 0 && ClientEventHandler.firePosTimer < 1.7) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire"));
|
if (stock) {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire_stock"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.fire"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle"));
|
if (stock) {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_stock"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private PlayState idlePredicate(AnimationState<Trachelium> event) {
|
private PlayState idlePredicate(AnimationState<Trachelium> event) {
|
||||||
|
@ -98,22 +127,98 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||||
ItemStack stack = player.getMainHandItem();
|
ItemStack stack = player.getMainHandItem();
|
||||||
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
|
||||||
|
|
||||||
|
boolean stock = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK) == 2;
|
||||||
|
boolean grip = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP) > 0 || GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE) > 0;
|
||||||
|
|
||||||
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.action"));
|
if (stock) {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.action_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.action_stock"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.action_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.action"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload"));
|
if (stock) {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload_stock"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.trachelium.reload"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
if (player.isSprinting() && player.onGround() && player.getPersistentData().getDouble("noRun") == 0 && ClientEventHandler.drawTime < 0.01) {
|
||||||
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
if (stock) {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_fast"));
|
if (grip) {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_fast_stock"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_stock_grip"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_fast_stock"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_stock"));
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run"));
|
if (grip) {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_fast"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_grip"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (player.hasEffect(MobEffects.MOVEMENT_SPEED)) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run_fast"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.run"));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (stock) {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_stock_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_stock"));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (grip) {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle_grip"));
|
||||||
|
} else {
|
||||||
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private PlayState editPredicate(AnimationState<Trachelium> 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.trachelium.edit"));
|
||||||
|
}
|
||||||
|
|
||||||
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle"));
|
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.trachelium.idle"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,8 +226,10 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||||
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
|
||||||
var fireAnimController = new AnimationController<>(this, "fireAnimController", 0, this::fireAnimPredicate);
|
var fireAnimController = new AnimationController<>(this, "fireAnimController", 0, this::fireAnimPredicate);
|
||||||
data.add(fireAnimController);
|
data.add(fireAnimController);
|
||||||
AnimationController<Trachelium> idleController = new AnimationController<>(this, "idleController", 3, this::idlePredicate);
|
var idlePredicate = new AnimationController<>(this, "idlePredicate", 3, this::idlePredicate);
|
||||||
data.add(idleController);
|
data.add(idlePredicate);
|
||||||
|
var editController = new AnimationController<>(this, "editController", 1, this::editPredicate);
|
||||||
|
data.add(editController);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -148,10 +255,46 @@ public class Trachelium extends GunItem implements GeoItem, AnimatedItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void inventoryTick(ItemStack itemStack, Level world, Entity entity, int slot, boolean selected) {
|
public void inventoryTick(ItemStack stack, Level world, Entity entity, int slot, boolean selected) {
|
||||||
super.inventoryTick(itemStack, world, entity, slot, selected);
|
super.inventoryTick(stack, world, entity, slot, selected);
|
||||||
var tag = itemStack.getOrCreateTag();
|
var tag = stack.getOrCreateTag();
|
||||||
tag.putInt("bolt_action_time", tag.getBoolean("DA") ? 12 : 0);
|
tag.putInt("bolt_action_time", tag.getBoolean("DA") ? 12 : 0);
|
||||||
|
|
||||||
|
int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE);
|
||||||
|
int gripType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.GRIP);
|
||||||
|
int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK);
|
||||||
|
CompoundTag tags = stack.getOrCreateTag().getCompound("Attachments");
|
||||||
|
|
||||||
|
|
||||||
|
if (stockType == 1) {
|
||||||
|
tags.putInt("Stock", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scopeType == 3) {
|
||||||
|
tags.putInt("Scope", 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scopeType > 0 || gripType > 0) {
|
||||||
|
tag.putDouble("CustomVelocity", 15);
|
||||||
|
tag.putDouble("BypassesArmor", 0.4);
|
||||||
|
tag.putDouble("damage", 21);
|
||||||
|
tag.putDouble("headshot", 2.5);
|
||||||
|
} else {
|
||||||
|
tag.putDouble("CustomVelocity", 0);
|
||||||
|
tag.putDouble("BypassesArmor", 0.3);
|
||||||
|
tag.putDouble("damage", 19);
|
||||||
|
tag.putDouble("headshot", 2);
|
||||||
|
}
|
||||||
|
|
||||||
|
double customZoom = switch (scopeType) {
|
||||||
|
case 0, 1 -> 0;
|
||||||
|
case 2 -> stack.getOrCreateTag().getBoolean("ScopeAlt") ? 0 : 2.75;
|
||||||
|
default -> 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
stack.getOrCreateTag().putBoolean("CanSwitchScope", scopeType == 2);
|
||||||
|
stack.getOrCreateTag().putDouble("CustomZoom", customZoom);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -137,9 +137,7 @@ public class VectorItem extends GunItem implements GeoItem, AnimatedItem {
|
||||||
super.inventoryTick(stack, world, entity, slot, selected);
|
super.inventoryTick(stack, world, entity, slot, selected);
|
||||||
|
|
||||||
int scopeType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.SCOPE);
|
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 magType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.MAGAZINE);
|
||||||
int stockType = GunsTool.getAttachmentType(stack, GunsTool.AttachmentType.STOCK);
|
|
||||||
|
|
||||||
int customMag = switch (magType) {
|
int customMag = switch (magType) {
|
||||||
case 1 -> 20;
|
case 1 -> 20;
|
||||||
|
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -8,9 +8,9 @@
|
||||||
"display": {
|
"display": {
|
||||||
"firstperson_righthand": {
|
"firstperson_righthand": {
|
||||||
"translation": [
|
"translation": [
|
||||||
-7.7,
|
-5.5,
|
||||||
4.2,
|
4.2,
|
||||||
0.75
|
1.75
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"firstperson_lefthand": {
|
"firstperson_lefthand": {
|
||||||
|
|
|
@ -55,6 +55,30 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
"trachelium_fire_1p_s": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:trachelium/trachelium_fire_1p_s",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trachelium_fire_3p_s": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:trachelium/trachelium_fire_3p_s",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"trachelium_far_s": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "superbwarfare:trachelium/trachelium_far_s",
|
||||||
|
"stream": false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"trachelium_reload_empty": {
|
"trachelium_reload_empty": {
|
||||||
"sounds": [
|
"sounds": [
|
||||||
{
|
{
|
||||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Before Width: | Height: | Size: 5.9 KiB After Width: | Height: | Size: 51 KiB |
Binary file not shown.
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 15 KiB |
|
@ -3,7 +3,7 @@
|
||||||
"recoil_x": 0.005,
|
"recoil_x": 0.005,
|
||||||
"recoil_y": 0.032,
|
"recoil_y": 0.032,
|
||||||
"damage": 19,
|
"damage": 19,
|
||||||
"headshot": 3,
|
"headshot": 2,
|
||||||
"velocity": 24,
|
"velocity": 24,
|
||||||
"mag": 6,
|
"mag": 6,
|
||||||
"projectile_amount": 1,
|
"projectile_amount": 1,
|
||||||
|
|
Loading…
Add table
Reference in a new issue