添加了炮口火焰
This commit is contained in:
parent
0e3fd66ce7
commit
3e7b6123ce
11 changed files with 205 additions and 59 deletions
|
@ -8,7 +8,6 @@ import net.mcreator.target.entity.MortarEntity;
|
|||
import net.mcreator.target.init.TargetModKeyMappings;
|
||||
import net.mcreator.target.init.TargetModMobEffects;
|
||||
import net.mcreator.target.init.TargetModTags;
|
||||
import net.mcreator.target.item.common.ammo.CannonShellItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.mcreator.target.network.message.*;
|
||||
import net.mcreator.target.tools.TraceTool;
|
||||
|
@ -75,9 +74,7 @@ public class ClickHandler {
|
|||
if (player.getVehicle() != null && player.getVehicle() instanceof Mk42Entity) {
|
||||
event.setCanceled(true);
|
||||
TargetMod.PACKET_HANDLER.sendToServer(new VehicleFireMessage(0));
|
||||
if (player.getMainHandItem().getItem() instanceof CannonShellItem) {
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
if (player.getMainHandItem().is(TargetModTags.Items.GUN)) {
|
||||
event.setCanceled(true);
|
||||
|
|
|
@ -3,7 +3,7 @@ package net.mcreator.target.client.renderer.entity;
|
|||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import net.mcreator.target.entity.Mk42Entity;
|
||||
import net.mcreator.target.entity.MortarEntity;
|
||||
import net.mcreator.target.entity.layer.Mk42Layer;
|
||||
import net.mcreator.target.entity.model.Mk42Model;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
|
@ -15,7 +15,9 @@ import software.bernie.geckolib.renderer.GeoEntityRenderer;
|
|||
public class Mk42Renderer extends GeoEntityRenderer<Mk42Entity> {
|
||||
public Mk42Renderer(EntityRendererProvider.Context renderManager) {
|
||||
super(renderManager, new Mk42Model());
|
||||
this.shadowRadius = 0f;
|
||||
this.shadowRadius = 3f;
|
||||
this.addRenderLayer(new Mk42Layer(this));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -2,7 +2,11 @@ package net.mcreator.target.client.screens;
|
|||
|
||||
import com.mojang.blaze3d.platform.GlStateManager;
|
||||
import com.mojang.blaze3d.systems.RenderSystem;
|
||||
import net.mcreator.target.tools.RenderTool;
|
||||
import net.mcreator.target.entity.Mk42Entity;
|
||||
import net.mcreator.target.init.TargetModItems;
|
||||
import net.mcreator.target.item.gun.GunItem;
|
||||
import net.mcreator.target.network.TargetModVariables;
|
||||
import net.minecraft.client.CameraType;
|
||||
import net.minecraft.client.Minecraft;
|
||||
import net.minecraft.client.renderer.GameRenderer;
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
|
@ -13,11 +17,8 @@ import net.minecraftforge.eventbus.api.EventPriority;
|
|||
import net.minecraftforge.eventbus.api.SubscribeEvent;
|
||||
import net.minecraftforge.fml.common.Mod;
|
||||
|
||||
@Mod.EventBusSubscriber(value = Dist.CLIENT)
|
||||
@Mod.EventBusSubscriber({Dist.CLIENT})
|
||||
public class Mk42UIOverlay {
|
||||
public static final int TEXTURE_WIDTH = 1626;
|
||||
public static final int TEXTURE_HEIGHT = 586;
|
||||
|
||||
@SubscribeEvent(priority = EventPriority.NORMAL)
|
||||
public static void eventHandler(RenderGuiEvent.Pre event) {
|
||||
int w = event.getWindow().getGuiScaledWidth();
|
||||
|
@ -29,13 +30,9 @@ public class Mk42UIOverlay {
|
|||
RenderSystem.setShader(GameRenderer::getPositionTexShader);
|
||||
RenderSystem.blendFuncSeparate(GlStateManager.SourceFactor.SRC_ALPHA, GlStateManager.DestFactor.ONE_MINUS_SRC_ALPHA, GlStateManager.SourceFactor.ONE, GlStateManager.DestFactor.ZERO);
|
||||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
RenderTool.preciseBlit(event.getGuiGraphics(),
|
||||
new ResourceLocation("target:textures/screens/mk_42_rex.png"),
|
||||
(float) w / 2 - (float) TEXTURE_WIDTH / 10f, (float) h / 2 - (float) TEXTURE_HEIGHT / 10f,
|
||||
0, 0, TEXTURE_WIDTH / 5f, TEXTURE_HEIGHT / 5f, TEXTURE_WIDTH / 5f, TEXTURE_HEIGHT / 5f);
|
||||
// if (shouldRenderCrossHair(player)) {
|
||||
//
|
||||
// }
|
||||
if (shouldRenderCrossHair(player)) {
|
||||
event.getGuiGraphics().blit(new ResourceLocation("target:textures/screens/mk_42_rex.png"), w / 2 + -407, h / 2 + -146, 0, 0, 813, 293, 813, 293);
|
||||
}
|
||||
RenderSystem.depthMask(true);
|
||||
RenderSystem.defaultBlendFunc();
|
||||
RenderSystem.enableDepthTest();
|
||||
|
@ -43,11 +40,11 @@ public class Mk42UIOverlay {
|
|||
RenderSystem.setShaderColor(1, 1, 1, 1);
|
||||
}
|
||||
|
||||
// private static boolean shouldRenderCrossHair(Player player) {
|
||||
// if (player == null) return false;
|
||||
// return !player.isSpectator()
|
||||
// && player.getMainHandItem().getItem() == TargetModItems.M_79.get()
|
||||
// && Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON
|
||||
// && !player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).map(c -> c.zooming).orElse(false);
|
||||
// }
|
||||
private static boolean shouldRenderCrossHair(Player player) {
|
||||
if (player == null) return false;
|
||||
return !player.isSpectator()
|
||||
&& !(player.getMainHandItem().getItem() instanceof GunItem)
|
||||
&& Minecraft.getInstance().options.getCameraType() == CameraType.FIRST_PERSON
|
||||
&& (player.getVehicle() != null && player.getVehicle() instanceof Mk42Entity);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -235,7 +235,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
|
|||
if (this.getPersistentData().getInt("fire_cooldown") > 28) {
|
||||
gunner.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
capability.recoilHorizon = 2 * Math.random() - 1;
|
||||
capability.cannonFiring = 1;
|
||||
// capability.cannonFiring = 1;
|
||||
capability.cannonRecoil = 10;
|
||||
capability.syncPlayerVariables(gunner);
|
||||
});
|
||||
|
@ -273,7 +273,7 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
|
|||
}
|
||||
|
||||
if (stack.is(TargetModItems.AP_5_INCHES.get())) {
|
||||
hitDamage = 150;
|
||||
hitDamage = 450;
|
||||
explosionRadius = 3;
|
||||
explosionDamage = 250;
|
||||
fireProbability = 0;
|
||||
|
@ -309,11 +309,50 @@ public class Mk42Entity extends PathfinderMob implements GeoEntity {
|
|||
this.getZ() + 5 * this.getLookAngle().z,
|
||||
200, 5, 0.02, 5, 0.005);
|
||||
|
||||
double x = this.getX() + 9 * this.getLookAngle().x;
|
||||
double y = this.getEyeY() + 9 * this.getLookAngle().y;
|
||||
double z = this.getZ() + 9 * this.getLookAngle().z;
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE, x, y, z, 10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CLOUD, x, y, z, 10, 0.4, 0.4, 0.4, 0.0075);
|
||||
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 9 * this.getLookAngle().x,
|
||||
this.getEyeY() + 9 * this.getLookAngle().y,
|
||||
this.getZ() + 9 * this.getLookAngle().z,
|
||||
70, 0.3, 0.3, 0.3, 0.01);
|
||||
this.getX() + 9.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 9.5 * this.getLookAngle().y,
|
||||
this.getZ() + 9.5 * this.getLookAngle().z,
|
||||
5, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 10 * this.getLookAngle().x,
|
||||
this.getEyeY() + 10 * this.getLookAngle().y,
|
||||
this.getZ() + 10 * this.getLookAngle().z,
|
||||
4, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 11.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 11.5 * this.getLookAngle().y,
|
||||
this.getZ() + 11.5 * this.getLookAngle().z,
|
||||
3, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12 * this.getLookAngle().y,
|
||||
this.getZ() + 12 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 12.5 * this.getLookAngle().x,
|
||||
this.getEyeY() + 12.5 * this.getLookAngle().y,
|
||||
this.getZ() + 12.5 * this.getLookAngle().z,
|
||||
2, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
server.sendParticles(ParticleTypes.CAMPFIRE_COSY_SMOKE,
|
||||
this.getX() + 13 * this.getLookAngle().x,
|
||||
this.getEyeY() + 13 * this.getLookAngle().y,
|
||||
this.getZ() + 13 * this.getLookAngle().z,
|
||||
1, 0.15, 0.15, 0.15, 0.0075);
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,29 @@
|
|||
package net.mcreator.target.entity.layer;
|
||||
|
||||
import software.bernie.geckolib.renderer.layer.GeoRenderLayer;
|
||||
import software.bernie.geckolib.renderer.GeoRenderer;
|
||||
import software.bernie.geckolib.cache.object.BakedGeoModel;
|
||||
|
||||
import net.minecraft.resources.ResourceLocation;
|
||||
import net.minecraft.client.renderer.texture.OverlayTexture;
|
||||
import net.minecraft.client.renderer.RenderType;
|
||||
import net.minecraft.client.renderer.MultiBufferSource;
|
||||
|
||||
import net.mcreator.target.entity.Mk42Entity;
|
||||
|
||||
import com.mojang.blaze3d.vertex.VertexConsumer;
|
||||
import com.mojang.blaze3d.vertex.PoseStack;
|
||||
|
||||
public class Mk42Layer extends GeoRenderLayer<Mk42Entity> {
|
||||
private static final ResourceLocation LAYER = new ResourceLocation("target", "textures/entity/sherman_e.png");
|
||||
|
||||
public Mk42Layer(GeoRenderer<Mk42Entity> entityRenderer) {
|
||||
super(entityRenderer);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(PoseStack poseStack, Mk42Entity animatable, BakedGeoModel bakedModel, RenderType renderType, MultiBufferSource bufferSource, VertexConsumer buffer, float partialTick, int packedLight, int packedOverlay) {
|
||||
RenderType glowRenderType = RenderType.eyes(LAYER);
|
||||
getRenderer().reRender(getDefaultBakedModel(animatable), poseStack, bufferSource, animatable, glowRenderType, bufferSource.getBuffer(glowRenderType), partialTick, packedLight, OverlayTexture.NO_OVERLAY, 1, 1, 1, 1);
|
||||
}
|
||||
}
|
|
@ -83,7 +83,7 @@ public class ClientEventHandler {
|
|||
if (entity.getVehicle() != null && entity.getVehicle() instanceof Mk42Entity) {
|
||||
|
||||
var capability = entity.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null);
|
||||
if (capability.orElse(new TargetModVariables.PlayerVariables()).cannonFiring > 0) {
|
||||
if (capability.orElse(new TargetModVariables.PlayerVariables()).cannonRecoil > 7) {
|
||||
data.putDouble("cannon_fire_shake_time", 0.001);
|
||||
}
|
||||
|
||||
|
@ -466,7 +466,7 @@ public class ClientEventHandler {
|
|||
return;
|
||||
}
|
||||
|
||||
if (mc.player.getMainHandItem().is(TargetModTags.Items.GUN)) {
|
||||
if (mc.player.getMainHandItem().is(TargetModTags.Items.GUN) || (mc.player.getVehicle() != null && mc.player.getVehicle() instanceof Mk42Entity)) {
|
||||
event.setCanceled(true);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -75,12 +75,12 @@ public class PlayerEventHandler {
|
|||
}
|
||||
handleDistantRange(player);
|
||||
|
||||
if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonFiring > 0) {
|
||||
player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
capability.cannonFiring = (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonFiring - 0.5;
|
||||
capability.syncPlayerVariables(player);
|
||||
});
|
||||
}
|
||||
// if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonFiring > 0) {
|
||||
// player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
// capability.cannonFiring = (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonFiring - 0.5;
|
||||
// capability.syncPlayerVariables(player);
|
||||
// });
|
||||
// }
|
||||
if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonRecoil > 0) {
|
||||
player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> {
|
||||
capability.cannonRecoil = (player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).cannonRecoil - 1;
|
||||
|
|
|
@ -2,39 +2,58 @@
|
|||
"format_version": "1.8.0",
|
||||
"animations": {
|
||||
"animation.mk42.idle": {
|
||||
"loop": true
|
||||
},
|
||||
"animation.mk42.fire": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.5,
|
||||
"loop": true,
|
||||
"bones": {
|
||||
"paoguan": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 11],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.4917": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInQuad"
|
||||
}
|
||||
"flare": {
|
||||
"scale": {
|
||||
"vector": [0, 0, 0]
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"animation.mk42.fire2": {
|
||||
"animation.mk42.fire": {
|
||||
"loop": "hold_on_last_frame",
|
||||
"animation_length": 0.5,
|
||||
"animation_length": 1,
|
||||
"bones": {
|
||||
"paoguan": {
|
||||
"position": {
|
||||
"0.0": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInQuad"
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [0, 0, 11],
|
||||
"easing": "easeInElastic"
|
||||
},
|
||||
"0.4917": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInQuad"
|
||||
},
|
||||
"0.6667": {
|
||||
"vector": [0, 0, 0],
|
||||
"easing": "easeInQuad"
|
||||
}
|
||||
}
|
||||
},
|
||||
"flare": {
|
||||
"scale": {
|
||||
"0.0": {
|
||||
"vector": [1, 1, 1],
|
||||
"easing": "easeOutQuad"
|
||||
},
|
||||
"0.0083": {
|
||||
"vector": [110, 110, 110]
|
||||
},
|
||||
"0.025": {
|
||||
"vector": [110, 110, 110]
|
||||
},
|
||||
"0.05": {
|
||||
"vector": [1, 1, 1],
|
||||
"easing": "easeOutQuad"
|
||||
},
|
||||
"0.6667": {
|
||||
"vector": [1, 1, 1],
|
||||
"easing": "easeOutQuad"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -6,9 +6,9 @@
|
|||
"identifier": "geometry.unknown",
|
||||
"texture_width": 256,
|
||||
"texture_height": 256,
|
||||
"visible_bounds_width": 14,
|
||||
"visible_bounds_height": 5.5,
|
||||
"visible_bounds_offset": [0, 2.25, 0]
|
||||
"visible_bounds_width": 300,
|
||||
"visible_bounds_height": 299,
|
||||
"visible_bounds_offset": [0, 2.5, 0]
|
||||
},
|
||||
"bones": [
|
||||
{
|
||||
|
@ -26,6 +26,69 @@
|
|||
"pivot": [0, 34.56, -1.8],
|
||||
"rotation": [90, 0, 0]
|
||||
},
|
||||
{
|
||||
"name": "flare",
|
||||
"parent": "paoguan",
|
||||
"pivot": [0, 150, -1.74844],
|
||||
"cubes": [
|
||||
{
|
||||
"origin": [-0.675, 149.325, -1.74844],
|
||||
"size": [1.35, 1.35, 0],
|
||||
"pivot": [0, 150, -1.74844],
|
||||
"rotation": [-90, 0, 0],
|
||||
"uv": {
|
||||
"north": {"uv": [256, 0], "uv_size": [-64, 64]},
|
||||
"east": {"uv": [192, 0], "uv_size": [64, 64]},
|
||||
"south": {"uv": [192, 0], "uv_size": [64, 64]},
|
||||
"west": {"uv": [192, 0], "uv_size": [64, 64]},
|
||||
"up": {"uv": [256, 64], "uv_size": [-64, -64]},
|
||||
"down": {"uv": [256, 64], "uv_size": [-64, -64]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-5.875, 149.625, -1.74844],
|
||||
"size": [6.4, 1.35, 0],
|
||||
"pivot": [0, 150.3, -1.74844],
|
||||
"rotation": [-60, 0, 90],
|
||||
"uv": {
|
||||
"north": {"uv": [256, 0], "uv_size": [-51.5, 64]},
|
||||
"east": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"south": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"west": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"up": {"uv": [256, 64], "uv_size": [-51.5, -64]},
|
||||
"down": {"uv": [256, 64], "uv_size": [-51.5, -64]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-5.875, 149.625, -1.74844],
|
||||
"size": [6.4, 1.35, 0],
|
||||
"pivot": [0, 150.3, -1.74844],
|
||||
"rotation": [-121, 0, 90],
|
||||
"uv": {
|
||||
"north": {"uv": [256, 0], "uv_size": [-51.5, 64]},
|
||||
"east": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"south": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"west": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"up": {"uv": [256, 64], "uv_size": [-51.5, -64]},
|
||||
"down": {"uv": [256, 64], "uv_size": [-51.5, -64]}
|
||||
}
|
||||
},
|
||||
{
|
||||
"origin": [-5.875, 149.625, -1.74844],
|
||||
"size": [6.4, 1.35, 0],
|
||||
"pivot": [0, 150.3, -1.74844],
|
||||
"rotation": [179, 0, 90],
|
||||
"uv": {
|
||||
"north": {"uv": [256, 0], "uv_size": [-51.5, 64]},
|
||||
"east": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"south": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"west": {"uv": [204.5, 0], "uv_size": [51.5, 64]},
|
||||
"up": {"uv": [256, 64], "uv_size": [-51.5, -64]},
|
||||
"down": {"uv": [256, 64], "uv_size": [-51.5, -64]}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "neibi",
|
||||
"parent": "paoguan",
|
||||
|
|
BIN
src/main/resources/assets/target/textures/entity/sherman_e.png
Normal file
BIN
src/main/resources/assets/target/textures/entity/sherman_e.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 189 KiB |
Binary file not shown.
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 62 KiB |
Loading…
Add table
Reference in a new issue