去营业妨碍化加特林,添加了木仓管的过热变红特效

This commit is contained in:
Atsuihsio 2024-06-12 02:25:11 +08:00
parent 6da0603f71
commit 2cd5efbdee
11 changed files with 6119 additions and 7591 deletions

View file

@ -32,6 +32,8 @@ public class MinigunItemModel extends GeoModel<Minigun> {
CoreGeoBone gun = getAnimationProcessor().getBone("barrel"); CoreGeoBone gun = getAnimationProcessor().getBone("barrel");
CoreGeoBone shen = getAnimationProcessor().getBone("shen"); CoreGeoBone shen = getAnimationProcessor().getBone("shen");
CoreGeoBone flare = getAnimationProcessor().getBone("flare"); CoreGeoBone flare = getAnimationProcessor().getBone("flare");
CoreGeoBone light = getAnimationProcessor().getBone("light");
CoreGeoBone heat_barrels = getAnimationProcessor().getBone("heatbarrels");
Player player = Minecraft.getInstance().player; Player player = Minecraft.getInstance().player;
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
@ -42,6 +44,9 @@ public class MinigunItemModel extends GeoModel<Minigun> {
} }
float times = 250f / fps; float times = 250f / fps;
float heat = (float)stack.getOrCreateTag().getDouble("heat");
heat_barrels.setScaleZ(4 * heat);
gun.setRotZ((float) (gun.getRotZ() + times * -0.008f * stack.getOrCreateTag().getDouble("minigun_rotation"))); gun.setRotZ((float) (gun.getRotZ() + times * -0.008f * stack.getOrCreateTag().getDouble("minigun_rotation")));
@ -72,13 +77,14 @@ public class MinigunItemModel extends GeoModel<Minigun> {
} }
if (stack.getOrCreateTag().getInt("fire_animation") > 0) { if (stack.getOrCreateTag().getInt("fire_animation") > 0) {
flare.setHidden(false);
light.setHidden(false);
flare.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5))); flare.setScaleX((float) (1 + 0.5 * (Math.random() - 0.5)));
flare.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5))); flare.setScaleY((float) (1 + 0.5 * (Math.random() - 0.5)));
flare.setRotZ((float) (0.5 * (Math.random() - 0.5))); flare.setRotZ((float) (0.5 * (Math.random() - 0.5)));
} else { } else {
flare.setScaleX(0); flare.setHidden(true);
flare.setScaleY(0); light.setHidden(true);
flare.setRotZ(0);
} }
@ -125,5 +131,13 @@ public class MinigunItemModel extends GeoModel<Minigun> {
move.setRotY(Mth.DEG_TO_RAD * (float) yRot); move.setRotY(Mth.DEG_TO_RAD * (float) yRot);
move.setRotZ(2.7f * (float) m + Mth.DEG_TO_RAD * (float) zRot); move.setRotZ(2.7f * (float) m + Mth.DEG_TO_RAD * (float) zRot);
CoreGeoBone camera = getAnimationProcessor().getBone("camera");
player.getPersistentData().putDouble("camera_rot_x", Mth.RAD_TO_DEG * camera.getRotX());
player.getPersistentData().putDouble("camera_rot_y", Mth.RAD_TO_DEG * camera.getRotY());
player.getPersistentData().putDouble("camera_rot_z", Mth.RAD_TO_DEG * camera.getRotZ());
} }
} }

View file

@ -193,7 +193,7 @@ public class GunEventHandler {
if (tag.getDouble("overheat") == 0 if (tag.getDouble("overheat") == 0
&& (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleAmmo > 0 && (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).rifleAmmo > 0
&& !(player.getCooldowns().isOnCooldown(stack.getItem())) && tag.getDouble("minigun_rotation") >= 10) { && !(player.getCooldowns().isOnCooldown(stack.getItem())) && tag.getDouble("minigun_rotation") >= 10) {
tag.putDouble("heat", (tag.getDouble("heat") + 1)); tag.putDouble("heat", (tag.getDouble("heat") + 0.5));
if (tag.getDouble("heat") >= 50.5) { if (tag.getDouble("heat") >= 50.5) {
tag.putDouble("overheat", 40); tag.putDouble("overheat", 40);
player.getCooldowns().addCooldown(stack.getItem(), 40); player.getCooldowns().addCooldown(stack.getItem(), 40);

View file

@ -16,6 +16,7 @@ import net.minecraft.client.player.LocalPlayer;
import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer; import net.minecraft.client.renderer.BlockEntityWithoutLevelRenderer;
import net.minecraft.network.chat.Component; import net.minecraft.network.chat.Component;
import net.minecraft.resources.ResourceLocation; import net.minecraft.resources.ResourceLocation;
import net.minecraft.util.Mth;
import net.minecraft.world.InteractionHand; import net.minecraft.world.InteractionHand;
import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.Entity;
import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.entity.EquipmentSlot;
@ -184,9 +185,18 @@ public class Minigun extends GunItem implements GeoItem, AnimatedItem {
super.inventoryTick(itemstack, world, entity, slot, selected); super.inventoryTick(itemstack, world, entity, slot, selected);
if (entity == null) if (entity == null)
return; return;
if (itemstack.getOrCreateTag().getDouble("heat") > 0) {
itemstack.getOrCreateTag().putDouble("heat", (itemstack.getOrCreateTag().getDouble("heat") - 0.5)); double cooldown = 0;
if(entity.wasInPowderSnow){
cooldown = 0.75;
} else if (entity.isInWaterOrRain()){
cooldown = 0.2;
} else if (entity.isOnFire() || entity.isInLava()){
cooldown = -0.5;
} }
itemstack.getOrCreateTag().putDouble("heat", Mth.clamp(itemstack.getOrCreateTag().getDouble("heat") - 0.25 - cooldown,0,55));
if (itemstack.getOrCreateTag().getDouble("heat") == 0) { if (itemstack.getOrCreateTag().getDouble("heat") == 0) {
itemstack.getOrCreateTag().putDouble("heat_bar", 51); itemstack.getOrCreateTag().putDouble("heat_bar", 51);
} else { } else {

View file

@ -2,7 +2,6 @@
"format_version": "1.8.0", "format_version": "1.8.0",
"animations": { "animations": {
"animation.minigun.idle": { "animation.minigun.idle": {
"loop": true,
"animation_length": 0.5, "animation_length": 0.5,
"bones": { "bones": {
"0": { "0": {
@ -47,12 +46,29 @@
"vector": [0, 0, 0] "vector": [0, 0, 0]
} }
} }
},
"camera": {
"rotation": {
"0.0": {
"vector": [0, 0, 0]
},
"0.7083": {
"vector": [0, 0, 0]
},
"1.0833": {
"vector": [0.25, -0.5, 0.5],
"easing": "easeInSine"
},
"1.4583": {
"vector": [0, 0, 0],
"easing": "easeOutSine"
}
}
} }
} }
}, },
"animation.minigun.run": { "animation.minigun.run": {
"loop": true, "animation_length": 0.7917,
"animation_length": 0.79167,
"bones": { "bones": {
"0": { "0": {
"rotation": { "rotation": {
@ -97,6 +113,25 @@
"easing": "easeOutSine" "easing": "easeOutSine"
} }
} }
},
"camera": {
"rotation": {
"0.0": {
"vector": [-0.3, -0.3, 0.3]
},
"0.2083": {
"vector": [0.3, 0, -0.3]
},
"0.4167": {
"vector": [-0.3, 0.3, 0.3]
},
"0.5833": {
"vector": [0.3, 0, -0.3]
},
"0.7917": {
"vector": [-0.3, -0.3, 0.3]
}
}
} }
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -9,18 +9,18 @@
"thirdperson_righthand": { "thirdperson_righthand": {
"rotation": [ "rotation": [
75, 75,
-9, 0,
0 0
], ],
"translation": [ "translation": [
0.75, 0,
8.5, 13,
-6.25 -3.25
], ],
"scale": [ "scale": [
0.6, 0.75,
0.6, 0.75,
0.6 0.75
] ]
}, },
"thirdperson_lefthand": { "thirdperson_lefthand": {
@ -44,17 +44,17 @@
"rotation": [ "rotation": [
0, 0,
0, 0,
7 11.5
], ],
"translation": [ "translation": [
0.5, 25.25,
-30.75, -50.75,
-27.5 -66.5
], ],
"scale": [ "scale": [
2, 4,
2, 4,
2 4
] ]
}, },
"firstperson_lefthand": { "firstperson_lefthand": {
@ -62,11 +62,6 @@
-4, -4,
0.5, 0.5,
-7 -7
],
"scale": [
0,
0,
0
] ]
}, },
"ground": { "ground": {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.9 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View file

@ -1,6 +1,6 @@
{ {
"zoom": 1, "zoom": 1,
"dev": 3.5, "dev": 2.5,
"recoil_x": 0.012, "recoil_x": 0.012,
"recoil_y": 0.011, "recoil_y": 0.011,
"damage": 8, "damage": 8,