From 6282d72d5d8c353e64bd6c8831ee46362d8cf0d6 Mon Sep 17 00:00:00 2001 From: Atsuihsio <842960157@qq.com> Date: Sat, 17 Aug 2024 06:10:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=89=A9=E4=BD=99=E7=9A=84?= =?UTF-8?q?=E6=89=8B=E8=87=82=E6=9B=BF=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/model/item/MarlinItemModel.java | 23 +- .../client/model/item/Mk14ItemModel.java | 40 +- .../client/model/item/Ntw20Model.java | 35 +- .../client/model/item/RpgItemModel.java | 27 +- .../client/model/item/RpkItemModel.java | 35 +- .../client/model/item/SentinelItemModel.java | 22 - .../client/model/item/SksItemModel.java | 25 +- .../client/model/item/SvdItemModel.java | 47 +- .../client/model/item/TaserItemModel.java | 16 +- .../client/model/item/VectorItemModel.java | 20 +- .../renderer/item/MarlinItemRenderer.java | 75 ++- .../renderer/item/Mk14ItemRenderer.java | 94 +++- .../client/renderer/item/Ntw20Renderer.java | 106 +++- .../client/renderer/item/RpgItemRenderer.java | 122 ++++- .../client/renderer/item/RpkItemRenderer.java | 130 ++++- .../renderer/item/SentinelItemRenderer.java | 140 +++++- .../client/renderer/item/SksItemRenderer.java | 130 ++++- .../client/renderer/item/SvdItemRenderer.java | 98 +++- .../renderer/item/TaserItemRenderer.java | 100 +++- .../renderer/item/VectorItemRenderer.java | 114 ++++- .../client/screens/ArmRendererFixOverlay.java | 25 + .../superbwarfare/item/gun/SentinelItem.java | 5 - .../animations/marlin.animation.json | 130 +++-- .../animations/mk14ebr.animation.json | 44 +- .../animations/rpg.animation.json | 36 +- .../animations/rpk.animation.json | 289 +++++------ .../animations/sentinel.animation.json | 470 ++++++------------ .../animations/sks.animation.json | 46 +- .../animations/svd.animation.json | 64 +-- .../animations/taser.animation.json | 82 +-- .../animations/vector.animation.json | 68 +-- .../assets/superbwarfare/geo/marlin.geo.json | 12 +- .../assets/superbwarfare/geo/mk14ebr.geo.json | 8 +- .../assets/superbwarfare/geo/rpg.geo.json | 6 +- .../assets/superbwarfare/geo/rpk.geo.json | 16 +- .../superbwarfare/geo/sentinel.geo.json | 8 +- .../assets/superbwarfare/geo/sks.geo.json | 16 +- .../assets/superbwarfare/geo/svd.geo.json | 14 +- .../assets/superbwarfare/geo/taser.geo.json | 10 +- .../assets/superbwarfare/geo/vector.geo.json | 9 +- 40 files changed, 1774 insertions(+), 983 deletions(-) create mode 100644 src/main/java/net/mcreator/superbwarfare/client/screens/ArmRendererFixOverlay.java diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java index 0d0e69588..56ecd13f2 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/MarlinItemModel.java @@ -39,11 +39,8 @@ public class MarlinItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(1.712f * (float) p); @@ -65,30 +62,18 @@ public class MarlinItemModel extends GeoModel { shen.setRotZ(-0.03f * (float) (fp + 1.3 * fr)); shen.setRotY(-0.05f * (float) fr); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); if (stack.getOrCreateTag().getInt("fire_animation") > 0) { jichui.setRotX(-0.52f); } - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java index bee72eeca..88d94f9ce 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Mk14ItemModel.java @@ -33,13 +33,10 @@ public class Mk14ItemModel extends GeoModel { public void setCustomAnimations(Mk14Item animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bones"); CoreGeoBone scope = getAnimationProcessor().getBone("scope"); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); CoreGeoBone rex = getAnimationProcessor().getBone("rex"); CoreGeoBone l = getAnimationProcessor().getBone("l"); CoreGeoBone r = getAnimationProcessor().getBone("r"); CoreGeoBone yugu = getAnimationProcessor().getBone("yugu"); - CoreGeoBone jing = getAnimationProcessor().getBone("jing"); - CoreGeoBone qiangguan = getAnimationProcessor().getBone("qiangguan"); CoreGeoBone action = getAnimationProcessor().getBone("action"); Player player = Minecraft.getInstance().player; @@ -52,11 +49,8 @@ public class Mk14ItemModel extends GeoModel { r.setRotX(-1.5f); } - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(3.105f * (float) p); @@ -97,15 +91,7 @@ public class Mk14ItemModel extends GeoModel { action.setPosZ(2.5f * (float) fp); - if (gun.getPosX() > 2.5f) { - rex.setHidden(false); - jing.setHidden(true); - qiangguan.setHidden(true); - } else { - rex.setHidden(true); - jing.setHidden(false); - qiangguan.setHidden(false); - } + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 2.5)); CoreGeoBone bolt = getAnimationProcessor().getBone("bolt"); @@ -113,29 +99,13 @@ public class Mk14ItemModel extends GeoModel { bolt.setPosZ(2.5f); } - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (0.5 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (0.5 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) { - flare.setPosY(-3.5f); - } else { - flare.setPosY(0); - } - } else { - flare.setHidden(true); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java index eb70decab..19b2b63ce 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/Ntw20Model.java @@ -34,14 +34,8 @@ public class Ntw20Model extends GeoModel { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone scope = getAnimationProcessor().getBone("scope"); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); CoreGeoBone l = getAnimationProcessor().getBone("l"); CoreGeoBone r = getAnimationProcessor().getBone("r"); - CoreGeoBone action = getAnimationProcessor().getBone("action"); - CoreGeoBone body = getAnimationProcessor().getBone("body"); - CoreGeoBone jing = getAnimationProcessor().getBone("jing"); - CoreGeoBone base = getAnimationProcessor().getBone("base"); - CoreGeoBone rex = getAnimationProcessor().getBone("rex"); Player player = Minecraft.getInstance().player; if (player == null) return; @@ -85,38 +79,15 @@ public class Ntw20Model extends GeoModel { scope.setScaleZ(1f - (0.85f * (float) p)); - if (gun.getPosX() > 4.3f) { - rex.setHidden(false); - action.setHidden(true); - body.setHidden(true); - jing.setHidden(true); - base.setHidden(true); - } else { - rex.setHidden(true); - action.setHidden(false); - body.setHidden(false); - jing.setHidden(false); - base.setHidden(false); - } - - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 4.3)); CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java index 7b764efd7..b4279faff 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpgItemModel.java @@ -32,7 +32,6 @@ public class RpgItemModel extends GeoModel { @Override public void setCustomAnimations(RpgItem animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); - CoreGeoBone rocket = getAnimationProcessor().getBone("Rockets"); CoreGeoBone shen = getAnimationProcessor().getBone("rpg"); CoreGeoBone hammer = getAnimationProcessor().getBone("hammer"); @@ -41,8 +40,6 @@ public class RpgItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - rocket.setHidden(stack.getOrCreateTag().getBoolean("empty")); - if (stack.getOrCreateTag().getBoolean("close_hammer")) { hammer.setRotX(-90 * Mth.DEG_TO_RAD); } @@ -63,11 +60,8 @@ public class RpgItemModel extends GeoModel { } shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp)); - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(0.91f * (float) p); @@ -77,26 +71,13 @@ public class RpgItemModel extends GeoModel { gun.setRotZ(0.45f * (float) p + (float) (0.02f * zp)); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - - if (stack.getOrCreateTag().getInt("fire_animation") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (1.0 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (1.0 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java index 6d6f47548..82fdabdb2 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/RpkItemModel.java @@ -35,7 +35,6 @@ public class RpkItemModel extends GeoModel { CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone scope = getAnimationProcessor().getBone("pka"); CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - CoreGeoBone hide = getAnimationProcessor().getBone("hide"); CoreGeoBone button = getAnimationProcessor().getBone("button"); CoreGeoBone shuan = getAnimationProcessor().getBone("shuan"); @@ -44,11 +43,8 @@ public class RpkItemModel extends GeoModel { ItemStack stack = player.getMainHandItem(); if (!stack.is(ModTags.Items.GUN)) return; - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(1.69f * (float) p); @@ -69,24 +65,19 @@ public class RpkItemModel extends GeoModel { button.setScaleZ(1f - (0.3f * (float) p)); - CoreGeoBone holo = getAnimationProcessor().getBone("holo"); - - holo.setScaleX(0.9f); - holo.setScaleY(0.9f); - - holo.setHidden(!(gun.getPosX() > 1.65)); + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.65)); double fp = player.getPersistentData().getDouble("fire_pos"); double fr = player.getPersistentData().getDouble("fire_rot"); if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming) { shen.setPosY(-0.01f * (float) (fp + 2 * fr)); - shen.setPosZ(0.2f * (float) (fp + 0.54f * fr)); + shen.setPosZ(0.7f * (float) (fp + 0.54f * fr)); shen.setRotX(0.003f * (float) (fp + fr)); shen.setRotZ(0f); } else { shen.setPosY(-0.03f * (float) (fp + 2 * fr)); - shen.setPosZ(0.8f * (float) (fp + 0.54f * fr)); + shen.setPosZ(0.6f * (float) (fp + 0.54f * fr)); shen.setRotX(0.04f * (float) (0.18f * fp + fr)); shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr)); } @@ -94,24 +85,12 @@ public class RpkItemModel extends GeoModel { shuan.setPosZ(2.4f * (float) fp); - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (0.7 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (0.7 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java index 3195739d3..a20a800fa 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SentinelItemModel.java @@ -9,13 +9,10 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.util.Mth; import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemStack; -import net.minecraftforge.common.capabilities.ForgeCapabilities; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; import software.bernie.geckolib.model.GeoModel; -import java.util.concurrent.atomic.AtomicBoolean; - public class SentinelItemModel extends GeoModel { @Override public ResourceLocation getAnimationResource(SentinelItem animatable) { @@ -71,7 +68,6 @@ public class SentinelItemModel extends GeoModel { CoreGeoBone holo = getAnimationProcessor().getBone("holo"); holo.setPosY(0.09f); - holo.setHidden(!(gun.getPosX() > 1.8)); double fp = player.getPersistentData().getDouble("fire_pos"); double fr = player.getPersistentData().getDouble("fire_rot"); @@ -93,13 +89,6 @@ public class SentinelItemModel extends GeoModel { charge.setRotZ(charge.getRotZ() + times * 0.05f); - AtomicBoolean flag = new AtomicBoolean(false); - stack.getCapability(ForgeCapabilities.ENERGY).ifPresent( - iEnergyStorage -> flag.set(iEnergyStorage.getEnergyStored() > 0) - ); - - charge.setHidden(!flag.get()); - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float) player.getPersistentData().getDouble("gun_move_posX"); @@ -142,17 +131,6 @@ public class SentinelItemModel extends GeoModel { move.setRotZ(2.7f * (float) m + Mth.DEG_TO_RAD * (float) zRot); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); - - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (0.75 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (0.75 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } - if ((stack.getOrCreateTag().getDouble("ammo") <= 5)) { ammo.setScaleX((float) (stack.getOrCreateTag().getDouble("ammo") / 5)); } diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java index 79f34a36b..af5b49395 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SksItemModel.java @@ -46,11 +46,8 @@ public class SksItemModel extends GeoModel { bolt.setPosZ(2.5f); } - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(1.53f * (float) p); @@ -62,7 +59,7 @@ public class SksItemModel extends GeoModel { CoreGeoBone holo = getAnimationProcessor().getBone("holo"); - holo.setHidden(!(gun.getPosX() > 1.2)); + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.2)); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); @@ -84,24 +81,12 @@ public class SksItemModel extends GeoModel { shuan.setPosZ(2f * (float) fp); - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (0.55 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (0.55 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } - CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java index 3b71b9e8b..d078bfa31 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/SvdItemModel.java @@ -32,14 +32,13 @@ public class SvdItemModel extends GeoModel { @Override public void setCustomAnimations(SvdItem animatable, long instanceId, AnimationState animationState) { CoreGeoBone gun = getAnimationProcessor().getBone("bone"); - CoreGeoBone flare = getAnimationProcessor().getBone("flare"); CoreGeoBone bolt = getAnimationProcessor().getBone("bolt"); CoreGeoBone scope = getAnimationProcessor().getBone("pso1"); - CoreGeoBone sight = getAnimationProcessor().getBone("handguard"); CoreGeoBone bt1 = getAnimationProcessor().getBone("bullton1"); CoreGeoBone bt2 = getAnimationProcessor().getBone("bullton2"); - CoreGeoBone shuan = getAnimationProcessor().getBone("shuan"); CoreGeoBone glass = getAnimationProcessor().getBone("glass"); + CoreGeoBone holo = getAnimationProcessor().getBone("holo"); + CoreGeoBone flare = getAnimationProcessor().getBone("flare"); Player player = Minecraft.getInstance().player; if (player == null) return; @@ -50,11 +49,8 @@ public class SvdItemModel extends GeoModel { bolt.setPosZ(3.25f); } - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(2.02f * (float) p); @@ -72,18 +68,7 @@ public class SvdItemModel extends GeoModel { bt2.setScaleX(1f - (0.5f * (float) p)); - CoreGeoBone holo = getAnimationProcessor().getBone("holo"); - if (gun.getPosX() > 1.9) { - holo.setPosY(0.05f); - holo.setScaleX(0.45f); - holo.setScaleY(0.45f); - holo.setHidden(false); - sight.setHidden(true); - } else { - holo.setHidden(true); - sight.setHidden(false); - glass.setHidden(true); - } + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.9)); CoreGeoBone shen = getAnimationProcessor().getBone("shen"); @@ -95,6 +80,7 @@ public class SvdItemModel extends GeoModel { shen.setPosZ(1.6f * (float) (fp + 0.54f * fr)); shen.setRotX(0.003f * (float) (fp + fr)); shen.setRotZ(0f); + flare.setPosY(-2.5f); } else { shen.setPosY(0.04f * (float) (fp + 2 * fr)); shen.setPosZ(1.8f * (float) (fp + 0.54f * fr)); @@ -103,28 +89,17 @@ public class SvdItemModel extends GeoModel { } shen.setPosX(0.5f * (float)fr * (float)((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).recoilHorizon * fp)); - holo.setPosY(1.1f * (float) fp); - + holo.setPosY(0.05f + 1.1f * (float) fp); holo.setRotZ(-0.04f * (float) fp); - - if (stack.getOrCreateTag().getDouble("flash_time") > 0) { - flare.setHidden(false); - flare.setScaleX((float) (0.8 + 0.5 * (Math.random() - 0.5))); - flare.setScaleY((float) (0.8 + 0.5 * (Math.random() - 0.5))); - flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); - } else { - flare.setHidden(true); - } + holo.setScaleX(0.75f); + holo.setScaleY(0.75f); CoreGeoBone root = getAnimationProcessor().getBone("root"); float PosX = (float)player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float)player.getPersistentData().getDouble("gun_move_posY"); - - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java index 9b95675fc..7acd6210c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/TaserItemModel.java @@ -48,11 +48,19 @@ public class TaserItemModel extends GeoModel { bar.setScaleX((float) ItemNBTTool.getInt(stack, TAG_POWER, 1200) / 1200); if (ItemNBTTool.getInt(stack, TAG_POWER, 1200) >= 400) { - bluecover.setHidden(false); - redcover.setHidden(true); + bluecover.setScaleX(1); + bluecover.setScaleY(1); + bluecover.setScaleZ(1); + redcover.setScaleX(0); + redcover.setScaleY(0); + redcover.setScaleZ(0); } else { - bluecover.setHidden(true); - redcover.setHidden(false); + bluecover.setScaleX(0); + bluecover.setScaleY(0); + bluecover.setScaleZ(0); + redcover.setScaleX(1); + redcover.setScaleY(1); + redcover.setScaleZ(1); } double fp = player.getPersistentData().getDouble("fire_pos"); diff --git a/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java b/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java index 956dccb9c..2a71ceff2 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java +++ b/src/main/java/net/mcreator/superbwarfare/client/model/item/VectorItemModel.java @@ -51,11 +51,8 @@ public class VectorItemModel extends GeoModel { kmj.setRotX(0); } - double p = 0; - p = player.getPersistentData().getDouble("zoom_pos"); - - double zp = 0; - zp = player.getPersistentData().getDouble("zoom_pos_z"); + double p = player.getPersistentData().getDouble("zoom_pos"); + double zp = player.getPersistentData().getDouble("zoom_pos_z"); gun.setPosX(2.35f * (float) p); @@ -68,11 +65,8 @@ public class VectorItemModel extends GeoModel { scope.setScaleZ(1f - (0.2f * (float) p)); CoreGeoBone holo = getAnimationProcessor().getBone("holo"); - if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming && gun.getPosX() > 2) { - holo.setHidden(false); - } else { - holo.setHidden(true); - } + + stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 2)); double fp = player.getPersistentData().getDouble("fire_pos"); double fr = player.getPersistentData().getDouble("fire_rot"); @@ -95,10 +89,8 @@ public class VectorItemModel extends GeoModel { float PosX = (float) player.getPersistentData().getDouble("gun_move_posX"); float PosY = (float) player.getPersistentData().getDouble("gun_move_posY"); - double y = 0; - double x = 0; - y = player.getPersistentData().getDouble("y"); - x = player.getPersistentData().getDouble("x"); + double y = player.getPersistentData().getDouble("y"); + double x = player.getPersistentData().getDouble("x"); root.setPosX(PosX); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MarlinItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MarlinItemRenderer.java index 560a39cbe..8bb13d270 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MarlinItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/MarlinItemRenderer.java @@ -2,16 +2,25 @@ package net.mcreator.superbwarfare.client.renderer.item; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.item.gun.MarlinItem; import net.mcreator.superbwarfare.client.layer.MarlinLayer; import net.mcreator.superbwarfare.client.model.item.MarlinItemModel; +import net.mcreator.superbwarfare.item.gun.MarlinItem; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; import java.util.HashSet; import java.util.Set; @@ -34,7 +43,6 @@ public class MarlinItemRenderer extends GeoItemRenderer { public ItemDisplayContext transformType; protected MarlinItem animatable; private final Set hiddenBones = new HashSet<>(); - private final Set suppressedBones = new HashSet<>(); @Override public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { @@ -56,6 +64,69 @@ public class MarlinItemRenderer extends GeoItemRenderer { } } + @Override + public void renderRecursively(PoseStack stack, MarlinItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + 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); + } + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(MarlinItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Mk14ItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Mk14ItemRenderer.java index 6c3989ddb..3e07ed7c3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Mk14ItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Mk14ItemRenderer.java @@ -2,16 +2,26 @@ package net.mcreator.superbwarfare.client.renderer.item; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.item.gun.Mk14Item; import net.mcreator.superbwarfare.client.layer.Mk14Layer; import net.mcreator.superbwarfare.client.model.item.Mk14ItemModel; +import net.mcreator.superbwarfare.item.gun.Mk14Item; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; import java.util.HashSet; import java.util.Set; @@ -56,6 +66,88 @@ public class Mk14ItemRenderer extends GeoItemRenderer { } } + @Override + public void renderRecursively(PoseStack stack, Mk14Item animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + Player player_ = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player_ != null) { + itemStack = player_.getMainHandItem(); + } + + if (name.equals("flare")) { + 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); + } + } + + if (name.equals("rex")) { + if (player_ != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("jing")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("qiangguan")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(Mk14Item instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Ntw20Renderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Ntw20Renderer.java index 108984ee7..db0f88b90 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Ntw20Renderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/Ntw20Renderer.java @@ -2,16 +2,26 @@ package net.mcreator.superbwarfare.client.renderer.item; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.item.gun.Ntw20; import net.mcreator.superbwarfare.client.layer.Ntw20Layer; import net.mcreator.superbwarfare.client.model.item.Ntw20Model; +import net.mcreator.superbwarfare.item.gun.Ntw20; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; import java.util.HashSet; import java.util.Set; @@ -56,6 +66,100 @@ public class Ntw20Renderer extends GeoItemRenderer { } } + @Override + public void renderRecursively(PoseStack stack, Ntw20 animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + Player player_ = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player_ != null) { + itemStack = player_.getMainHandItem(); + } + + if (name.equals("flare")) { + if (itemStack != null && itemStack.getOrCreateTag().getDouble("flash_time") > 0) { + bone.setHidden(false); + bone.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5))); + bone.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5))); + bone.setRotZ((float) (0.5 * (Math.random() - 0.5))); + } else { + bone.setHidden(true); + } + } + + if (name.equals("rex")) { + if (player_ != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("jing")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("action")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("body")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (name.equals("base")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(Ntw20 instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpgItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpgItemRenderer.java index 789ec61fe..27a590107 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpgItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpgItemRenderer.java @@ -1,10 +1,29 @@ package net.mcreator.superbwarfare.client.renderer.item; -import net.mcreator.superbwarfare.item.gun.RpgItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.RpgLayer; import net.mcreator.superbwarfare.client.model.item.RpgItemModel; +import net.mcreator.superbwarfare.item.gun.RpgItem; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; public class RpgItemRenderer extends GeoItemRenderer { public RpgItemRenderer() { @@ -12,6 +31,107 @@ public class RpgItemRenderer extends GeoItemRenderer { this.addRenderLayer(new RpgLayer(this)); } + @Override + public RenderType getRenderType(RpgItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected RpgItem animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, RpgItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, RpgItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + Player player_ = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player_ != null) { + itemStack = player_.getMainHandItem(); + } + + if (name.equals("flare")) { + 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); + } + } + + if (name.equals("Rockets")) { + bone.setHidden(itemStack != null && itemStack.getOrCreateTag().getBoolean("empty")); + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(RpgItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpkItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpkItemRenderer.java index 1f03732fd..55195b765 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpkItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/RpkItemRenderer.java @@ -1,10 +1,30 @@ package net.mcreator.superbwarfare.client.renderer.item; -import net.mcreator.superbwarfare.item.gun.RpkItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.RpkLayer; import net.mcreator.superbwarfare.client.model.item.RpkItemModel; +import net.mcreator.superbwarfare.item.gun.RpkItem; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; public class RpkItemRenderer extends GeoItemRenderer { public RpkItemRenderer() { @@ -12,6 +32,114 @@ public class RpkItemRenderer extends GeoItemRenderer { this.addRenderLayer(new RpkLayer(this)); } + @Override + public RenderType getRenderType(RpkItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected RpkItem animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, RpkItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, RpkItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + 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); + } + } + + if (name.equals("holo")) { + Player player = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player != null) { + itemStack = player.getMainHandItem(); + } + if (player != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(RpkItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SentinelItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SentinelItemRenderer.java index 05a2ce3d1..ce9f5765e 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SentinelItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SentinelItemRenderer.java @@ -1,10 +1,32 @@ package net.mcreator.superbwarfare.client.renderer.item; -import net.mcreator.superbwarfare.item.gun.SentinelItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.SentinelLayer; import net.mcreator.superbwarfare.client.model.item.SentinelItemModel; +import net.mcreator.superbwarfare.item.gun.SentinelItem; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import net.minecraftforge.common.capabilities.ForgeCapabilities; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; +import java.util.concurrent.atomic.AtomicBoolean; public class SentinelItemRenderer extends GeoItemRenderer { public SentinelItemRenderer() { @@ -12,6 +34,122 @@ public class SentinelItemRenderer extends GeoItemRenderer { this.addRenderLayer(new SentinelLayer(this)); } + @Override + public RenderType getRenderType(SentinelItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected SentinelItem animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, SentinelItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, SentinelItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + Player player_ = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player_ != null) { + itemStack = player_.getMainHandItem(); + } + + if (name.equals("flare")) { + 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); + } + } + + if (name.equals("holo")) { + if (player_ != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + AtomicBoolean flag = new AtomicBoolean(false); + if (itemStack != null) { + itemStack.getCapability(ForgeCapabilities.ENERGY).ifPresent( + iEnergyStorage -> flag.set(iEnergyStorage.getEnergyStored() > 0) + ); + } + + if (name.equals("charge")) { + if (player_ != null) { + bone.setHidden(!flag.get()); + } + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(SentinelItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SksItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SksItemRenderer.java index 97eb92d92..243ef6c33 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SksItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SksItemRenderer.java @@ -1,10 +1,30 @@ package net.mcreator.superbwarfare.client.renderer.item; -import net.mcreator.superbwarfare.item.gun.SksItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.SksLayer; import net.mcreator.superbwarfare.client.model.item.SksItemModel; +import net.mcreator.superbwarfare.item.gun.SksItem; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; public class SksItemRenderer extends GeoItemRenderer { public SksItemRenderer() { @@ -12,6 +32,114 @@ public class SksItemRenderer extends GeoItemRenderer { this.addRenderLayer(new SksLayer(this)); } + @Override + public RenderType getRenderType(SksItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected SksItem animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, SksItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, SksItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + 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); + } + } + + if (name.equals("holo")) { + Player player = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player != null) { + itemStack = player.getMainHandItem(); + } + if (player != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(SksItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SvdItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SvdItemRenderer.java index 5cc0a2c77..b63c6e8d2 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SvdItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/SvdItemRenderer.java @@ -2,16 +2,26 @@ package net.mcreator.superbwarfare.client.renderer.item; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; -import net.mcreator.superbwarfare.item.gun.SvdItem; import net.mcreator.superbwarfare.client.layer.SvdLayer; import net.mcreator.superbwarfare.client.model.item.SvdItemModel; +import net.mcreator.superbwarfare.item.gun.SvdItem; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; import net.minecraft.world.item.ItemDisplayContext; import net.minecraft.world.item.ItemStack; import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; import java.util.HashSet; import java.util.Set; @@ -56,6 +66,92 @@ public class SvdItemRenderer extends GeoItemRenderer { } } + @Override + public void renderRecursively(PoseStack stack, SvdItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + Player player_ = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player_ != null) { + itemStack = player_.getMainHandItem(); + } + + if (name.equals("flare")) { + 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); + } + } + + if (name.equals("holo")) { + if (player_ != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + +// if (name.equals("glass")) { +// if (player_ != null) { +// bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); +// } +// } + + if (name.equals("glass")) { + bone.setHidden(true); + } + + if (name.equals("handguard")) { + if (player_ != null) { + bone.setHidden(!itemStack.getOrCreateTag().getBoolean("HoloHidden") && player_.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(SvdItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/TaserItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/TaserItemRenderer.java index ae7abb080..382bf642c 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/TaserItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/TaserItemRenderer.java @@ -1,11 +1,29 @@ package net.mcreator.superbwarfare.client.renderer.item; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.TaserLayer; import net.mcreator.superbwarfare.client.layer.TaserLayer2; -import net.mcreator.superbwarfare.item.gun.Taser; import net.mcreator.superbwarfare.client.model.item.TaserItemModel; +import net.mcreator.superbwarfare.item.gun.Taser; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; public class TaserItemRenderer extends GeoItemRenderer { public TaserItemRenderer() { @@ -14,6 +32,86 @@ public class TaserItemRenderer extends GeoItemRenderer { this.addRenderLayer(new TaserLayer2(this)); } + @Override + public RenderType getRenderType(Taser animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected Taser animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, Taser animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, Taser animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(Taser instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/VectorItemRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/VectorItemRenderer.java index 178404cbd..ac46c9ba1 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/item/VectorItemRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/item/VectorItemRenderer.java @@ -1,10 +1,30 @@ package net.mcreator.superbwarfare.client.renderer.item; -import net.mcreator.superbwarfare.item.gun.VectorItem; +import com.mojang.blaze3d.vertex.PoseStack; +import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.client.layer.VectorLayer; import net.mcreator.superbwarfare.client.model.item.VectorItemModel; +import net.mcreator.superbwarfare.item.gun.VectorItem; +import net.mcreator.superbwarfare.network.ModVariables; +import net.mcreator.superbwarfare.tools.AnimUtils; +import net.minecraft.client.Minecraft; +import net.minecraft.client.model.PlayerModel; +import net.minecraft.client.player.AbstractClientPlayer; +import net.minecraft.client.renderer.MultiBufferSource; +import net.minecraft.client.renderer.RenderType; +import net.minecraft.client.renderer.entity.player.PlayerRenderer; +import net.minecraft.client.renderer.texture.OverlayTexture; import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemDisplayContext; +import net.minecraft.world.item.ItemStack; +import software.bernie.geckolib.cache.object.BakedGeoModel; +import software.bernie.geckolib.cache.object.GeoBone; import software.bernie.geckolib.renderer.GeoItemRenderer; +import software.bernie.geckolib.util.RenderUtils; + +import java.util.HashSet; +import java.util.Set; public class VectorItemRenderer extends GeoItemRenderer { public VectorItemRenderer() { @@ -12,6 +32,98 @@ public class VectorItemRenderer extends GeoItemRenderer { this.addRenderLayer(new VectorLayer(this)); } + @Override + public RenderType getRenderType(VectorItem animatable, ResourceLocation texture, MultiBufferSource bufferSource, float partialTick) { + return RenderType.entityTranslucent(getTextureLocation(animatable)); + } + + private static final float SCALE_RECIPROCAL = 1.0f / 16.0f; + protected boolean renderArms = false; + protected MultiBufferSource currentBuffer; + protected RenderType renderType; + public ItemDisplayContext transformType; + protected VectorItem animatable; + private final Set hiddenBones = new HashSet<>(); + + @Override + public void renderByItem(ItemStack stack, ItemDisplayContext transformType, PoseStack matrixStack, MultiBufferSource bufferIn, int combinedLightIn, int p_239207_6_) { + this.transformType = transformType; + if (this.animatable != null) + this.animatable.getTransformType(transformType); + super.renderByItem(stack, transformType, matrixStack, bufferIn, combinedLightIn, p_239207_6_); + } + + @Override + public void actuallyRender(PoseStack matrixStackIn, VectorItem animatable, BakedGeoModel model, RenderType type, MultiBufferSource renderTypeBuffer, VertexConsumer vertexBuilder, boolean isRenderer, float partialTicks, int packedLightIn, + int packedOverlayIn, float red, float green, float blue, float alpha) { + this.currentBuffer = renderTypeBuffer; + this.renderType = type; + this.animatable = animatable; + super.actuallyRender(matrixStackIn, animatable, model, type, renderTypeBuffer, vertexBuilder, isRenderer, partialTicks, packedLightIn, packedOverlayIn, red, green, blue, alpha); + if (this.renderArms) { + this.renderArms = false; + } + } + + @Override + public void renderRecursively(PoseStack stack, VectorItem animatable, GeoBone bone, RenderType type, MultiBufferSource buffer, VertexConsumer bufferIn, boolean isReRender, float partialTick, int packedLightIn, int packedOverlayIn, float red, + float green, float blue, float alpha) { + Minecraft mc = Minecraft.getInstance(); + String name = bone.getName(); + boolean renderingArms = false; + if (name.equals("Lefthand") || name.equals("Righthand")) { + bone.setHidden(true); + renderingArms = true; + } else { + bone.setHidden(this.hiddenBones.contains(name)); + } + + if (name.equals("holo")) { + Player player = Minecraft.getInstance().player; + ItemStack itemStack = null; + if (player != null) { + itemStack = player.getMainHandItem(); + } + if (player != null) { + bone.setHidden(itemStack.getOrCreateTag().getBoolean("HoloHidden") || !player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).zooming); + } + } + + + if (this.transformType.firstPerson() && renderingArms) { + AbstractClientPlayer player = mc.player; + + if (player == null) { + return; + } + + PlayerRenderer playerRenderer = (PlayerRenderer) mc.getEntityRenderDispatcher().getRenderer(player); + PlayerModel model = playerRenderer.getModel(); + stack.pushPose(); + RenderUtils.translateMatrixToBone(stack, bone); + RenderUtils.translateToPivotPoint(stack, bone); + RenderUtils.rotateMatrixAroundBone(stack, bone); + RenderUtils.scaleMatrixForBone(stack, bone); + RenderUtils.translateAwayFromPivotPoint(stack, bone); + ResourceLocation loc = player.getSkinTextureLocation(); + VertexConsumer armBuilder = this.currentBuffer.getBuffer(RenderType.entitySolid(loc)); + VertexConsumer sleeveBuilder = this.currentBuffer.getBuffer(RenderType.entityTranslucent(loc)); + if (name.equals("Lefthand")) { + stack.translate(-1.0f * SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.leftArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.leftSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } else { + stack.translate(SCALE_RECIPROCAL, 2.0f * SCALE_RECIPROCAL, 0.0f); + AnimUtils.renderPartOverBone(model.rightArm, bone, stack, armBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + AnimUtils.renderPartOverBone(model.rightSleeve, bone, stack, sleeveBuilder, packedLightIn, OverlayTexture.NO_OVERLAY, 1); + } + + this.currentBuffer.getBuffer(this.renderType); + stack.popPose(); + } + super.renderRecursively(stack, animatable, bone, type, buffer, bufferIn, isReRender, partialTick, packedLightIn, packedOverlayIn, red, green, blue, alpha); + } + @Override public ResourceLocation getTextureLocation(VectorItem instance) { return super.getTextureLocation(instance); diff --git a/src/main/java/net/mcreator/superbwarfare/client/screens/ArmRendererFixOverlay.java b/src/main/java/net/mcreator/superbwarfare/client/screens/ArmRendererFixOverlay.java new file mode 100644 index 000000000..e4493a6b6 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/client/screens/ArmRendererFixOverlay.java @@ -0,0 +1,25 @@ + +package net.mcreator.superbwarfare.client.screens; + +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.screens.inventory.InventoryScreen; +import net.minecraft.world.entity.player.Player; +import net.minecraftforge.api.distmarker.Dist; +import net.minecraftforge.client.event.RenderGuiEvent; +import net.minecraftforge.eventbus.api.EventPriority; +import net.minecraftforge.eventbus.api.SubscribeEvent; +import net.minecraftforge.fml.common.Mod; + + +@Mod.EventBusSubscriber({Dist.CLIENT}) +public class ArmRendererFixOverlay { + @SubscribeEvent(priority = EventPriority.NORMAL) + public static void eventHandler(RenderGuiEvent.Pre event) { + int w = event.getWindow().getGuiScaledWidth(); + int h = event.getWindow().getGuiScaledHeight(); + Player entity = Minecraft.getInstance().player; + if (entity != null) { + InventoryScreen.renderEntityInInventoryFollowsAngle(event.getGuiGraphics(), w / 2 - 114514, h / 2 + 22, 1, 0f, 0, entity); + } + } +} diff --git a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java index 1c2af50ea..8edc60926 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java +++ b/src/main/java/net/mcreator/superbwarfare/item/gun/SentinelItem.java @@ -9,7 +9,6 @@ import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.init.ModTags; import net.mcreator.superbwarfare.item.AnimatedItem; -import net.mcreator.superbwarfare.network.ModVariables; import net.mcreator.superbwarfare.tools.GunsTool; import net.mcreator.superbwarfare.tools.RarityTool; import net.mcreator.superbwarfare.tools.TooltipTool; @@ -129,10 +128,6 @@ public class SentinelItem extends GunItem implements GeoItem, AnimatedItem { if (this.animationProcedure.equals("empty")) { - if ((player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables())).zooming && stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { - return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift2")); - } - if (stack.getOrCreateTag().getInt("bolt_action_anim") > 0) { return event.setAndContinue(RawAnimation.begin().thenPlay("animation.sentinel.shift")); } diff --git a/src/main/resources/assets/superbwarfare/animations/marlin.animation.json b/src/main/resources/assets/superbwarfare/animations/marlin.animation.json index 47e0d1f37..7257db7e7 100644 --- a/src/main/resources/assets/superbwarfare/animations/marlin.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/marlin.animation.json @@ -9,6 +9,14 @@ "scale": { "vector": [0, 0, 0] } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -65,6 +73,14 @@ "easing": "easeOutSine" } } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -137,6 +153,14 @@ "vector": [-0.3, -0.3, 0.3] } } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -292,6 +316,14 @@ "scale": { "vector": [0, 0, 0] } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -310,6 +342,14 @@ "scale": { "vector": [0, 0, 0] } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -372,15 +412,15 @@ "vector": [0, 0, 0] }, "0.0833": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeOutSine" }, "0.25": { - "vector": [20.32, -11.4, 4.1], + "vector": [-20.32, 11.4, 4.1], "easing": "easeInElastic" }, "0.4": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeInOutCubic" }, "0.5333": { @@ -546,6 +586,14 @@ "easing": "easeInElastic" } } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -608,15 +656,15 @@ "vector": [0, 0, 0] }, "0.0667": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeOutSine" }, "0.1667": { - "vector": [20.32, -11.4, 4.1], + "vector": [-20.32, 11.4, 4.1], "easing": "easeInElastic" }, "0.2833": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeInOutCubic" }, "0.4167": { @@ -779,6 +827,14 @@ "vector": [0, 0, 0] } } + }, + "Lefthand": { + "rotation": { + "vector": [-36.92278, -14.87784, 55.91421] + }, + "position": { + "vector": [-1.3, 1.55, -1.15] + } } } }, @@ -815,22 +871,22 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [0, 0, 0] + "vector": [-36.92278, -14.87784, 55.91421] }, "0.0833": { - "vector": [-1.12286, 7.82711, -19.68823] + "vector": [-36.92278, -14.87784, 55.91421] }, "0.25": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-69.73114, -16.81988, 61.84372], "easing": "linear" } }, "position": { "0.0": { - "vector": [0, 0, 0] + "vector": [-1.3, 1.55, -1.15] }, "0.0833": { - "vector": [3.24949, 1.77211, -0.93576] + "vector": [-1.3, 1.55, -1.15] }, "0.1333": { "vector": [3.71625, 2.71032, -0.24509] @@ -929,20 +985,20 @@ "vector": [0, 0, 0] }, "0.3167": { - "vector": [2.49898, 18.30589, 22.22575], + "vector": [-2.499, -18.3059, 22.22575], "easing": "easeOutCirc" }, "0.4167": { - "vector": [5.54139, 16.26529, 25.40123] + "vector": [-5.5414, -16.2653, 25.40123] }, "0.5333": { - "vector": [4.52498, 24.12049, 46.3089] + "vector": [-4.525, -24.1205, 46.3089] }, "0.5833": { - "vector": [4.52498, 24.12049, 46.3089] + "vector": [-4.525, -24.1205, 46.3089] }, "0.7083": { - "vector": [2.98434, 25.08442, 28.7855] + "vector": [-2.9843, -25.0844, 28.7855] }, "0.8333": { "vector": [0, 0, 0] @@ -982,11 +1038,11 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-72.73114, -16.81988, 61.84372], "easing": "linear" }, "0.8333": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-72.73114, -16.81988, 61.84372], "easing": "linear" } }, @@ -1176,20 +1232,20 @@ "vector": [0, 0, 0] }, "0.3167": { - "vector": [2.49898, 18.30589, 22.22575], + "vector": [-2.499, -18.3059, 22.22575], "easing": "easeOutCirc" }, "0.4167": { - "vector": [5.54139, 16.26529, 25.40123] + "vector": [-5.5414, -16.2653, 25.40123] }, "0.5333": { - "vector": [4.52498, 24.12049, 46.3089] + "vector": [-4.525, -24.1205, 46.3089] }, "0.5833": { - "vector": [4.52498, 24.12049, 46.3089] + "vector": [-4.525, -24.1205, 46.3089] }, "0.7083": { - "vector": [2.98434, 25.08442, 28.7855] + "vector": [-2.9843, -25.0844, 28.7855] }, "0.8333": { "vector": [0, 0, 0] @@ -1229,11 +1285,11 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-72.73114, -16.81988, 61.84372], "easing": "linear" }, "0.8333": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-72.73114, -16.81988, 61.84372], "easing": "linear" } }, @@ -1430,15 +1486,15 @@ "Righthand": { "rotation": { "0.1417": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeOutSine" }, "0.3417": { - "vector": [20.32, -11.4, 4.1], + "vector": [-20.32, 11.4, 4.1], "easing": "easeInElastic" }, "0.5417": { - "vector": [5.32205, -11.40296, 4.10285], + "vector": [-5.322, 11.403, 4.10285], "easing": "easeInOutCubic" }, "0.675": { @@ -1466,14 +1522,14 @@ "Lefthand": { "rotation": { "0.0": { - "vector": [12.69213, -0.68315, -40.25932], + "vector": [-69.73114, -16.81988, 61.84372], "easing": "linear" }, "0.325": { - "vector": [6.76668, 20.84565, -53.2677] + "vector": [-46.1235, -16.17767, 13.61388] }, "0.575": { - "vector": [0, 0, 0] + "vector": [-36.92278, -14.87784, 55.91421] } }, "position": { @@ -1481,20 +1537,14 @@ "vector": [3.68428, 6.19247, 0.90079], "easing": "linear" }, - "0.1417": { - "vector": [6.22315, 6.73629, -0.78026] - }, "0.325": { - "vector": [5.49541, 9.67444, -0.19151] + "vector": [3.72757, 8.02813, -1.43582] }, "0.4583": { - "vector": [4.30609, 2.64766, -2.19] - }, - "0.5417": { - "vector": [0.99563, 0.39672, -0.63] + "vector": [2.00609, 4.04766, -2.19] }, "0.575": { - "vector": [0, 0, 0] + "vector": [-1.3, 1.55, -1.15] } } }, diff --git a/src/main/resources/assets/superbwarfare/animations/mk14ebr.animation.json b/src/main/resources/assets/superbwarfare/animations/mk14ebr.animation.json index 00d32d826..cb8f73e65 100644 --- a/src/main/resources/assets/superbwarfare/animations/mk14ebr.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/mk14ebr.animation.json @@ -145,7 +145,7 @@ }, "animation.m14.run_fast": { "loop": true, - "animation_length": 0.7, + "animation_length": 0.725, "bones": { "0": { "rotation": { @@ -548,15 +548,15 @@ "vector": [0, 0, 0] }, "0.525": { - "vector": [20.35457, 19.16824, 27.5538], + "vector": [-10.28, 21.2, 15.1], "easing": "easeInElastic" }, "0.675": { - "vector": [15.07652, 16.71082, 15.11822], + "vector": [-10.27945, 21.19767, 15.09535], "easing": "easeInElastic" }, "2.05": { - "vector": [15.07652, 16.71082, 15.11822], + "vector": [-10.27945, 21.19767, 15.09535], "easing": "easeInElastic" }, "2.45": { @@ -569,15 +569,15 @@ "vector": [0, 0, 0] }, "0.525": { - "vector": [0, 0.1, 7.9], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "0.675": { - "vector": [0, 0.1, 7.1], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "2.05": { - "vector": [0, 0.1, 7.1], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "2.45": { @@ -608,18 +608,18 @@ "vector": [0, 0, 0] }, "2.825": { - "vector": [-8.03962, 11.95555, -4.15338], + "vector": [8.0396, -11.9556, -4.15338], "easing": "easeInElastic" }, "3.0": { - "vector": [-8.03718, 13.13495, 1.77723] + "vector": [8.0372, -13.1349, 1.77723] }, "3.2": { - "vector": [-7.93653, 10.93397, -4.86892], + "vector": [7.9365, -10.934, -4.86892], "easing": "easeInElastic" }, "3.35": { - "vector": [0.99556, 10.40823, -15.83892], + "vector": [-0.9956, -10.4082, -15.83892], "easing": "easeInSine" }, "3.525": { @@ -770,11 +770,6 @@ } } } - }, - "sound_effects": { - "0.0": { - "effect": "mk_14_reload_empty" - } } }, "animation.m14.reload_normal": { @@ -983,15 +978,15 @@ "vector": [0, 0, 0] }, "0.525": { - "vector": [20.35457, 19.16824, 27.5538], + "vector": [-10.28, 21.2, 15.1], "easing": "easeInElastic" }, "0.675": { - "vector": [15.07652, 16.71082, 15.11822], + "vector": [-10.27945, 21.19767, 15.09535], "easing": "easeInElastic" }, "2.05": { - "vector": [15.07652, 16.71082, 15.11822], + "vector": [-10.27945, 21.19767, 15.09535], "easing": "easeInElastic" }, "2.45": { @@ -1004,15 +999,15 @@ "vector": [0, 0, 0] }, "0.525": { - "vector": [0, 0.1, 7.9], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "0.675": { - "vector": [0, 0.1, 7.1], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "2.05": { - "vector": [0, 0.1, 7.1], + "vector": [-0.8, 0.7, 7.3], "easing": "easeInElastic" }, "2.45": { @@ -1113,11 +1108,6 @@ } } } - }, - "sound_effects": { - "0.0": { - "effect": "mk_14_reload_normal" - } } } }, diff --git a/src/main/resources/assets/superbwarfare/animations/rpg.animation.json b/src/main/resources/assets/superbwarfare/animations/rpg.animation.json index 89141165d..340b7a52e 100644 --- a/src/main/resources/assets/superbwarfare/animations/rpg.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/rpg.animation.json @@ -215,7 +215,7 @@ }, "Righthand": { "rotation": { - "vector": [6.14572, 9.14706, -6.29764] + "vector": [-6.1457, -9.1471, -6.29764] }, "position": { "vector": [1.52734, 0.09375, 1.92969] @@ -386,57 +386,57 @@ "vector": [0, 0, 0] }, "0.5": { - "vector": [-141.04367, -31.09727, 4.50202] + "vector": [141.0437, 31.0973, 4.50202] }, "0.8": { - "vector": [-99.19, -30.23, 8.59] + "vector": [99.19, 30.23, 8.59] }, "1.1": { - "vector": [-57.34, -29.37, 12.68] + "vector": [57.34, 29.37, 12.68] }, "1.3": { - "vector": [-4.12077, -31.60552, 16.4981] + "vector": [4.1208, 31.6055, 16.4981] }, "1.6": { - "vector": [-12.2, -20.4, 5.1] + "vector": [12.2, 20.4, 5.1] }, "1.8": { - "vector": [-17.5872, -12.92521, -2.49731] + "vector": [17.5872, 12.9252, -2.49731] }, "1.9": { - "vector": [-5.5872, -9.92521, -12.49731], + "vector": [5.5872, 9.9252, -12.49731], "easing": "easeInOutSine" }, "2.0": { - "vector": [-17.5872, -9.92521, -23.49731], + "vector": [17.5872, 9.9252, -23.49731], "easing": "easeInOutSine" }, "2.3": { - "vector": [-17.5872, -12.92521, 23.50269] + "vector": [17.5872, 12.9252, 23.50269] }, "2.5": { - "vector": [-17.5872, -12.92521, -2.49731] + "vector": [17.5872, 12.9252, -2.49731] }, "2.8": { - "vector": [11.41661, -4.9823, 17.59188], + "vector": [-11.4166, 4.9823, 17.59188], "easing": "easeInSine" }, "2.9": { - "vector": [11.41661, -4.9823, 17.59188], + "vector": [-11.4166, 4.9823, 17.59188], "easing": "easeInSine" }, "3.1": { - "vector": [-0.39232, -6.37027, -13.80709] + "vector": [0.3923, 6.3703, -13.80709] }, "3.2": { - "vector": [-0.39232, -6.37027, -13.80709] + "vector": [0.3923, 6.3703, -13.80709] }, "3.4": { - "vector": [11.41661, -4.9823, 17.59188], + "vector": [-11.4166, 4.9823, 17.59188], "easing": "easeInSine" }, "3.8": { - "vector": [25.17572, -31.49409, 0.56802], + "vector": [-25.1757, 31.4941, 0.56802], "easing": "easeInSine" }, "4.1": { @@ -683,7 +683,7 @@ "vector": [0, 0, 0] }, "4.3": { - "vector": [-4, 3, 8] + "vector": [4, -3, 8] }, "4.5": { "vector": [0, 0, 0] diff --git a/src/main/resources/assets/superbwarfare/animations/rpk.animation.json b/src/main/resources/assets/superbwarfare/animations/rpk.animation.json index de3c0b731..8cce535b7 100644 --- a/src/main/resources/assets/superbwarfare/animations/rpk.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/rpk.animation.json @@ -3,17 +3,7 @@ "animations": { "animation.ak47.idle": { "loop": true, - "animation_length": 1, - "bones": { - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } - } - } + "animation_length": 1 }, "animation.ak47.draw": { "animation_length": 0.9, @@ -51,14 +41,6 @@ } } }, - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } - }, "camera": { "rotation": { "0.0": { @@ -124,11 +106,11 @@ "vector": [0, 0, 0] }, "0.2": { - "vector": [-0.78478, 1.92167, -26.98046], + "vector": [0.7848, -1.9217, -26.98046], "easing": "easeOutSine" }, "0.3": { - "vector": [8.15618, 10.19589, -5.96653], + "vector": [-8.1562, -10.1959, -5.96653], "easing": "easeInOutSine" }, "0.5": { @@ -149,14 +131,6 @@ "easing": "easeInOutSine" } } - }, - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } } } }, @@ -205,11 +179,11 @@ "vector": [0, 0, 0] }, "0.2": { - "vector": [8.15618, 10.19589, -5.96653], + "vector": [-8.1562, -10.1959, -5.96653], "easing": "easeOutSine" }, "0.3": { - "vector": [5.21522, 1.92167, -26.98046], + "vector": [-5.2152, -1.9217, -26.98046], "easing": "easeInOutSine" }, "0.5": { @@ -233,14 +207,6 @@ "easing": "easeInOutSine" } } - }, - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } } } }, @@ -308,14 +274,6 @@ "vector": [-0.3, -0.3, 0.3] } } - }, - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } } } }, @@ -403,17 +361,7 @@ }, "animation.ak47.fire": { "animation_length": 0.05, - "override_previous_animation": true, - "bones": { - "Lefthand": { - "rotation": { - "vector": [-13.63191, -29.3657, -16.88895] - }, - "position": { - "vector": [0.025, -0.11563, -1.60625] - } - } - } + "override_previous_animation": true }, "animation.ak47.reload_empty": { "loop": "hold_on_last_frame", @@ -717,71 +665,78 @@ }, "Lefthand": { "rotation": { - "0.0": { - "vector": [-13.63191, -29.3657, -16.88895] + "0.3167": { + "vector": [0, 0, 0] }, - "0.1333": { - "vector": [-13.63191, -29.3657, -16.88895] + "0.4333": { + "vector": [21.5018, 24.86704, -19.88085], + "easing": "linear" }, - "0.2833": { - "vector": [-5.59992, -15.19651, 11.81238] - }, - "0.5833": { - "vector": [14.12373, -11.09281, 25.14677] - }, - "2.3": { - "vector": [14.12373, -11.09281, 25.14677] - }, - "2.3833": { - "vector": [26.69687, -23.84553, 18.95298] - }, - "2.5333": { - "vector": [39.4566, -33.52813, 36.0472] - }, - "2.6167": { - "vector": [21.75908, -21.54018, 13.02377], + "0.7": { + "vector": [21.5018, 24.86704, -19.88085], "easing": "easeInElastic" }, - "2.7167": { - "vector": [21.75908, -21.54018, 13.02377] + "2.3833": { + "vector": [21.5018, 24.86704, -19.88085], + "easing": "easeInElastic" }, - "3.0333": { - "vector": [8.3734, -16.00221, -1.42197] + "2.5667": { + "vector": [15.98147, 57.29761, 1.4882], + "easing": "easeInElastic" }, - "3.1167": { - "vector": [-13.63191, -29.3657, -16.88895] + "2.6833": { + "vector": [17.10695, 28.59421, -18.3759], + "easing": "easeInElastic" + }, + "2.7333": { + "vector": [17.10695, 28.59421, -18.3759], + "easing": "easeInElastic" + }, + "2.8": { + "vector": [21.19557, 27.6615, -18.74727], + "easing": "easeInElastic" + }, + "3.0833": { + "vector": [0, 0, 0], + "easing": "easeOutSine" } }, "position": { - "0.0": { - "vector": [0.025, -0.11563, -1.60625] + "0.3167": { + "vector": [0, 0, 0] }, - "0.1667": { - "vector": [0.025, -0.11563, -1.60625] + "0.5": { + "vector": [-2.29096, -0.9323, 6.56616] }, - "0.4167": { - "vector": [-0.60795, -2.68839, 4.36626] - }, - "0.5833": { - "vector": [-2.22489, -1.18104, 6.66082] - }, - "2.3": { - "vector": [-2.22489, -1.18104, 6.66082] - }, - "2.5333": { - "vector": [-2.72279, -0.4342, 9.52345], + "0.6167": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "2.6167": { - "vector": [-2.86, -1.59, 7.89], + "0.7": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "2.7167": { - "vector": [-2.86, -1.59, 7.89], + "2.3833": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "3.1167": { - "vector": [0.025, -0.11563, -1.60625] + "2.5667": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.6833": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.7333": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.95": { + "vector": [-1.18452, -0.34374, 2.77435] + }, + "3.0833": { + "vector": [0, 0, 0] } } }, @@ -791,22 +746,22 @@ "vector": [0, 0, 0] }, "3.35": { - "vector": [8.28212, 20.95701, 9.9358] + "vector": [-8.2821, -20.957, 9.9358] }, "3.45": { - "vector": [-1.95978, 11.17581, -2.65919] + "vector": [1.9598, -11.1758, -2.65919] }, "3.55": { - "vector": [-1.95978, 11.17581, -2.65919] + "vector": [1.9598, -11.1758, -2.65919] }, "3.65": { - "vector": [-1.95978, 11.17581, -2.65919] + "vector": [1.9598, -11.1758, -2.65919] }, "3.75": { - "vector": [-1.95978, 11.17581, -2.65919] + "vector": [1.9598, -11.1758, -2.65919] }, "4.05": { - "vector": [19.28212, 20.95701, 9.9358] + "vector": [-19.2821, -20.957, 9.9358] }, "4.15": { "vector": [0, 0, 0], @@ -942,7 +897,7 @@ }, "sound_effects": { "0.0": { - "effect": "devotion_reload_empty" + "effect": "rpk_reload_empty" } } }, @@ -1183,71 +1138,78 @@ }, "Lefthand": { "rotation": { - "0.0": { - "vector": [-13.63191, -29.3657, -16.88895] + "0.3167": { + "vector": [0, 0, 0] }, - "0.1333": { - "vector": [-13.63191, -29.3657, -16.88895] + "0.4333": { + "vector": [21.5018, 24.86704, -19.88085], + "easing": "linear" }, - "0.2833": { - "vector": [0, 0, 26] - }, - "0.5833": { - "vector": [14.12373, -11.09281, 25.14677] - }, - "2.3": { - "vector": [14.12373, -11.09281, 25.14677] - }, - "2.3833": { - "vector": [26.69687, -23.84553, 18.95298] - }, - "2.5333": { - "vector": [39.4566, -33.52813, 36.0472] - }, - "2.6167": { - "vector": [21.75908, -21.54018, 13.02377], + "0.7": { + "vector": [21.5018, 24.86704, -19.88085], "easing": "easeInElastic" }, - "2.7167": { - "vector": [21.75908, -21.54018, 13.02377] + "2.3833": { + "vector": [21.5018, 24.86704, -19.88085], + "easing": "easeInElastic" }, - "3.0333": { - "vector": [8.3734, -16.00221, -1.42197] + "2.5667": { + "vector": [15.98147, 57.29761, 1.4882], + "easing": "easeInElastic" }, - "3.1167": { - "vector": [-13.63191, -29.3657, -16.88895] + "2.6833": { + "vector": [17.10695, 28.59421, -18.3759], + "easing": "easeInElastic" + }, + "2.7333": { + "vector": [17.10695, 28.59421, -18.3759], + "easing": "easeInElastic" + }, + "2.8": { + "vector": [21.19557, 27.6615, -18.74727], + "easing": "easeInElastic" + }, + "3.0833": { + "vector": [0, 0, 0], + "easing": "easeOutSine" } }, "position": { - "0.0": { - "vector": [0.025, -0.11563, -1.60625] + "0.3167": { + "vector": [0, 0, 0] }, - "0.1667": { - "vector": [0.025, -0.11563, -1.60625] + "0.5": { + "vector": [-2.29096, -0.9323, 6.56616] }, - "0.4167": { - "vector": [-0.60795, -2.68839, 4.36626] - }, - "0.5833": { - "vector": [-2.22489, -1.18104, 6.66082] - }, - "2.3": { - "vector": [-2.22489, -1.18104, 6.66082] - }, - "2.5333": { - "vector": [-2.72279, -0.4342, 9.52345], + "0.6167": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "2.6167": { - "vector": [-2.86, -1.59, 7.89], + "0.7": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "2.7167": { - "vector": [-2.86, -1.59, 7.89], + "2.3833": { + "vector": [-2.22489, -1.18104, 6.66082], "easing": "easeInElastic" }, - "3.1167": { - "vector": [0.025, -0.11563, -1.60625] + "2.5667": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.6833": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.7333": { + "vector": [-2.22489, -1.18104, 6.66082], + "easing": "easeInElastic" + }, + "2.95": { + "vector": [-1.18452, -0.34374, 2.77435] + }, + "3.0833": { + "vector": [0, 0, 0] } } }, @@ -1320,11 +1282,6 @@ } } } - }, - "sound_effects": { - "0.0": { - "effect": "devotion_reload_empty" - } } } }, diff --git a/src/main/resources/assets/superbwarfare/animations/sentinel.animation.json b/src/main/resources/assets/superbwarfare/animations/sentinel.animation.json index 45d1a30fa..f52a07ac0 100644 --- a/src/main/resources/assets/superbwarfare/animations/sentinel.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/sentinel.animation.json @@ -167,7 +167,7 @@ }, "Righthand": { "rotation": { - "vector": [0.91131, 14.09621, -8.80599] + "vector": [-0.9113, -14.0962, -8.80599] }, "position": { "vector": [2.87519, -0.6965, 0.78255] @@ -229,28 +229,33 @@ "vector": [0, 0, 0], "easing": "easeInOutSine" }, - "0.3": { - "vector": [-2, 0, -4], + "0.2": { + "vector": [-0.19988, 0.00698, 0.99999], "easing": "easeInElastic" }, + "0.3": { + "vector": [-1.57113, -0.42828, 13.16089], + "easing": "easeInSine" + }, "0.4": { - "vector": [-1.92, 0, 19.15], + "vector": [-4.4686, -0.19009, 3.51355], "easing": "easeInElastic" }, - "0.5": { - "vector": [-8.92, 0, 4.15], - "easing": "easeInElastic" + "0.6": { + "vector": [-0.25, -0.5, 4.82] }, "0.7": { - "vector": [-2.25, -4, 4.82] + "vector": [2.28655, 1.56915, 2.11954] }, "0.8": { - "vector": [1.08, 0, -9.85], - "easing": "linear" + "vector": [0.92716, 0.58779, -6.48154], + "easing": "easeInOutSine" }, "0.9": { - "vector": [0, 0, 0], - "easing": "easeInOutSine" + "vector": [0.49, 0, 0] + }, + "1.0": { + "vector": [0, 0, 0] } }, "position": { @@ -258,90 +263,111 @@ "vector": [0, 0, 0], "easing": "easeInOutSine" }, - "0.3": { + "0.1": { "vector": [0, 0, 0], "easing": "linear" }, - "0.5": { - "vector": [-0.1, 0, 1.9], + "0.3": { + "vector": [-0.21, -0.23, 0.32] + }, + "0.4": { + "vector": [-0.2, -0.5, 0.3], "easing": "easeInElastic" }, + "0.5": { + "vector": [-0.3, -0.5, 0.6] + }, "0.6": { - "vector": [-0.1, 0, 1.6] + "vector": [-0.3, -0.5, -1.4] }, "0.7": { - "vector": [-0.3, 0, -1.9] + "vector": [-0.1, -0.2, 0.1], + "easing": "easeInElastic" }, "0.8": { - "vector": [-0.2, -0.4, 0.5] + "vector": [0.14, -0.05, 0.2], + "easing": "easeInSine" + }, + "0.9": { + "vector": [0.04, 0.1, 0.24478] }, "1.0": { "vector": [0, 0, 0], - "easing": "easeInOutSine" + "easing": "easeOutSine" } } }, "Righthand": { "rotation": { - "0.1": { + "0.0": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [-11.05124, 19.47135, -3.30226], + "0.1": { + "vector": [16.59544, -8.00389, 2.51994], "easing": "linear" }, + "0.2": { + "vector": [19.22102, -14.25631, 14.03819], + "easing": "easeInSine" + }, + "0.3": { + "vector": [19.22102, -14.25631, 14.03819], + "easing": "easeInSine" + }, "0.4": { - "vector": [-2.21355, 15.26875, 0.47749], + "vector": [19.22102, -14.25631, 14.03819], "easing": "easeInSine" }, "0.5": { - "vector": [-2.21355, 15.26875, 0.47749], + "vector": [19.22102, -14.25631, 14.03819], "easing": "easeInSine" }, "0.6": { - "vector": [-2.21355, 15.26875, 0.47749], + "vector": [19.22102, -14.25631, 14.03819], "easing": "easeInSine" }, "0.7": { - "vector": [-2.21355, 15.26875, 0.47749], - "easing": "easeInSine" + "vector": [16.59544, -8.00389, 2.51994], + "easing": "linear" }, - "0.8": { - "vector": [-11.05124, 19.47135, -3.30226] - }, - "1.0": { + "0.9": { "vector": [0, 0, 0], "easing": "easeInElastic" } }, "position": { - "0.1": { + "0.0": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [1.3, 1.8, 1.1], + "0.1": { + "vector": [-1, 0.6, -0.5], "easing": "linear" }, + "0.2": { + "vector": [-1, 1.5, -0.5], + "easing": "easeInSine" + }, + "0.3": { + "vector": [-1, 1.5, -0.5], + "easing": "easeInSine" + }, "0.4": { - "vector": [0.69956, 4.29369, 1.30686], + "vector": [-1, 1.5, 2.7], "easing": "easeInSine" }, "0.5": { - "vector": [0.69956, 4.29369, 4.30686], + "vector": [-1, 1.5, 2.7], "easing": "easeInSine" }, "0.6": { - "vector": [0.69956, 4.29369, 4.30686], + "vector": [-1, 1.5, -0.5], "easing": "easeInSine" }, "0.7": { - "vector": [0.69956, 4.29369, 1.30686], - "easing": "easeInSine" + "vector": [-1, 0.6, -0.5], + "easing": "linear" }, - "0.8": { - "vector": [1.3, 1.3, 0.8] - }, - "1.0": { + "0.9": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -352,249 +378,54 @@ "0.0": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [0, 0, 0] - }, - "0.4": { - "vector": [0, 0, 35], - "easing": "easeInSine" - }, - "0.7": { - "vector": [0, 0, 35] - }, - "0.8": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0, 0, 0] - }, - "0.4": { - "vector": [0, 0, 0], - "easing": "easeInSine" - }, - "0.5": { - "vector": [0, 0, 3.14453], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0, 0, 3.14453] - }, - "0.7": { - "vector": [0, 0, 0], - "easing": "easeInSine" - }, - "0.8": { - "vector": [0, 0, 0], - "easing": "easeInSine" - } - } - }, - "camera": { - "rotation": { "0.1": { "vector": [0, 0, 0] }, - "0.3": { - "vector": [-0.5, -0.8, -0.5] + "0.2": { + "vector": [0, 0, 30], + "easing": "easeInSine" }, - "0.5": { - "vector": [0.2, 0.4, 3], - "easing": "easeInElastic" + "0.3": { + "vector": [0, 0, 30], + "easing": "easeInSine" }, "0.6": { - "vector": [-0.1, -0.2, -2], - "easing": "easeInElastic" - }, - "0.8": { - "vector": [0, 0, 1.5] - }, - "0.9": { - "vector": [0, 0, -0.75] - }, - "1.0": { - "vector": [0, 0, 0] - } - } - } - } - }, - "animation.sentinel.shift2": { - "animation_length": 1.1, - "override_previous_animation": true, - "bones": { - "0": { - "rotation": { - "0.0": { - "vector": [0, 0, 0], - "easing": "easeInOutSine" - }, - "0.3": { - "vector": [-2, 0, -4], - "easing": "easeInElastic" - }, - "0.4": { - "vector": [-1.92, 0, 3.15], - "easing": "easeInElastic" - }, - "0.5": { - "vector": [-2.92, 0, 1.15], - "easing": "easeInElastic" + "vector": [0, 0, 30], + "easing": "easeInSine" }, "0.7": { - "vector": [-2.25, -2, 1.82] - }, - "0.8": { - "vector": [1.08, 0, -2.85], - "easing": "linear" - }, - "0.9": { - "vector": [0, 0, 0], - "easing": "easeInOutSine" + "vector": [0, 0, 0] } }, "position": { "0.0": { - "vector": [0, 0, 0], - "easing": "easeInOutSine" + "vector": [0, 0, 0] }, - "0.3": { - "vector": [0.00697, -0.0997, -0.00349], - "easing": "linear" - }, - "0.5": { - "vector": [-0.10501, -0.24963, 0.98726], - "easing": "easeInElastic" - }, - "0.6": { - "vector": [-0.10628, -0.24967, 1.08873] - }, - "0.7": { - "vector": [-0.10759, -0.24969, -1.10981] - }, - "0.8": { - "vector": [0.19503, -0.10014, 0.19812] - }, - "1.0": { - "vector": [0, 0, 0], - "easing": "easeInOutSine" - } - } - }, - "Righthand": { - "rotation": { "0.1": { "vector": [0, 0, 0] }, + "0.2": { + "vector": [0, 0, 0], + "easing": "easeInSine" + }, "0.3": { - "vector": [-11.05124, 19.47135, -3.30226], - "easing": "linear" + "vector": [0, 0, 0], + "easing": "easeInSine" }, "0.4": { - "vector": [-2.21355, 15.26875, 0.47749], + "vector": [0, 0, 3.2], "easing": "easeInSine" }, "0.5": { - "vector": [-2.21355, 15.26875, 0.47749], - "easing": "easeInSine" + "vector": [0, 0, 3.2] }, "0.6": { - "vector": [-2.21355, 15.26875, 0.47749], - "easing": "easeInSine" - }, - "0.7": { - "vector": [-2.21355, 15.26875, 0.47749], - "easing": "easeInSine" - }, - "0.8": { - "vector": [-11.05124, 19.47135, -3.30226] - }, - "1.0": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - }, - "position": { - "0.1": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [1.3, 1.8, 1.1], - "easing": "linear" - }, - "0.4": { - "vector": [0.69956, 4.29369, 1.30686], - "easing": "easeInSine" - }, - "0.5": { - "vector": [0.69956, 4.29369, 4.30686], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0.69956, 4.29369, 4.30686], - "easing": "easeInSine" - }, - "0.7": { - "vector": [0.69956, 4.29369, 1.30686], - "easing": "easeInSine" - }, - "0.8": { - "vector": [1.3, 1.3, 0.8] - }, - "1.0": { - "vector": [0, 0, 0], - "easing": "easeInElastic" - } - } - }, - "bolt": { - "rotation": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0, 0, 0] - }, - "0.4": { - "vector": [0, 0, 35], - "easing": "easeInSine" - }, - "0.7": { - "vector": [0, 0, 35] - }, - "0.8": { - "vector": [0, 0, 0] - } - }, - "position": { - "0.0": { - "vector": [0, 0, 0] - }, - "0.3": { - "vector": [0, 0, 0] - }, - "0.4": { "vector": [0, 0, 0], "easing": "easeInSine" }, - "0.5": { - "vector": [0, 0, 3.14453], - "easing": "easeInSine" - }, - "0.6": { - "vector": [0, 0, 3.14453] - }, "0.7": { "vector": [0, 0, 0], "easing": "easeInSine" - }, - "0.8": { - "vector": [0, 0, 0], - "easing": "easeInSine" } } }, @@ -801,22 +632,22 @@ "vector": [0, 0, 0] }, "0.325": { - "vector": [-7.18968, 20.51373, -8.85702], + "vector": [7.1897, -20.5137, -8.85702], "easing": "easeInElastic" }, "0.4": { - "vector": [-11.05124, 19.47135, -3.30226] + "vector": [11.0512, -19.4714, -3.30226] }, "0.475": { - "vector": [-9.59401, 27.18618, 35.64132], + "vector": [9.594, -27.1862, 35.64132], "easing": "easeInSine" }, "0.55": { - "vector": [-9.59401, 27.18618, 35.64132], + "vector": [9.594, -27.1862, 35.64132], "easing": "easeInSine" }, "0.675": { - "vector": [-4.14232, 19.79507, 13.70946] + "vector": [4.1423, -19.7951, 13.70946] }, "0.775": { "vector": [0, 0, 0] @@ -825,18 +656,18 @@ "vector": [0, 0, 0] }, "3.325": { - "vector": [-5.26935, 23.9397, 9.47263] + "vector": [5.2693, -23.9397, 9.47263] }, "3.4": { - "vector": [-14.48597, 25.38509, 36.51757], + "vector": [14.486, -25.3851, 36.51757], "easing": "easeInSine" }, "3.5": { - "vector": [-9.59401, 27.18618, 35.64132], + "vector": [9.594, -27.1862, 35.64132], "easing": "easeInSine" }, "3.6": { - "vector": [-11.05124, 19.47135, -3.30226] + "vector": [11.0512, -19.4714, -3.30226] }, "3.8": { "vector": [0, 0, 0] @@ -1007,18 +838,19 @@ "vector": [0, 0, 0] }, "0.75": { - "vector": [30.584, -3.56838, 4.84324], + "vector": [31.4003, 27.5843, -34.88785], "easing": "linear" }, "0.9": { - "vector": [-3.22206, -3.30648, 2.38196], + "vector": [18.8359, 15.4973, -28.28221], "easing": "linear" }, "2.95": { - "vector": [-3.22206, -3.30648, 2.38196] + "vector": [18.8359, 15.4973, -28.28221], + "easing": "linear" }, "3.075": { - "vector": [28.632, -17.75227, 3.13551], + "vector": [27.6681, 12.1849, -18.97431], "easing": "linear" }, "3.225": { @@ -1031,18 +863,19 @@ "vector": [0, 0, 0] }, "0.75": { - "vector": [-0.1, 2.5, 13.3], + "vector": [-0.1, -1.5, 10.3], "easing": "linear" }, "0.9": { - "vector": [-0.9, -3.5, 18.8], + "vector": [-1, -1.2, 22.1], "easing": "linear" }, "2.95": { - "vector": [-0.9, -3.5, 18.8] + "vector": [-1, -1.2, 22.1], + "easing": "linear" }, "3.075": { - "vector": [-0.26, 1.67, 7.31], + "vector": [-0.1, -3.5, 10.3], "easing": "linear" }, "3.225": { @@ -1135,11 +968,6 @@ } } } - }, - "sound_effects": { - "0.0": { - "effect": "sentinel_reload" - } } }, "animation.sentinel.reload_normal": { @@ -1337,21 +1165,22 @@ "vector": [0, 0, 0] }, "0.1": { - "vector": [30.584, -3.56838, 4.84324], + "vector": [31.4003, 27.5843, -34.88785], "easing": "linear" }, "0.25": { - "vector": [-3.22206, -3.30648, 2.38196], + "vector": [18.8359, 15.4973, -28.28221], "easing": "linear" }, "2.125": { - "vector": [-3.22206, -3.30648, 2.38196] - }, - "2.25": { - "vector": [28.632, -17.75227, 3.13551], + "vector": [18.8359, 15.4973, -28.28221], "easing": "linear" }, - "2.35": { + "2.25": { + "vector": [27.6681, 12.1849, -18.97431], + "easing": "linear" + }, + "2.375": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -1361,21 +1190,22 @@ "vector": [0, 0, 0] }, "0.1": { - "vector": [-0.1, 2.5, 13.3], + "vector": [-0.1, -1.5, 10.3], "easing": "linear" }, "0.25": { - "vector": [-0.9, -3.5, 18.8], + "vector": [-1, -1.2, 22.1], "easing": "linear" }, "2.125": { - "vector": [-0.9, -3.5, 18.8] - }, - "2.25": { - "vector": [-0.26, 1.67, 7.31], + "vector": [-1, -1.2, 22.1], "easing": "linear" }, - "2.35": { + "2.25": { + "vector": [-0.1, -3.5, 10.3], + "easing": "linear" + }, + "2.375": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -1621,33 +1451,42 @@ "vector": [0, 0, 0] }, "0.125": { - "vector": [16.99, -1.98, 2.69] + "vector": [5.2274, 20.401, -3.54905] }, "0.325": { - "vector": [-3.22206, -3.30648, 2.38196], + "vector": [5.7779, -3.3065, 2.38196], + "easing": "linear" + }, + "0.4": { + "vector": [5.7779, -3.3065, 2.38196], "easing": "linear" }, "0.6": { - "vector": [-3.22, -3.31, 2.38] + "vector": [5.7779, -3.3065, 2.38196], + "easing": "linear" }, "1.0": { - "vector": [-3.22, -3.31, 2.38] + "vector": [5.7779, -3.3065, 2.38196], + "easing": "linear" }, "1.2": { - "vector": [-3.22206, -3.30648, 2.38196], + "vector": [5.7779, -3.3065, 2.38196], "easing": "linear" }, "1.3": { - "vector": [-3.22, -3.31, 2.38] + "vector": [5.7779, -3.3065, 2.38196], + "easing": "linear" }, - "1.5": { - "vector": [8.8121, -34.03383, 1.67647] + "1.4": { + "vector": [46.33526, 34.1097, -55.1921], + "easing": "linear" }, - "1.7": { - "vector": [30.70796, -27.00128, -12.03297] + "1.6": { + "vector": [33.06345, 45.06718, -89.58383], + "easing": "linear" }, "5.3": { - "vector": [30.70796, -27.00128, -12.03297] + "vector": [33.06345, 45.06718, -89.58383] }, "5.8": { "vector": [0, 0, 0] @@ -1658,30 +1497,37 @@ "vector": [0, 0, 0] }, "0.125": { - "vector": [-0.06, 1.39, 2.39] + "vector": [-0.06, 1.39, 4.09] }, "0.325": { - "vector": [-0.9, -1.5, 4.8], + "vector": [-0.9, -2.5, 6.3], + "easing": "linear" + }, + "0.4": { + "vector": [-0.9, -2.5, 6.3], "easing": "linear" }, "0.6": { - "vector": [-0.9, -10.5, 4.8] + "vector": [-0.9, -11.5, 6.3], + "easing": "linear" }, "1.0": { - "vector": [-0.9, -10.5, 4.8] + "vector": [-0.9, -11.5, 6.3], + "easing": "linear" }, "1.2": { - "vector": [-0.9, -1.5, 4.8], + "vector": [-0.9, -2.5, 6.3], "easing": "linear" }, "1.3": { - "vector": [-0.9, -1.5, 4.8] + "vector": [-0.9, -2.5, 6.3], + "easing": "linear" }, - "1.7": { - "vector": [-4.4, -0.4, 6.9] + "1.6": { + "vector": [-4.23047, -0.61484, 8.4] }, "5.3": { - "vector": [-4.4, -0.4, 6.9] + "vector": [-4.23047, -0.61484, 8.4] }, "5.5": { "vector": [-4.4, -11.5, 7.7], diff --git a/src/main/resources/assets/superbwarfare/animations/sks.animation.json b/src/main/resources/assets/superbwarfare/animations/sks.animation.json index a68289cc6..81910f054 100644 --- a/src/main/resources/assets/superbwarfare/animations/sks.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/sks.animation.json @@ -419,30 +419,30 @@ "vector": [0, 0, 0] }, "0.5167": { - "vector": [-10.23301, -10.25955, 3.51854], + "vector": [10.233, 10.2595, 3.51854], "easing": "easeOutQuad" }, "0.8833": { - "vector": [2.20817, -18.39622, 7.06347], + "vector": [-2.2082, 18.3962, 7.06347], "easing": "easeOutSine" }, "1.1167": { - "vector": [-25.86792, -14.68451, 0.99936], + "vector": [25.8679, 14.6845, 0.99936], "easing": "easeInOutQuad" }, "1.3": { - "vector": [-26.48047, -21.39686, -3.31204] + "vector": [26.4805, 21.3969, -3.31204] }, "1.4667": { - "vector": [-14.31753, -15.08281, -6.04184], + "vector": [14.3175, 15.0828, -6.04184], "easing": "easeOutSine" }, "1.55": { - "vector": [-14.31753, -15.08281, -6.04184], + "vector": [14.3175, 15.0828, -6.04184], "easing": "easeOutSine" }, "1.75": { - "vector": [-0.4978, -22.90313, 5.97238] + "vector": [0.4978, 22.9031, 5.97238] }, "1.9333": { "vector": [0, 0, 18], @@ -665,16 +665,16 @@ "vector": [0, 0, 0] }, "2.35": { - "vector": [1.1949, 18.48864, -2.92622] + "vector": [-1.1949, -18.4886, -2.92622] }, "2.45": { - "vector": [4.38543, 15.49955, 7.21206] + "vector": [-4.33567, -13.68659, 8.05816] }, "2.7167": { - "vector": [4.38543, 15.49955, 7.21206] + "vector": [-4.33567, -13.68659, 8.05816] }, "3.0": { - "vector": [1.25248, 18.45031, -0.01712] + "vector": [-1.2105, -14.92184, 1.86779] }, "3.2167": { "vector": [0, 0, 0] @@ -685,18 +685,18 @@ "vector": [0, 0, 0] }, "2.45": { - "vector": [0.42345, 2.24153, -3.94724] + "vector": [0.42345, 2.24153, -4.94724] }, "2.55": { - "vector": [0.42, 2.24, -3.25], + "vector": [0.42, 2.24, -4.25], "easing": "easeInSine" }, "2.7167": { - "vector": [0.42, 2.24, -3.25], + "vector": [0.42, 2.24, -4.25], "easing": "easeInSine" }, "2.8833": { - "vector": [0.42, 2.24, -6.45], + "vector": [0.42, 2.24, -7.45], "easing": "easeOutSine" }, "3.2167": { @@ -923,34 +923,34 @@ "vector": [0, 0, 0] }, "0.5333": { - "vector": [-10.23301, -10.25955, 3.51854], + "vector": [10.233, 10.2595, 3.51854], "easing": "easeOutQuad" }, "0.9": { - "vector": [2.20817, -18.39622, 7.06347], + "vector": [-2.2082, 18.3962, 7.06347], "easing": "easeOutSine" }, "1.1333": { - "vector": [-25.86792, -14.68451, 0.99936], + "vector": [25.8679, 14.6845, 0.99936], "easing": "easeInOutQuad" }, "1.3167": { - "vector": [-26.48047, -21.39686, -3.31204] + "vector": [26.4805, 21.3969, -3.31204] }, "1.4833": { - "vector": [-14.31753, -15.08281, -6.04184], + "vector": [14.3175, 15.0828, -6.04184], "easing": "easeOutSine" }, "1.5667": { - "vector": [-14.31753, -15.08281, -6.04184], + "vector": [14.3175, 15.0828, -6.04184], "easing": "easeOutSine" }, "1.7333": { - "vector": [4.67258, -14.84218, -5.84346], + "vector": [-4.6726, 14.8422, -5.84346], "easing": "easeOutSine" }, "2.05": { - "vector": [16.33545, -11.71775, -9.83624], + "vector": [-16.3355, 11.7178, -9.83624], "easing": "easeOutSine" }, "2.3": { diff --git a/src/main/resources/assets/superbwarfare/animations/svd.animation.json b/src/main/resources/assets/superbwarfare/animations/svd.animation.json index 1acdbca39..7935446a4 100644 --- a/src/main/resources/assets/superbwarfare/animations/svd.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/svd.animation.json @@ -393,64 +393,64 @@ "vector": [0, 0, 0] }, "0.5667": { - "vector": [23.76699, -10.25955, 3.51854], + "vector": [-23.767, 10.2595, 3.51854], "easing": "easeOutQuad" }, "0.8333": { - "vector": [7.91868, -26.40156, -38.05763], + "vector": [-6.6691, 35.19997, -33.13891], "easing": "linear" }, "0.9667": { - "vector": [1.80318, -46.73371, -21.59127] + "vector": [2.26755, 54.83907, -14.45566] }, "1.15": { - "vector": [20.31232, -51.51215, -24.79233] + "vector": [-17.88908, 61.09757, -21.04953] }, "1.2333": { - "vector": [10.28121, -44.51965, -13.55683] + "vector": [-7.35039, 53.44333, -8.17226] }, "1.3": { - "vector": [14.55032, -23.40856, -0.72828] + "vector": [-14.2423, 28.06613, 1.11675] }, "1.3667": { - "vector": [2.81649, -23.73622, -1.68109] + "vector": [-2.60924, 25.83237, -0.30296] }, "1.3833": { - "vector": [3.5619, -22.04452, -2.75543] + "vector": [-3.18454, 26.26856, -0.05303] }, "1.4167": { - "vector": [4.67363, -23.73622, -1.68109] + "vector": [-4.47631, 25.87553, -0.37251] }, "1.45": { - "vector": [4.79544, -22.02191, -2.71842] + "vector": [-4.63817, 24.16442, -1.42053] }, "1.5333": { - "vector": [7.72777, -22.9743, -2.14213] + "vector": [-7.56357, 25.17985, -0.95355] }, "1.6": { - "vector": [4.67363, -23.73622, -1.68109] + "vector": [-4.6736, 23.7362, -1.68109] }, "1.65": { - "vector": [4.67363, -23.73622, -1.68109] + "vector": [-4.6736, 23.7362, -1.68109] }, "1.8167": { - "vector": [-6.78199, -4.07081, 10.69071] + "vector": [6.782, 4.0708, 10.69071] }, "1.9667": { - "vector": [-26.9, 5.84, 25.75] + "vector": [26.9, -5.84, 25.75] }, "2.2": { - "vector": [21.28621, 49.80684, 92.55967], + "vector": [-21.2862, -49.8068, 92.55967], "easing": "easeInCubic" }, "2.3": { - "vector": [18.15836, 54.76869, 89.37164] + "vector": [-18.1584, -54.7687, 89.37164] }, "2.35": { - "vector": [18.15836, 54.76869, 89.37164] + "vector": [-18.1584, -54.7687, 89.37164] }, "2.75": { - "vector": [16.56356, -9.00013, 11.40462] + "vector": [-16.5636, 9.0001, 11.40462] }, "3.05": { "vector": [0, 0, 0] @@ -1045,45 +1045,45 @@ "vector": [0, 0, 0] }, "0.25": { - "vector": [-3.81928, -8.59364, -9.17363] + "vector": [3.8193, 8.5936, -9.17363] }, "0.3333": { - "vector": [0, 1.5, 1] + "vector": [0, -1.5, 1] }, "0.4167": { - "vector": [0, 1.5, 1] + "vector": [0, -1.5, 1] }, "0.5": { - "vector": [9.1979, -5.79583, 8.71524] + "vector": [-9.1979, 5.7958, 8.71524] }, "0.5833": { - "vector": [10.8863, -6.69443, 6.90149] + "vector": [-10.8863, 6.6944, 6.90149] }, "0.6667": { - "vector": [10.8863, -6.69443, 6.90149] + "vector": [-10.8863, 6.6944, 6.90149] }, "1.0417": { - "vector": [0, 1.5, 1], + "vector": [0, -1.5, 1], "easing": "easeInElastic" }, "1.1667": { - "vector": [0, 1.5, 1], + "vector": [0, -1.5, 1], "easing": "easeInElastic" }, "1.4167": { - "vector": [-5.02824, -8.21825, 9.86653] + "vector": [5.0282, 8.2183, 9.86653] }, "1.5833": { - "vector": [-2.02824, -8.21825, 9.86653] + "vector": [2.0282, 8.2183, 9.86653] }, "1.9167": { - "vector": [3.97176, -8.21825, 9.86653] + "vector": [-3.9718, 8.2183, 9.86653] }, "2.0417": { - "vector": [3.97176, -8.21825, 9.86653] + "vector": [-3.9718, 8.2183, 9.86653] }, "2.25": { - "vector": [-3.81928, -8.59364, -9.17363] + "vector": [3.8193, 8.5936, -9.17363] }, "2.4583": { "vector": [0, 0, 0], diff --git a/src/main/resources/assets/superbwarfare/animations/taser.animation.json b/src/main/resources/assets/superbwarfare/animations/taser.animation.json index aaea0e4b2..1edff5436 100644 --- a/src/main/resources/assets/superbwarfare/animations/taser.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/taser.animation.json @@ -10,7 +10,7 @@ }, "animation.taser.reload": { "loop": "hold_on_last_frame", - "animation_length": 2.75, + "animation_length": 2.5833, "override_previous_animation": true, "bones": { "0": { @@ -117,34 +117,45 @@ "vector": [0, 0, 0] }, "0.4583": { - "vector": [-20.90869, -15.21456, -16.89238], + "vector": [17.28178, 11.81938, -13.74589], "easing": "easeOutBack" }, "0.5833": { - "vector": [-17.89, -13.29, -10.54], + "vector": [17.89, 13.29, -10.54], "easing": "easeInOutSine" }, - "0.7083": { - "vector": [-16.88, -7.03, -16.89] - }, "0.9167": { - "vector": [-19.00328, -3.7608, -32.92722] + "vector": [-15.26666, -7.21079, -32.09116] }, - "1.4583": { - "vector": [-20.90869, -15.21456, -16.89238], + "1.3333": { + "vector": [11.33836, 15.57679, -32.68369], "easing": "easeOutBack" }, - "1.9167": { - "vector": [-20.90869, -15.21456, -16.89238], - "easing": "easeOutBack" + "1.5833": { + "vector": [21.25681, 14.51031, -31.92152] + }, + "1.625": { + "vector": [22.15477, 15.58476, -35.05004] + }, + "1.6667": { + "vector": [24.59206, 11.83166, -28.91263] + }, + "1.75": { + "vector": [28.1312, 15.12708, -33.43052] + }, + "1.8333": { + "vector": [32.67296, 7.36719, -31.31941], + "easing": "linear" + }, + "2.0": { + "vector": [31.94221, 8.54088, -32.21219] }, "2.0833": { - "vector": [-20.90869, -15.21456, -16.89238], + "vector": [35.21697, 9.07234, -33.53801], "easing": "easeOutBack" }, "2.25": { - "vector": [-20.90869, -15.21456, -16.89238], - "easing": "easeOutBack" + "vector": [10.49188, 18.26991, -36.52254] }, "2.4167": { "vector": [0, 0, 0] @@ -155,34 +166,33 @@ "vector": [0, 0, 0] }, "0.4167": { - "vector": [-0.19579, -2.08768, -5.4753], + "vector": [-0.19579, -2.08768, -5.5753], "easing": "easeOutBack" }, "0.5417": { - "vector": [0, -1.82, -10.4], - "easing": "easeInCirc" + "vector": [0, -1.82, -11.4], + "easing": "easeInElastic" }, - "0.6667": { - "vector": [0.6, -1.87, -9.4] + "0.7083": { + "vector": [6.6, -1.87, 0.6] }, "0.9167": { "vector": [7.55491, -9.57868, 6.1249] }, - "1.4583": { - "vector": [10, -9.37, 7.72], + "1.3333": { + "vector": [10, -9.37, 6.62], "easing": "easeInOutBack" }, - "1.9167": { - "vector": [0, -1.9, -10], - "easing": "easeInOutExpo" + "1.8333": { + "vector": [2.6, -1.9, -12.4], + "easing": "linear" + }, + "2.0": { + "vector": [2.8, -1.9, -9.8] }, "2.0833": { - "vector": [0, -1.9, -6.75], - "easing": "easeInElastic" - }, - "2.25": { - "vector": [0, -1.9, -6.75], - "easing": "easeOutBack" + "vector": [3, -1.9, -10.2], + "easing": "easeInOutExpo" }, "2.4167": { "vector": [0, 0, 0] @@ -200,10 +210,10 @@ "1.25": { "vector": [-380, 0, 0] }, - "1.4583": { + "1.3333": { "vector": [-30.68206, -27.03402, 52.54628] }, - "1.9167": { + "1.8333": { "vector": [0, 0, 0] }, "2.0833": { @@ -275,12 +285,12 @@ "1.2083": { "vector": [-109.12621, -239.05802, -69.27181] }, - "1.4583": { + "1.3333": { "vector": [10, -9, 13] }, - "1.9167": { + "1.8333": { "vector": [0, 0, -2.09375], - "easing": "easeInOutExpo" + "easing": "linear" }, "2.0833": { "vector": [0, 0, 0], diff --git a/src/main/resources/assets/superbwarfare/animations/vector.animation.json b/src/main/resources/assets/superbwarfare/animations/vector.animation.json index c7fe89b64..916e9f171 100644 --- a/src/main/resources/assets/superbwarfare/animations/vector.animation.json +++ b/src/main/resources/assets/superbwarfare/animations/vector.animation.json @@ -350,10 +350,10 @@ "easing": "easeInElastic" }, "0.475": { - "vector": [-10.44338, -1.43014, -23.74802] + "vector": [-4.94338, -1.43014, -23.74802] }, "0.6": { - "vector": [-14.84614, -2.5832, -32.03895] + "vector": [-17.34614, -2.5832, -32.03895] }, "0.75": { "vector": [-11.70611, -1.01407, -21.29215] @@ -369,7 +369,7 @@ "vector": [-4.12653, -4.72822, -56.55102] }, "1.45": { - "vector": [-10.49798, -4.62582, -54.17175] + "vector": [-15.97623, -3.32012, -47.27787] }, "1.55": { "vector": [-7.97951, -3.57005, -43.60547] @@ -409,7 +409,7 @@ "easing": "easeOutSine" }, "0.45": { - "vector": [-0.22251, -1.08196, 0.69958] + "vector": [-0.32433, -0.86096, 0.75862] }, "0.55": { "vector": [-0.68854, 0.72525, 1.50234] @@ -428,7 +428,7 @@ "vector": [-0.18308, 0.71818, 0.12707] }, "1.45": { - "vector": [-0.78727, 1.01829, -0.03871] + "vector": [-1.14582, 1.33855, 0.09868] }, "1.55": { "vector": [-0.02559, 0.30589, 0.02749] @@ -467,51 +467,53 @@ "vector": [0, 0, 0] }, "0.125": { - "vector": [-6.39437, 3.04891, 4.4876], + "vector": [6.3944, -3.0489, 4.4876], "easing": "easeOutSine" }, "0.175": { - "vector": [-6.39437, 3.04891, 4.4876], + "vector": [6.3944, -3.0489, 4.4876], "easing": "easeOutSine" }, "0.3": { - "vector": [11.60017, 7.29676, 7.14605], + "vector": [-11.6002, -7.2968, 7.14605], "easing": "easeInSine" }, "0.4": { - "vector": [11.60017, 7.29676, 7.14605] + "vector": [-11.6002, -7.2968, 7.14605], + "easing": "easeInSine" }, "1.55": { - "vector": [11.60017, 7.29676, 7.14605] + "vector": [-11.6002, -7.2968, 7.14605], + "easing": "easeInSine" }, "1.75": { - "vector": [-9.14164, -8.74812, 11.2864], + "vector": [9.1416, 8.7481, 11.2864], "easing": "easeInSine" }, "1.975": { - "vector": [-17.43269, 2.9275, 3.55312], + "vector": [17.4327, -2.9275, 3.55312], "easing": "easeOutSine" }, "2.075": { - "vector": [-17.43269, 2.9275, 3.55312] + "vector": [17.4327, -2.9275, 3.55312] }, "2.175": { - "vector": [-16.72239, -0.1378, 7.56709], + "vector": [16.7224, 0.1378, 7.56709], "easing": "easeInElastic" }, "2.35": { - "vector": [-21.08472, -5.11542, 4.19639], + "vector": [21.0847, 5.1154, 4.19639], "easing": "easeOutCubic" }, "2.425": { - "vector": [-17.15069, -17.13983, 8.15222], + "vector": [17.1507, 17.1398, 8.15222], "easing": "easeInSine" }, "2.5": { - "vector": [2.66341, -14.57317, 12.87392], + "vector": [-2.6634, 14.5732, 12.87392], "easing": "easeInOutSine" }, - "2.85": { + "2.65": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -560,7 +562,7 @@ "vector": [-0.1, 0.8, 1.4], "easing": "easeInOutSine" }, - "2.85": { + "2.65": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -783,10 +785,10 @@ "easing": "easeInElastic" }, "0.475": { - "vector": [-10.44338, -1.43014, -23.74802] + "vector": [-4.94338, -1.43014, -23.74802] }, "0.6": { - "vector": [-14.84614, -2.5832, -32.03895] + "vector": [-17.34614, -2.5832, -32.03895] }, "0.75": { "vector": [-11.70611, -1.01407, -21.29215] @@ -802,7 +804,7 @@ "vector": [-4.12653, -4.72822, -56.55102] }, "1.45": { - "vector": [-10.97623, -3.32012, -47.27787] + "vector": [-15.97623, -3.32012, -47.27787] }, "1.55": { "vector": [-8.39511, -2.42895, -35.67626] @@ -831,7 +833,7 @@ "easing": "easeOutSine" }, "0.45": { - "vector": [-0.22251, -1.08196, 0.69958] + "vector": [-0.32433, -0.86096, 0.75862] }, "0.55": { "vector": [-0.68854, 0.72525, 1.50234] @@ -850,7 +852,7 @@ "vector": [-0.18308, 0.71818, 0.12707] }, "1.45": { - "vector": [-0.78727, 1.01829, -0.03871] + "vector": [-1.14582, 1.33855, 0.09868] }, "1.55": { "vector": [-0.02559, 0.30589, 0.02749] @@ -873,27 +875,29 @@ "vector": [0, 0, 0] }, "0.125": { - "vector": [-6.39437, 3.04891, 4.4876], + "vector": [6.3944, -3.0489, 4.4876], "easing": "easeOutSine" }, "0.175": { - "vector": [-6.39437, 3.04891, 4.4876], + "vector": [6.3944, -3.0489, 4.4876], "easing": "easeOutSine" }, "0.3": { - "vector": [11.60017, 7.29676, 7.14605], + "vector": [-11.6002, -7.2968, 7.14605], "easing": "easeInSine" }, "0.4": { - "vector": [11.60017, 7.29676, 7.14605] + "vector": [-11.6002, -7.2968, 7.14605], + "easing": "easeInSine" }, "1.55": { - "vector": [11.60017, 7.29676, 7.14605] + "vector": [-11.6002, -7.2968, 7.14605], + "easing": "easeInSine" }, "1.7": { - "vector": [-10.40772, -0.25647, -0.25117] + "vector": [10.4077, 0.2565, -0.25117] }, - "1.925": { + "1.825": { "vector": [0, 0, 0], "easing": "easeInElastic" } @@ -923,7 +927,7 @@ "1.7": { "vector": [1.23123, -2.81852, 2.50813] }, - "1.925": { + "1.825": { "vector": [0, 0, 0], "easing": "easeInElastic" } diff --git a/src/main/resources/assets/superbwarfare/geo/marlin.geo.json b/src/main/resources/assets/superbwarfare/geo/marlin.geo.json index 3cf94fd34..b6d2860c0 100644 --- a/src/main/resources/assets/superbwarfare/geo/marlin.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/marlin.geo.json @@ -43,11 +43,11 @@ "name": "Righthand", "parent": "0", "pivot": [-3.68438, -5.38594, 17.88516], - "rotation": [65.60852, -18.30276, -6.2349], + "rotation": [114.39148, 18.30276, 173.7651], "cubes": [ { - "origin": [-4.68438, -5.38594, 15.88516], - "size": [3, 12, 4], + "origin": [-5.68438, -5.38594, 15.88516], + "size": [4, 12, 4], "uv": { "north": {"uv": [12, 0], "uv_size": [3, 12]}, "east": {"uv": [0, 0], "uv_size": [4, 12]}, @@ -63,11 +63,11 @@ "name": "Lefthand", "parent": "0", "pivot": [4.5, -7.2, 4.6], - "rotation": [41.0146, 17.66046, -9.54013], + "rotation": [138.9854, -17.66046, 170.45987], "cubes": [ { - "origin": [2, -7.2, 2.6], - "size": [3, 12, 4], + "origin": [2.5, -7.2, 2.6], + "size": [4, 12, 4], "uv": { "north": {"uv": [7, 12], "uv_size": [3, 12]}, "east": {"uv": [8, 0], "uv_size": [4, 12]}, diff --git a/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json b/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json index 882fbb457..59c57d836 100644 --- a/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/mk14ebr.geo.json @@ -12385,11 +12385,11 @@ { "name": "Lefthand", "parent": "magazine", - "pivot": [4.67388, -7.52896, -3.36163], - "rotation": [40.2742, 5.14257, -25.37987], + "pivot": [5.22388, -6.9063, -3.36163], + "rotation": [93.65784, -50.30329, -126.39785], "cubes": [ { - "origin": [2.67388, -7.52896, -5.36163], + "origin": [3.22388, -6.9063, -5.36163], "size": [4, 12, 4], "uv": { "north": {"uv": [127, 127], "uv_size": [1, 1]}, @@ -12406,7 +12406,7 @@ "name": "Righthand", "parent": "gun", "pivot": [-3.52302, -3.72921, 12.12641], - "rotation": [79.68197, -12.90104, 3.96763], + "rotation": [100.31803, 12.90104, -176.03237], "cubes": [ { "origin": [-5.52302, -3.72921, 10.12641], diff --git a/src/main/resources/assets/superbwarfare/geo/rpg.geo.json b/src/main/resources/assets/superbwarfare/geo/rpg.geo.json index 14e0a7235..8cc59f01d 100644 --- a/src/main/resources/assets/superbwarfare/geo/rpg.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/rpg.geo.json @@ -4083,7 +4083,7 @@ "name": "Righthand", "parent": "gun", "pivot": [-6.2, -5.5, 4.4], - "rotation": [64.32487, -27.9632, 12.70316], + "rotation": [115.67513, 27.9632, -167.29684], "cubes": [ { "origin": [-8.2, -5.5, 2.4], @@ -6326,10 +6326,10 @@ "name": "Lefthand", "parent": "rocket", "pivot": [7.2, -5, 8.8], - "rotation": [73.96235, 47.17694, -0.46022], + "rotation": [106.03765, -47.17694, 179.53978], "cubes": [ { - "origin": [4.5, -5, 6.8], + "origin": [5.25, -5, 6.8], "size": [4, 12, 4], "uv": { "north": {"uv": [12, 0], "uv_size": [4, 12]}, diff --git a/src/main/resources/assets/superbwarfare/geo/rpk.geo.json b/src/main/resources/assets/superbwarfare/geo/rpk.geo.json index 5adb1d30b..056e86072 100644 --- a/src/main/resources/assets/superbwarfare/geo/rpk.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/rpk.geo.json @@ -9340,12 +9340,12 @@ { "name": "Lefthand", "parent": "magazine", - "pivot": [6.8, -6.9, -0.8], - "rotation": [43.71938, 30.52461, -17.53888], + "pivot": [5.30781, -6.25937, -0.8], + "rotation": [89.98848, -41.932, -125.17414], "cubes": [ { - "origin": [5.2, -6.9, -2.55], - "size": [3, 12, 4], + "origin": [3.30781, -6.25937, -2.8], + "size": [4, 12, 4], "uv": { "north": {"uv": [12, 0], "uv_size": [3, 12]}, "east": {"uv": [0, 0], "uv_size": [4, 12]}, @@ -10916,12 +10916,12 @@ { "name": "Righthand", "parent": "0", - "pivot": [-3.2, -5.7, 11.9], - "rotation": [67.68798, -14.81107, 2.40023], + "pivot": [-2.94781, -5.33059, 11.00561], + "rotation": [112.31202, 14.81107, -177.59977], "cubes": [ { - "origin": [-4.2, -4.7, 9.9], - "size": [3, 12, 4], + "origin": [-4.94781, -5.33059, 9.00561], + "size": [4, 12, 4], "uv": { "north": {"uv": [7, 12], "uv_size": [3, 12]}, "east": {"uv": [8, 0], "uv_size": [4, 12]}, diff --git a/src/main/resources/assets/superbwarfare/geo/sentinel.geo.json b/src/main/resources/assets/superbwarfare/geo/sentinel.geo.json index 5cea4c145..0ff294a17 100644 --- a/src/main/resources/assets/superbwarfare/geo/sentinel.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/sentinel.geo.json @@ -7380,11 +7380,11 @@ { "name": "Lefthand", "parent": "magzine", - "pivot": [5.24559, -8.54155, 2.35912], - "rotation": [48.92112, 13.13514, -24.32604], + "pivot": [5.24559, -8.04155, 1.10912], + "rotation": [72.79916, -39.78478, -103.12114], "cubes": [ { - "origin": [3.24559, -8.54155, 0.35912], + "origin": [3.24559, -8.04155, -0.89088], "size": [4, 12, 4], "uv": { "north": {"uv": [0, 120], "uv_size": [1, 1]}, @@ -8071,7 +8071,7 @@ "name": "Righthand", "parent": "0", "pivot": [-4.60882, -3.88091, 16.51741], - "rotation": [78.76735, -19.20433, 3.1514], + "rotation": [101.23265, 19.20433, -176.8486], "cubes": [ { "origin": [-6.60882, -3.88091, 14.51741], diff --git a/src/main/resources/assets/superbwarfare/geo/sks.geo.json b/src/main/resources/assets/superbwarfare/geo/sks.geo.json index 649c0a569..dd873ca79 100644 --- a/src/main/resources/assets/superbwarfare/geo/sks.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/sks.geo.json @@ -7845,12 +7845,12 @@ { "name": "Lefthand", "parent": "0", - "pivot": [4.9625, -5.86562, -2.54844], - "rotation": [54.40074, 25.37317, -8.56985], + "pivot": [5.4625, -5.86562, -2.54844], + "rotation": [125.59926, -25.37317, 171.43015], "cubes": [ { - "origin": [3.3625, -5.86562, -4.29844], - "size": [3, 12, 4], + "origin": [3.5125, -5.86562, -4.54844], + "size": [4, 12, 4], "uv": { "north": {"uv": [12, 0], "uv_size": [3, 12]}, "east": {"uv": [0, 0], "uv_size": [4, 12]}, @@ -9054,12 +9054,12 @@ { "name": "Righthand", "parent": "0", - "pivot": [-4.16953, -5.97344, 12.65703], - "rotation": [60.65725, -17.96209, -1.75744], + "pivot": [-4.16953, -5.22344, 12.40703], + "rotation": [119.34275, 17.96209, 178.24256], "cubes": [ { - "origin": [-5.16953, -4.97344, 10.65703], - "size": [3, 12, 4], + "origin": [-6.16953, -5.22344, 10.40703], + "size": [4, 12, 4], "uv": { "north": {"uv": [7, 12], "uv_size": [3, 12]}, "east": {"uv": [8, 0], "uv_size": [4, 12]}, diff --git a/src/main/resources/assets/superbwarfare/geo/svd.geo.json b/src/main/resources/assets/superbwarfare/geo/svd.geo.json index afca5ce97..07a72b9e9 100644 --- a/src/main/resources/assets/superbwarfare/geo/svd.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/svd.geo.json @@ -4660,12 +4660,12 @@ { "name": "Lefthand", "parent": "0", - "pivot": [6.15, -4.4, -0.5], - "rotation": [54.26155, 16.13646, -17.18389], + "pivot": [5.15, -6.4, -0.5], + "rotation": [125.73845, -16.13646, 162.81611], "cubes": [ { - "origin": [3.15, -4.4, -3.5], - "size": [3, 12, 4], + "origin": [3.15, -6.4, -2.5], + "size": [4, 12, 4], "uv": { "north": {"uv": [12, 0], "uv_size": [3, 12]}, "east": {"uv": [0, 0], "uv_size": [4, 12]}, @@ -4681,11 +4681,11 @@ "name": "Righthand", "parent": "0", "pivot": [-3.39609, -3.68672, 12.7], - "rotation": [76.54796, -8.74418, 14.70579], + "rotation": [103.45204, 8.74418, -165.29421], "cubes": [ { - "origin": [-4.39609, -3.68672, 10.7], - "size": [3, 12, 4], + "origin": [-5.39609, -3.68672, 10.7], + "size": [4, 12, 4], "uv": { "north": {"uv": [7, 12], "uv_size": [3, 12]}, "east": {"uv": [8, 0], "uv_size": [4, 12]}, diff --git a/src/main/resources/assets/superbwarfare/geo/taser.geo.json b/src/main/resources/assets/superbwarfare/geo/taser.geo.json index 202d13d9d..8e01307f9 100644 --- a/src/main/resources/assets/superbwarfare/geo/taser.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/taser.geo.json @@ -168,7 +168,7 @@ "name": "Righthand", "parent": "0", "pivot": [-2.4, -2.9, 11.5], - "rotation": [83.35832, -7.15102, 2.26708], + "rotation": [96.64168, 7.15102, -177.73292], "cubes": [ { "origin": [-4.4, -2.9, 9.5], @@ -187,12 +187,14 @@ { "name": "Lefthand", "parent": "0", - "pivot": [2, -6.3, 10], - "rotation": [72.10193, 11.91276, -3.81397], + "pivot": [2.2, -6.3, 9.6], + "rotation": [109.69635, -4.47536, 178.48092], "cubes": [ { - "origin": [0, -6.3, 8], + "origin": [0.6, -6.3, 7.9], "size": [4, 12, 4], + "pivot": [2.6, -0.3, 9.9], + "rotation": [0, 17, 0], "uv": { "north": {"uv": [1.25, 32], "uv_size": [-1.25, -2]}, "east": {"uv": [1.25, 32], "uv_size": [-1.25, -2]}, diff --git a/src/main/resources/assets/superbwarfare/geo/vector.geo.json b/src/main/resources/assets/superbwarfare/geo/vector.geo.json index 89ed3859a..b7b8d475d 100644 --- a/src/main/resources/assets/superbwarfare/geo/vector.geo.json +++ b/src/main/resources/assets/superbwarfare/geo/vector.geo.json @@ -62,7 +62,7 @@ "name": "Righthand", "parent": "0", "pivot": [-3.60896, -3.08702, 11.65688], - "rotation": [74.44675, -12.23285, 4.07292], + "rotation": [105.55325, 12.23285, -175.92708], "cubes": [ { "origin": [-5.60896, -3.08702, 9.65688], @@ -272,6 +272,7 @@ "name": "kuaimanji", "parent": "gun", "pivot": [0, 2.93447, -3.7579], + "rotation": [0, 0, 0], "cubes": [ { "origin": [-0.73965, 2.82862, -3.79579], @@ -9158,11 +9159,11 @@ { "name": "Lefthand", "parent": "magazine", - "pivot": [3.17388, -7.98989, -2.30538], - "rotation": [54.87027, 8.78995, -15.8892], + "pivot": [3.92388, -7.98989, -2.30538], + "rotation": [125.12973, -8.78995, 164.1108], "cubes": [ { - "origin": [1.17388, -7.98989, -4.30538], + "origin": [1.92388, -7.98989, -4.30538], "size": [4, 12, 4], "uv": { "north": {"uv": [124, 0], "uv_size": [4, 12]},