优化开火动画

This commit is contained in:
Atsuihsio 2024-10-18 05:32:35 +08:00
parent 0f4bf9127a
commit d9cc98931f
38 changed files with 777 additions and 684 deletions

8
.vscode/launch.json vendored
View file

@ -8,7 +8,7 @@
"mainClass": "cpw.mods.bootstraplauncher.BootstrapLauncher",
"projectName": "SuperbWarfare",
"cwd": "${workspaceFolder}\\run",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runClient_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dforge.enableGameTest\u003dtrue -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming -XX:HeapDumpPath\u003dMojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -Dgeckolib.disable_examples\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runClient_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dforge.enableGameTest\u003dtrue -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming -XX:HeapDumpPath\u003dMojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump",
"args": "--launchTarget forgeclientuserdev --version MOD_DEV --assetIndex 5 --assetsDir C:\\Users\\Atsuishio\\.gradle\\caches\\forge_gradle\\assets --gameDir . --fml.forgeVersion 47.2.0 --fml.mcVersion 1.20.1 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20230612.114412 --mixin.config mixins.superbwarfare.json",
"env": {
"MOD_CLASSES": "${workspaceFolder}\\build\\resources\\main;${workspaceFolder}\\build\\classes\\java\\main",
@ -23,8 +23,8 @@
"mainClass": "cpw.mods.bootstraplauncher.BootstrapLauncher",
"projectName": "SuperbWarfare",
"cwd": "${workspaceFolder}\\run",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runData_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming",
"args": "--launchTarget forgedatauserdev --assetIndex 5 --assetsDir C:\\Users\\Atsuishio\\.gradle\\caches\\forge_gradle\\assets --gameDir . --fml.forgeVersion 47.2.0 --fml.mcVersion 1.20.1 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20230612.114412 --mixin.config mixins.superbwarfare.json",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -Dgeckolib.disable_examples\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runData_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming",
"args": "--launchTarget forgedatauserdev --assetIndex 5 --assetsDir C:\\Users\\Atsuishio\\.gradle\\caches\\forge_gradle\\assets --gameDir . --fml.forgeVersion 47.2.0 --fml.mcVersion 1.20.1 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20230612.114412 --mod superbwarfare --all --output G:\\SuperbWarfare\\src\\generated\\resources --existing G:\\SuperbWarfare\\src\\main\\resources --mixin.config mixins.superbwarfare.json",
"env": {
"MOD_CLASSES": "${workspaceFolder}\\build\\resources\\main;${workspaceFolder}\\build\\classes\\java\\main",
"MCP_MAPPINGS": "parchment_2023.08.13-1.20.1"
@ -38,7 +38,7 @@
"mainClass": "cpw.mods.bootstraplauncher.BootstrapLauncher",
"projectName": "SuperbWarfare",
"cwd": "${workspaceFolder}\\run",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runServer_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dforge.enableGameTest\u003dtrue -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming",
"vmArgs": "-Dmixin.dumpTargetOnFailure\u003dtrue -Dgeckolib.disable_examples\u003dtrue -DlegacyClassPath.file\u003dG:\\SuperbWarfare\\build\\classpath\\runServer_minecraftClasspath.txt -Dmixin.env.remapRefMap\u003dtrue -Dmixin.env.refMapRemappingFile\u003dG:\\SuperbWarfare/build/createSrgToMcp/output.srg -Dnet.minecraftforge.gradle.GradleStart.srg.srg-mcp\u003dG:\\SuperbWarfare\\build\\createSrgToMcp\\output.srg -DignoreList\u003dbootstraplauncher,securejarhandler,asm-commons,asm-util,asm-analysis,asm-tree,asm,JarJarFileSystems,client-extra,fmlcore,javafmllanguage,lowcodelanguage,mclanguage,forge- -DmergeModules\u003djna-5.10.0.jar,jna-platform-5.10.0.jar -Dforge.enableGameTest\u003dtrue -Dmixin.debug.verbose\u003dtrue -Dmixin.debug.export\u003dtrue -Djava.net.preferIPv6Addresses\u003dsystem -p C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\bootstraplauncher\\1.1.2\\c546e00443d8432cda6baa1c860346980742628\\bootstraplauncher-1.1.2.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\cpw.mods\\securejarhandler\\2.1.10\\51e6a22c6c716beb11e244bf5b8be480f51dd6b5\\securejarhandler-2.1.10.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-commons\\9.5\\19ab5b5800a3910d30d3a3e64fdb00fd0cb42de0\\asm-commons-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-util\\9.5\\64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe\\asm-util-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-analysis\\9.5\\490bacc77de7cbc0be1a30bb3471072d705be4a4\\asm-analysis-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm-tree\\9.5\\fd33c8b6373abaa675be407082fdfda35021254a\\asm-tree-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\org.ow2.asm\\asm\\9.5\\dc6ea1875f4d64fbc85e1691c95b96a3d8569c90\\asm-9.5.jar;C:\\Users\\Atsuishio\\.gradle\\caches\\modules-2\\files-2.1\\net.minecraftforge\\JarJarFileSystems\\0.3.19\\2464eb7d6b9ddb9db36a82cf8a95193e5c6fe020\\JarJarFileSystems-0.3.19.jar --add-modules ALL-MODULE-PATH --add-opens java.base/java.util.jar\u003dcpw.mods.securejarhandler --add-opens java.base/java.lang.invoke\u003dcpw.mods.securejarhandler --add-exports java.base/sun.security.util\u003dcpw.mods.securejarhandler --add-exports jdk.naming.dns/com.sun.jndi.dns\u003djava.naming",
"args": "--launchTarget forgeserveruserdev --gameDir . --fml.forgeVersion 47.2.0 --fml.mcVersion 1.20.1 --fml.forgeGroup net.minecraftforge --fml.mcpVersion 20230612.114412 --mixin.config mixins.superbwarfare.json",
"env": {
"MOD_CLASSES": "${workspaceFolder}\\build\\resources\\main;${workspaceFolder}\\build\\classes\\java\\main",

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -56,6 +55,7 @@ public class AK12ItemModel extends GeoModel<AK12Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -67,18 +67,19 @@ public class AK12ItemModel extends GeoModel<AK12Item> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.8));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.01f * (float) (fp + 2 * fr));
shen.setPosZ(0.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.007f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(-0.03f * (float) (fp + 2 * fr));
shen.setPosZ(0.65f * (float) (fp + 0.54f * fr));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.25 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shuan.setPosZ(2.4f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -56,6 +55,7 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -67,18 +67,19 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.8));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.01f * (float) (fp + 2 * fr));
shen.setPosZ(0.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.007f * (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.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.25 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shuan.setPosZ(2.4f * (float) fp);
@ -115,6 +116,6 @@ public class AK47ItemModel extends GeoModel<AK47Item> {
CoreGeoBone shell4 = getAnimationProcessor().getBone("shell4");
CoreGeoBone shell5 = getAnimationProcessor().getBone("shell5");
ClientEventHandler.handleShells(1f, 0.55f, shell1, shell2, shell3, shell4, shell5);
ClientEventHandler.handleShells(1f, 0.35f, shell1, shell2, shell3, shell4, shell5);
}
}

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -53,6 +52,7 @@ public class Aa12ItemModel extends GeoModel<Aa12Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -62,17 +62,20 @@ public class Aa12ItemModel extends GeoModel<Aa12Item> {
gun.setRotZ((float) (0.02f * zpz));
gun.setScaleZ(1f - (0.4f * (float) zp));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.02f * (float) (fp + 2 * fr));
shen.setPosZ(1.3f * (float) (fp + 0.54f * fr));
shen.setRotX(0.003f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(1.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
CoreGeoBone root = getAnimationProcessor().getBone("root");

View file

@ -53,6 +53,7 @@ public class AbekiriItemModel extends GeoModel<AbekiriItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -64,12 +65,12 @@ public class AbekiriItemModel extends GeoModel<AbekiriItem> {
gun.setRotZ((float) (0.05f * zpz));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosY(0.2f * (float) (fp + 2 * fr));
shen.setPosZ(4.2f * (float) (1.3 * fp + 0.54f * fr));
shen.setRotX(0.25f * (float) (1.28f * fp + fr));
shen.setRotZ(-0.1f * (float) (fp + 1.3 * fr));
shen.setRotY(-0.15f * (float) fr);
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -52,6 +51,7 @@ public class BocekItemModel extends GeoModel<BocekItem> {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return;
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
double pp = ClientEventHandler.pullPos;
@ -69,6 +69,7 @@ public class BocekItemModel extends GeoModel<BocekItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double zt = ClientEventHandler.zoomTime;
arrow.setPosZ(9f * (float) bp);
rh.setPosZ(9f * (float) hp);
@ -103,18 +104,12 @@ public class BocekItemModel extends GeoModel<BocekItem> {
stack.getOrCreateTag().putBoolean("HoloHidden", !((shen_pos.getPosX() < -0.7 && gun.getPosZ() < -2.6)));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
fire.setPosY(-0.01f * (float) (fp + 2 * fr));
fire.setPosZ(3f * (float) (fp + 0.54f * fr));
fire.setRotX(0.003f * (float) (fp + fr));
fire.setRotZ(0f);
} else {
fire.setPosY(-0.03f * (float) (fp + 2 * fr));
fire.setPosZ(4f * (float) (fp + 0.54f * fr));
fire.setRotX(0.07f * (float) (0.18f * fp + fr));
fire.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
fire.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
fire.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
fire.setPosY((float) (-0.03f * fp - 0.06f * fr));
fire.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.65 * fpz));
fire.setRotX((float) (0.01f * fp + 0.01f * fr + 0.01f * fpz));
fire.setRotY((float) (0.01f * ClientEventHandler.recoilHorizon * fpz));
fire.setRotZ((float) ((0.02f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -58,6 +57,7 @@ public class DevotionItemModel extends GeoModel<DevotionItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -72,18 +72,20 @@ public class DevotionItemModel extends GeoModel<DevotionItem> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.8));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.05f * (float) (fp + 2 * fr));
holo.setPosY(-0.03f * (float) (fp + 2.3 * fr));
shen.setPosZ(1.1f * (float) (fp + 0.54f * fr));
shen.setRotX(0.001f * (float) (fp + fr));
} else {
shen.setPosY(-0.03f * (float) (fp + 2 * fr));
shen.setPosZ(0.75f * (float) (fp + 0.54f * fr));
shen.setRotX(0.02f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.725 * fp + 0.34f * fr + 0.45 * fpz));
shen.setRotX((float) (0.01f * fp + 0.01f * fr + 0.04f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
bolt.setPosZ(-2f * (float) fp);
CoreGeoBone root = getAnimationProcessor().getBone("root");

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -55,6 +54,7 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -68,19 +68,19 @@ public class Glock17ItemModel extends GeoModel<Glock17Item> {
gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.03f * (float) (fp + 2 * fr));
shen.setPosZ(2.6f * (float) (fp + 0.84f * fr));
shen.setRotY(0.05f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotX(0.005f * (float) (fp + fr));
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(1.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotY(0.1f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt)));
slide.setPosZ(1.5f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -63,6 +62,7 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -76,19 +76,19 @@ public class Glock18ItemModel extends GeoModel<Glock18Item> {
gun.setRotZ(-11 * Mth.DEG_TO_RAD * (float) zp + (float) (0.05f * zpz));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.03f * (float) (fp + 2 * fr));
shen.setPosZ(2.6f * (float) (fp + 0.84f * fr));
shen.setRotY(0.05f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotX(0.005f * (float) (fp + fr));
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(1.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotY(0.1f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt)));
slide.setPosZ(1.5f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -54,6 +53,7 @@ public class Hk416ItemModel extends GeoModel<Hk416Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,17 +66,20 @@ public class Hk416ItemModel extends GeoModel<Hk416Item> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 3.1));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.01f * (float) (fp + 2 * fr));
shen.setPosZ(0.4f * (float) (fp + 0.54f * fr));
shen.setRotX(0.007f * (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.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.725 * fp + 0.34f * fr + 0.45 * fpz));
shen.setRotX((float) (0.03f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
CoreGeoBone root = getAnimationProcessor().getBone("root");

View file

@ -52,6 +52,7 @@ public class HuntingRifleItemModel extends GeoModel<HuntingRifleItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -65,12 +66,19 @@ public class HuntingRifleItemModel extends GeoModel<HuntingRifleItem> {
gun.setScaleZ(1f - (0.5f * (float) zp));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosY(0.3f * (float) (fp + 2 * fr));
shen.setPosZ(4.2f * (float) (1.3 * fp + 0.54f * fr));
shen.setRotX(0.06f * (float) (1.28f * fp + fr));
shen.setRotY(0.06f * (float) fr);
shen.setRotZ(-0.1f * (float) (fp + 1.3 * fr));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.2f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone flare = getAnimationProcessor().getBone("flare");

View file

@ -52,6 +52,7 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -64,11 +65,12 @@ public class JavelinItemModel extends GeoModel<JavelinItem> {
javelin.setHidden(gun.getPosZ() > 15.85);
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosZ() > 15.85));
shen.setPosY(0.28f * (float) (fp + 2 * fr));
shen.setPosZ(3.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.725 * fp + 0.34f * fr + 0.95 * fpz));
shen.setRotX((float) (0.03f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -65,6 +64,7 @@ public class K98ItemModel extends GeoModel<K98Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -73,19 +73,19 @@ public class K98ItemModel extends GeoModel<K98Item> {
gun.setPosZ(10f * (float) zp + (float) (0.3f * zpz));
gun.setScaleZ(1f - (0.7f * (float) zp));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.1f * (float) (fp + 2 * fr));
shen.setPosZ(5.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.03f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.28f * (float) (fp + 2 * fr));
shen.setPosZ(5.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -55,6 +54,7 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,19 +66,19 @@ public class M1911ItemModel extends GeoModel<M1911Item> {
gun.setScaleZ(1f - (0.35f * (float) zp));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.03f * (float) (fp + 2 * fr));
shen.setPosZ(2.6f * (float) (fp + 0.84f * fr));
shen.setRotY(0.05f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotX(0.005f * (float) (fp + fr));
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(1.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotY(0.1f * (float) (ClientEventHandler.recoilHorizon * fp));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.06f * fp - 0.09f * fr));
shen.setPosZ((float) (0.825 * fp + 0.34f * fr + 0.35 * fpz));
shen.setRotX((float) (0.1f * fp + 0.05f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 + 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.27 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.27 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.25 * zt)));
slide.setPosZ(2.75f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -53,6 +52,7 @@ public class M4ItemModel extends GeoModel<M4Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,17 +66,20 @@ public class M4ItemModel extends GeoModel<M4Item> {
gun.setRotZ((float) (0.05f * zpz));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.02f * (float) (fp + 2 * fr));
shen.setPosZ(0.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.003f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.04f * (float) (fp + 2 * fr));
shen.setPosZ(1.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.03f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.65 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.4 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
CoreGeoBone root = getAnimationProcessor().getBone("root");

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -98,6 +97,7 @@ public class M60ItemModel extends GeoModel<M60Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -109,18 +109,19 @@ public class M60ItemModel extends GeoModel<M60Item> {
gun.setRotZ(-0.087f * (float) zp + (float) (0.05f * zpz));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.03f * (float) (fp + 2 * fr));
shen.setPosZ(0.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.003f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(-0.05f * (float) (fp + 2 * fr));
shen.setPosZ(0.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.04f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.04f * fp - 0.08f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.95 * fpz));
shen.setRotX((float) (0.03f * fp + 0.03f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.2 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.3 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 + 0.2 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.7 * zt)));
tiba.setRotZ((float) (-0.25f * fp + 0.4 * fr));
@ -137,6 +138,15 @@ public class M60ItemModel extends GeoModel<M60Item> {
float numR = (float) (1 - 0.88 * zt);
float numP = (float) (1 - 0.28 * zt);
CoreGeoBone shell = getAnimationProcessor().getBone("shell");
CoreGeoBone shell1 = getAnimationProcessor().getBone("shell1");
CoreGeoBone shell2 = getAnimationProcessor().getBone("shell2");
CoreGeoBone shell3 = getAnimationProcessor().getBone("shell3");
CoreGeoBone shell4 = getAnimationProcessor().getBone("shell4");
CoreGeoBone shell5 = getAnimationProcessor().getBone("shell5");
ClientEventHandler.handleShells(1f, 0.45f, shell1, shell2, shell3, shell4, shell5);
if (stack.getOrCreateTag().getInt("gun_reloading_time") > 0) {
main.setRotX(numR * main.getRotX());
main.setRotY(numR * main.getRotY());
@ -147,15 +157,14 @@ public class M60ItemModel extends GeoModel<M60Item> {
camera.setRotX(numR * camera.getRotX());
camera.setRotY(numR * camera.getRotY());
camera.setRotZ(numR * camera.getRotZ());
shell.setScaleX(0);
shell.setScaleY(0);
shell.setScaleZ(0);
} else {
shell.setScaleX(1);
shell.setScaleY(1);
shell.setScaleZ(1);
}
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
CoreGeoBone shell1 = getAnimationProcessor().getBone("shell1");
CoreGeoBone shell2 = getAnimationProcessor().getBone("shell2");
CoreGeoBone shell3 = getAnimationProcessor().getBone("shell3");
CoreGeoBone shell4 = getAnimationProcessor().getBone("shell4");
CoreGeoBone shell5 = getAnimationProcessor().getBone("shell5");
ClientEventHandler.handleShells(1f, 0.45f, shell1, shell2, shell3, shell4, shell5);
}
}

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -53,6 +52,7 @@ public class M79ItemModel extends GeoModel<M79Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -64,18 +64,19 @@ public class M79ItemModel extends GeoModel<M79Item> {
gun.setRotZ((float) (0.05f * zpz));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.4f * (float) (fp + 2 * fr));
shen.setPosZ(3.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.1f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.7f * (float) (fp + 2 * fr));
shen.setPosZ(4.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.1f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -53,6 +52,7 @@ public class M870ItemModel extends GeoModel<M870Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,18 +66,19 @@ public class M870ItemModel extends GeoModel<M870Item> {
gun.setScaleZ(1f - (0.2f * (float) zp));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.2f * (float) (fp + 2 * fr));
shen.setPosZ(2.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.28f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.3f * (float) (fp + 2 * fr));
shen.setPosZ(3.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.3f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.4 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone root = getAnimationProcessor().getBone("root");

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -56,20 +55,24 @@ public class M98bItemModel extends GeoModel<M98bItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.2f * (float) (fp + 2 * fr));
shen.setPosZ(4.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.1f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.3f * (float) (fp + 2 * fr));
shen.setPosZ(5.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.15f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
scope.setPosZ(75.2f * (float) (fp + 0.54f * fr));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));

View file

@ -53,6 +53,7 @@ public class MarlinItemModel extends GeoModel<MarlinItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,13 +67,19 @@ public class MarlinItemModel extends GeoModel<MarlinItem> {
gun.setScaleZ(1f - (0.5f * (float) zp));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosY(0.4f * (float) (fp + 2 * fr));
shen.setPosZ(1.9f * (float) (1.3 * fp + 0.54f * fr));
shen.setRotX(0.085f * (float) (1.28f * fp + fr));
shen.setRotZ(-0.03f * (float) (fp + 1.3 * fr));
shen.setRotY(-0.05f * (float) fr);
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.4 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
jichui.setRotX(-0.52f);

View file

@ -56,6 +56,7 @@ public class MinigunItemModel extends GeoModel<MinigunItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -65,11 +66,12 @@ public class MinigunItemModel extends GeoModel<MinigunItem> {
gun.setRotZ((float) (gun.getRotZ() + times * -0.008f * stack.getOrCreateTag().getDouble("minigun_rotation")));
shen.setPosY(0.1f * (float) (fp + 2 * fr));
shen.setPosZ(2.2f * (float) (0.5 * fp + 1.54f * fr));
shen.setRotX(0.05f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.02f * (float) (fp + 1.3 * fr));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.625 * fp + 0.34f * fr + 1.15 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.02f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.02f + 0.02 * fr) * ClientEventHandler.recoilHorizon));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -65,6 +64,7 @@ public class Mk14ItemModel extends GeoModel<Mk14Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -84,34 +84,29 @@ public class Mk14ItemModel extends GeoModel<Mk14Item> {
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.06f * (float) (fp + 2 * fr));
shen.setPosZ(0.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.005f * (float) (fp + fr));
shen.setRotZ(0.01f * (float)(ClientEventHandler.recoilHorizon * fp));
} else {
shen.setPosY(0.04f * (float) (fp + 2 * fr));
shen.setPosZ(1.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
rex.setRotZ(0.01f * (float)(ClientEventHandler.recoilHorizon * fp));
rex.setPosY(-0.23f * (float) (fp + 2.3 * fr));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
action.setPosZ(2.5f * (float) fp);
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 2.5));
CoreGeoBone bolt = getAnimationProcessor().getBone("bolt");
if (stack.getOrCreateTag().getBoolean("HoldOpen")) {
bolt.setPosZ(2.5f);
}
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));
root.setPosY((float) (swayY + movePosY - 40 * ClientEventHandler.drawTime - 2f * vY));
@ -138,6 +133,7 @@ public class Mk14ItemModel extends GeoModel<Mk14Item> {
}
ClientEventHandler.shake(Mth.RAD_TO_DEG * camera.getRotX(),Mth.RAD_TO_DEG * camera.getRotY(), Mth.RAD_TO_DEG * camera.getRotZ());
CoreGeoBone shell = getAnimationProcessor().getBone("shell");
CoreGeoBone shell1 = getAnimationProcessor().getBone("shell1");
CoreGeoBone shell2 = getAnimationProcessor().getBone("shell2");
CoreGeoBone shell3 = getAnimationProcessor().getBone("shell3");
@ -145,5 +141,17 @@ public class Mk14ItemModel extends GeoModel<Mk14Item> {
CoreGeoBone shell5 = getAnimationProcessor().getBone("shell5");
ClientEventHandler.handleShells(0.9f, 0.95f, shell1, shell2, shell3, shell4, shell5);
if (stack.getOrCreateTag().getBoolean("HoldOpen")) {
bolt.setPosZ(2.5f);
shell.setScaleX(0);
shell.setScaleY(0);
shell.setScaleZ(0);
} else {
shell.setScaleX(1);
shell.setScaleY(1);
shell.setScaleZ(1);
}
}
}

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -59,6 +58,7 @@ public class MosinNagantItemModel extends GeoModel<MosinNagantItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -83,18 +83,19 @@ public class MosinNagantItemModel extends GeoModel<MosinNagantItem> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.4));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.07f * (float) (fp + 2 * fr));
shen.setPosZ(3.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.02f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.28f * (float) (fp + 2 * fr));
shen.setPosZ(3.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.17f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
rex.setPosY(0.05f + 0.1f * (float) fp);
rex.setRotZ((float) (-0.08f * fp * ClientEventHandler.recoilHorizon * fp));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -58,6 +57,7 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -66,19 +66,20 @@ public class Ntw20Model extends GeoModel<Ntw20Item> {
r.setRotX(-1.5f);
}
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.1f * (float) (fp + 2 * fr));
shen.setPosZ(5.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.1f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.2f * (float) (fp + 2 * fr));
shen.setPosZ(4.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.1f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.2f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
gun.setPosX(4.54f * (float) zp);
gun.setPosY(-0.45f * (float) zp - (float) (0.2f * zpz));
gun.setPosZ(10.0f * (float) zp + (float) (0.3f * zpz));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -54,6 +53,7 @@ public class Qbz95ItemModel extends GeoModel<Qbz95Item> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -65,18 +65,19 @@ public class Qbz95ItemModel extends GeoModel<Qbz95Item> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 3.1));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.01f * (float) (fp + 2 * fr));
shen.setPosZ(1.2f * (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.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.725 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.03f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
bolt.setPosZ(5f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -58,21 +57,23 @@ public class RpgItemModel extends GeoModel<RpgItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.02f * (float) (fp + 2 * fr));
shen.setPosZ(1.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.003f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.04f * (float) (fp + 2 * fr));
shen.setPosZ(1.8f * (float) (fp + 0.54f * fr));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (5.825 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.02f * fp + 0.25f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.7 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
gun.setPosX(0.91f * (float) zp);
gun.setPosY(-0.04f * (float) zp - (float) (0.2f * zpz));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -57,6 +56,7 @@ public class RpkItemModel extends GeoModel<RpkItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -81,18 +81,19 @@ public class RpkItemModel extends GeoModel<RpkItem> {
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.65));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(-0.01f * (float) (fp + 2 * 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.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.04f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shuan.setPosZ(2.4f * (float) fp);

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -56,6 +55,7 @@ public class SentinelItemModel extends GeoModel<SentinelItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -82,18 +82,19 @@ public class SentinelItemModel extends GeoModel<SentinelItem> {
CoreGeoBone holo = getAnimationProcessor().getBone("holo");
holo.setPosY(0.09f);
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.1f * (float) (fp + 2 * fr));
shen.setPosZ(4.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.12f * (float) (fp + fr));
shen.setRotZ(0f);
} else {
shen.setPosY(0.2f * (float) (fp + 2 * fr));
shen.setPosZ(5.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.15f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone charge = getAnimationProcessor().getBone("charge");

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -59,6 +58,7 @@ public class SksItemModel extends GeoModel<SksItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -70,24 +70,23 @@ public class SksItemModel extends GeoModel<SksItem> {
gun.setRotZ((float) (0.05f * zpz));
CoreGeoBone holo = getAnimationProcessor().getBone("holo");
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 1.2));
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.04f * (float) (fp + 2 * fr));
holo.setPosY(-0.43f * (float) (fp + 2.3 * fr));
shen.setPosZ(0.6f * (float) (fp + 0.54f * fr));
shen.setRotX(0.015f * (float) (fp + fr));
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(1.2f * (float) (fp + 0.54f * fr));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.325 * fp + 0.34f * fr + 0.75 * fpz));
shen.setRotX((float) (0.02f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
shuan.setPosZ(2f * (float) fp);

View file

@ -63,6 +63,7 @@ public class SvdItemModel extends GeoModel<SvdItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -87,18 +88,23 @@ public class SvdItemModel extends GeoModel<SvdItem> {
CoreGeoBone shen = getAnimationProcessor().getBone("shen");
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.02f * (float) (fp + 2 * fr));
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));
shen.setRotX(0.07f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.04f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (1.325 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.01f * fp + 0.15f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.6 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.87 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
holo.setPosY(0.05f + 1.1f * (float) fp);
holo.setRotZ(-0.04f * (float) fp);
holo.setScaleX(0.75f);

View file

@ -61,6 +61,7 @@ public class TaserItemModel extends GeoModel<TaserItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -89,12 +90,19 @@ public class TaserItemModel extends GeoModel<TaserItem> {
redcover.setScaleZ(1);
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosY(0.1f * (float) (fp + 2 * fr));
shen.setPosZ(1.2f * (float) (1.3 * fp + 0.54f * fr));
shen.setRotX(0.04f * (float) (1.28f * fp + fr));
shen.setRotY(0.02f * (float) fr);
shen.setRotZ(-0.02f * (float) (fp + 1.3 * fr));
shen.setPosX((float) (0.75f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.03f * fp - 0.06f * fr));
shen.setPosZ((float) (0.725 * fp + 0.34f * fr + 0.45 * fpz));
shen.setRotX((float) (0.03f * fp + 0.02f * fr + 0.02f * fpz));
shen.setRotY((float) (0.07f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.2 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
gun.setPosX(1.82f * (float) zp);

View file

@ -52,6 +52,7 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -65,12 +66,19 @@ public class TracheliumItemModel extends GeoModel<Trachelium> {
gun.setScaleZ(1f - (0.2f * (float) zp));
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosY(0.6f * (float) (fp + 2 * fr));
shen.setPosZ(4.2f * (float) (1.3 * fp + 0.54f * fr));
shen.setRotX(0.18f * (float) (1.28f * fp + fr));
shen.setRotY(0.12f * (float) fr);
shen.setRotZ(-0.1f * (float) (fp + 1.3 * fr));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (0.4f * fp + 0.44f * fr));
shen.setPosZ((float) (3.325 * fp + 0.34f * fr + 2.35 * fpz));
shen.setRotX((float) (0.05f * fp + 0.3f * fr + 0.2f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.4 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 - 0.5 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.2 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.3 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.7 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.65 * zt)));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -9,7 +9,6 @@ import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.entity.player.Player;
import net.minecraft.world.item.ItemStack;
import org.lwjgl.glfw.GLFW;
import software.bernie.geckolib.core.animatable.model.CoreGeoBone;
import software.bernie.geckolib.core.animation.AnimationState;
import software.bernie.geckolib.model.GeoModel;
@ -65,6 +64,7 @@ public class VectorItemModel extends GeoModel<VectorItem> {
double turnRotX = ClientEventHandler.turnRot[0];
double turnRotY = ClientEventHandler.turnRot[1];
double turnRotZ = ClientEventHandler.turnRot[2];
double fpz = ClientEventHandler.firePosZ;
double fp = ClientEventHandler.firePos;
double fr = ClientEventHandler.fireRot;
@ -78,22 +78,21 @@ public class VectorItemModel extends GeoModel<VectorItem> {
scope.setScaleZ(1f - (0.2f * (float) zp));
CoreGeoBone holo = getAnimationProcessor().getBone("holo");
stack.getOrCreateTag().putBoolean("HoloHidden", !(gun.getPosX() > 2));
if (GLFW.glfwGetMouseButton(Minecraft.getInstance().getWindow().getWindow(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS) {
shen.setPosY(0.05f * (float) (fp + 2 * fr));
holo.setPosY(-0.43f * (float) (fp + 2.3 * fr));
shen.setPosZ(0.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.01f * (float) (fp + fr));
} else {
shen.setPosY(0.08f * (float) (fp + 2 * fr));
shen.setPosZ(0.9f * (float) (fp + 0.54f * fr));
shen.setRotX(0.03f * (float) (0.18f * fp + fr));
shen.setRotZ(-0.01f * (float) (fp + 1.3 * fr));
}
shen.setPosX(0.2f * (float) (ClientEventHandler.recoilHorizon * (0.5 + 0.4 * ClientEventHandler.fireSpread)));
shen.setPosX((float) (0.95f * ClientEventHandler.recoilHorizon * fpz * fp));
shen.setPosY((float) (-0.05f * fp - 0.04f * fr));
shen.setPosZ(0.25f * (float) (7.825 * fp + 0.64f * fr + 2.35 * fpz));
shen.setRotX((float) (0.02f * fp + 0.07f * fr + 0.01f * fpz));
shen.setRotY((float) (0.1f * ClientEventHandler.recoilHorizon * fpz));
shen.setRotZ((float) ((0.08f + 0.1 * fr) * ClientEventHandler.recoilHorizon));
shen.setPosX((float) (shen.getPosX() * (1 - 0.5 * zt)));
shen.setPosY((float) (shen.getPosY() * (1 + 0.4 * zt)));
shen.setPosZ((float) (shen.getPosZ() * (1 - 0.3 * zt)));
shen.setRotX((float) (shen.getRotX() * (1 - 0.9 * zt)));
shen.setRotY((float) (shen.getRotY() * (1 - 0.9 * zt)));
shen.setRotZ((float) (shen.getRotZ() * (1 - 0.9 * zt)));
CoreGeoBone root = getAnimationProcessor().getBone("root");
root.setPosX((float) (movePosX + 20 * ClientEventHandler.drawTime + 9.3f * mph));

View file

@ -541,22 +541,22 @@ public class ClientEventHandler {
if (fireRecoilTime > 0) {
firePosTimer = 0.001;
fireRotTimer = 0.001;
firePosZ = 0.1;
fireRecoilTime -= 7 * times;
fireSpread += 0.1;
firePosZ += 0.5 * firePosZ + 0.15;
}
fireSpread = Mth.clamp(fireSpread - 0.1 * (Math.pow(fireSpread, 2) * times), 0, 2);
firePosZ = Mth.clamp(firePosZ - 0.02 * times, 0, 0.6);
firePosZ = Mth.clamp(firePosZ - 1.2 * (Math.pow(firePosZ, 2) * times), 0, 1.5);
if (0 < firePosTimer) {
firePosTimer += 0.25 * (1.1 - firePosTimer) * times;
firePosTimer += 0.35 * (1.1 - firePosTimer) * times;
}
if (0 < firePosTimer && firePosTimer < 0.454) {
firePos = (-18.34) * Math.pow(firePosTimer, 2) + 8.58 * firePosTimer + firePosZ;
firePos = (-18.34) * Math.pow(firePosTimer, 2) + 8.58 * firePosTimer;
}
if (0.454 <= firePosTimer && firePosTimer < 1) {
firePos = 4.34 * Math.pow(firePosTimer, 2) - 6.5 * firePosTimer + 2.167 + firePosZ;
firePos = 4.34 * Math.pow(firePosTimer, 2) - 6.5 * firePosTimer + 2.167;
}
if (0 < fireRotTimer && fireRotTimer < 1.732) {
@ -602,7 +602,7 @@ public class ClientEventHandler {
for (int i = 0; i < 5; i++) {
if (shellIndexTime[i] > 0) {
shellIndexTime[i] = Math.min(shellIndexTime[i] + 5 * times, 50);
shellIndexTime[i] = Math.min(shellIndexTime[i] + 8 * times, 50);
}
if (shellIndexTime[i] == 50) {
shellIndexTime[i] = 0;
@ -861,7 +861,7 @@ public class ClientEventHandler {
if (i >= 5) break;
shells[i].setPosX((float) (-x * shellIndexTime[i] * ((150 - shellIndexTime[i]) / 150)));
shells[i].setPosY((float) (y * randomShell[0] * shellIndexTime[i] - 0.045 * Math.pow(shellIndexTime[i], 2)));
shells[i].setPosY((float) (y * randomShell[0] * shellIndexTime[i] - 0.025 * Math.pow(shellIndexTime[i], 2)));
shells[i].setRotX((float) (randomShell[1] * shellIndexTime[i]));
shells[i].setRotY((float) (randomShell[2] * shellIndexTime[i]));
}

View file

@ -74,6 +74,8 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
transformType = type;
}
private PlayState fireAnimPredicate(AnimationState<M1911Item> event) {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return PlayState.STOP;
@ -81,15 +83,7 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.fire"));
}
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.reload_empty"));
}
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal"));
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.fire"));
}
return event.setAndContinue(RawAnimation.begin().thenLoop("animation.glock.idle"));
@ -101,6 +95,14 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
ItemStack stack = player.getMainHandItem();
if (!stack.is(ModTags.Items.GUN)) return PlayState.STOP;
if (stack.getOrCreateTag().getBoolean("is_empty_reloading")) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.m1911.reload_empty"));
}
if (stack.getOrCreateTag().getBoolean("is_normal_reloading")) {
return event.setAndContinue(RawAnimation.begin().thenPlay("animation.glock.reload_normal"));
}
if (player.isSprinting() && player.onGround()
&& player.getPersistentData().getDouble("noRun") == 0
&& !(stack.getOrCreateTag().getBoolean("is_normal_reloading") || stack.getOrCreateTag().getBoolean("is_empty_reloading")) && ClientEventHandler.drawTime < 0.01) {
@ -117,9 +119,9 @@ public class M1911Item extends GunItem implements GeoItem, AnimatedItem {
@Override
public void registerControllers(AnimatableManager.ControllerRegistrar data) {
var fireAnimController = new AnimationController<>(this, "fireAnimController", 1, this::fireAnimPredicate);
var fireAnimController = new AnimationController<>(this, "fireAnimController", 0, this::fireAnimPredicate);
data.add(fireAnimController);
var idleController = new AnimationController<>(this, "idleController", 4, this::idlePredicate);
var idleController = new AnimationController<>(this, "idleController", 2, this::idlePredicate);
data.add(idleController);
}

View file

@ -158,9 +158,9 @@
}
}
},
"animation.glock.fire": {
"animation.m1911.fire": {
"loop": "hold_on_last_frame",
"animation_length": 0.0833,
"animation_length": 0.1667,
"override_previous_animation": true,
"bones": {
"lun": {
@ -191,6 +191,11 @@
"easing": "easeInElastic"
}
}
},
"hammer": {
"rotation": {
"vector": [60, 0, 0]
}
}
}
},

View file

@ -31,8 +31,13 @@
"pivot": [0, 0, 0]
},
{
"name": "shell1",
"name": "shell",
"parent": "0",
"pivot": [0, 0, 0]
},
{
"name": "shell1",
"parent": "shell",
"pivot": [-0.15115, 4.55548, -0.34469],
"rotation": [0, 0, -45],
"cubes": [
@ -208,7 +213,7 @@
},
{
"name": "shell2",
"parent": "0",
"parent": "shell",
"pivot": [-0.15115, 4.55548, -0.34469],
"rotation": [0, 0, -45],
"cubes": [
@ -384,7 +389,7 @@
},
{
"name": "shell3",
"parent": "0",
"parent": "shell",
"pivot": [-0.15115, 4.55548, -0.34469],
"rotation": [0, 0, -45],
"cubes": [
@ -560,7 +565,7 @@
},
{
"name": "shell4",
"parent": "0",
"parent": "shell",
"pivot": [-0.15115, 4.55548, -0.34469],
"rotation": [0, 0, -45],
"cubes": [
@ -736,7 +741,7 @@
},
{
"name": "shell5",
"parent": "0",
"parent": "shell",
"pivot": [-0.15115, 4.55548, -0.34469],
"rotation": [0, 0, -45],
"cubes": [

View file

@ -44,6 +44,286 @@
"parent": "main",
"pivot": [0, 3.13707, -7.2996]
},
{
"name": "shell",
"parent": "gun",
"pivot": [0, 3.13707, -7.2996]
},
{
"name": "shell1",
"parent": "shell",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell2",
"parent": "shell",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell3",
"parent": "shell",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell4",
"parent": "shell",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell5",
"parent": "shell",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "flare",
"parent": "gun",
@ -12167,281 +12447,6 @@
}
]
},
{
"name": "shell1",
"parent": "gun",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell2",
"parent": "gun",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell3",
"parent": "gun",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell4",
"parent": "gun",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "shell5",
"parent": "gun",
"pivot": [0, 2.29605, -4.73626],
"cubes": [
{
"origin": [-0.22839, 2.06766, -5.33111],
"size": [0.45677, 0.45677, 1.41833],
"uv": {
"north": {"uv": [21, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [50, 18], "uv_size": [1.5, 0.5]},
"south": {"uv": [22, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [50, 21], "uv_size": [1.5, 0.5]},
"up": {"uv": [50, 28], "uv_size": [0.5, 1.5]},
"down": {"uv": [29, 51.5], "uv_size": [0.5, -1.5]}
}
},
{
"origin": [-0.20693, 2.08911, -4.87525],
"size": [0.41388, 0.41388, 1.07],
"uv": {
"north": {"uv": [71, 39], "uv_size": [0.25, 0.25]},
"east": {"uv": [56, 61], "uv_size": [0.75, 0.25]},
"south": {"uv": [40, 71], "uv_size": [0.25, 0.25]},
"west": {"uv": [61, 56], "uv_size": [0.75, 0.25]},
"up": {"uv": [57, 61], "uv_size": [0.25, 0.75]},
"down": {"uv": [61, 57.75], "uv_size": [0.25, -0.75]}
}
},
{
"origin": [-0.22839, 2.06766, -3.83686],
"size": [0.45677, 0.45677, 0.07591],
"uv": {
"north": {"uv": [24, 59], "uv_size": [0.5, 0.5]},
"east": {"uv": [32, 65], "uv_size": [0.25, 0.5]},
"south": {"uv": [25, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [65, 32], "uv_size": [0.25, 0.5]},
"up": {"uv": [33, 65], "uv_size": [0.5, 0.25]},
"down": {"uv": [65, 33.25], "uv_size": [0.5, -0.25]}
}
},
{
"origin": [-0.20445, 2.09161, -5.75251],
"size": [0.40889, 0.40889, 1.93717],
"uv": {
"north": {"uv": [59, 25], "uv_size": [0.5, 0.5]},
"east": {"uv": [46, 24], "uv_size": [2, 0.5]},
"south": {"uv": [26, 59], "uv_size": [0.5, 0.5]},
"west": {"uv": [25, 46], "uv_size": [2, 0.5]},
"up": {"uv": [46, 25], "uv_size": [0.5, 2]},
"down": {"uv": [27, 48], "uv_size": [0.5, -2]}
}
}
]
},
{
"name": "magazine",
"parent": "gun",