From 9669ea45feeaa489e2b016663e1b243eacf10ed4 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Mon, 9 Sep 2024 10:39:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=B7=A5=E5=85=B7=E7=B1=BB?= =?UTF-8?q?=E5=B9=B6=E8=B0=83=E6=95=B4=E5=8C=85=E5=88=86=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../renderer/entity/BocekArrowRenderer.java | 2 +- .../renderer/entity/CannonShellRenderer.java | 2 +- .../renderer/entity/GunGrenadeRenderer.java | 2 +- .../entity/HandGrenadeEntityRenderer.java | 2 +- .../entity/JavelinMissileRenderer.java | 2 +- .../renderer/entity/MortarShellRenderer.java | 2 +- .../entity/ProjectileEntityRenderer.java | 2 +- .../renderer/entity/RgoGrenadeRenderer.java | 2 +- .../renderer/entity/RpgRocketRenderer.java | 2 +- .../entity/TaserBulletProjectileRenderer.java | 2 +- .../superbwarfare/entity/ClaymoreEntity.java | 15 +----- .../superbwarfare/entity/DroneEntity.java | 1 + .../superbwarfare/entity/Mk42Entity.java | 1 + .../superbwarfare/entity/Mle1934Entity.java | 1 + .../superbwarfare/entity/MortarEntity.java | 1 + .../entity/layer/CannonShellLayer.java | 2 +- .../layer/ProjectileEntityInsideLayer.java | 2 +- .../entity/layer/ProjectileEntityLayer.java | 2 +- .../entity/model/CannonShellEntityModel.java | 2 +- .../entity/model/JavelinMissileModel.java | 2 +- .../entity/model/ProjectileEntityModel.java | 2 +- .../entity/model/RgoGrenadeEntityModel.java | 2 +- .../entity/model/RpgRocketModel.java | 2 +- .../{ => projectile}/BocekArrowEntity.java | 2 +- .../{ => projectile}/CannonShellEntity.java | 3 +- .../{ => projectile}/GunGrenadeEntity.java | 33 ++----------- .../{ => projectile}/HandGrenadeEntity.java | 20 ++------ .../JavelinMissileEntity.java | 48 +++---------------- .../{ => projectile}/MortarShellEntity.java | 24 +++------- .../{ => projectile}/ProjectileEntity.java | 3 +- .../{ => projectile}/RgoGrenadeEntity.java | 37 +++----------- .../{ => projectile}/RpgRocketEntity.java | 34 +++---------- .../TaserBulletProjectileEntity.java | 2 +- .../superbwarfare/event/GunEventHandler.java | 2 +- .../event/LivingEventHandler.java | 2 +- .../superbwarfare/init/ModEntities.java | 1 + .../superbwarfare/item/HandGrenade.java | 2 +- .../superbwarfare/item/RgoGrenade.java | 2 +- .../network/message/FireMessage.java | 2 +- .../tools/ExtendedEntityRayTraceResult.java | 2 +- .../superbwarfare/tools/ProjectileTool.java | 42 ++++++++++++++++ 41 files changed, 113 insertions(+), 203 deletions(-) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/BocekArrowEntity.java (99%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/CannonShellEntity.java (98%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/GunGrenadeEntity.java (74%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/HandGrenadeEntity.java (86%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/JavelinMissileEntity.java (82%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/MortarShellEntity.java (80%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/ProjectileEntity.java (99%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/RgoGrenadeEntity.java (76%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/RpgRocketEntity.java (83%) rename src/main/java/net/mcreator/superbwarfare/entity/{ => projectile}/TaserBulletProjectileEntity.java (98%) create mode 100644 src/main/java/net/mcreator/superbwarfare/tools/ProjectileTool.java diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/BocekArrowRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/BocekArrowRenderer.java index 035d4b493..02af4d428 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/BocekArrowRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/BocekArrowRenderer.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.model.entity.ModelBocekArrow; -import net.mcreator.superbwarfare.entity.BocekArrowEntity; +import net.mcreator.superbwarfare.entity.projectile.BocekArrowEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java index 5897e84af..cd6c335c3 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/CannonShellRenderer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.entity.CannonShellEntity; +import net.mcreator.superbwarfare.entity.projectile.CannonShellEntity; import net.mcreator.superbwarfare.entity.layer.CannonShellLayer; import net.mcreator.superbwarfare.entity.model.CannonShellEntityModel; import net.minecraft.client.renderer.MultiBufferSource; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/GunGrenadeRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/GunGrenadeRenderer.java index f7ede500c..83ab5e944 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/GunGrenadeRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/GunGrenadeRenderer.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.model.entity.ModelGrenade; -import net.mcreator.superbwarfare.entity.GunGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.GunGrenadeEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/HandGrenadeEntityRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/HandGrenadeEntityRenderer.java index c91f0dde3..594fb219a 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/HandGrenadeEntityRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/HandGrenadeEntityRenderer.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.model.entity.ModelHandGrenade; -import net.mcreator.superbwarfare.entity.HandGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.HandGrenadeEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/JavelinMissileRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/JavelinMissileRenderer.java index d9979ed0c..fa014f1de 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/JavelinMissileRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/JavelinMissileRenderer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.entity.JavelinMissileEntity; +import net.mcreator.superbwarfare.entity.projectile.JavelinMissileEntity; import net.mcreator.superbwarfare.entity.model.JavelinMissileModel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/MortarShellRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/MortarShellRenderer.java index d71b89b9c..5b1f1a9ea 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/MortarShellRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/MortarShellRenderer.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.model.entity.ModelMortarShell; -import net.mcreator.superbwarfare.entity.MortarShellEntity; +import net.mcreator.superbwarfare.entity.projectile.MortarShellEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ProjectileEntityRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ProjectileEntityRenderer.java index 7db14d062..88b1daec8 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ProjectileEntityRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/ProjectileEntityRenderer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.mcreator.superbwarfare.entity.layer.ProjectileEntityInsideLayer; import net.mcreator.superbwarfare.entity.layer.ProjectileEntityLayer; import net.mcreator.superbwarfare.entity.model.ProjectileEntityModel; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RgoGrenadeRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RgoGrenadeRenderer.java index e27fab93a..d7d50dd09 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RgoGrenadeRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RgoGrenadeRenderer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.entity.RgoGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.RgoGrenadeEntity; import net.mcreator.superbwarfare.entity.model.RgoGrenadeEntityModel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java index f455c10b7..937d1921e 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/RpgRocketRenderer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.client.renderer.entity; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; -import net.mcreator.superbwarfare.entity.RpgRocketEntity; +import net.mcreator.superbwarfare.entity.projectile.RpgRocketEntity; import net.mcreator.superbwarfare.entity.model.RpgRocketModel; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; diff --git a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TaserBulletProjectileRenderer.java b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TaserBulletProjectileRenderer.java index d453be26f..e8ed78ece 100644 --- a/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TaserBulletProjectileRenderer.java +++ b/src/main/java/net/mcreator/superbwarfare/client/renderer/entity/TaserBulletProjectileRenderer.java @@ -5,7 +5,7 @@ import com.mojang.blaze3d.vertex.VertexConsumer; import com.mojang.math.Axis; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.client.model.entity.ModelTaserRod; -import net.mcreator.superbwarfare.entity.TaserBulletProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.TaserBulletProjectileEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.entity.EntityRenderer; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java index bc6c37430..49995553b 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/ClaymoreEntity.java @@ -6,6 +6,7 @@ import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.NonNullList; import net.minecraft.nbt.CompoundTag; import net.minecraft.network.syncher.EntityDataAccessor; @@ -115,22 +116,10 @@ public class ClaymoreEntity extends LivingEntity implements GeoEntity, AnimatedE super.die(source); if (level() instanceof ServerLevel) { - destroyExplode(); - this.discard(); + ProjectileTool.causeCustomExplode(this, this.getOwner(), 15.0f, 7.5f, 1); } } - private void destroyExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 15f, - this.getX(), this.getY(), this.getZ(), 7.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - public void setOwnerUUID(@Nullable UUID pUuid) { this.entityData.set(OWNER_UUID, Optional.ofNullable(pUuid)); } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java index 5e552c117..88eb0cc38 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/DroneEntity.java @@ -1,5 +1,6 @@ package net.mcreator.superbwarfare.entity; +import net.mcreator.superbwarfare.entity.projectile.RgoGrenadeEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java b/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java index a02f9ade4..3fc5e6977 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/Mk42Entity.java @@ -1,5 +1,6 @@ package net.mcreator.superbwarfare.entity; +import net.mcreator.superbwarfare.entity.projectile.CannonShellEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java b/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java index 0fa63d88c..c0f65e353 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/Mle1934Entity.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.entity; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.projectile.CannonShellEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/MortarEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/MortarEntity.java index 457cd0236..881deec32 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/MortarEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/MortarEntity.java @@ -1,6 +1,7 @@ package net.mcreator.superbwarfare.entity; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.projectile.MortarShellEntity; import net.mcreator.superbwarfare.init.ModAttributes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java b/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java index 6cc5a4637..0daee81ee 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/layer/CannonShellLayer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.entity.layer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.CannonShellEntity; +import net.mcreator.superbwarfare.entity.projectile.CannonShellEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityInsideLayer.java b/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityInsideLayer.java index 5ef1ba498..2e7991607 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityInsideLayer.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityInsideLayer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.entity.layer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityLayer.java b/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityLayer.java index 077ced837..8cbaea6bc 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityLayer.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/layer/ProjectileEntityLayer.java @@ -3,7 +3,7 @@ package net.mcreator.superbwarfare.entity.layer; import com.mojang.blaze3d.vertex.PoseStack; import com.mojang.blaze3d.vertex.VertexConsumer; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.minecraft.client.renderer.MultiBufferSource; import net.minecraft.client.renderer.RenderType; import net.minecraft.client.renderer.texture.OverlayTexture; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java index 3ced82a92..acdef52b6 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/CannonShellEntityModel.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.entity.model; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.CannonShellEntity; +import net.mcreator.superbwarfare.entity.projectile.CannonShellEntity; import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.core.animatable.model.CoreGeoBone; import software.bernie.geckolib.core.animation.AnimationState; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/JavelinMissileModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/JavelinMissileModel.java index a9d05c523..304911ab5 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/JavelinMissileModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/JavelinMissileModel.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.entity.model; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.JavelinMissileEntity; +import net.mcreator.superbwarfare.entity.projectile.JavelinMissileEntity; import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java index b8f3bc94c..f40ad6a06 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/ProjectileEntityModel.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.entity.model; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.network.ModVariables; import net.minecraft.client.Minecraft; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/RgoGrenadeEntityModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/RgoGrenadeEntityModel.java index 3870b9b1e..fa2fe5ec2 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/RgoGrenadeEntityModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/RgoGrenadeEntityModel.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.entity.model; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.RgoGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.RgoGrenadeEntity; import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java b/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java index 3c0640193..48bd2d9d2 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/model/RpgRocketModel.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.entity.model; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.RpgRocketEntity; +import net.mcreator.superbwarfare.entity.projectile.RpgRocketEntity; import net.minecraft.resources.ResourceLocation; import software.bernie.geckolib.model.GeoModel; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/BocekArrowEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/BocekArrowEntity.java similarity index 99% rename from src/main/java/net/mcreator/superbwarfare/entity/BocekArrowEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/BocekArrowEntity.java index 4f10781cb..67a6c32fa 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/BocekArrowEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/BocekArrowEntity.java @@ -1,4 +1,4 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.headshot.BoundingBoxManager; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/CannonShellEntity.java similarity index 98% rename from src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/CannonShellEntity.java index ea0bdec8f..e1bb190ff 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/CannonShellEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/CannonShellEntity.java @@ -1,6 +1,7 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.AnimatedEntity; import net.mcreator.superbwarfare.init.*; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; import net.mcreator.superbwarfare.tools.CustomExplosion; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/GunGrenadeEntity.java similarity index 74% rename from src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/GunGrenadeEntity.java index 51eb6e45e..49679317a 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/GunGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/GunGrenadeEntity.java @@ -1,4 +1,4 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.init.ModDamageTypes; @@ -6,8 +6,8 @@ import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; @@ -21,7 +21,6 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -91,7 +90,7 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { if (this.tickCount > 0) { if (this.level() instanceof ServerLevel) { - causeEntityHitExplode(entity); + ProjectileTool.causeCustomExplode(this, entity, this.damage * 1.8f, 7.5f, this.monsterMultiplier); } } @@ -108,7 +107,7 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { } if (this.tickCount > 0) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage * 1.8f, 7.5f, this.monsterMultiplier); } } @@ -126,31 +125,9 @@ public class GunGrenadeEntity extends ThrowableItemProjectile { if (this.tickCount > 200 || this.isInWater()) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage * 1.8f, 7.5f, this.monsterMultiplier); } this.discard(); } } - - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 1.8f * this.damage, - this.getX(), this.getY(), this.getZ(), 7.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - - private void causeEntityHitExplode(Entity entity) { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 1.8f * this.damage, - entity.getX(), entity.getY(), entity.getZ(), 7.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } } diff --git a/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/HandGrenadeEntity.java similarity index 86% rename from src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/HandGrenadeEntity.java index 802f445c6..f42c05d77 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/HandGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/HandGrenadeEntity.java @@ -1,13 +1,12 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.Direction; import net.minecraft.core.particles.ParticleTypes; @@ -22,7 +21,6 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -83,7 +81,6 @@ public class HandGrenadeEntity extends ThrowableItemProjectile { } break; - case ENTITY: EntityHitResult entityResult = (EntityHitResult) result; Entity entity = entityResult.getEntity(); @@ -131,7 +128,7 @@ public class HandGrenadeEntity extends ThrowableItemProjectile { if (this.fuse <= 0) { this.discard(); if (!this.level().isClientSide) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, 90f, 6.5f, 1.25f); } } @@ -141,17 +138,6 @@ public class HandGrenadeEntity extends ThrowableItemProjectile { } } - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 90, - this.getX(), this.getY(), this.getZ(), 6.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1.25f); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } - @Override protected float getGravity() { return 0.07F; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/JavelinMissileEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/JavelinMissileEntity.java similarity index 82% rename from src/main/java/net/mcreator/superbwarfare/entity/JavelinMissileEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/JavelinMissileEntity.java index d5db69162..44c0cc208 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/JavelinMissileEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/JavelinMissileEntity.java @@ -1,13 +1,14 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.AnimatedEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.commands.arguments.EntityAnchorArgument; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; @@ -27,7 +28,6 @@ import net.minecraft.world.entity.boss.enderdragon.EnderDragon; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -126,7 +126,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo if (this.tickCount > 1) { if (this.level() instanceof ServerLevel) { - causeEntityHitExplode(entity); + ProjectileTool.causeCustomExplode(this, entity, this.damage, 8.0f, this.monsterMultiplier); } } @@ -150,7 +150,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo if (this.tickCount > 1) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, 8.0f, this.monsterMultiplier); } } @@ -183,8 +183,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo this.look(EntityAnchorArgument.Anchor.EYES, new Vec3(entity.getX(), entity.getEyeY() + (entity instanceof EnderDragon ? -3 : 1), entity.getZ())); } if (this.position().distanceTo(entity.position()) < 4) { - triggerExplode(entity); - this.discard(); + ProjectileTool.causeCustomExplode(this, entity, this.damage, 8.0f, this.monsterMultiplier); } } } @@ -202,7 +201,7 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo if (this.tickCount > 200 || this.isInWater()) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, 8.0f, this.monsterMultiplier); } this.discard(); } @@ -221,39 +220,6 @@ public class JavelinMissileEntity extends ThrowableItemProjectile implements Geo this.yRotO = this.getYRot(); } - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage, - this.getX(), this.getY(), this.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - - private void triggerExplode(Entity target) { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage, - target.getX(), target.getY(), target.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - - private void causeEntityHitExplode(Entity entity) { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), this.damage, - entity.getX(), entity.getY(), entity.getZ(), 8f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } - private PlayState movementPredicate(AnimationState event) { if (this.animationprocedure.equals("empty")) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.jvm.idle")); diff --git a/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/MortarShellEntity.java similarity index 80% rename from src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/MortarShellEntity.java index 9e4ef82f5..0d11fc4fa 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/MortarShellEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/MortarShellEntity.java @@ -1,10 +1,10 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; @@ -15,7 +15,6 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -25,7 +24,7 @@ import net.minecraftforge.network.NetworkHooks; import net.minecraftforge.network.PlayMessages; public class MortarShellEntity extends ThrowableItemProjectile { - private float damage = 100f; + private float damage = 150f; public MortarShellEntity(EntityType type, Level world) { super(type, world); @@ -66,7 +65,7 @@ public class MortarShellEntity extends ThrowableItemProjectile { entity.hurt(ModDamageTypes.causeCannonFireDamage(this.level().registryAccess(), this, this.getOwner()), this.damage); if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage, 12.5f); } this.discard(); } @@ -80,7 +79,7 @@ public class MortarShellEntity extends ThrowableItemProjectile { bell.attemptToRing(this.level(), resultPos, blockHitResult.getDirection()); } if (!this.level().isClientSide() && this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage, 12.5f); } this.discard(); } @@ -94,23 +93,12 @@ public class MortarShellEntity extends ThrowableItemProjectile { } if (this.tickCount > 600 || this.isInWater()) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage, 12.5f); } this.discard(); } } - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 150f, - this.getX(), this.getY(), this.getZ(), 12.5f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - @Override protected float getGravity() { return 0.05F; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/ProjectileEntity.java similarity index 99% rename from src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/ProjectileEntity.java index 83db00e30..fe31b7e22 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/ProjectileEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/ProjectileEntity.java @@ -1,7 +1,8 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.block.BarbedWireBlock; +import net.mcreator.superbwarfare.entity.*; import net.mcreator.superbwarfare.init.*; import net.mcreator.superbwarfare.item.Transcript; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/RgoGrenadeEntity.java similarity index 76% rename from src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/RgoGrenadeEntity.java index a04cdba8d..c530e7788 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/RgoGrenadeEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/RgoGrenadeEntity.java @@ -1,13 +1,13 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.init.ModDamageTypes; +import net.mcreator.superbwarfare.entity.AnimatedEntity; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; @@ -23,7 +23,6 @@ import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -83,9 +82,9 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti if (state.getBlock() instanceof BellBlock bell) { bell.attemptToRing(this.level(), resultPos, blockResult.getDirection()); } - causeExplode(); - break; + ProjectileTool.causeCustomExplode(this, 75f, 5.75f, 1.25f); + break; case ENTITY: EntityHitResult entityResult = (EntityHitResult) result; Entity entity = entityResult.getEntity(); @@ -98,7 +97,7 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti } } - causeEntityHitExplode(entity); + ProjectileTool.causeCustomExplode(this, entity, 75f, 5.75f, 1.25f); break; default: break; @@ -113,7 +112,7 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti if (this.fuse <= 0) { this.discard(); if (!this.level().isClientSide) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, 75f, 5.75f, 1.25f); } } @@ -123,28 +122,6 @@ public class RgoGrenadeEntity extends ThrowableItemProjectile implements GeoEnti } } - private void causeEntityHitExplode(Entity entity) { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 75, - entity.getX(), entity.getY(), entity.getZ(), 5.75f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1.25f); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } - - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), 75, - this.getX(), this.getY(), this.getZ(), 5.75f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(1.25f); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } - @Override protected float getGravity() { return 0.07F; diff --git a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/RpgRocketEntity.java similarity index 83% rename from src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/RpgRocketEntity.java index 4d58481a0..1a1faa8e9 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/RpgRocketEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/RpgRocketEntity.java @@ -1,13 +1,14 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; +import net.mcreator.superbwarfare.entity.AnimatedEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModEntities; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.network.message.ClientIndicatorMessage; -import net.mcreator.superbwarfare.tools.CustomExplosion; import net.mcreator.superbwarfare.tools.ParticleTool; +import net.mcreator.superbwarfare.tools.ProjectileTool; import net.minecraft.core.BlockPos; import net.minecraft.core.particles.ParticleTypes; import net.minecraft.network.protocol.Packet; @@ -24,7 +25,6 @@ import net.minecraft.world.entity.LivingEntity; import net.minecraft.world.entity.monster.Monster; import net.minecraft.world.entity.projectile.ThrowableItemProjectile; import net.minecraft.world.item.Item; -import net.minecraft.world.level.Explosion; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.BellBlock; import net.minecraft.world.level.block.state.BlockState; @@ -107,7 +107,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit if (this.tickCount > 1) { if (this.level() instanceof ServerLevel) { - causeEntityHitExplode(entity); + ProjectileTool.causeCustomExplode(this, entity, this.damage * 0.67f, 10.0f, this.monsterMultiplier); } } @@ -131,7 +131,7 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit if (this.tickCount > 1) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage * 0.67f, 10.0f, this.monsterMultiplier); } } @@ -158,34 +158,12 @@ public class RpgRocketEntity extends ThrowableItemProjectile implements GeoEntit if (this.tickCount > 100 || this.isInWater()) { if (this.level() instanceof ServerLevel) { - causeExplode(); + ProjectileTool.causeCustomExplode(this, this.damage * 0.67f, 10.0f, this.monsterMultiplier); } this.discard(); } } - private void causeExplode() { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), (float) 2 / 3 * this.damage, - this.getX(), this.getY(), this.getZ(), 10f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - } - - private void causeEntityHitExplode(Entity entity) { - CustomExplosion explosion = new CustomExplosion(this.level(), this, - ModDamageTypes.causeProjectileBoomDamage(this.level().registryAccess(), this, this.getOwner()), (float) 2 / 3 * this.damage, - entity.getX(), entity.getY(), entity.getZ(), 10f, Explosion.BlockInteraction.KEEP).setDamageMultiplier(this.monsterMultiplier); - explosion.explode(); - net.minecraftforge.event.ForgeEventFactory.onExplosionStart(this.level(), explosion); - explosion.finalizeExplosion(false); - ParticleTool.spawnMediumExplosionParticles(this.level(), this.position()); - this.discard(); - } - private PlayState movementPredicate(AnimationState event) { if (this.animationprocedure.equals("empty")) { return event.setAndContinue(RawAnimation.begin().thenLoop("animation.rpg.idle")); diff --git a/src/main/java/net/mcreator/superbwarfare/entity/TaserBulletProjectileEntity.java b/src/main/java/net/mcreator/superbwarfare/entity/projectile/TaserBulletProjectileEntity.java similarity index 98% rename from src/main/java/net/mcreator/superbwarfare/entity/TaserBulletProjectileEntity.java rename to src/main/java/net/mcreator/superbwarfare/entity/projectile/TaserBulletProjectileEntity.java index 514ba92b5..2d70f575c 100644 --- a/src/main/java/net/mcreator/superbwarfare/entity/TaserBulletProjectileEntity.java +++ b/src/main/java/net/mcreator/superbwarfare/entity/projectile/TaserBulletProjectileEntity.java @@ -1,4 +1,4 @@ -package net.mcreator.superbwarfare.entity; +package net.mcreator.superbwarfare.entity.projectile; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.init.*; diff --git a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java index d05033c07..feb09847c 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/GunEventHandler.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.event; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.mcreator.superbwarfare.event.modevent.ReloadEvent; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; diff --git a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java index de50131fb..af2369856 100644 --- a/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java +++ b/src/main/java/net/mcreator/superbwarfare/event/LivingEventHandler.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.event; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.mcreator.superbwarfare.entity.TargetEntity; import net.mcreator.superbwarfare.init.*; import net.mcreator.superbwarfare.item.gun.GunItem; diff --git a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java index 38c1f9c6b..0f78782ef 100644 --- a/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java +++ b/src/main/java/net/mcreator/superbwarfare/init/ModEntities.java @@ -2,6 +2,7 @@ package net.mcreator.superbwarfare.init; import net.mcreator.superbwarfare.ModUtils; import net.mcreator.superbwarfare.entity.*; +import net.mcreator.superbwarfare.entity.projectile.*; import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EntityType; import net.minecraft.world.entity.MobCategory; diff --git a/src/main/java/net/mcreator/superbwarfare/item/HandGrenade.java b/src/main/java/net/mcreator/superbwarfare/item/HandGrenade.java index 712772628..98d277a55 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/HandGrenade.java +++ b/src/main/java/net/mcreator/superbwarfare/item/HandGrenade.java @@ -1,6 +1,6 @@ package net.mcreator.superbwarfare.item; -import net.mcreator.superbwarfare.entity.HandGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.HandGrenadeEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.tools.CustomExplosion; diff --git a/src/main/java/net/mcreator/superbwarfare/item/RgoGrenade.java b/src/main/java/net/mcreator/superbwarfare/item/RgoGrenade.java index 57badc162..9377de231 100644 --- a/src/main/java/net/mcreator/superbwarfare/item/RgoGrenade.java +++ b/src/main/java/net/mcreator/superbwarfare/item/RgoGrenade.java @@ -1,6 +1,6 @@ package net.mcreator.superbwarfare.item; -import net.mcreator.superbwarfare.entity.RgoGrenadeEntity; +import net.mcreator.superbwarfare.entity.projectile.RgoGrenadeEntity; import net.mcreator.superbwarfare.init.ModDamageTypes; import net.mcreator.superbwarfare.init.ModSounds; import net.mcreator.superbwarfare.tools.CustomExplosion; diff --git a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java index f159ec7ee..30905aec3 100644 --- a/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java +++ b/src/main/java/net/mcreator/superbwarfare/network/message/FireMessage.java @@ -1,7 +1,7 @@ package net.mcreator.superbwarfare.network.message; import net.mcreator.superbwarfare.ModUtils; -import net.mcreator.superbwarfare.entity.*; +import net.mcreator.superbwarfare.entity.projectile.*; import net.mcreator.superbwarfare.event.GunEventHandler; import net.mcreator.superbwarfare.init.ModItems; import net.mcreator.superbwarfare.init.ModPerks; diff --git a/src/main/java/net/mcreator/superbwarfare/tools/ExtendedEntityRayTraceResult.java b/src/main/java/net/mcreator/superbwarfare/tools/ExtendedEntityRayTraceResult.java index 914a63e3e..e2974a135 100644 --- a/src/main/java/net/mcreator/superbwarfare/tools/ExtendedEntityRayTraceResult.java +++ b/src/main/java/net/mcreator/superbwarfare/tools/ExtendedEntityRayTraceResult.java @@ -1,6 +1,6 @@ package net.mcreator.superbwarfare.tools; -import net.mcreator.superbwarfare.entity.ProjectileEntity; +import net.mcreator.superbwarfare.entity.projectile.ProjectileEntity; import net.minecraft.world.phys.EntityHitResult; /** diff --git a/src/main/java/net/mcreator/superbwarfare/tools/ProjectileTool.java b/src/main/java/net/mcreator/superbwarfare/tools/ProjectileTool.java new file mode 100644 index 000000000..43a8b2da7 --- /dev/null +++ b/src/main/java/net/mcreator/superbwarfare/tools/ProjectileTool.java @@ -0,0 +1,42 @@ +package net.mcreator.superbwarfare.tools; + +import net.mcreator.superbwarfare.init.ModDamageTypes; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.projectile.ThrowableItemProjectile; +import net.minecraft.world.level.Explosion; + +import javax.annotation.Nullable; + +public class ProjectileTool { + + public static void causeCustomExplode(ThrowableItemProjectile projectile, Entity target, float radius, float damage, float damageMultiplier) { + CustomExplosion explosion = new CustomExplosion(projectile.level(), projectile, + ModDamageTypes.causeProjectileBoomDamage(projectile.level().registryAccess(), projectile, projectile.getOwner()), damage, + target.getX(), target.getY(), target.getZ(), radius, Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); + explosion.explode(); + net.minecraftforge.event.ForgeEventFactory.onExplosionStart(projectile.level(), explosion); + explosion.finalizeExplosion(false); + ParticleTool.spawnMediumExplosionParticles(projectile.level(), projectile.position()); + projectile.discard(); + } + + public static void causeCustomExplode(ThrowableItemProjectile projectile, float radius, float damage, float damageMultiplier) { + causeCustomExplode(projectile, projectile, damage, radius, damageMultiplier); + } + + public static void causeCustomExplode(ThrowableItemProjectile projectile, float damage, float radius) { + causeCustomExplode(projectile, radius, damage, 0.0f); + } + + public static void causeCustomExplode(LivingEntity projectile, @Nullable LivingEntity owner, float radius, float damage, float damageMultiplier) { + CustomExplosion explosion = new CustomExplosion(projectile.level(), projectile, + ModDamageTypes.causeProjectileBoomDamage(projectile.level().registryAccess(), projectile, owner), damage, + projectile.getX(), projectile.getY(), projectile.getZ(), radius, Explosion.BlockInteraction.KEEP).setDamageMultiplier(damageMultiplier); + explosion.explode(); + net.minecraftforge.event.ForgeEventFactory.onExplosionStart(projectile.level(), explosion); + explosion.finalizeExplosion(false); + ParticleTool.spawnMediumExplosionParticles(projectile.level(), projectile.position()); + projectile.discard(); + } +}