去营业妨碍化加特林,添加了木仓管的过热变红特效
|
@ -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());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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]
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -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": {
|
||||||
|
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 46 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 31 KiB |
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 10 KiB |
|
@ -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,
|
||||||
|
|